Kubernetes on Azure: an Analysis
The increasingly-popular container model gets another cloud boost.
- By Dan Kusnetzky
Microsoft has made Kubernetes, the open source container cluster manager, available on its Azure public cloud. Kubernetes is designed to provide a "platform for automating deployment, scaling, and operations of application containers across clusters of hosts" by Google. The company is also making a preview available of its Windows Server Containers for "enterprise customers expressing strong interest in adopting and going into production with Windows Server Containers." Microsoft points out that it has been collaborating with Google on this technology since 2014.
What Is A Cluster?
As I mentioned in another article
, it was necessary in the early days of computing to address needs that were either beyond the capability of any technology available at that time or beyond the budget available.
Researchers, giving up and waiting for technological breakthroughs, harnessed together the power of more systems as a way to get the work done. They had to decompose either the algorithm or the data it was to process into smaller units, then implement them on a number of available systems.
Kubernetes is designed to support the same approach, just using containers as a method of segmenting applications so that their components can be executed on multiple systems. As mentioned in the earlier article, the hope was to trade off a bit of complexity to effectively address the needs of a given workload in a cost-effective fashion.
Dan's Take: Making Applications More Cloud-Friendly
This move is interesting because it provides Microsoft customers a way to segment applications into "services" or "application components" and have them execute in a cloud-based cluster environment.
This makes it possible for those applications to perform better by spreading the execution over as many hosts as necessary; be more highly available, since the failure of one of those hosts won't bring down the whole application; and better support "just in time" application development in a DevOps environment. Another benefit is that applications can scale up to support larger transaction volumes or scale down when the need isn't so great.
Although the idea of being able to harness together many low-cost computing systems together to tackle big jobs is appealing, this approach isn't for everyone or every task.
It's important to note that some tasks can easily be decomposed into independent processing units that can run on separate systems, but others can't. That usually is because each sub-task must wait for the data produced by other sub-tasks before it can begin its work.
Some tasks can be broken down into smaller, independent tasks easily. Each of the resultant independent tasks can be run on separate systems or processors. One of the goals for the use of containers -- also known as operating system virtualization and partitioning -- is to make it easier for developers to segment tasks and allow them to execute separately.
Will Microsoft offering Kubernetes on Azure make that service more popular? That isn't clear. What is clear is that Microsoft is attempting the address enterprise requirements that their cloud computing platform support applications segmented into services using containers as a vehicle.
Daniel Kusnetzky, a reformed software engineer and product manager, founded Kusnetzky Group LLC in 2006. He's literally written the book on virtualization and often comments on cloud computing, mobility and systems software. He has been a business unit manager at a hardware company and head of corporate marketing and strategy at a software company.