The world of software architecture brings us the most demanding topic which is serverless computing or more simply serverless. The emergence of serverless architecture is the next shift in cloud computing, which involves abstracting software and system engineers away from explicit infrastructures, servers, server deployments, installed software, etc. The three major providers of clouds — Amazon, Google and Microsoft — invest heavily in serverless. So, what is serverless computing and should it be considered (or not)? I hope to clarify a bit about these issues in this blog. We’ll also look at exactly what is serverless, its benefits and its drawbacks.
What is Serverless?
This term “serverless” may be confusing as both hardware and processing servers run somewhere in those applications, but the difference in comparison with normal approaches is that there is no need to look after the hardware and processing servers in order to build and support the’ serverless’ application. This responsibility is outsourced to some service providers.
Serverless computing is thought of by some as the next phase in the evolution of infrastructure-as-a-service, or IaaS, by completely abstracting the underlying infrastructure from developers, and essentially virtualizing runtime and operational management through a third-party provider.
The infrastructure is made up of applications that rely substantially on external IaaS (Infrastructure-as-a-Service) and BaaS (Backend-as-a-Service) providers, or on custom code in ephemeral (temporary) containers from an infrastructure point of view. Many have called this FaaS (Function-as-a-Service) or, it works as a service that Amazon, Microsoft, and other people are currently providing.
Using FaaS allows the activity to move to the front end, eliminating the need for an application’s traditional server system. These serverless systems can reduce operating costs and complexities significantly, but shifting to such a model will certainly depend on external providers and, in general, the market’s present immaturity.
This is a major shift from traditional architectures, moving from a linear, underperforming model to a low-maintenance, flexible architecture operated by a third-party like AWS Lambda, IBM OpenWhisk and Azure Serverless.
These products allow developers to easily upload the code they want to the platform, without any worries. This code is taken by the third-party provider who manages all your code to run, administer, and scale while providing instant access to your code if you wish to update, tweak, or roll back.
Now, I will discuss some of the advantages and disadvantages of the approach to designing and deploying a serverless architecture. Any decision regarding the use of serverless computing should not be made without considering and weighing its pros and cons.
Advantages of Serverless Architecture
First of all, a serverless architecture not only saves enormously in overhead costs but also enables developers to completely focus on producing the best products possible without worrying about how to run and manage the architecture. Furthermore, micro-services and containers are important because they are all highly compatible in the increased agility of the serverless. Overall, it simplifies the entire process of the enterprise system and software development.
Things worthy of recognition in serverless architecture are:
- Horizontal scaling is completely automatic, elastic, and managed by the provider
- The order of magnitude OPEX savings
- Better time to market
- GDPR & Meltdown
- Built in security and governance
- Layer 7 beats layer 5 any day of the week
- Value chain insights through per request pricing
Disadvantages of Serverless Architecture
Serverless architectures certainly have many benefits, but they also have significant drawbacks. Some of these trade-offs are inherent in concepts; they cannot be completely determined by progress and always have to be taken into account. Others are linked to existing implementations; we can expect that these will be settled with time.
Some downsides of Serverless Architecture are:
- Vendor Control– You give control of some of your systems to a third-party supplier with any outsourcing strategy. So, lack of control could be systematic downtime, unexpected limitations, cost changes, loss of feature, or forced upgrades to the API is not in your hand
- Security risk
- Lack of operational tools
- Multi-tenancy means it’s technically possible that neighboring functions could hog the system resources behind the scenes
Is Serverless the Future?
Going without the server means not only a technical change, but also a change of attitude. The migration is not as cost-effective as its promise for start-up organizations and for many companies that operate under legacy infrastructure. If you have a workflow, it is difficult to justify adopting FaaS tools to get rid of servers. Furthermore, serverless is far from mainstream, but moves quite fast. Gartner predicts that serverless/FaaS will reach its productive level in 2 to 5 years with machine learning, VR and IoT in its Hype Cycle for Emerging Technologies, 2017. Already now we can see a huge growth of Serverless, which is increasing more day by day.
Serverless architecture is indeed very exciting, but there are a lot of limitations there. The validity and success of architectures depend not only on technology, but also on business requirements. The Serverless can shine in the right place if it is used properly.
Learning Cloud Computing just got easier. Our wide range of courses has everything you need to master the skills of Cloud Computing. Now offering flat 21% Off on all our courses. Enroll here!