Serverless is not a new term, it has now reached a stage in its development that has enabled technology leaders and software developers to see the value in serverless computing and more precisely serverless architectures. Serverless does not mean “no servers” but it does mean that developers don’t need to be concerned with the underlying infrastructure and servers that are running their code. Developers focus on just the code, and cloud vendors provide the infrastructure that is required to run and manage the application. By abstracting the applications away from the infrastructure required to run them, scalability and resiliency are improved. Cloud vendors provide two overlapping components.
- Function-as-a-Service (FaaS) – a product that hosts the bespoke application business logic written by the developer
- Backend-as-a-Service (BaaS) – a variety of commoditised products that serve a common application need such as authentication and database components
Infrastructure no longer needs to be always on. Serverless shifts a lot of the cost and expertise required to build and operate a scalable service from the developer to the cloud provider. Technology executives no longer need to be concerned about the cost, effort and risk of managing servers as everything regarding the infrastructure and the operating system such as provisioning, deploying, monitoring and patching are handled by the cloud vendor that is providing the service. Developers can write code at a function level, defining the function or event and letting the cloud vendor figure out what amount of which underlying infrastructure is required to run it.
The big three cloud vendors of Amazon, Google and Microsoft all offer serverless products that are maturing day by day, namely Amazon AWS Lambda, Google Cloud Functions and Microsoft Azure Functions. Serverless isn’t for everyone. If you are writing a customer-facing event-driven application that quickly reacts to requests and logs all the different activities and actions then serverless is ideally suited for example, an online advertising platform.
Serverless Benefits and Challenges
Serverless, as with every new technology, brings with it several benefits. Some of the key benefits include:
- Reduced Development Cost: By using commoditised backend services, such as centralised authentication and databases, the cost of developing multiple versions or the same code is reduced. Developers can focus on writing features quickly without worrying about the infrastructure, increasing their agility and velocity.
- Reduced Operational Cost: As the infrastructure is being managed by the cloud vendor together with all of their other customers your infrastructure costs are less, as are your resource costs of developing and hosting the applications yourself with zero system administration required.
- Reduced Scaling Cost: As you don’t pay to keep resources running and only pay for what you need, the costs of scaling the infrastructure are completely optimised.
Serverless also brings a whole new set of challenges, for example:
- Vendor Lock-in: Different vendors will invariably implement different serverless features in different ways. Switching vendors may require changes to your code, tools and even your software architecture.
- Vendor Constraints: Providing an available and performant service requires control over what can be changed. Usage may be limited, functionality may change, costs may rise, upgrades may be forced. Tools for development, deployment, debugging and monitoring may not be available or mature.
- Security: Breaking your application down into functions brings an attack vector for each function that needs careful consideration to ensure the entire application that consists of various moving parts is secure.
Fundamentally, the approach to software development and operations needs new ways of thinking and a re-architecture of your existing applications. These require time and cost which your business simply may not have when faced with shareholder pressure to squeeze the pips out of the current technology estate.
Serverless – Fad or Future?
If you are a technology executive, dismissing serverless as a fad could haunt you in the future. Technology is becoming more and more abstracted. Using physical servers results in a lot of wasted capacity, and virtualisation enables the physical server to be used to create multiple virtual machines and optimise resources. Containerisation has enabled monolithic software applications to be broken into atomic parts to create efficiency. Serverless is a natural continuum that reduces the idea-to-market cycle dramatically.
If you are a technology supplier, your current offerings may quickly become obsolete. Products and tools based upon traditional architectures will no longer attract the same licence fee revenues, and consultants that lack the skills required to advise on serverless will find excessive time on the bench.
If you are an entrepreneur, new openings will appear to build a whole host of new tools that serverless will require before the critical mass adoption arrives. Tools such as security, libraries, APIs, monitoring and tooling that may currently be a barrier to adoption of serverless.
At Momentum, we can help you to understand the threats or opportunities that serverless could bring to your business. Contact us for a confidential conversation.