![Containers just might change how we package our software](https://i0.wp.com/theaccidentalsuccessfulcio.com/wp-content/uploads/sites/4/2016/03/AccCIO-2218589271_f5b785692e_z.jpg?resize=150%2C150)
Image Credit: Sandor Volenszki
As the person with the CIO job, you’ve generally got a lot on your mind. You’ve got budget issues, staffing issues, working with other department issues and everything else that has to do with the importance of information technology. You really don’t have a lot of control over these things. However, there are some issues in your life that you’d like to feel that you do have control over. One such issue would be the quality of the software that your teams deliver. However, if you are like most of us, more often than you’d care to admit, all too often when your team ships new software out to the field, it doesn’t work correctly. Can’t someone do something about this for you?
Say Hello To Containers
If you are going to make your life better and get your software to work the first time that it gets delivered, then you are going to have to take a look at why you are having this problem in the first place. What I think that you are going to discover is that it’s not the quality of your software that is causing the problems. Consider this to be good news! Instead, what is causing your software to not work is that all of the various 3rd party pieces of software that your software needs to work are not being installed correctly. What this means is that when your software runs, it’s failing because it can’t get the inputs that it needs or deliver its output to the right piece of software.
The big problem that your team is facing is that they can get their software to run on their development laptops. However, when that code is then transferred to your production environment it has a nasty habit of breaking. In order for the software to operate correctly, the supporting software in the environment has to be identical to the software that was present when the software was developed. The problem might be bigger than just incompatible versions of software. The network topology might be different, or the security policies and storage might be different. The software that your team has created has to run on it.
The solution to this problem is to use what are being called “containers”. So what is a container? A container consists of an entire software runtime environment: an application, plus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package. By “containerizing” the application platform and its dependencies, differences in OS distributions and underlying infrastructure are prevented from happening.
Why Containers Are Such A Big Deal
To the person in the CIO position, when you first hear about containers they may sound suspiciously a lot like what we just got done doing when we were dealing with vitualization. With virtualization technology, the package that can be passed around is a virtual machine and it includes an entire operating system as well as the application. By contrast each container shares the operating system kernel with the other containers. Shared parts of the operating system are read only, while each container has its own mount (i.e., a way to access the container) for writing. That means that containers are much more lightweight and use far fewer resources than virtual machines.
There are some other key differences between containers and virtual machines. A container may only require tens of megabytes, whereas a virtual machine with its own entire operating system may require several gigabytes. Because of this, a single server can host far more containers than virtual machines. Additionally, virtual machines may take several minutes to boot up their operating systems and begin running the applications they host, containerized applications can be started almost instantly.
Although containers have a lot of advantages, there is a downside to using them. People who have studied containers have come away believing that containers are not as secure as virtual machines. This reason is, if there’s a vulnerability in the operating system kernel, it could provide a way in to the containers that are sharing it That’s also true with a hypervisor, but since a hypervisor provides far less functionality than a typical Linux kernel it presents a much smaller attack surface. Containers cannot generally provide the same level of isolation as hardware virtualization.
What All Of This Means For You
One of the biggest challenges of being a CIO is that you have a responsibility to stay on top of new technologies so that you can determine what direction to move your company in. Right now most CIOs are dealing with the problem of software that works correctly in a development environment not working when it is being deployed into production. The solution to this problem is containers.
Containers are an entire software runtime environment: an application, plus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package. This allows a single environment to be replicated over and over again. Containers are also very “light weight” and don’t take up a great deal of memory and so many containers can be loaded onto a single server.
Clearly containers are a new technology that has arrived. They offer the promise of being able to automate the deployment of software which up until now has been a very manual task. This should serve to reduce the number of errors that IT shops see when their software moves from development to production. Take a careful look at containers and determine if this might be a better way to ship your software.
– Dr. Jim Anderson
Blue Elephant Consulting –
Your Source For Real World IT Department Leadership Skills™
Question For You: Do you think the container security issues should hold back your deployment of containers in your IT shop?
Click here to get automatic updates when The Accidental Successful CIO Blog is updated.
P.S.: Free subscriptions to The Accidental Successful CIO Newsletter are now available. Learn what you need to know to do the job. Subscribe now: Click Here!
What We’ll Be Talking About Next Time
As CIOs because of the importance of information technology it can be all too easy for us to put our heads down and focus on the issues that are right in front of us: securing the network, upgrading workstations, and building new data centers. However, one thing that can be just a little bit too easy to overlook is that there may be a black swan in our midst. A black swan is a rare event that could change everything – I’m talking about a disruption in the world of IT.