I’ve been writing about serverless architectures for the last few months. In a previous post, we explored how the serverless model is becoming one of the fastest growing components of Platform as a Service(PaaS) stacks. From a growth perspective, the vast majority of the early adoption of serverless architectures have taken place in the consumer market in areas such as faming, wearable’s technologies, etc. However, in the near future, we should expect that balance to change as the enterprise becomes a major adopter of serverless technologies.
Traditionally, it has been hard to benchmark the market potential of a specific architecture style (vs. a technology) but in the case of serverless architectures the opportunities within the enterprise are clearly tremendous. From some perspectives, serverless computing represents the answer to challenges that have plagued enterprise solutions and IT departments for the last two decades.
Serverless Architectures in the Enterprise: Benefits
We are still in the early days of the adoption of serverless architecture models and trying to enumerate the benefits of this trend in the enterprise might seem premature. However, if we look deeper at the adoption serverless computing technologies within the consumer market, we should be able to extrapolate some clear benefits for the enterprise. Let’s explore a few of those ideas:
Truly Decoupled, Event-Driven Solutions
Serverless architectures provide an open, developer-friendly model for building event driven solutions. The even driven paradigm has been one of the most popular architecture styles in the enterprise but it has proven to be challenging for most organizations to implement it at scale.
Serverless computing models offer enterprises a model of leveraging multiple programming languages in an application while maintaining certain level of consistency in aspects such as lifecycle management, monitoring, scalability, testing, etc. Traditionally, enterprises have struggled adopting different programming languages because they require investments on different types of infrastructure and engineering talent.
Abstracting Infrastructure from Developers
Developers in enterprise environments are painfully aware of the infrastructure requirements of their applications. Even when using cloud platforms, IT developers need to request the appropriate infrastructure to run their applications. Serverless architectures provide a model that truly abstracts the infrastructure requirements from the application code.
True Code Reusability and Simple Engineering On-boarding
Code reusability has been an elusive goal for most enterprises. Serverless architectures enable reusability at the core of the platform. A developer writing a serverless application can simply browse the available serverless functions relevant to the application domain and start using them. As a side effect, serveless architectures provide a simpler mechanism for onboarding engineers and make them immediately productive.
Cloud and On-Premise Architecture symmetry
Achieving certainly level of architecture symmetry between cloud and on-premise solutions is a permanent goal of most IT departments. However, most cloud technologies have no on-premise equivalent. Serverless architectures fundamentally rely on the authoring of atomic functions which enables a very viable model for on-premise reusability. Additionally, serverless stacks such as Azure Functions or Bluemix OpenWhisk should be available as part of Microsoft’s and IBM’s private cloud technologies respectively.