What does AWS Lambda mean for the future of DevOps?
Those that honed their skills and knowledge on the old fashioned racking, stacking, and configuring bare metal servers can truly appreciate what the cloud has to offer. I am one of those people and when Amazon announced their new VPC Architecture I wanted to celebrate. It afforded all the niceties of enterprise architecture with logical segregation via Subnets, Security Groups, and Network ACL. But with the cloud came a lot of changes as to how Systems and Operations engineers had to solve problems. It was no longer budgeting servers to be amortized over 3 or 4 years, managing disks and raids, network gear, etc. So the cloud was a true game changer. More time could be spent on making the environment dynamic, scalable, and most importantly, highly agile to meet the demands of constantly changing requirements and business needs.
The base architecture for a web application is fairly simple. You have an Elastic Load Balancer that points to a web server which in turn points to an application server, and that is tied to some database. Pretty straightforward and easy to reason through. Not much changed from an architectural standpoint between bare metal and cloud based resources. For example, let’s just limit the server infrastructure to the web server and the application server. These are two servers that need to be managed, so we implement some configuration management tool to manage the servers and since they are serving two separate purposes we have to maintain some common base with
n+ differences. Our responsibility is to manage that, the applications that run on top of them, and everything that affects those machines—everything from security patching and system monitoring and deploying the software to them. This is the same as with bare metal systems. The only thing that has truly been abstracted away is the hardware.
So now that we have serverless architectures with Lambda we see another shift of duties and responsibilities away from the DevOps team. We no longer have actual servers to manage, configure, patch, monitor, etc. DevOps, with this serverless architecture, has more of an opportunity to focus on deployment of the software and supporting the needs of the development team(s) and being more embedded within the teams. The focus becomes more directed at the configuration and management of the AWS Services and the build and release pipeline of the code onto Lambda.
Lambda and other “serverless” services that may come about will not be the end of DevOps. There will always need to be someone or a team that has a deep understanding of the holistic ecosystem. Also, not all workloads are use cases for running inside of Lambda. But in the end, as with the move from bare metal to the cloud, duties, responsibilities, and focus areas are the only things that really change.