What are containers, why are they all the rage in IT, and how is the Cloud the perfect place for containers to live? One of the things I enjoy watching on YouTube in the evening hours is Shark Tank. If you’re unfamiliar, the show is about entrepreneurs who come and pitch their companies to five investors to try to secure an investment. I enjoy watching the alpha personality investors outwitting one another for the best possible deals and hearing the cunning responses from the pitchers that often dance on the borders of deceit.
It puts a smile on my face when an entrepreneur pitches an ingenious invention that solves a familiar problem and the words that so often complement the moment are “it’s that simple”. That was my reaction when I finally saw a container running an app that I needed – “it’s that simple”. So let’s dive into why containers, in my opinion, are absolutely essential for cloud-native scalable businesses.
The perfect office
Let’s imagine that InstaCloud Ltd just moved into a new office building in town. They have several teams that each get to work in one of the eight rooms that fill the floor. Everyone is excited about the new space and things look really good. But it doesn’t take long until HR’s mailbox is starting to see some activity.
- The Marketing team complained that the windows let in too little light for their team, so they wanted to change the ceiling lights across the floor. The QA team mentioned that the food being served could be better. Sales mentioned that the temperature should drop a couple of degrees for the whole floor, as it was centrally controlled, and they needed it lower to help with the cold calling.
- The Development team complained that it wasn’t fair that every employee was issued only 1 monitor, as they would be more productive with 2.
- The Media team complained that their computers were a bit on the slow side. And of course, the problems between departments in the different rooms began to lead to frustration between teams, lots of wasted time and eventually the productivity of the whole organization took a serious dive.
What is the solution?
How can we resolve the tensions between departments? Well, the first thing is to make sure that we cater to the needs of each team independently and create solutions that will enable the teams to make independent decisions for their own rooms. In this way, each team can control the temperature in their room, the lighting they use, the number of screens they need, and the computers that they run (the food thing might be a bit hard to solve, but you can’t have everything!).
This analogy, although a bit long, is comparable to the frustration that many IT teams face as they attempt to upgrade and maintain business software. As the company’s software grows and becomes more complex, it’s individual software components become increasingly codependent on the underlying resources to keep it running. If these dependencies are changed, it can have unpredictable effects on all the applications that rely on them. Just like a change in the office temperature might help the Sales team but can be very unpleasant for the Development team in another room.
Let’s say each individual application needs a supporting ‘software X’ to work. Not all the applications need the same version of ‘software X’ because some departments use version 1 or 1.2 or 3.4.2 etc. This is a problem if there is only one version of ‘software X’ available for all the applications.
How do containers work?
Think of a container as an individual room in the office building that has been isolated from all the other rooms. This container houses a single application along with everything it needs to do its job. By placing apps in containers, each app can make use of the specific version of ‘software X’ that it needs and eventually solves a lot of problems.
By using containers, an organization can limit unfortunate dependability conflicts between applications and thus is free to service them on a per-app basis. Making life much easier for both Dev and Ops teams.
Cloud with Caleb
Apart from this interdependability, there are a lot of other benefits that we will discuss in next Caleb’s Cloud Update. Caleb Munyasya is a junior DevOps Consultant working in the Netherlands. In Cloud with Caleb he does a deepdive into different cloud topics. Caleb wants to understand how different tools, from Azure to OpenShift, interact and how the DevOps culture can revitalize how we work – and of course automate as much as possible. He started his own webpage with the blog “Cloud with Caleb”. Take a look if you’re interested.