Thu, 16 February 2017
We discuss serverless computing and what it means for enterprises. We compare different serverless computing platforms, look at pricing models, and discuss how to determine which applications are right for serverless computing.
Serverless computing is a manifestation of the idea that we should focus on our applications and focus on the code that makes them efficient in providing high-levels of functionality. It brings enterprises away from care, feeding, and operations that are low-calorie work. At this point all major cloud vendors have announced some implementation of serverless computing that allows developers to take a section of code, deploy it on their platform, and have it execute for either very short periods of time, or very long periods of time. In a way, developers do not need to worry about operating systems, connectivity, installing patches, upgrades, or any of the operational pieces that go with having a virtual machine or a physical server.
Serverless computing seems like something that should have been built into cloud computing from the beginning. With IaaS, we try to mimic what’s in the data center. They require most of the same upkeep as a regular server. Serverless computing abstracts us from having to deal with these details and allows us to deal with the brilliance of development instead.
It’s likely that if serverless computing had emerged in 2006, it would not have had an easy time being adopted. In early days of cloud computing, enterprises were trying to break data center habits they had built such as change management, control, and approvals that took a long time. Early services on cloud were focused on getting out of the data center, and allowed people to start the transition. If we had serverless technology at that time, it’s possible people would not have used it because it was too big of a leap to transition their enterprises and skill sets all at once. We’re at the time now where people have adopted the cloud and are comfortable with the concept of not having physical access to the applications and systems. We are now okay with not being able to touch the servers. Now people are realizing the amount of time that goes into patching systems and monitoring systems and that it is low-calorie work and doesn’t contribute to being able to build features and capabilities. We’re at that point in the adoption curve where people have adopted the cloud and shed those data center habits, and now they want to shed those operating system and server habits to make their operations more efficient. This is where serverless computing comes in.
To be clear, the servers are still there, we are just abstracting ourselves from having to deal with the operations and details. This allows us to focus on building the best apps we can without needing to worry about underlying infrastructures.
Security in serverless computing takes a certain level of engagement with the platform vendor to fully understand. Older models of building in network layers of protection don’t apply as much in the serverless world. With serverless computing, we look at the cloud platform (Azure, Google, AWS) to provide network-level security. It shifts the responsibility to enterprises to focus deeper on application-level security (log monitoring, databases, data stores) and to look for anomalous behaviors at the application-level.
In terms of what applications are best for serverless computing, consider it for net new based systems. Traditional lift-and-shift environments would typically go to virtual CPUs and storage devices that sit on the cloud. There are a variety of interesting startups looking at ways to automatically refactor code to move it from an OS-based environment to a serverless-based environment. As applications and companies continue to migrate to the cloud at an accelerated rate, we will see more of these migration tools to make the transition more simple and enable adopters of the cloud to use more innovative services rather than moving applications as they are.
We look at the tradeoffs between Amazon Lambda and Azure Functions.
In addition, Google is just beginning to play in the serverless computing space with its alpha version of Google Cloud Functions.