Kris Jones, Director of Engineering at Nisos shares how going serverless is the way forward!
Kris leads the Engineering team at Nisos and has over 10 years of industry experience and 5 years in top leadership positions with a wealth of knowledge in building, nurturing, and leading technology teams. Today, he tells VANRATH about the rise and need for serverless systems and how this could be the future for many businesses and individuals.
As a tech leader or engineer, 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 the 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 are met.
Serverless is a concept that has been around since 2014 with the introduction of Lambda functions from AWS. It has grown exponentially within leading tech organisations due to its ability to abstract developers from infrastructure and help them focus on delivering business value faster with solutions offered by AWS, Azure, and Google Cloud Platform.
Serverless doesn’t mean there are no servers, here is a definition of what Serverless is from Cloudflare:
Serverless computing is a method of providing backend services on an as-used basis. Servers are still used, but a company that gets backend services from a serverless vendor is charged based on usage, not a fixed amount of bandwidth or number of servers.
Serverless is a technology stack that lets your engineers focus on writing business logic code and having serverless take care of SRE, scalability, and the majority of ops. This isn’t the case for every scenario but it can be implemented to solve a large number of problems.
There are 4 immediate benefits serverless can offer for your company regardless of its size, scale, or technology stack.
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 functions are executed. With Serverless you never need to worry about paying for idle capacity.
Engineering costs are reduced as you no longer need to worry about infrastructure maintenance and hardware updates. Serverless abstracts all of this away for you to allow you to 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. There is no ops or engineering work to enable this, it just works.
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, serverless functions can be deployed function by function, making API updates incredibly fast with minimal risk to your overall application.
Security in serverless 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 gives fine-grained control to ensure that specific functions can not 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. The advancement of Serverless has allowed most types of API operations to be done within the serverless infrastructure. 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.
Serverless infrastructure within AWS is spreading! With serverless relational database stores and serverless open-search, you can now offset your infrastructure management and scalability to AWS while getting the benefit of only paying for the resources you actually use.
As a Tech leader, the investigation into Serverless needs to be high on your agenda to ensure you are evaluating and adopting the most scalable and cost-efficient infrastructures.
When Serverless may not be the best option
Serverless isn't always viable or at times even possible. The choice to go serverless depends heavily on your cloud hosting provider.
With on on-Premise infrastructure, serverless is not an option and will never be an option. This is because serverless requires underlying infrastructure to run and be managed by the cloud provider.
Any other infrastructure apart from AWS, Google Cloud Platform, or Azure
If you host on anything outside of the 'big 3' cloud computing providers, serverless will not be an option and it may never be supported. If this is your current infrastructure is deployed, adopting AWS, Azure or GCP will need to be considered before trialing Serverless. You will still lose a lot of the benefits and ease of keeping your current infrastructure while porting over your API service by service or route by route. If this relates to your infrastructure, porting to serverless may be a much larger task and the value vs effort will need to be examined at a much greater level.
Personally, I have been involved in the evaluation, planning and implementation of serverless for three startups and advocating for many more. Serverless has enabled the teams I have led to be more autonomous and creative and work asynchronously in the same application.
This has sped up development times and increased scalability while massively reducing server-side costs. In 2 examples the introduction of serverless has saved companies I have worked for over 4k and 6k per month on server-side costs.
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. To identify services that may be enhanced with serverless you should analyze your current infrastructure 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 the likes ofAPI 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 Lambda is, 10 Million requests cost less than $10. The initial main cost of getting started is the engineering effort.
The beauty of Serverless is the technology and language support. Lambda natively supports Java, Go, PowerShell, Node.js, C#, Python, and Ruby. Lambda also supports deployment via Docker. The vast amount of technology 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 few - if any - changes required.
Another route to get started with Serverless is when kicking off a new project. With tooling likeThe Serverless Framework, you can get an entire infrastructure with multiple environments and endpoints created, coded, and deployed within hours.
Interested in more news, hints and tips? Read our latest blogs HERE!