Cloud Native Roadmap

Chaim Turkel
Israeli Tech Radar
Published in
4 min readMay 13, 2021

Kubernetes has been around for a while. It has been proven as the current best platform to deploy micro-services architecture. The main reason in my option for the high adoption is the food chain. Any framework, that does for me the tedious work that i need to add for each application, and gives it to me as part of the framework — will get a great adoption. In the JDK realm this is what spring did for us, it brought the full web stack to the application so i do not need to worry about it.

Before K8s we needed to deal with a lot of layers that are the communication and configuration between services. My background is java, so I will bring some examples from the JVM arena, but as you will see in my option this is all going to change, and java might not be the “go to language” anymore.

One of the good side effect of java, is that they like standards. So around the java platform a new standard was created: microprofiles. This standard looks at what do I need under the hood to make my application run in a micro-service environment. The ideas presented here are not java exclusive, and I would have liked to see a cross language standard (see my artical on Python Micro-profile)

As an example, every server should have a configuration server (spring, console) so that we can easily manage all the instances running on multiple machines. Each application should support health & metrics (see netflix stack https://netflix.github.io/). We need a platform to load-balance and auto-scale our applications, in the past we would use: AWS BeanStalk, or GCP App Engine.

This is a lot of work, that is just the piping for the application to run, and before we wrote a line of business logic.

Kubernetes

With K8s this is all going to change. K8s gives me all the mentioned layers and is agnostic to my code. What does this allow me to do? to concentrate on my business logic.

As you can see different parts of K8s replace different frameworks and layers from the previous paragraphs.

Language agnostic

Now that I have removed deployment and communication issues from the code, I can also broaden my language base. If java was the most mature language (vast libraries and frameworks), I now do not need this maturity. If my application is more python oriented, I can use python without loosing any feature that in the past forced me to go to java. You can also see that companies like netflix that created the full java stack, are now migrating to other languages like python: netflix-python-programming-language-is-behind-every-film-you-stream.

Node.js is now also in the running of standard back-end application. With the addition of typescript node is raising to be just as attractive as python and java.

If in the past we spoke about polyglot, we are now starting to live in this new world.

Our roadmap

Now that you are convinced that could native is essential for all new software systems, We can go over the roadmap we did to ramp up all our developers.

11.1.21 — Cloud-Native Roadmap Introduction

18.1.21 — Microservices Panel of 3

8.2.21 — Introduction to k8s

15.2.21 — K8s workshop

1.3.21 — Service Mesh

22.3.21 — Helm Workshop

12.4.21 — Serverless on K8s

We tried to mix both overview topics and hands on. After a intro to the topic, we starting with a panel where the same basic “hello world” was solved using multiple languages (java, python, node). This allow us to compare the languages and see the advantage and disadvantage of each language.

From there we dived into K8s with an intro and a hands on workshop. Today helm has become standard configuration layer for K8s, so we address this by having a specific workshop for helm configuration. In addition we tried to show other aspects of K8s like service mesh and server-less.

We we waiting to see the changes in the market due to more acceptance of K8s as the standard platform.

--

--