From pay only for compute, to domain-driven development, to no sysops management, to high levels of scalability – serverless computing has a number of advantages, and adoption is currently at a tipping point.
Serverless computing is literally architecture without servers – it’s an amalgamation of self-managed functions and cloud services. Because it allows organizations to shift away from the 24/7 run of servers and pay only for the compute cost of specific business functions through fully modularized applications, it’s an increasingly popular option for organizations. While on-demand cloud offerings can provide similar benefits, the advantage of serverless is that it doesn’t require the same level of advanced planning or infrastructure management costs. It’s all about writing a specific business function without worrying about the compute infrastructure underneath.
Despite the value serverless can provide for enterprises, adoption maturity is still in its early stages. There are a number of myths and misconceptions about its value, resulting in many companies missing out on one of the biggest opportunities for enterprise IT agility today. So let’s separate fact from fiction and explore the real value serverless can bring to the enterprise.
Myth #1: Serverless doesn’t perform as well
One of the biggest misconceptions related to serverless has to do with performance. Many think that serverless functions have longer warm-up and API response times, but this is a misperception related to the mistaken belief that one size fits all. In order to see benefits like cost reduction and faster execution speeds, you must configure the right memory size for the level of demand. This depends on function complexity related to the particular business process.
Take a hotel booking website, for example. While relatively low memory is required for business APIs like Search and Booking, the Reporting functionality will have high memory requirements, given the need to sort and group large volumes of data. Because it requires higher memory and CPU configurations, the Reporting function will not perform as efficiently if using the same configuration defined for the Search API. Differing memory and compute needs must be factored to ensure optimal performance.
Myth #2: Serverless is expensive
It’s a widespread belief that serverless computation is more expensive than container-based APIs. But much like the performance myth, serverless is only more expensive when less-than-optimal services or domains are run in a serverless environment. In fact, when executed properly and in the right domain, serverless leads to more cost savings than traditional models thanks to pay-per-use and the elimination of the investment associated with infrastructure management and sysops. Business domains requiring higher levels of scalability and elasticity are ideal options for serverless, whereas when usage patterns are relatively flat, there may not be any significant cost savings.
To return to the hotel booking example, serverless can generate significant cost savings when used for Search and Browse services because it enables better scalability and elasticity in an industry that generally experiences high seasonal fluctuations. The scalability is possible because serverless functions process each request by a single instance and do not share the same virtual machine with other requests. Unlike container-based applications where one instance handles many requests at once, serverless allows numerous functions to run in parallel.
Myth #3: Serverless creates vendor lock-in
Because cloud-service providers generally supply and manage serverless environments, many believe serverless leads to vendor lock-in. This is a valid concern for those who want to ensure flexibility to move business functions from one cloud platform to another. But, while every cloud provider has its own version of serverless architecture, the concept is the same across all. This means that platform-agnostic frameworks can be used to create a wrapper around serverless services and make the code independent of any specific vendor. In fact, we often work with clients to write platform-independent serverless code using industrialized practices.
Myth #4: Serverless isn’t secure
Clients often express concern that serverless isn’t secure, given that it’s hosted on shared infrastructure. Although the systems are shared, they are highly secured and PCI compliant. In fact, serverless is no less secure than other cloud-based environments.
Myth #5: Serverless is difficult to manage
Clients are often concerned about a perceived lack of industrialized tools supporting serverless application deployment and management. However, serverless functions are widely supported by many coding languages (Java, Python, Node.js, .Net), popular CI/CD tools for deployment (Jenkins, VSTS, CodePipeline), and industrialized tools for monitoring (New Relic, Kibana, Digital ELK) making it not only easy but also feasible to manage and deploy enterprise-level serverless-based applications.
On a related note, it’s a common myth that troubleshooting is difficult on serverless functions, given that they run in independent cloud containers known only to SaaS providers and because they’re available only for a short period of time – from five seconds to 15 minutes. But as serverless has proliferated, so have the troubleshooting tools that give companies the ability to manage their serverless architectures autonomously. For example, monitoring tools like New Relic and Kibana are easily integrated with serverless functions for application log management and monitoring. Additionally, some cloud providers enable remote function debugging.
All of which means that, although serverless is not the answer to every possible business challenge, when used as intended it can provide significant advantages over widely used on-demand cloud services, and it continues to evolve and improve to meet growing enterprise-level demand.
Capgemini has extensive experience helping organizations take advantage of the agility gains and cost savings associated with serverless. To learn more about Capgemini’s Serverless Architecture Services, please reach out.