Hello Mr. Docker!!!! In which Container?

Containers are every where, oil containers, water containers, milk containers and used in all the industries. If you talk about container with a cargo industry expert, he will imagine container as a shipment container transported via ship, truck, and trains, handled via cranes. Similar with Information Technology Architect or professionals, we know what container means and it’s existing from last 16+ years or so in IT industry. The question is, today why everyone is talking about containers in IT world. What has changed? What sudden self-interest does everyone see in container, which was lying dormant in thick IT manuals from last many years?
May sound little exaggeration, but I will relate this to what Mr. Albert Einstein did to scientific interest of common people, his contribution and associated success introduced and popularized science to masses in quick span of time. Before Einstein, there were significant scientific contributions from eminent people, still the right timing and Einstein’s powerful concepts explained with great simplicity helped bring science to mainstream education curriculum in most of the countries. In the IT world, Mr. Docker is on similar path. Everyone and their pet heard about Mr. Docker, simply because it’s on the path to make most of it of container technology. For any meaningful change, one needs both, potential and fertile ground of right timing. For Mr. Docker, increased complexity of the IT world, timely research in Linux container (LXC) technology and its potential to use container smartly to contribute in DevOps has made containers and Docker terms to get popularized in quick span of time.
Traditionally we used to have computers (technically call it as server) on which we used to run an operating system to play games, watch videos, do tasks etc. Then as the IT world expanded, professionals make it complicated by installing multiple operating systems on single computer/server and then redirecting the video, keyboard, network, cd-rom etc in and out to particular operating system or instance. Big companies labelled this ability as virtualization and now it’s an industry itself within IT industry. Docker is running in a Linux operating system virtual machine (one of the operating system running on server out of many operating systems) which uses the Linux LXC container technology to run multiple applications in isolation with possible handshake among themselves. So it’s simple, initially single computer/server, then multiple operating systems within server, then within a single operating system many isolated applications running inside their respective containers. Ok, so what’s big deal? Why it’s becoming so popular? The answer is that it solves a range of business problems in addition to technical challenges which were a pain in the neck of IT industry.
IT is not like a cricket match where the excitement lies in different pitch conditions, weather, atmosphere etc. In IT, we need to have an identical environment to run complicated software’s, even a fraction percentage of deviation can break the application. This includes operating system, database clients, drivers, network settings, intertwined parameters, system patches, code base, and routing data etc which have to be identical in development, integration, system testing, user testing, mirror and production environment. Docker is capable of creating an image of running software once and then run/trigger this software on any machine in a fraction of a second in a container. This is simplifying configuration, decoupling environment and infrastructure from the application.
 Mr. Docker religion is based on UNIX philosophy, “do one thing, and do it well”. So with Docker deploy smaller focused application build with composition and configuration and also enable and control their interaction to augment capability of single running application (pipes in UNIX). Mr. Docker follows Java, “write once, run anywhere”. It expanded that concept beyond code to include server configuration, environment, parameter files, OS, binaries etc. Mr. Docker learned from Gits, where just instead of code, one can track changes in systems with the help of layered file system, versioning (the simplicity with which one can track, revert, view changes is amazing) in addition to ultra-fast container start-ups (in millionth of second), convenient and simplified image building.
 And Mr. Docker is not isolated, there is a big community of his fans, developers, architects, operation guys. There are ready to go generic images (base image) which can be instantiated in containers for thousands of popular applications like Oracle, Ubuntu, Mongo, and Jenkins etc which can be extended to specific needs. He is inclined towards open source system, unlike mainframe or propriety stuff, ready to mingle, adopt, adapt with new tools and technology which suits his objective of simplifying the IT challenges. He offers great isolation, other application are not aware of the existence of other applications. Now our development environment can be identical (or at least matching to great extent) with production development. Switching application (or container) is a millisecond job. Security can be enhanced by running applications on various containers, each container only has the access to the ports and files exposed by other containers. There is also risk isolation in the sense that some malodorous script running on one container won’t affect other.
 Amidst such hype and over enthusiasm, we also need to acknowledge that everything is not right with Mr. Right. Mr. Docker plays well with Linux, it supports other operating systems like Windows, but that’s not something many deployments or development teams can vouch for. Effectively utilizing and managing large number of containers, particularly with clustering containers could be challenging, so Mr. Docker might need assistants like Apache Mesos, Google Kubernetes etc tools. Layered files can make your deployment, build and development complicated if not controlled and managed. One needs to learn new etiquettes and language (syntax, commands) to get along with Mr. Docker. There could be conflict of interest with license software’s. The list will go on…No tool or personality is flawless. Critics had not spared even Mahatma Gandhi or Mr. Mandela, however their contribution towards humanity, freedom movements and non-violence will stay intact in human history. We don’t know for how long Mr. Docker will remain in limelight and which other tool will surpass Dockers growth in future, but its contribution to popularize the container technology and to take it to development and deployment community will remembered by IT community.
 I was stunned when my 10 yeaContainers are every where, oil containers, water containers, milk containers and used in all the industries. If you talk about container with a cargo industry expert, he will imagine container as a shipment container transported via ship, truck, and trains, handled via cranes. Similar with Information Technology Architect or professionals, we know what container means and it’s existing from last 16+ years or so in IT industry. The question is, today why everyone is talking about containers in IT world. What has changed? What sudden self-interest does everyone see in container, which was lying dormant in thick IT manuals from last many years?
May sound little exaggeration, but I will relate this to what Mr. Albert Einstein did to scientific interest of common people, his contribution and associated success introduced and popularized science to masses in quick span of time. Before Einstein, there were significant scientific contributions from eminent people, still the right timing and Einstein’s powerful concepts explained with great simplicity helped bring science to mainstream education curriculum in most of the countries. In the IT world, Mr. Docker is on similar path. Everyone and their pet heard about Mr. Docker, simply because it’s on the path to make most of it of container technology. For any meaningful change, one needs both, potential and fertile ground of right timing. For Mr. Docker, increased complexity of the IT world, timely research in Linux container (LXC) technology and its potential to use container smartly to contribute in DevOps has made containers and Docker terms to get popularized in quick span of time.
Traditionally we used to have computers (technically call it as server) on which we used to run an operating system to play games, watch videos, do tasks etc. Then as the IT world expanded, professionals make it complicated by installing multiple operating systems on single computer/server and then redirecting the video, keyboard, network, cd-rom etc in and out to particular operating system or instance. Big companies labelled this ability as virtualization and now it’s an industry itself within IT industry. Docker is running in a Linux operating system virtual machine (one of the operating system running on server out of many operating systems) which uses the Linux LXC container technology to run multiple applications in isolation with possible handshake among themselves. So it’s simple, initially single computer/server, then multiple operating systems within server, then within a single operating system many isolated applications running inside their respective containers. Ok, so what’s big deal? Why it’s becoming so popular? The answer is that it solves a range of business problems in addition to technical challenges which were a pain in the neck of IT industry.
IT is not like a cricket match where the excitement lies in different pitch conditions, weather, atmosphere etc. In IT, we need to have an identical environment to run complicated software’s, even a fraction percentage of deviation can break the application. This includes operating system, database clients, drivers, network settings, intertwined parameters, system patches, code base, and routing data etc which have to be identical in development, integration, system testing, user testing, mirror and production environment. Docker is capable of creating an image of running software once and then run/trigger this software on any machine in a fraction of a second in a container. This is simplifying configuration, decoupling environment and infrastructure from the application.
 Mr. Docker religion is based on UNIX philosophy, “do one thing, and do it well”. So with Docker deploy smaller focused application build with composition and configuration and also enable and control their interaction to augment capability of single running application (pipes in UNIX). Mr. Docker follows Java, “write once, run anywhere”. It expanded that concept beyond code to include server configuration, environment, parameter files, OS, binaries etc. Mr. Docker learned from Gits, where just instead of code, one can track changes in systems with the help of layered file system, versioning (the simplicity with which one can track, revert, view changes is amazing) in addition to ultra-fast container start-ups (in millionth of second), convenient and simplified image building.
 And Mr. Docker is not isolated, there is a big community of his fans, developers, architects, operation guys. There are ready to go generic images (base image) which can be instantiated in containers for thousands of popular applications like Oracle, Ubuntu, Mongo, and Jenkins etc which can be extended to specific needs. He is inclined towards open source system, unlike mainframe or propriety stuff, ready to mingle, adopt, adapt with new tools and technology which suits his objective of simplifying the IT challenges. He offers great isolation, other application are not aware of the existence of other applications. Now our development environment can be identical (or at least matching to great extent) with production development. Switching application (or container) is a millisecond job. Security can be enhanced by running applications on various containers, each container only has the access to the ports and files exposed by other containers. There is also risk isolation in the sense that some malodorous script running on one container won’t affect other.
 Amidst such hype and over enthusiasm, we also need to acknowledge that everything is not right with Mr. Right. Mr. Docker plays well with Linux, it supports other operating systems like Windows, but that’s not something many deployments or development teams can vouch for. Effectively utilizing and managing large number of containers, particularly with clustering containers could be challenging, so Mr. Docker might need assistants like Apache Mesos, Google Kubernetes etc tools. Layered files can make your deployment, build and development complicated if not controlled and managed. One needs to learn new etiquettes and language (syntax, commands) to get along with Mr. Docker. There could be conflict of interest with license software’s. The list will go on…No tool or personality is flawless. Critics had not spared even Mahatma Gandhi or Mr. Mandela, however their contribution towards humanity, freedom movements and non-violence will stay intact in human history. We don’t know for how long Mr. Docker will remain in limelight and which other tool will surpass Dockers growth in future, but its contribution to popularize the container technology and to take it to development and deployment community will remembered by IT community.
I was stunned when my 10 years old daughter asked me if our computer have Java. I asked, what happened, she replied that her friend is not able to play games on her computer because her dad told that they need to put Java in their computer. This is proof that Java has reached to the masses. Virtualization has become mandatory in all the organizations IT infrastructure and operation procedure, including all cloud offering. The simplicity, user friendliness and agility Mr. Docker bought to container technology for critical IT activities that in coming years containerization will further evolve and will become (or started becoming) a part of daily activities of deployment/operational and development teams. There is no surprise that people call Mr. Docker hotter than hot, based on my experience I will call him a cool guy having great utility, simplicity and agility. So in some of your meeting don’t get surprised when some Manager or Architect asking for funding with CTO/CEO/CXO for Docker deployment, in meeting CXO might comment that “…so, how confident are you that this will go in production in the next 3-4 years?”. On which they will suggest …”…yes Sir, it will go live in a couple of months or at the most by this year-end…”  It’s a great to see that new technologies is being implemented so fast, that too in financial industry. All credits to Mr. Docker, to popularize and to pull containerization from IT manuals to day-to-day life of IT folks to solve their challenges. Well done Sir, so far…

Comments

Popular posts from this blog

Controlling Adruino devices using MQTT

Business Strategy or just Mainframe Migration?