The hype, conferences, frameworks and tools springing up around serverless is happening at lightning speed, rivalling the excitement around containers and orchestration. Whereas containers offer a light weight application packaging and runtime solution compared to virtual machines, serverless is a total paradigm shift.
Instead of building applications that are bounded by their source code repository, serverless solutions enables us to think of our applications in the context of the events happening, both in the application and infrastructure layers, then how and what to respond to as a result of those events.
While this is all great and our DevOps Engineers love working out challenging and complex serverless solutions, our clients continue to approach us asking the simple questions, “How do we take advantage of serverless?” and “Are there instances when it is not a good choice?”.
We believe serverless offers massive opportunities for customers to save money and create more robust and scalable systems which is why we’re investing heavily in the serverless space from a skills, experience and tooling perspective.
So how do you decide when and where to use serverless architecture?
The hybrid model and splitting apart monoliths
One of the best and easiest ways to get started is to take a hybrid approach.
Let's say you've got an existing application where one piece could benefit from a serverless model because of unpredictable or high load demands compared to other parts of the application.
In this scenario, breaking this part of the application out into a new set of RESTful endpoints using API Gateway and Lambda could reduce costs, make scaling and resource management less challenging, while also having a minimal impact on development velocity due to only rewriting one part of the stack or application.
This approach allows companies and teams to build new workflows and deployment processes spherically for serverless applications which they can then use for future projects.
Using serverless for new or green-field projects
Serverless also fits well for new or green-field projects where legacy constraints do not apply.
As the serverless ecosystem and tooling matures, it's becoming easier to build, test and deploy apps in a way that feels familiar to most developers.
Many of our clients have been surprised how easy it has been to adopt the serverless development model and the ease of deployment and lack of infrastructure management is a huge win for Dev, Ops and the business.
When is serverless not a good fit?
Batch processing
Generally speaking, intensive and long running computing processes have not been a good fit for Lambda, and this makes sense for obvious reasons. The 300 second run limit, the lack of control over specifying the instance type and the absence of Configuration Management tools present plenty of barriers to entry.
But the thing to keep in mind is that we’re only at the beginning of the serverless revolution. We’re just getting started and tooling and supporting for doing many of things we do in traditional virtual machines will come.
For example, if we look at a MapReduce experiment on Lambda to demonstrate that even distributed computing intensive processes can be done on Lambda, given the right approach. This illustrates that with creativity and a desire to experiment, we can create solutions on Lambda that were previously thought to be either undesirable or impossible.
Culture
Constraints are never limited to just the application stack or computational requirements. It also depends on the skills of the development team and the organisations willingness to stretch and experiment with new development methodologies. In this era of DevOps, Microservices and now serverless, our most successful clients are the ones that are investing significant time into Research and Development, not just Business-As-Usual development of new features and maintenance.
Serverless is new, so keep an open mind
This is the most important advice we can offer when it comes to serverless. It's a different paradigm and needs you to think differently.
Many organisations are often surprised at how many different opportunities serverless presents for their business. They think that applying serverless to their domain is about replacing existing parts of an application or only for new projects. It can provide much more value than that. It’s about how you interact with events, data and the action you take
We encourage you to contact us so we can help you understand the possibilities and range of new solutions and improvements that may be available for you.