Docker, Containers and the “Application First” Revolution

 

KuDr42X_ITXghJhSInDZekNEF0jLt3NeVxtRye3tqco

As vBrisket’ers, I think we can confidently say that virtualization is the foundation of our community and the glue that holds us together.  More specifically, I think we can say that x86/Hypervisor based virtualization is the foundation/glue.  That being said, I find myself looking at some of the major advancements in “cloud” technologies and I start to question the typical thinking/approach to enterprise application deployment and design.  Hypervisor based technologies (VMware, Hyper-V, KVM, etc…) are responsible for a majority of the changes we have all come to know an love through the magic of hardware abstraction.  Yes, no worrying about failed hardware, reduced deployment costs and glorious security… a virtual panacea.  No way to improve on any of this, right?

Well maybe… but then again if we didn’t question or continually seek improvement, a career in IT was a poor choice.

tl6a4

I think the best way to evaluate any established technology by asking the question “how can I improve on this?”. The folks that developed Docker believe they have done just that.  Docker is an container based virtualization technology that is designed to simplify application development, deployment and maintenance, enabling delivery to potentially any end client device.  “Ok I have heard that pitch from every major virtualization vendor on the planet… What makes containers/Docker so special?”.  Traditional hypervisor based virtualization platforms enable users to take the well known server operating systems and install them on emulated server hardware.  Conversely Docker containers share the same kernel.

 

HypervisorBasedVirt

 

 

ContainerBasedVirt

 

What’s a Container?

Containers are the products of operating system virtualization. They provide a lightweight virtual environment that groups and isolates a set of processes and resources such as memory, CPU, disk, etc., from the host and any other containers. The isolation guarantees that any processes inside the container cannot see any processes or resources outside the container.

So what’s the big deal here?

Well… by removing the hypervisor layer and having containers share a kernel, overhead required to deploy virtual containers is dramatically less than what it takes to deploy a VM. Additionally the light foot print of a container makes a containerized application extremely portable, you can ship your whole environment instead of just your application code (hence the logo, virtual containers were inspired by shipping containers. Pack it, ship it, done).  Now while containers/containerization may not be for everyone, there has been a major shift toward containerized applications and operating systems by many verticals in the enterprise space.  Banking/Financial, service providers and (no surprise here) even Google/Amazon have utilized virtual containers for quite some time now.

Why should I get ramped up with Docker/Virtual Containers?

Application developers look at Docker as the next great thing… but even If you are not an application developer or support application developers, there still may be some practical uses for containers in your environment.  Most major cloud providers such as RackSpace and Microsoft now offer docker.  This type of rapid growth and ease of access will most likely accelerate the propagation of Docker/containers across all business verticals.

Far for me to be the judge, like any other technology the best way to know how or if something applies to you or your environment is to become better aquatinted. The best way to do that is to demo and research it for yourself.

Getting started Here are some great links to get you kicked off:

Windows Users

https://docs.docker.com/windows/started/

Mac OSX and Linux

https://docs.docker.com/mac/started/

http://docs.docker.com/linux/started/

A great article from ServersForHackers.com

https://serversforhackers.com/getting-started-with-docker/

Since docker is open source there is a wealth of code and examples to get you going.

Deploying Docker on Ravello (Remember vExperts get 1000 hrs free a month, for everyone else it’s insanely cheap):

https://www.ravellosystems.com/blog/docker-containers-vm/

You can even deploy and test Docker on Raspberry PI (a $35 computer!):

http://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/

 

Finally, for all those infrastructure administrators that are hugging their ESXi hosts and Hyper-V clusters, remember the most important take away from all of this talking and thinking about new tech is; even if you can’t see how contianers/Docker my apply to your day to day operation that doesn’t mean there isn’t an application you are overlooking or that you may be asked to support.  If you hate the dreaded Shadow IT lurking about your company you have to meet the ever changing needs of your business to squash it.

Until next time 🙂

John Brescia – @JohnBrescia