In Kubernetes is a dump truck, I talked about how a software may be elegant for the issue it was designed to unravel—when you discover ways to use it. In half 2 of this sequence, I am going somewhat deeper into the Kubernetes’ studying curve.
The journey to Kubernetes typically begins with operating one container on one host. You shortly uncover how straightforward it’s to run new variations of software program, how straightforward it’s to share that software program with others, and the way straightforward it’s for these customers to run it the best way you supposed.
But then you definitely want
It’s straightforward to fireplace up one internet server on port 80 with a container, however what occurs when you have to fireplace up a second container on port 80? What occurs if you find yourself constructing a manufacturing atmosphere and also you want the containerized internet server to fail over to a second host? The quick reply, in both case, is you need to transfer into container orchestration.
Inevitably, whenever you begin to deal with the 2 containers or two hosts downside, you will introduce complexity and, therefore, a studying curve. The two companies (a extra generalized model of a container) / two hosts downside has been round for a very long time and has at all times launched complexity.
Historically, this is able to have concerned load balancers, clustering software program, and even clustered file programs. Configuration logic for each service is embedded in each system (load balancers, cluster software program, and file programs). Running 60 or 70 companies, clustered, behind load balancers is complicated. Adding one other new service can be complicated. Worse, decommissioning a service is a nightmare. Thinking again on my days of troubleshooting manufacturing MySQL and Apache servers with logic embedded in three, 4, or 5 completely different locations, all in several codecs, nonetheless makes my head damage.
Kubernetes elegantly solves all these issues with one piece of software program:
- Two companies (containers): Check
- Two servers (excessive availability): Check
- Single supply of configuration: Check
- Standard configuration format: Check
- Networking: Check
- Storage: Check
- Dependencies (what companies speak to what databases): Check
- Easy provisioning: Check
- Easy de-provisioning: Check (maybe Kubernetes’ most highly effective piece)
Wait, it is beginning to appear like Kubernetes is fairly elegant and fairly highly effective. It is. You can mannequin a complete miniature IT universe in Kubernetes.
So sure, there’s a studying curve when beginning to use a large dump truck (or any skilled tools). There’s additionally a studying curve to make use of Kubernetes, but it surely’s price it as a result of you’ll be able to resolve so many issues with one software. If you’re apprehensive in regards to the studying curve, suppose by means of all of the underlying networking, storage, and safety issues in IT infrastructure and envision their options at present—they don’t seem to be simpler. Especially whenever you introduce increasingly companies, quicker and quicker. Velocity is the purpose these days, so give particular consideration to the provisioning and de-provisioning downside.
But do not confuse the educational curve for constructing or equipping Kubernetes (choosing the right mud flaps to your dump truck may be laborious, LOL) with the educational curve for utilizing it. Learning to construct your personal Kubernetes with so many alternative selections at so many alternative layers (container engine, logging, monitoring, service mesh, storage, networking), after which sustaining up to date alternatives of every element each six months, won’t be definitely worth the funding—however studying to make use of it’s completely price it.
I eat, sleep, and breathe Kubernetes and containers daily, and even I battle to maintain monitor of all the main new tasks introduced actually virtually daily. But there is not a day that I am not excited in regards to the operational advantages of getting a single software to mannequin a complete IT miniverse. Also, bear in mind Kubernetes has matured a ton and can proceed to take action. Like Linux and OpenStack earlier than it, the interfaces and de facto tasks at every layer will mature and turn into simpler to pick.
In the third article on this sequence, I am going to dig into what you have to know earlier than you drive your Kubernetes “truck.”