The name alone “serverless computing” can generate excitement from Developers, System Administrators and Management. No more servers? Less overheads in managing infrastructure, less operational expenditure, perfect!
Let’s start with what IS serverless computing. Serverless computing is the ability to run code or to execute functions using machine level resources without the responsibility of managing the servers that actually execute the code. The servers still exist, but the level of management and associated tasks such as capacity management is hidden from the serverless computing user.
Serverless computing is the next evolution of infrastructure simplicity for Developers. First there was the requirement for physical hardware to develop and test code. Hardware needed procurement, delivery, rack & stack to name just a few. Virtualisation was next and was a massive leap forward. No more physical hardware requirements, a virtual server could be spun up in a matter of hours, if not minutes into a dedicated Dev and Test environment. Serverless computing now has Developers positioned where they do not even need that virtualised server, they can upload code or functions to be executed without it.
Serverless computing is now offered by many of the public cloud providers, AWS Lambda, Azure Functions and Google Cloud Functions to name a few. These are all examples of serverless architecture that are available in the marketplace right now as an alternative to running on-premises infrastructure or utilising IaaS architectures from those same public cloud providers.
With the rise of serverless computing comes the serverless computing myths.
Myth #1 – Serverless = No Servers
Despite the naming convention, there are indeed still servers involved in serverless computing. After all, the code and functions Developers are writing still need to be executed at the machine level which is a bit hard to do without servers! The benefit of deploying a serverless computing architecture is the reduced level of interaction with the servers executing the code. No longer do you have to run and pay for the full virtual server and the underlying virtualised infrastructure. In a public cloud environment, your costs are now the runtime costs of your code being executed. There are no more server idle time costs.
Myth #2 – Operational Expenditure
No servers equals no operational staff to manage the servers? Not necessarily. Whilst your operational staff may not be required to provide the traditional data centre infrastructure-based services, serverless computing utilisation will still need code development, build, test, packaging and monitoring services. Any serverless computing utilisation will still need capabilities such as capacity management to ensure the applications are scalable. Applications will need to have high availability and resilience built into them. Serverless computing needs to have a functioning architecture and configuration to ensure the smooth running and integration with the rest of the environment.
Myth #3 – Security is a thing of the past
Serverless computing means no more security vulnerabilities? There are no servers to manage, therefore no Operating System vulnerabilities? You’re halfway there. Another hallmark benefit of utilising serverless computing is that you no longer have to concern yourself with operating system attacks or even the more recognised problem of unpatched Windows servers. However, you are now more reliant than ever on your code being bulletproof and secure. Security considerations will now apply to factors such as how you grant permission to run your code, how do you protect against code injections, do you need to utilise an API gateway to limit your attack area. A serverless computing architecture that has security front of mind can avoid many of the pitfalls developers may face.
As your utilisation of serverless computing changes, so too does the management of the rest of your infrastructure. Serverless computing has benefits that are helping companies address traditional challenges in managing on-premises infrastructure and even public cloud IaaS, however each new technology that is deployed into a business can bring with it its own set of challenges.