Only I have the solution! and it is…

We live in a truly hyped era. Kubernetes, Docker, Istio, Serverless, PaaS, CaaS, FaaS you name the buzzwords, these words draw all the attention of the Dev/IT worlds, interstingly enough only a small percentage of organizations actually employ these technologies today, in production or even at all.

Like any new tech there are a barriers of knowledge and investment to get in, weighing the cost of moving to these platforms vs the pain it solves is hard to quantify. For each one of these trends and more that I may have forgotten, there is a group of followers who see these solutions as the be-all-end-all solution for every problem conceivable:

Its not only what these solve, the misconceptions about these technologies obscures organizations from the real questions they need to ask themselves before taking the plunge or moving full steam ahead.

Recently I stumbled into this video from @JamesWaters

In this video James describes three main questions that customers need to ask themselves before taking the leap and go full-scale Kubernetes. These are things that many don’t think about.

  • How can you upgrade Kubernetes fast enough to follow its very aggressive release cycle. something that recently proved very important with the latest CVE that was solved in the k8s upgrade
  • What is the number of clusters and tenancy model you should take more smaller clusters vs a small number of large ones, that will depend on the organization structure and business requirements for your ap[p[s like PCI/HIPA regulations
  • What is your SDN strategy? (seriously you have to have one going in to this CNA world)

While each one of these questions has sub-topics to think about as well, many organizations are yet in this space and do not have that insight. A lot of them are looking from outside in and having major “FOMO” that may push them into chaos. The higher the hype the higher the misconception.

let me try and tackle just a few:

  • Micro-services = containers – This is a big one. The value of micro-services for application architecture is well recognized. Break the applications to smaller chunks, concentrate on writing the business logic (your business special sauce) and be much more agile on patching, upgrading, resiliency etc. Now, containers have emerged as a major vehicle for micro-services. They are small, lean and are easy to deploy or takedown. But they are not always the answer. It may be that your application is yet to be refactored for containers, should you spend the time/money refactoring it? or take advantage of other vehicles such as VMs? Also, containers do not provide true isolation and in many cases, the existing platforms that enterprise customers use do not support containers ion the level that is required by these organizations. The combination of containers within VMs is a good compromise but using just VMs may be a solution in some cases. (I know what UI am saying here is blasphemy to some, but the end of the day just like customers are choosing one technology doesn’t mean that they can’t choose others that are considered “legacy” by some if it fits)
  • Kubernetes is the best way to go “Cloud native” – The choice between CaaS ( e.g. Kubernetes), PaaS ( e.g. Pivotal Application Services) and FaaS (e.g. lambda) is not about one that is better than the other, each of these platforms has its value and cost for workloads. Many times a single application will have parts running on all of the above, Kubernetes, PAS, VMS and cloud and the decision should be made based on the business requirements. Allow me to give you an example:

A financial organization has many developers, they all write in different coding languages and the need for speed from innovative ideas to fulfillment is crucial for them to compete in the cutthroat fintech. This customer wants to reduce the time its developers think about infrastructure and want them to focus on building software, for this use case PaaS such as Pivotal Application Services will fit the best, it will abstract everything below the code from container image creation to security and authentication, monitoring etc. On the other hand, their application may need access to off the shelf data platforms that come ins a docker version. In that case, that customer may employ both Kubernetes and Pivotal Application Services for each part for their application where the custom code runs on PAS and Dockerized applications will run in K8s. Bottom line one platform is not the solution in most cases.

  • Function as a service/ Serverless is where the world is heading – just like in previous point about Kubernetes. If you have a function in your application that it make sense to you to abstract out and pay as you go on it make sense to use it in a FaaS while other parts may live better and more cost effective on CaaS or even IaaS
  • Cloud is only Public cloud – Cloud is a consumption/buisness model that is enabled by technologies for automation and scale. Yes, the aspect of Pay as you go is important and not as easy to achieve on-prem as in the public cloud, but here again I fall back to the business requirements. If your organization wants to rent all its services and truly pay as you go than the Public cloud may be the answer for that workload (though with new offerings coming like VMware’s project Dimension and Outposts by AWS may change that as well)

I am sure I didn’t even scratch the surface on the “Misconceptions” whihc many will jump and say that I am worng about, which will prove my point 🙂 . What do you see out there? Share in the comments or RT this post with your exmapels!

Leave a Reply

Your email address will not be published. Required fields are marked *