Containers: The pop-up retail of IT?
Today, most individuals can’t live without their connected applications– whether it’s to exchange messages, participate on social media or even spend time playing games.
As technology evolves, apps that were previously not taken into account have become essential to everyday life. The reasons for this growth vary, but one of the most relevant and unknown catalysts is the development of cloud infrastructures which abstract the underlying hardware from the software, providing improved scalability, availability and resiliency.
In order to more easily deploy, manage and scale applications and services, container strategies have been increasingly adopted because they are aligned with agile software methods, especially within DevOps methodology.
To understand container technology, let’s use an analogy that most people are familiar with: pop-up retail shops.
Understanding the concept of containers
Pop-up retail, also known as a pop-up store or flash retailing, is a trend of opening short-term sales spaces. At first look, pop-ups designed to sell clothing and accessories have nothing to do with Information Technology. Not exactly – in fact, pop-up shops work similarly to containers in IT.
Usually, there is one shop dedicated to a certain style of clothing or brand. Of course, you may find different pop-ups selling items such as trendy eyewear, business attire, workout gear, jewellery, bathing suits, alongside others in the same place.
Take a trendy eyewear pop-up shop for example or the Warby Parker’s of the world. We automatically understand the items that will be sold in this store. In this case, the basic inputs needed to run a store such as Warby Parker include a variety of frames, prescription lenses, eyeglasses and sunglasses for both men and women and helpful staff.
For the store to be successful, the only resources they need are employees to fit frames and eyeglass prescriptions. There’s no reason to stock other items.
This is similar to how container technology works: when building containers, the idea is to include exactly the technology (OS components, SW, APIs, etc) needed to execute the specific function that container is being designed to do – no more, and no less.
This way, the specific operation is optimized to run with the smallest footprint. At the same time, because a container includes everything it needs to run, it’s possible to move a container to different servers and achieve the same functionality.
Similarly, a pop-up retail store can be on an avenue at a large city in one day, then at a music festival in another city the next day. Internally, the content and supporting resources are unchanged.
But externally, there are resources that containers must consume from their surrounding environment. In the case of a retail pop-up, it may consume electricity from the location. For containers, it’s the surrounding resource and common libraries offered by the running system kernel.
YOU MIGHT LIKE
The first steps to improving container security
Scalability and orchestration
The concept of scalability is a prerequisite for any application these days, as is availability. Ensuring continuous delivery of new or updated services or applications with quality is a must.
Using modern container management platforms, containerized applications can be monitored and individual containers or services can automatically be scaled or moved to ensure the applications continue to be available— just like any new pop-up shop, which needs to ensure that the eyewear is always available for sale.
There are several tools for orchestrating containers— the most commonly used today being Kubernetes. One of the main functions of Kubernetes is to ensure that, if the demand on an application is increased, then more containers are deployed or containers are moved to ensure that new demand is met and the application availability is not impacted.
“If something can go wrong, it will go wrong.” Reflecting on Murphy’s law, what can we think that could go wrong in the case of a pop-up shop? Running out of frames to sell, for example, means closing the shop. In the case of a container, this would mean that the application no longer responds.
In such cases, Kubernetes removes the container that stopped responding and deploys a new one to perform the same service, ensuring that new requests go to this newly deployed container and service availability is not impacted.
Building cloud-native applications using containers enables organizations to improve time to market for new or updated services with an end goal of meeting their customers’ expectations, just like pop-up retailers move their shops around and open new ones to deliver their services to customers in new locations.
This article was contributed by Jennifer Kotzen, Senior Product Marketing Manager at SUSE.