There are lot of talks about Docker/Container these days. If we take a look at companies like Facebook, Twitter, Uber, Lyft, AirBNB etc they are really changing face of business as well as IT operations. Let me put it this way – every time there is a Facebook update from user side all I need to do is click Update button and rest everything is taken care by itself.
With every new update there comes new features like Live Video, Smiles, new posting options etc. The real power behind all this is containerized application which makes it so agile that spinning up thousand instances within couple minute becomes possible.
Now imagine if similar power is given to an IT admin who can deploy hundred of vms and then run some scriptin mechanism to make vms production ready within couple of minutes – sounds like some fairy tale.. isn’t it…?
But the real question is What is Docker and being a vSphere admin why should I care about it….??
Remember ThinApp: Everyone of us must have used ThinApp or at least have heard of it in Windows/vSphere terminology. This is a way to package windows file into a portable format which can be run on any system without of the need to install it or making permanent changes to the registry. This gives a liberty to the end-user to install any application locally to their system and still consume all the benefits of it. Developers takes benefit of this functionality to run multiple versions of Browser in their system to test their web application on various web platforms.
OK, but What’s on Linux: Unlike Windows Linux doesn’t use the term ThinApp instead there are Containers and it isn’t used for end-user experience but for developing webscale applications. Here is the logical architecture of containerized application MySQL, we can see that on top of bare metal hardware is the running OS (Linux) and on top of it runs the Container Engine (LXC for Linux). Container engine contains the required binaries required to run application which are running on it. There is one-to-one mapping of binaries with container engine and overlying application.
Container could be a new Buzz in the market these days but it is in industry since last 17 years where first container was developed in year 2000 by FreeBSD Jails and since then it is constantly getting attention.
Is Docker different from Container…?
This is very tricky question and many a times Docker and Container terms are misinterpreted. Container are native to Linux and they use LXC (Linux Container) , they don’t require Docker to operate. However Docker is an open source project referenced to automate software deployments for container based application. Now the question comes in if LXC was already available then how did Docker become so popular? The answer is simple yet funny, not only one can create and deploy application using Docker but he can also upload the up-and-running images (called registry) to Docker Hub – a place where you can find any application which has been containerized. Anyone can push-or-pull images from this central place – it can be referenced to ios App Store or Android Play Store where multiple images are available and developer can download the image of their choice and spin up the application within minute. I hope now it makes some sense why Docker is becoming so popular amongst developers community.
Not to forget that not all applications can be run inside a container, but custom applications can be written so as they are container aware
I’m vSphere Admin and I don’t care about Docker…
Believe it or not but Docker is going to rule developer community if not tomorrow then maybe day after that. The simple reason for that is the rapid pace with which IT industry is moving these days. Ask this question to yourself if you have to deliver 100 or 200 virtual machines delivered to application team how much time you’re gonna need? Now post vm deployment there are tonnes of scripts which needs to be run to create the environment ready before the actual development can start on it. Now this becomes a bottleneck which can only be overcome if you have your application already containerized and all you need to do is spin-up 200 Containers which are managed by you same as virtual machines
What is VMware PhotonOS: VMware PhotonOS is an open source project solely delivered by VMware for developers to securely run, build and deploy cloud native applications (CNA) PhotonOS is carved out from Linux and it has minimal foot print of 300 MB and boot time as less as ~6 sec. It provides support for the most popular Linux container formats including Docker, rkt, and Garden from Pivotal. Being an open source project it is free to download from GitHub
Using PhotonOS customer can build their container based applications and it can seamlessly be managed via vSphere environment. It is done with the help of vSphere Integrated Container (aka VIC) where vSphere admin carves out a portion of a cluster for container provisioning, then we present the developer with the Docker API and they can run Docker commands to spin up containers.
From vSphere side what you see is a minimal VM which means you can still manage it exactly the same way ever since you have been managing your virtual machines.
Docker is Cool but what about Security..?
So far VMware has positioned itself to address this problem which is a conflict between developers who needs complete freedom of developing code and sharing it with community VS IT admin for whom security is number 1 priority. The idea is to use best from both the world, where on one side we need application agility to deploy hundreds of vms within a minute’s time and also get leverage of vSphere best in class features of vMotion, DRS, VVol and many more. This will give IT admins complete control of their infrastructure whereas freedom to developers to deploy code in their way.
However DockerHub is open-source community on internet so in order to cater security VMware has come up with Harbor which is similar to docker hub but can be deployed inside VMware private cloud and managed in similar way to upload or download images
Docker/VIC is just a small step towards this long journey of application containerization. There are customer who have started off with this journey and they are building their custom application to run Docker platform. vSphere 6.5 which is the latest release of VMware hypervisor is based on PhotonOS and is capable of handling traditional vm as well as Container
With this I end this blog… I hope it helps… till then Happy Reading….