Is Serverless The End Of Kubernetes?


Ops, I did it again. I used this eye-catching title to be sure to get your attention, sorry for this. I need your attention to introduce this big theme for reflection. Do you think Kubernetes is the last ad best tech on DevOps world? Well, today as never before, technologies are ephemeral and you have to be ready for changes. I love Kubernetes and I am happy to speak again about it. It is the hottest buzzword in the DevOps scenario. Reading this article you will find the answer to the big question:
It is the final solution for infrastructure management or we need to bet on Serverless, which drives our hearts longer from the operations team? Remember, NoOps is coming.
I think that changes are usual in technology. Our ancestors travel in carriages and us on planes. That’s part of the progress.
In the last years, there was a small revolution that brings more and more applications from the virtual machines to the containers, mostly thanks to the opportunity to deploy using Kubernetes.
While this revolution occurs, there was a small powerful buzzword. It is “Serverless”. Most people see it as evil, others like the Prince Charming that can save developers from operation nightmare. Well, let’s see what are the issues and the opportunity — and be quiet, no threat on the horizon!
What is the difference between Kubernetes and serverless?
Serverless is a cloud model where you want to be free from server and infrastructure. The aim is to avoid the fixed cost, reduce time to market and friction between teams (operation and dev). In concrete, imagine there is a layer that can ingest your code and it is responsible for the execution. Serverless is something like that.
You provide the code, a vendor provides all the other.
The most common serverless implementations have stateless containers with an SDK that allows your code to be integrated into the system and invoice to you basing on the usage of resources. In most cases, we can upload to the cloud our function (“FaaS”, Functions as a Service) and that function is activated by HTTP calls. Major cloud providers offer a similar cloud experience:
Amazon: AWS Lambda
Microsoft Azure: Azure Functions
Google Cloud: Cloud Functions
Of course, the servers are not extinct. You don’t see them because are hidden by the vendor, that uses them to provide the service. Servers are still alive, but you don’t see any ram, CPU or disk space. You just focus on code. You can put your effort where it is really needed.
And what is Kubernetes? Think to Kubernetes as a framework to run distributed systems staring from simple docker images. It takes care of your scaling requirements, deployment, and load balancing. All that stuff can be easily described using plain YAML files and reused, creating a replicable environment by design.
Kubernetes is an infrastructure on your hand.
Just by changing some configuration files you have full control over container instances (services and pods), networking and deploying. Kubernetes takes care of your scaling requirements, failover, deployment patterns, and more. For newbies on Kubernetes, I wrote a good introductive article on Kubernetes.

Image from “what is exactly Kubernetes”
Kubernetes, like serverless, allows complex architecture with a low effort from sysadmin. Such technology transforms classic deployment, which is people-intensive, to be smart and quick. Hey guys, NoOps is coming!
What are the pros of Kubernetes?
The big advantage of using Kubernetes is that you can handle your cluster like it was a regular server farm, but without the cost of managing physically. Logically, you can recreate parallelism between servers and your cluster components. You have pods and services that you can instantiate like it was a virtual machine. You have networking, storage and so on. This translates to a deeper control of all single components with low-level access to the cluster.
So, my list of advantages using Kubernetes instead of serverless platforms:
great compatibility with the past. If you are on container move is easy, if not is just the cost of containerizing your app’s components.
great control about what happens
less vendor locking. Kubernetes is Kubernetes, and a Docker container is just a Docker container. On paper, you can move the infrastructure in a single click
ability to fine-tune every single component
can run also on-prem (for dev, or extreme cases, or if you are simply mad)
Prediction of costs. You pay for resources to the cluster, that can be predicted better than in the serverless approach.
What are the pros of Serverless?
Kubernetes is a big step forward on reducing sysadmin effort but didn’t reduce to zero. The serverless approach, basically, avoid any sysadmin component as the only part you have to take care about is the source code. It’s like picking a set of lego brick and put them together. Each brick works, individually. You just need to let them communicate properly. Just that. FaaS solutions may seem too hard to be put in place due to the shift of mindset they require. In this case, you may approach some softer serverless solution that hosts directly your app, without changes. A good example of such a solution is Heroku, which abstracts from the server and traditional DevOps, providing a NoOps Serverless experience that can boost your application development reducing all hosting friction (you have also a free tier).
Is Serverless the end of Kubernetes?
Even serverless seems something new nowadays, the first release of AWS Lambda is in 2014. In that year, Docker was moving firsts steps (the first official release was in 2013, and I’m not sure when it was ready for production scenarios at the launch time). Kubernetes borns in 2014. So, we can tell that serverless was available since the same time of container, less or more. From this point of view, serverless doesn’t come after Kubernetes and we cannot consider serverless as a replacement to the containers. They are just two different approaches to implement the hosting part in a web application. Maybe in some cases, you may prefer one or the other. When one and when the other? The right answer, like for so many questions on our like, is “it depends”. The difference between a consultant and a good consultant is to know many complementary solutions and find the best one based on the scenario.
What to take home
We already discussed the pros of both solution, then we can close by telling that just by knowing technologies you can find the best solution for your scenario. Using a big cloud service like Google Cloud or others, you will be ready to implement any solution. Just time to experiment with the tools he provides and understands the pros/cons.[Source]-https://towardsdatascience.com/kubernetes-serverless-differences-84699f370609
Basic & Advanced Kubernetes Course using cloud computing, AWS, Docker etc. in Mumbai. Advanced Containers Domain is used for 25 hours Kubernetes Training.

Comments

Popular posts from this blog

What Is Java? A Beginner’s Guide to Java and Its Evolution

Is Data Scientist & Data Analyst are same? Learn the Differences Now!

Full Stack Development : All that you need to know