The author of the Pied Piper of Hamelin, Robert Browning, is one of my favorite English poets. He is credited with the phrase “less is more.” Often the phrase “less is more” means that simplicity is what makes a good design. As I think of serverless computing in the enterprise, less is more comes to mind.
I define serverless computing as “applications that rely on third-party services, APIs or other customer code as separate functions that are event triggered and managed by a third party rather than the traditional model of single, self-contained and complex applications.”
For developers, this removes the barrier of worrying about infrastructure. In fact, in the serverless model, a third party manages the infrastructure which provides significant cost savings for development in the enterprise. As applications are created, developers can look up to the cloud and to APIs rather than down to the complex, heavy internal infrastructure. This is an example of less is more.
When developers look up and innovate rather than look down to do things the way they have always been done — where heavy, bloated, self-contained code authenticates, pulls, organizes and manipulates data and delivers it to users as needed — less is definitely more.
Traditional applications with fully self-contained code become too large and burdensome to end users. In the serverless model, the different functions handle everything from authentication to storage to data manipulation, in a way that is invisible to end users. The different functions not only reduce computing power but allows for more interoperability with other services across the enterprise as information from many different sources can be accessed. It also provides for a more stable application and better scalability at peak times as a single application isn’t pulling down information, but different functions are accessing and serving up only what is needed at a specific time. Again, less is more.
Serverless Computing Necessitates
It is important to know what serverless computing aspires to be and what it is not. One of the biggest drawbacks with making the shift is that serverless computing necessitates a significant mind shift for most enterprise organizations, which include:
- Differences in pricing
- Differences in the amount and level of control
- Differences in availability
Enterprise organizations are used to paying for infrastructure, storage, hosting services, and SLAs including uptime and maintenance. On the other hand, the pricing model for serverless computing is based on transactions – when a function is executed or when an API is accessed that powers the application this model can be difficult to grasp at first however can be estimated just as accurately as a traditional pricing model.
Not only does pricing require a mind shift, so must how the enterprise views control. Because enterprises do not manage the computing infrastructure, you don’t have to worry about configuring the server, applying patches and other updates, if the server hardware will fail, or even what type of software a server is running. Because you do not know – or care – about the management of the infrastructure, the focus of control shifts having increased control over the different software components the applications utilizes across the serverless environment. This allows for better negotiation with the software vendors whose APIs are accessed.
Closely associated with level of control is availability. Because you do not have control over servers you must rely on the cloud providing a high level of availability for any business service or frankly, any IT project. This is true whether or not you’re using a public or private cloud environment and whether you are using internal or external APIs. SLA in serverless environments should be put in place to provide strict accountability for support response time and to ensure that requests made through APIs meet expectations.
Serverless computing will not guarantee increased availability, performance or servers that are configured correctly, but by putting into place strong SLAs the enterprise can be comforted in knowing what they can expect in terms of pricing, control and availability – all without having to worry about the back end. Less is more.
The benefits to developers and the shift in mindset of enterprise organizations realize the enormous benefits of serverless computing. When enterprises spend less time employing developers that must focus on the cost configuration management of infrastructure and more time focused on writing software that addresses critical business needs, the strategic nature of software development increases significantly. Development becomes faster and less expensive and adoption of such applications should become more prevalent because they have a business impact.
Because of the nature of APIs and their reporting capabilities the enterprise can better understand how an application is performing and adopted within the organization.
Finally, organizations no longer need to employ IT resources just to manage what they already have and keep it working properly, such as high priced, skilled system administrators that maintain the servers within a data center. As a result, the focus within the organization shifts from operations to business strategy by those who understand how functions work in a cloud first world. In a win-win scenario, skilled system administrators become a more important part of the cloud provider’s business and developers become more strategic within their organizations, in many cases directly affecting the bottom line.
As the industry moves more to a serverless model, we will see the less is more benefits of serverless increase. As a result, organizations should follow a clear, strategic path for adoption in which they understand the shift in pricing as well as level of control and availability via the cloud. As we watch the old way of application development begin to sunset, we will see the serverless model rise brightly – and simply – to help organizations become more strategic and have a sharper competitive edge.
By Allan Leinwand