This content is part of the Essential Guide: How serverless works to usher in a new era of applications

Developers, prepare for the caveats of serverless frameworks

While serverless has gained the attention of many developers, those that adopt serverless must stay on top of issues that it may bring, including portability challenges.

Serverless computing has attracted a lot of attention over the last year. Amazon has led the pack with its Lambda functions, and enterprises want to use new serverless APIs and portable serverless tools. However, experts predict a rocky road for enterprises that want to use serverless frameworks across multiple clouds.

"The cloud providers likely see no immediate advantage in creating easy on- and off-ramps for serverless," said Rich Sharples, senior director of product management at Red Hat. "But doing so will benefit users and developers who have adopted a multi-cloud or cloud-agnostic stance." Enterprise architects should weigh the risks of being locked into a cloud platform against the benefits of services like better monitoring or event sourcing services, Sharples added.

Serverless faces challenges

Current cloud providers cater new serverless platforms to developers and promise freedom from infrastructure management. However, this can lead to vendor lock-in as developers look to take advantage of cloud-specific features that are baked into the various platforms, such as event-source wiring, function orchestration and diagnostics.

To combat this issue, the Cloud Native Computing Foundation is working on specifications, like Kubeless and OpenWhisk, to improve portability. Developers should also plan to use serverless API libraries and frameworks to build more sophisticated apps that are portable across clouds, said Michael Coté, director of technical marketing at Pivotal. He expects many serverless frameworks to emerge that support popular languages, like .Net, Java, Ruby, Python and PHP. He also expects many battles ahead as developers sort out the best languages for serverless.

Serverless architectures drive smaller services

The growth of serverless offerings from cloud providers will make it easier for enterprises to develop, test and deploy a larger number of smaller services through reactive architectures, experts say. This will make it possible for enterprises to assemble and disassemble the application stack in ways that have not been possible before.

These kinds of serverless models work best for applications that are simple and don't have to maintain an application state, said Ravi Mayuram, CTO at Couchbase, a database provider. These stateless services will benefit from scalable JSON databases that work in concert with apps. If a JSON interface is introduced to these data stores, enterprises will be able to migrate to best-of-breed databases for different application use cases and scalability requirements.

Enterprises figure out right role for serverless

Despite the hype, serverless is still in its early days. For example, Amazon has acquired the most traction with its Lambda offering, despite its limited service-level agreements. Enterprises will need to experiment with how these new applications perform for different use cases before making a stronger commitment, experts say.

Serverless frameworks require a combination of optimism, faith and indifference, said Owen Garrett, head of products at Nginx. This means that developers must have optimism that a function will trigger in time; faith that, if it does not trigger one time, it should still run another time; and indifference in terms of whether it actually runs at all.

It will be harder to debug and recover from faults on serverless apps since they don't store state, experts say. As a result, developers will require new tools that orchestrate and debug these apps. Enterprise architects must also create guidelines and documentation for tests and deployments of serverless APIs or else risk architectural fragmentation.

Dig Deeper on Enterprise architecture management

Software Quality
Cloud Computing