Just about anywhere you turn, from Stack Overflow to Twitter, you are likely to stumble into a heated debate over serverless computing. This debate is partly fueled by the popularity of AWS Lambda, which grabbed headlines last December after it was heavily promoted with the full might of Amazon's marketing machine at the re:Invent 2016 conference.
Serverless is not all hype, though: it’s a radically new way of thinking about application development, and it deserves your attention. Think of this blog as the Post-it note version of the serverless architecture discussion for busy technologists.
What Does "Serverless" Really Mean?
As defined on the MartinFowler.com: "Serverless applications often make extensive use of third party services to accomplish tasks that are traditionally taken care of by servers." AWS Lambda is one of the leading third-party services in the emerging world of Function as a Service (FaaS), but there are already many others, including Google Cloud Functions, Microsoft Azure Functions, IBM OpenWhisk and Auth0 Webtask.
Serverless means you no longer need to worry about provisioning or managing servers during development. You use only what you need and pay for only what you use. No charges accrue when your code is not running. To see how serverless architecture looks at the practical level, take a look at these reference architectures produced by AWS Lambda for common functions like real-time file processing and IoT backend services.
Keep in mind that serverless does not eliminate the need for Ops. You will still need to deploy, test and monitor the performance of the code. As functions like authentication and pings against the product database move into the cloud, scaling becomes much easier. You can cut your time to market and streamline the entire development cycle.
What Serverless Isn't
You might wonder, "Isn't serverless a new form of platform as a service (PaaS)?" Not really. PaaS is not designed to stop or start instances that run for less than an instant.
There's also some confusion about how containers relate to serverless. A Docker container is an open source development platform that is portable to other servers. This microservices approach to development has brought about container hosting systems like Mesos and Kubernetes. Still, this is about development not resource usage. In serverless, you never have to worry about running up against a wall because scaling for application processes is automatically managed, transparent and fine grained. There's nothing comparable in the world of containers.
Want to Know More About Serverless?
If this micro-brief on serverless architecture has piqued your interest, contact DragonSpears for more information or classroom training for you and your entire development team. Don't get left behind on one of the most significant trends in application delivery today.