Cloud Native Weekly - All things Cloudy - 08-05-2023


Userlevel 7
Badge +6

Kubernetes is great, it's complex

 

This has been something that has been said in many conversations over the past 3 years and even longer. “Kubernetes is complex” I cannot really argue because yes, it is, but then I feel like so is virtualisation, cloud, and mainframes unless you work with it every day!

Before even getting to the complexities of Kubernetes you first must hop over the hurdle of containers and understand containers before moving onto the orchestration layer. Again, could we see a similar trend with virtualisation? Should you know what is a Virtual Machine before understanding the capabilities of a VM orchestration engine such as vSphere Virtual Centre?

So, containers:

  • Containers are self-contained bundles
  • They decouple your application's environment from the machine it runs on
  • No need to worry about the package or Golang version being present on the host because the Container File (Dockerfile) makes your dependencies explicit.

Thus, giving us the “it worked on my machine” which means it will work on any machine when using containers.

Ok, what about Kubernetes, I have already mentioned that this takes the above container and provides an orchestration layer. In the virtualisation space, this provides the ability for your virtual machines to be highly available across multiple compute nodes in a cluster, if you do not have a virtual centre then you have individual hosts with no High Availability and if a host dies then your VMs also die.

You can run containers on single hosts multiple single hosts like you can virtual machines or you can provide HA with Kubernetes.

When not too Kubernetes.

  • If you are only deploying a small number of containers that are not maybe mission-critical, then you may not need the complexity of Kubernetes a single host might be enough.
  • If your application within the container does not have a requirement to scale up and down, this would be another strong use case to avoid Kubernetes.
  • Your containers and machines/hosts do not often fail (biting my tongue)
  • Your application would not benefit from shared persistent storage, load balancing, service discovery, auto-healing, autoscaling etc.

I have made that comparison to VMs a few times now and granted the complexity of virtualisation has become a lot “easier” over the years. I remember configuring ESX 3.5 back in the day and it was complex! But VMware and others enhanced and advanced our experience, now really many people can get hands-on and deploy virtualisation without consultants and professional services. Will Kubernetes go the same way… I believe so.

The biggest advantage and disadvantages of Kubernetes

 

I have mentioned some of the advantages already to Kubernetes or to be fair any container orchestration engine. The biggest disadvantage of Kubernetes today is the complexity, we can justify complexity in some cases. We justified it with virtualisation. But there is a lot to learn upfront.

Learning

The best way for me to learn about something is to watch or read some content. There are so many people that have created great content when it comes to learning Kubernetes and even in the 3 years where my focus has been on Kubernetes and this space things have dramatically changed already, and I strongly believe we are heading towards what we have now with vSphere 8 for core virtualisation.

My biggest bit of advice here is to have an awareness of what Containers and Kubernetes is, it is coming and the more people I speak to are inheriting the looking after of Kubernetes clusters and they have no idea, they had no runway or chance to learn the ropes.

Then when you have at least that foundation of awareness at least you can be a little more prepared if the above happens to you, equally when you are pulled into a meeting about a new application or a merger you are taking on you have the awareness of Kubernetes and can offer this up to the group to see if that fits the requirements.

Monitoring & Observability = are not the same thing!

I wanted to also add this into the mix as another conversation starter has been around observability data and does it need protecting from a backup perspective.

This is not just Kubernetes-focused but will be apparent in all infrastructures and environments, I feel like there has been a huge trend towards “Observability” over the last 18 months. If someone or a group of people were trying to emphasise the importance of Observability, they nailed it as I find many people talking about it everywhere I go.

But… whilst both Monitoring and Observability are important parts of a healthy environment, they both heavily rely on the same metrics and data in some cases. They are not the same.

Monitoring will tell us when something has happened whilst Observability will sometimes detect and solve an issue before it has even happened.

In this new cloud and cloud-native world, we no longer as IT teams must settle for the reactive nature of monitoring and just finding out when bad things happen. We can leverage observability to understand things before they even happen.

What’s On This Week

This week I am focused on creating slides, demos and talk tracks for KubeHuddle which is next week and then VeeamON the following week.

Next week I will cover KubeHuddle and then the following week will be the big one VeeamON!

Have a great week everyone, Why don’t we add links to any Kubernetes learning resources you have found either before or because of this post?


10 comments

Userlevel 7
Badge +17

Good summary @michaelcade . I think, for those who are new and/or don’t know about either Containers or Kubernetes, it’s worth repeating Kubernetes is not Containers; nor are Containers Kubernetes. There was a tech colleague on Twitter who thought they were interchangeable a couple yrs ago. As a matter of fact, I think you were involved in the brief tweet discussion. I haven’t played with either for a few yrs...at least, so I’m sure much has changed since then.

Also, though I agree with you more orgs are moving to Containers, and Container orchestration tools like Kubernetes, I think it is mostly within the Enterprise space. As one who is and has been with SMBs for years, I don’t see or hear about SMBs with much need for either Containers or Kubernetes. Sure, a few SMBs could probably find a need for each, or at least Containers, but the complexity/knowledge needed for implementation probably isn’t worth it. Do you come across SMBs who use either? I’d be curious to hear about why or how they are using them.

I’m not sure virtualization (i.e. vSphere) being ‘easier’ now? I know you used quotes, but with vSphere now having multiple layers (vSAN, NSX, Tanzu, SDDC solutions like vSphere+, vRep, vLCM, etc), I think it’s grown more complex now than back in the 3.5 days; though, I understand where you’re coming from. 😊

Hope to catch up with you in a couple weeks in Miami!

Userlevel 7
Badge +6

Yes I was fundamentally referring to only vSphere ESXi and vCenter but you are right there is a broad amount of surrounding technology from VMware that is still complex. 
 

 

Userlevel 7
Badge +20

Thanks for posting this @michaelcade as I enjoy reading these first thing Monday morning.  😁

Userlevel 7
Badge +6

@coolsport00 I was on my phone and wanted to come back with some more on that, from a Veeam perspective we speak to a lot of SMBs through to the biggest of Enterprises and I think you are right the first wave of Kubernetes and Containers (not exclusive) were the enterprise, for me my first conversations were with the finance sector then retail and manufacturing. 

But for small and medium-sized businesses (SMBs) where they may not have the necessary resources to effectively utilise Kubernetes. Firstly, for smaller projects, Kubernetes may be unnecessary and impractical to implement. Additionally, SMBs may struggle to enforce Kubernetes due to the limited skills and resources available.

So whilst large enterprises have mostly successfully deployed Kubernetes, small-to-medium businesses (SMBs) face various challenges. One of the most significant obstacles is a lack of skilled individuals. Unlike larger organisations that can invest in DevOps and knowledge-sharing programs, smaller companies often lack the necessary IT resources and a dedicated DevOps centre.

Another major barrier to mid-sized Kubernetes deployment is the complexity and instability of the system. In the past, Kubernetes solutions lacked maturity, but there have been significant improvements in recent years. For example, the Cloud Native Computing Foundation (CNCF) has played a crucial role in standardizing APIs and creating shared models for managing container orchestration.

This is why as Kubernetes releases 3 times a year we have a continued enhancement train to this complexity and feature set. I have also spoken to so many individuals that are just dead against Kubernetes, Cloud-Native and DevOps be it through not wanting to enhance their skill set or not wanting to believe that their efforts around learning virtualisation were too diverse now into other areas. 

I think we also have a maturity of Kubernetes coming up thick and fast, 

Kubernetes initially served as a tool for orchestrating containers and applications (Which is how I am even still positioning when speaking about it at a 101 level. However, over the last five years, it has evolved into a hybrid multi-cloud control plane that can orchestrate modern infrastructure. Its transformation into a universal control plane for storage, computing, and networking. This is where I hear people calling it the Cloud Operating System. (Can run anywhere, on anything) 

I feel like that could have been a section on next week's roundup. 

Userlevel 7
Badge +17

Good summary Michael! So, are you seeing SMBs employing k8s, or not so much mostly because of lack of expertise and/or complexity, or both?

Userlevel 7
Badge +6

Yes, I am seeing SMBs using Kubernetes, not all and nowhere a majority but there are some. The biggest reason for this adoption that I have come across is Kubernetes offers improved automation and self-service features, allowing operators to manage infrastructure as code with greater efficiency. With these capabilities, engineers can provision infrastructure without relying on hardware specialists. For instance, storage and networking management required significantly more effort in the past, but Kubernetes-native automated backup solutions now make it possible to maintain high availability across multiple zones. 

Userlevel 7
Badge +17

I guess it just depends on the business and their worker expertise then? Makes sense. Thanks. 

Userlevel 7
Badge +6

Exactly. You must have seen the same when virtualisation was being adopted. Not everyone jumped in till very late on. 

Userlevel 7
Badge +17

Sure, but this is a whole different beast. Eventually it may prove to be similar. Time will tell... 

Appreciate the info Michael. 

Userlevel 6
Badge +3

When I explain Kubernetes to people, I always say it's good for them to know about it, but it's not always the best choice. You did a great job summarizing everything, and I might use your article as a reference for my upcoming KubeHuddle presentation.😆

Comment