My Data Center Is Serverless
I wonder if you had the same thought to serverless as I first did? I envisioned an empty data center, with no server racks. No more hot and cold aisles, no need to lift the floor tiles anymore to run a network cable (I know some of you have your cables in trays above the server racks – lucky you!). Would this finally be the end of the data center? Maybe.
Serverless computing has less to do with not needing servers to run your business applications and more to do with how you architect your applications to meet a changing enterprise IT landscape. As IT architects and system builders, we are constantly investigating how to do more with less and provide the best experience to our users.
What if we stopped worrying about infrastructure and focused on delivering the best application? One way of doing this is to think about Serverless computing.
Write code and deploy
If you haven’t noticed, our roles as system engineers, and architects has been changing. Coding has become a larger part of our daily activities. From provisioning cloud infrastructure using Infrastructure as Code (IaC) to leveraging configuration management tools like Ansible, Chef or Puppet, we are spending more time in text editors than in front of a management console. Serverless computing allows developers to write and deploy code without worrying about the underlying infrastructure.
Developers now write functions that perform a distinct task that can be operated at scale, while the cloud provider takes the responsibility for allocation and provisioning back-end services on a pay for use basis. You can see how this model might help lower costs as you pay for only what you use, and you don’t pay for unused space or idle CPU time, which means better utilization and efficiency. Think of your cable bill and only paying for the channels you watch and not for those 350 other channels you never get to (for those cable cutters – you are much further ahead than me).
Which clouds offer serverless
All the major cloud providers offer a serverless service, with AWS Lambda being the most popular. Other providers include Google Cloud Functions, Azure Functions, IBM OpenWhisk and Alibaba Function Compute. There are some lesser-known providers such as Iron Functions, Oracle Fn Project, Apache OpenWhisk, Iron.io, Fission.
Many well-known companies are also using serverless, such as Netflix, Coca-Cola, Airbnb, and Thomson Reuters. Take a look at this quick video from AWS re:Invent 2014 – Netflix Gains New Efficiencies using AWS Lambda.
Benefits moving to a serverless model
- Reduced Costs: No more paying for unused time, only pay for those calls your back-end servers make.
- Scalability: A term that has come to define the cloud computing age, the cloud provider will handle all the scaling required.
- Function-as-a-Service: Developers can focus on single-purpose code that will make API calls in the back-end.
- Global availability: Cloud providers have infrastructure placed all over the world.
- Speed of Deployment: Developers can deploy and update code much quicker with not worrying about the underlying infrastructure.
Prepare for the future
As IT professionals, it's important that we know of new technologies and trends like serverless, and explore ways we can begin a conversation with our development teams to consider this as an option. Not only for professional reasons, but also for preparing our companies for the multi-cloud era.
No longer can we hide in the hot aisle during the winter, we need to find ways to join the discussions among our DevOps teams or start them on our own.
This is not one size fits all, but if you are undergoing a data modernization, serverless might be an option to consider.
Does your company already use a serverless model for their business applications? What lessons have you learned from this project? How has your role changed, if any? What can you share with others considering this model? Let me know on Twitter, and thanks for reading!