Not so long ago at DevOps Days Warsaw 2016, predictions were being made about containerization and Docker as a technology that represents the future and will surely conquer the world. Anyone who invested their time in learning Docker at that time certainly does not regret it today. At TTPSC, we believe that containerization is not the final stage of evolution and we are definitely focusing on serverless solutions as the final result of the technological revolution in the era of cloud solutions. We are not alone in holding this opinion because cloud experts in Poland spoke in a similar tone in 2017. Initially, I was also sceptical, but with time I became convinced and today I am a great advocate, not only of the public cloud, but also of serverless solutions.
What is the advantage of serverless solutions over servers, virtual machines and containers?
The answer to this question is very simple. It does not matter if it is physical equipment in our server room, instance or container in the cloud. It always requires attention from us. Sometimes less and sometimes more but someone must constantly oversee the infrastructure and administer our devices. In addition, if we want to turn our project into a product and launch it on the market, we will have worries such as High Availability, scalability or security (I do not recall the costs deliberately, because it is obvious that they are big) All these complications can be avoided if we decide to implement a serverless solution. As the name suggests, we do not have servers here for which we have to hire at least one administrator. Therefore, the initial cost of the infrastructure required to start the project is close to zero. We use ready-made services and solutions offered by a public cloud provider – we only have to decide who to choose. In my team, consisting mainly of DevOps specialists, we use AWS, but Azure and Google Cloud Platform have their Lambda equivalents – Azure Functions and Google Functions respectively. In addition to Lambda, a function that will execute the code for us, we obviously need other services – we build our application using cloud services like Lego blocks. What kind the blocks will be and how we connect them is our decision alone and it results mainly from what kind of applications and products we create and i what scale we are thinking (local or global). The bottom line is that since we do not have any instances, containers in the Cloud and servers on our side, all responsibility for security, availability and scalability lies with our supplier. In addition, the initial (and often final) cost is much lower than the classic server solutions.
Sounds too good to be true? Does it really work?
Yes, it sounds like a fairy tale but only because a lot of older solutions, i.e. monolithic or partially monolithic Enterprise applications, cannot be easily and cheaply converted into micro-services and fully use serverless solutions. But if you have your own startup or simply a project that you plan to start or have recently launched, I really recommend you start thinking about this model and thinking about what serverless technology offers. Not to be groundless. Recently, in our company a 24-hour innovation marathon took place, where everyone could submit their project and implement it as part of the team gathered for this time. One of the ideas was the simplest possible portal for sharing large files (we are talking about virtual machines with 100-200GB or more), between employees of our company, partners and clients, as well as globally. Immediately the use of public clouds and serverless solutions comes to mind A working demo of the project was completed in less than 2 days and the total cost, including the use of AWS S3, was less than 3 dollars! We have a prepared portal at a minimum cost and zero time dedicated to infrastructure. The costs of the S3 storage itself will obviously be greater in the future, but I give this example to show how easily and cheaply it is possible to implement a simple project using one hundred percent of serverless.
Time will tell if the Serverless approach will prove to be the new standard used over the next decade or even two. However, at the moment this is definitely the optimal use of the public cloud offer, because it is one hundred percent based on the Pay As You Go model. There is no danger that we have forgotten to disable an unused example and must pay for something that we do not need. Our administrator will not call in a panic, sayingthat our version of Apache has a critical security gap and you need to perform an update. The server will not crash because suddenly, a million people have pressed the refresh button on our website. In addition, Lambda’s idea itself forces developers to optimise the code, because the maximum execution time for a single function is 300 seconds. The very fact of optimal use of the Cloud should encourage you to get to know and use the serverless solution, to which I strongly recommend you!