The rise of technology called containers, popularized by the company Docker, has helped spread virtualization of apps by simplifying building VM images for deployment. This approach lets a developer package their app or micro service with everything needed to run, so it works the same way the development sandbox as it does in Amazon's or Microsoft's cloud. While Docker's containers provide the tools for making code portable, developers needed a way to coordinate these containers to work with each other across servers and clouds, at massive scales — and Kubernetes, an open-source software project that started at Google, is the most popular approach. It has exploded in popularity, now being used by at more than 54% of the Fortune 500.
Kubernetes (an ancient Greek word for "pilot.”) was started by a group of Google engineers based on an internal project to help manage the search giant's massive infrastructure, but it is now an independent open source project that anyone can use or contribute to — and it has grown faster than the creators ever imagined. In a nutshell, Kubernetes helps developers run their applications at massive scales, taking advantage of lessons learned at Google. Because Kubernetes is open source, the code can be used, downloaded, or modified by anyone for free.
Just in the last year, we've seen some major acquisitions that signal how seriously tech giants are now taking Kubernetes: IBM spent $34 billion to purchase Red Hat; VMware's acquired Heptio. Both these moves have a lot to do with Kubernetes.
There are three typical ways of using Kubernetes: most popular is to run it from a major cloud provider like Amazon, Microsoft or Google, all of whom offer hosted Kubernetes services. Or, enterprises can buy a customized, fine-tuned version of Kubernetes from a company like VMware's Heptio to install on its own servers. The third way is to just download and run the free project and create an environment in a hosted private cloud or datacenter.
Kubernetes is able to manage all these clusters at once, and keep the code running continuously even as it organizes and re-organizes these containers on the fly. The end result is that developers can build, test, host and run large-scale applications on the cloud, with the Kubernetes software doing much to keep everything running smoothly.
As an added benefit, Kubernetes users get one more key advantage from all of this: Because Kubernetes runs on just about any kind of server, and most of the major cloud platforms, it's easier for users to take their application and move it from one to the other, or just write their software to run on multiple clouds at once.
Read more here...