What is Serverless Computing? The Trend to Asset Lean
Co-authored by Cahit Onur, Sr. DevOps Engineer at Flux7.
Serverless computing is a model where cloud providers like AWS, GCP, and Azure manage the server on behalf of their customers. Serverless computing abstracts yet another layer of updates, management and machine resource allocation away from the IT department as cloud providers dynamically handle these aspects for a consumption-based price. In short, serverless computing is a new age in IT management and software development.
Traditionally, IT managed the entire technology stack. It bought the hardware, managed the middleware and OS, deployed applications, networked the environment, and more. With the advent of cloud computing, we are slowly adopting a utility approach to computing where cloud providers not only free IT from capital hardware expenses but also free IT from management and a plethora of repetitive, manual tasks.
This asset lean approach has echoes in many other industries. For example, hotel chains are adopting an asset lean model, opting to own fewer properties themselves in favor of engaging with franchisees to supply and manage the property. Similarly, serverless is an IT asset lean approach. Yet, serverless does not mean there is no server involved. It simply means (like the hotel property) that it is managed by someone else.
Uber and Serverless
Let’s extend the analogy to transportation. When you hail a ride from Uber, you are riding in someone else’s car. You don’t need to wash it, gas it up or renew the tags. Similarly, cloud providers manage servers for you in a serverless environment. There is a great parallel between the two industries that illustrates quite well how this evolution can positively impact IT organizations:
The Evolution of Uber and Serverless
Own a car
- You own all the responsibilities that come with it
Own servers and full technology stack
- Enterprise owns all the responsibilities of managing a full technology stack
Rent a car
- You still drive it yourself
- You pay by the day, a large time increment
- You are responsible for gas and insurance
- You have to get yourself to the car rental facility
Migrate to Cloud Servers
- While scalable and easy to spin up and spin down, you still manage the server
- Removes capital expense and the physical set-up so you pay for what you need
- You share the responsibilities with the cloud provider
- You still need to set up your infrastructure and maintain as necessary
Hail an Uber
- You don’t drive
- You aren’t responsible for any upkeep
- You only pay for your trip
- Cloud provider dynamically manages server allocation and provisioning for you
- Developers can code applications without worrying about the server
- You only pay for what you use
Accelerate App Development
Serverless computing should not be confused with low code or no-code solutions. While serverless abstracts away server management, low code, and no-code solutions abstract code away from the development process. That said, all three aim to achieve a similar goal: to accelerate development within the organization in order to better serve internal and external customers and increase business competitiveness.
Within IT there is a clear skills gap that is not improving anytime soon; according to BusinessInsider, more than 5 million IT jobs are expected to be added globally by 2027. As such, IT departments would be wise to invest in solutions that help accelerate application development in the organization. Serverless does so by allowing developers to focus less on server infrastructure and more so on creating code that impacts business goals.
Facilitating Function-as-a-Service (FaaS)
Serverless computing expedites application development through FaaS which is what allows developers to execute code separate from the server infrastructure. Let’s be honest: most developers don’t enjoy managing servers in the first place. As a result, FaaS is a bit of a dream come true in that it allows developers to write and deploy code without worrying about building and maintaining the infrastructure to support it.
All this means that developers can spend more time doing what they love and be more productive as they spend less time on deployments and little to no time on maintenance. Moreover, they can help the business achieve its goals faster as the gained agility allows developers to deliver features much more quickly.
While FaaS is not ideal for every application, functions that are a good fit may benefit from:
- High availability
- Instant scalability (no waiting!) that is event, not resource-driven
- Cost-efficiencies as code only runs when the function is needed
- Re-usability of functions which speeds development efforts and allows developers to deploy new environments hassle-free
- Independence from back-end configurations, which translates into easier and faster deployments and updates
- Cloud agnostic deployment which allows developers to write code once and deploy it on any cloud provider that offers serverless
- Out of the box monitoring
As IT becomes asset lean and embraces the trend to serverless computing, IT organizations are able to increase their resource focus on strategic initiatives, rather than management of the technology stack. This process creates a virtuous cycle of greater agility and productivity that allows the business to further invest in customer-impacting projects that grow competitive advantage. Do you have experience with serverless computing that you’d like to share? I welcome your thoughts and feedback.