Serverless has emerged in the past couple of years as a compelling architectural alternative for building and running modern applications and services. With a new level of scalability and ease of implementation for application deployment, businesses benefit from much faster release cycles and more efficient scaling.
Adoption is growing – recent data finds a third of developers are already using serverless architecture, and an additional 30% hope to use it in the next year. It could be said that serverless architectures now represent a fundamental shift in IT infrastructure and software delivery. We have previously witnessed the dramatic impact of early-generation cloud computing models on entire organisations as they strive for digital transformation.
In the right use cases, a serverless approach could have a similar transformative impact. But what do these look like, and what pitfalls need to be avoided?
How can serverless be effective?
By moving from instance-based cloud-hosted architecture to a serverless architecture, businesses will be welcoming the next generation of cloud infrastructure services that automates capacity planning, deployment, and scaling.
Crucially, this allows businesses to offload the tedious and challenging tasks of managing the underlying infrastructure for the technology stack to the serverless provider, while freeing up developers to focus on building applications. This accelerates the time to market, reduces costs, and leads to higher engineer satisfaction.
Key use cases for serverless architecture include media processing to enhance business performance, event-driven applications to improve the user experience, or support deployments of topical services like chatbots. In this case, serverless infrastructure can act as a flexible resource to help manage the change in demand for these services, as the architecture can scale up and down to make sure that businesses never pay for more capacity than they need and that they can meet any spikes in demand.
Across verticals, organisations are making serverless architectures work for their needs. In the retail sector, for example, enterprises are using serverless setups to provide flexible infrastructure for shopping carts, workflow engines, and inventory tracking.
What’s available for my business?
Serverless functions are stateless by default, as they provide a functional transformation of an input to an output. In certain cases, stateless workloads can be a good fit for organisations, where there is no requirement for servers to retain state in between requests. Converting data into a different format or calculating a total cost of items are examples of stateless processing that work well for organisations.
But in other cases, where data is required to deliver a consistent user experience or to remember user preferences, a different approach is needed. A more traditional sense of state needs to be maintained, providing context and continuity during data requests. This becomes stateful processing - managing data while drawing from a pre-existing state.
Achieving stateful serverless workloads has been challenging in the past, as the detail required to add context has not been available via stateless serverless processing. Data-rich applications have been incompatible with serverless architecture, leaving businesses missing out on key user data.
But the reality is that there is now more on offer than just stateless, serverless models for businesses. Scalable, serverless databases provide flexibility for organisations to handle stateful workloads.
Serverless databases represent a shift forward from provisioned instance-based Database-as-a-Service (DBaaS) models. Without a predetermined and preallocated infrastructure, a serverless database scales automatically alongside a business’ requirement for data storage, and crucially maintains the state to give data additional context.
Not a one-size-fits-all approach
Despite the benefits, serverless architecture is not a silver bullet. Certain applications could require more granular control over infrastructure provisioning or security, and some solutions may be better suited to an on-premises datacentre or a provisioned infrastructure in the cloud.
But in the right use cases, such as fluctuating workloads or resource intensive tasks that require higher compute and memory, serverless can be the ideal approach for enterprises. Organisations must carefully evaluate use cases and deployment methods before opting for serverless architecture, but by getting it right - enterprises can navigate previous scalability and flexibility challenges, and use serverless to drive key business benefits and agility.