Kris is the CTO of VML Technology, driving the future of video engagement through personalized data-driven video rendered on the edge. As a tech leader, a critical part of your role is to evaluate the latest technologies and to make decisions on what and when to adopt.
Depending on how risk-averse you and your business are, you may delay implementing new technologies until there is a critical adoption mass. This de-risks the adoption and validates key metrics such as security, scalability and ease of use.
Serverless is a concept that has been around since 2014 with the introduction of lambda functions by AWS. It has grown exponentially in use among leading tech organizations due to its ability to abstract developers from infrastructure and help them focus on delivering business value faster.
If serverless is another buzzword that you have dismissed, consider these four immediate benefits for your company regardless of size or scale:
With serverless, you only pay for the resources you use while your code is executed. No need to pay for the provision of large amounts of servers; you will only pay for the time during which functions are executed. You never need to worry about paying for idle capacity.
Additionally, engineering costs are reduced because you no longer need to worry about infrastructure maintenance and hardware updates. Serverless removes all of these worries so you can focus on application-level code.
Serverless functions scale automatically. Functions are executed as they are requested and automatically adapt to cope with the required request volume. The number of requests can exponentially increase in spikes, with zero impact on application performance.
Engineers can focus on writing code that delivers immediate value to the business. Infrastructure code, processes and maintenance are massively reduced, helping keep teams focused on business-layer logic.
API updates no longer need to be a headache because serverless functions can be deployed function by function, making API updates incredibly fast with minimal risk to your overall application.
Security in serverless technologies has matured a lot over the past few years. Providers are the ones in control of patching and updating the servers. Leading providers like AWS are meticulous and have dedicated teams to ensure their servers are secure and patched.
At an application level, function-specific security can be applied, ensuring each function has singular access points, access levels and system-wide permissions. This provides precise control to ensure that specific functions cannot impact or inadvertently invoke other aspects of a platform.
The power of serverless is accelerating at an incredible pace, with AWS being the vendor that’s racing ahead of the competition. The introduction of ARM-supported lambdas for greater performance at a lower cost allows for process-intensive operations to be done within lambdas at a much lower cost. API operations, from CRUDL APIs to training machine learning models to the creation of media and many more operations, serverless can meet your needs now and in the future.
When Serverless May Not Be Best
Serverless isn’t always viable or at times even possible. The choice to go serverless depends heavily on your cloud hosting provider.
With on-premises infrastructure, serverless is not an option and will never be an option. This is because serverless requires underlying infrastructure that is run and managed by the cloud provider.
Any Infrastructure Apart From AWS, Google Cloud Platform or Azure
If you host on anything outside of the three biggest cloud compute providers, serverless will not be an option, and it may never be supported. If this is your current infrastructure, you will need to consider adopting AWS, GCP or Azure before trialing serverless technology. While porting over your API, service by service or route by route, you will lose many of the benefits and ease of keeping your current infrastructure. If this describes your infrastructure, porting to serverless may be a much larger task, and you should examine the value versus the effort before making a decision.
When getting started with serverless, there is no need for a complete infrastructure overhaul. You can implement serverless at an API route-by-route level while maintaining your current infrastructure, as long as you host on AWS, GCP or Azure. To identify services that may be enhanced with serverless, you should analyze your current platform and look at services or individual routes with a high cost or high traffic throughput. This will help you see the immediate benefits of serverless by reducing cost or increasing scalability, two of the main advantages of serverless.
With API Gateway, you can route specific requests that previously have been routed to your legacy infrastructure to your new serverless application. This allows you to maintain your current infrastructure in its entirety while trialing certain endpoints in serverless. Lambda execution is incredibly cheap, which removes the cost barrier to getting started. To show just how cheap AWS Lambda is, 10 million requests cost less than $10. The initial main cost of getting started is engineering effort.
The beauty about serverless is the technology and language support. AWS Lambda natively supports Java, Go, PowerShell, Node.js, C#, Python and Ruby. AWS Lambda also supports deployment via Docker. The vast amount of technologies and frameworks supported allows your teams to get up and running with very little extra upskilling. When getting started, business logic code executed in your current infrastructure can usually be ported over with very little, if any, changes required.
Another way to get started with serverless is when kicking off a new project. With tooling like the Serverless Framework, you can get an entire infrastructure with multiple environments and endpoints created, coded and deployed within hours.