Serverless architecture- Driving the case for innovation with frugal architectures
Its quite common for a solution architect in the capital markets industry to present a business case for innovation regardless of whether you are solving a new business case or optimising an existing one. The interesting aspect is that in majority of the scenarios you will have a number of solution options to play with and you will end up presenting two or more options while highlighting your recommendation (usually the one that aligns closest to the business outcome).
Nothing has changed in that job description. However, the paradigm shift in technologies over last few years has multiplied the number of those potential solution “options”. So what guiding principles will you adopt while you are doing your next assessment?
My answer- A frugal architecture that meets the solution requirements and is achieved by the way of experimentation.
Please continue reading in order to understand my case.
The journey to the cloud and the serverless paradigm
Not so long ago, the solutions used to get deployed on on-prem physical machines that required huge capex investment and the design for peak load was often prioritised over optimal resource utilisation.
With the advent of virtualisation, people opened up to the possibility of resource sharing that increased the resource utilisation. However, virtualisation still required high initial capex investment and high opex for maintaining that investment. The early version of the private cloud brought some efficiencies by taking away some of the IT operation responsibilities, however, increasing agreed base capacity was still a capex exercise.
(I have overly simplified the scenarios i just described. In the real world, on a number of occasions i have observed a number of cases where technologists have gone over the board to keep the utilisation high by cleverly mixing the workloads. I would argue on the TCO of that design approach but will leave that for some other time.)
Public cloud has come a long way in presenting the real opportunity where technologists can attempt to solve both problems at the same time - optimal resource utilisation and capacity on demand thus freeing of a lot of capital which can potentially be deployed for further innovation. As a result, the adoption of public cloud have accelerated over last few years.
Serverless architecture (or FaaS- Function as a Service) has taken a step further and presents an event driven design scenario wherein technologist are only supposed to focus on encapsulating the specific action to handle that event while all the complexity of executing that action is handled by the hosting provider. Serverless architecture even breaks the microservice design thought process into nanoservice design thought process where-in you need to focus on just one action at a time. On one hand all major public cloud providers have offerings in this space (AWS Lambda, Google Cloud Functions, and Microsoft Azure Functions) on the other there are dedicated platforms like Webtask and Iron.io that offer this as a standalone service.
Let me contrast FaaS with PaaS in order to put things into the context. In most PaaS solutions, you will still responsible for the scaling and availability of your application. FaaS on the other hand gives you a complete abstraction from infrastructure, servers, and low-level configuration so that developers can focus on the business problem or can improve their cycle time.
Serverless architecture is a hot technology topic which means that a lot of literature is available that provides deeper insights into the topic and shares patterns/ best practices. So i’m skipping the details here to progress on my point.
A case for innovation:
An innovation in my view is an attempt to solve a real world problem in a way it has never been done before. However, regardless of the problem you are trying to solve, for an innovation to make a commercial sense it has to satisfy one or more of the following requirements:
The serverless architecture paradigm presents cost saving opportunities on a number of fronts (if done in the right way) which can later be translated into innovation budget (off-course some of the savings will contribute towards improving the bottom line):
- Freeing up capital from initial capex
- Lower operational costs
- Improved delivery agility
One might argue that the improved innovation budget might some day contribute to the top line (makes money).
By freeing up developers time to focus on the business problem, the serverless architecture paradigm optimises the cost of innovation. It is a common wisdom that the more you try, the better you become. In that context, the cost of innovation is a major driver for any technology driven initiative. It essentially is the speed at which you can experiment and afford to fail, all in search of the greater good.
The word frugal means something that is simple and cost little.
While writing this article I chanced upon this google feature and its quite interesting to look at the historic usage trend of the word frugal.
So my definition of the frugal architecture is “a target state that meets all the solution requirements (including non-functional), can be accomplished with minimum upfront investment, have optimal operational costs and is change friendly”.
The serverless architecture paradigm presents an excellent opportunity to develop frugal architectures.
What’s is the catch?
- Green field projects vs extending/ refining the existing architectures- Serverless architecture requires a fundamental changes to the way you design and green field projects gives you a clean start. One of the biggest transition i see is from designing state-full applications to state-less applications.
- Technology maturity- It’s a bit early in the technology cycle to start recommending serverless architecture as the technology of choice for business critical applications. Its makes more sense to start with smaller use cases and work upwards building on the capability and the experience in your time.
- Vendor lock-in is another aspect worth considering.
- There is no silver bullet- Serverless architecture cannot be applied to all the use cases. There are scenarios where a serverless architecture will end up increasing the engineering complexity.
Frugal architectures have a potential to deliver efficient business outcomes at great speeds while optimising the cost of innovation. Serverless architecture paradigm builds upon existing engineering best practices and presents a great opportunity for technologist to develop and implement frugal architectures.
Serverless architecture paradigm is still in its early stages but holds great promises. With ever increasing pace of technology innovation, it will be interesting to see where it stands few years down the road.