23rd March 2021
Businesses benefit by assessing the use case for serverless and approaching it in the right way.
The business case for going serverless is becoming more compelling. Driven by the promise of freedom from data centres and their attendant costs and complexities, the global serverless computing market size is projected to grow at a CAGR of 20.8% between 2021 and 2026.
The first cloud serverless platform, AWS Lambda, remains the standard against which all other services are measured. Now, Microsoft’s Azure Functions and Google’s Cloud Functions offer other options for companies that have traditionally run code and hosted websites on their own servers.
For organisations that have started to embrace cloud native, serverless is the natural evolution. Allowing developers to build and run applications without having to manage servers, serverless transfers responsibility for server provisioning and compute management away from the organisation to a cloud provider.
Servers continue to be used; but, unlike cloud computing run on self-managed servers, the resources are allocated on-demand and billed based on usage. Because you are not hosting your own infrastructure, those servers you have moved to the cloud cease to be your concern. For most companies, hosting your own servers does not provide a competitive advantage, so serverless makes sense. But you need to know how to embrace serverless for your specific needs and prepare for it in the right way.
Which benefits make serverless so compelling?
Managing and maintaining servers takes considerable time, effort and expense. It’s also a complex process to add and adjust server space as services scale. Going serverless removes a considerable burden of budget and project planning from your organisation.
With serverless, all of the infrastructure exists already, so you can get to market more quickly. Engineers can focus on implementing business logic without needing to address underlying infrastructure challenges. You don’t need to upload code or containers to servers or do any backend configuration when you want to release a working version of an application.
Developers can deploy code and release a new product with no delay. Whether they want to upload all the code together or one function at a time is up to them because the application is a collection of functions provisioned by the vendor rather than a single stack. This facility also means that developers can update applications one function at a time, without having to change the entire application.
Serverless infrastructure allows applications to scale up or down automatically as the user base grows or declines. This increases your organisation’s business agility because it can adjust to customer needs with ease.
With serverless, the provider’s servers can start up, run and terminate functions that need to be run in multiple instances, often using containers. The serverless application can therefore handle sudden spikes in requests and single requests from single users with similar ease. A conventionally structured application with a set amount of server space can be swamped by a sudden increase in usage.
Serverless follows a pay-as-you-go model to bill for usage, with developers charged only for what they use. In stark contrast with traditional architecture — which requires developers to determine their usage and pay for it in advance — serverless provisioning is dynamic, exact and takes place in real time, so you don’t have to pay for unused capacity.
Serverless is no longer a bleeding-edge technology that larger enterprises fear adopting. Now used by such household names as Netflix, Lego and Coca-Cola, it has been derisked to such a degree that businesses can embrace it without worrying about its imminent demise.
With major players such as Amazon, Google and Microsoft behind it, the technology will be supported for the long term, and its widespread adoption means there is a rich and supportive serverless community that engages members through meetups, discussions, articles, user groups and podcasts.
How do you know whether serverless is right for you?
If you decide to go serverless, there are trade-offs for the increased efficiency you will enjoy.
You won’t have visibility by default into all of your application’s performance characteristics, making it a significant challenge to ensure that all the elements of your system are working well together. This compromised observability can be managed by close attention to logging, monitoring and traceability. These activities are extremely important to ensure that you are prepared should something go wrong.
Security is also regularly raised as a consideration for anyone considering serverless. However, serverless offers many opportunities for improved security — not least because security and compliance are shared, with the vendor taking responsibility for the infrastructure that runs all of the services offered in the cloud. The customer’s responsibility depends on the services they use, the integration of those services into their IT environment and relevant laws and regulations.
With serverless in place, your developers may have greater control, so it is good practice to implement the Principle of Least Privilege to mitigate any security concerns. This reduces the risk of a data breach because nobody gets more access than they need to complete a specific job. This reduces the risk of hackers gaining access to critical systems or sensitive data because it stops any compromises from spreading to the system at large.
Vendor lock-in is often cited as a barrier to serverless. It is true that the cost of switching serverless providers can be so high that you are effectively stuck with your vendor, but the risks associated with vendor lock-in may be overblown. Rather than worrying about being tied to a serverless vendor, you should be more concerned about the risk of a competitor going to market earlier and iterating quicker because they have gone serverless and you have not. A rival who leverages serverless to move faster by focusing on their business and customer needs is likely to be far more of a threat to you than potential vendor lock-in.
How should you approach serverless?
To generate maximum value from serverless, you need to be properly organised. Ensure that you have a proper structure for artifacts such as code, architecture and other components you’ve been using up to now. You won’t be able to harness the benefits of serverless without oversight of what you have and the discipline to organise it in the right way. Documentation is key.
Engaging an experienced partner to help you leverage the benefits of serverless can help. At NearForm, we work with our customers to help them realise the cost efficiencies, scalability, enhanced UX and product evolution that serverless can facilitate. We help them to design and deliver products in highly performant serverless environments, strengthen their teams and migrate existing applications from legacy systems to a serverless architecture.
One of the tools we use to do this is Mira, an opinionated AWS cloud native open-source project foundation that we have created for developing AWS cloud native solutions. Harnessing the full power of AWS, Mira provides a working AWS configuration that sets businesses on the right course to fulfilling the requirements of the AWS Well-Architected Framework and enables them to deliver solutions faster.
Development gets off to a flying start, driven by the AWS Cloud Development Kit and supported by ready-to-use CLI, preconfigured delivery pipeline, developer tooling and sample applications. With underlying services configured correctly for scalability and cost efficiency, the focus is on business logic rather than infrastructure. For organisations daunted by the prospect by serverless, Mira removes much of the uncertainty.
When approached correctly, the development velocity and business value serverless offers could open up opportunities that your organisation never even considered before. The secret is to start small, perhaps with a greenfield project. Set realistic expectations and choose an offering with the potential to generate the best value from a serverless solution — for example, a project with recognised scalability issues. Once you see the benefits of serverless for yourself, you will be confident embracing it across your organisation.