Hello Cloud, Goodbye Constant Configuration
I have to admit that when I log into a Linux box and realize that I have some technical chops left, I get a deep feeling of satisfaction. I am also in the habit of spinning up a Windows Server in order to test network routes/ACLs in the cloud since I like using the Windows version of tools like Wireshark. Despite my love for being logged into a server, I do see the writing on the wall. Logging into a server to do installs or make configuration changes is fast becoming a thing of the past. Given the number of mistakes we humans make, it’s probably about time.
Choosing Applications Over Configuration
Anyone who has been in IT long enough knows the pain of maintaining the same configurations among all the servers our applications run on. It is a rare case when all of the servers are running identical copies, even when we have VMware, AWS or Azure environments that make it easy. Many organizations have implemented software that locks changes on the server or provided tools, such as Chef and Puppet, to fully automate the DevOps process. While there is a ton of value in these projects, coding a Chef recipe to satisfy the specific idiosyncrasies of an application’s software stack is not my idea of fun. Instead of automating configuration, I would rather code an application. And when I’m managing a project, I always want my developers focusing on the application over configuration. So what’s a techie to do? I say get rid of the servers!
The Hyperscale Handoff: Cloud Providers
Now when I say get rid of the servers, I don’t mean that our code is going to magically run in thin air. What I mean is that we give the task of making sure the servers are secure, patched and have the required software to someone else. I would further make the case that hyperscale cloud providers such as AWS, Azure and Google have the size, scale and depth of talent to do this task better than just about any other organization on the planet today. Services such as AWS’ Lambda, AWS Elastic Beanstalk, Azure App Service and Google’s App Engine allow developers to simply deploy code without worrying about server security, patching or scaling to demand.
Can’t Argue with Cost and Time Savings
Given how much time and money the average organization spends on server-related tasks, migrating applications to serverless architectures has significant cost and time-to-market benefits. If you’re not paying someone to set up and maintain servers and developers don’t have to jump through hoops to get to work, delivery times are cut in half and everyone is happy. Additionally, mistakes in server configuration are drastically reduced in serverless environments due to the high level of automation, monitoring and management cloud vendors provide. All these benefits make a very compelling case for migrating applications to serverless architectures offered by hyperscale cloud providers, and we haven’t even addressed the cost advantages the consumption-based billing model: pay only for the computing being done and not idle cycles.
Coming up Next: The Cloud-Native Path
In my next blog, I will examine how enterprises are re-architecting their infrastructures for the cloud and why cloud-native applications are the way of the future. Stay tuned.