The global serverless architecture market shows no signs of slowing down with multiple vendors offering their services in a fast-growing arena. AWS, Microsoft, Google, Alibaba, Rackspace, IBM, Oracle, and CA Technologies are just a few industry names investing heavily in the serverless space.
It’s no wonder that vendors are scrambling for a big slice of the pie: According to KBV Research, the global serverless architecture market is expected to hit US$14 billion by 2024, increasing at a growth rate of 23.4 per cent CAGR during the forecast period.
In Australia, “serverless” is all the rage at the moment with multiple vendors rushing to claim pole position where functions-as-a-service, or FaaS, is fast gaining traction.
It’s critical to note that while developing applications using the FaaS model is a way of achieving a serverless environment, there is confusion over how to choose the right vendor.
Here are five considerations on how to choose a FaaS-serverless vendor to meet your organisational needs.
1. Understand your tech stack
Take stock of your organisation's technology stack. Examine if you are company is Are you mostly a Microsoft house? A heavy .NET user? Or are you mostly a Linux house and using technologies such as Node, Go, Python, or Java?
If you're using Microsoft technology, then Azure is much more optimised for that environment. Not only is the production environment optimised for Microsoft technologies, but the development environment is better integrated as well..
If you primarily work in one of the other major languages like Node or Go, AWS Lambda may be a better way to go as its optimised for a variety of languages and does not have a strong integrated development environment.
2. Develop a serverless architecture that fits for your business needs
Different services are optimised for unique purposes.
In order to make the get the most of your serverless architecture, ask yourself this key question: trying to build a higher application solely with serverless based services? Or are you just trying to leverage serverless in a few key aspects of your application (and if so what are the key aspects)?
Serverless cloud technologies such as AWS Lambda are built on containers, but the key advantage is that you don’t need to manage them now. Applications built with a serverless infrastructure will scale automatically as your organisation scales. Bottomline: be sure to leverage a serverless compute service such as AWS Lambda, Azure Functions, Auth0 WebTask, or Google Cloud Functions to execute code. Also, make sure it is possible to run application code in a serverless architecture as close to the end user as possible, in order to minimise latency.
3. Determine vendor lock-in risks
It’s important to carefully assess and understand the level of vendor lock-in that’s acceptable to your business. While finalising on a serverless vendor, here are a few questions that you need to consider:
- How committed are you to a specific vendor?
- Would you want or have to move in the future?
- How can you modify configurations, policies, technologies etc as the company scales?
- Is there an option to integrate with other vendors? Can you add value added services?
Selecting a serverless offering results in a certain level of vendor lock-in. How much lock-in depends on the level of integration you are making with your selected provider. There is a tradeoff that you need to make between deeper integration and deeper vendor lock-in. You can avoid the risk of vendor lock-in by ensuring your chosen vendor has minimal use of proprietary technology or you could ration the use of services that limit your ability to migrate or transition to another vendor. Ideally select value added services that have competitive and comparable alternatives in the market and be sure to put policies in lock-in associated risks.
Additionally, there are also new frameworks to provide compatibility across serverless platforms from groups such as serverless.com. Others, including the Cloud Native Computing Foundation, are making progress on a serverless standard. These can be good options for organisations concerned about serverless vendor lock-in.
4. Decide if you require a developer or production environment
Speaking of developer vs. production environments, where does your focus lie? Given that Azure has a much more integrated developer experience, is this development environment of use to you? AWS Lambda, on the other hand, is heavily optimised for production at the cost of a reduced focus on development environments.
This is where the type of application, scale, development processes used and other things to consider will come into the picture.
5. Select an appropriate location
Where do you want to have the scripts run? In what country and which part of the country?
Issues such as latency and data sovereignty are important factors to consider - every country has different laws and regulations so it’s important to understand where exactly your provider will run your serverless functions from, how this impacts where your customers’ data is stored, and how it impacts your customers relative performance.
Lee Atchison is the senior director, cloud architecture at New Relic and author of Architecting for Scale. Lee has 32 years of experience including seven years as a senior manager at Amazon.com. At Amazon, he led the creation of the company’s first software download store, created AWS Elastic Beanstalk, and managed the migration of Amazon’s retail platform to a new service-based architecture.