The benefits and use cases of containers

Using containers to address challenges around the deployment of application code

IT continues to be under intense pressure to increase agility and speed up delivery of new functionality to the lines of business. A particular point of pressure is the deployment of new or enhanced application code at the frequency and immediacy demanded by typical digital transformation. Under the covers, this problem is not simple, and it is compounded by infrastructure challenges. Challenges like how long it takes to provide a platform to the development team or how difficult it is to build a test system which emulates the production environment adequately. Cue containers!


What is a container?

Containers are lightweight software components that bundle the application, its dependencies, and its configuration in a single image, running in isolated user environments on a traditional operating system on a traditional server or in a virtualized environment.

Why are containers important?

Containerization is one of the latest developments in the evolution of cloud computing. Many organizations, both large and small, are looking at containers as a means to improve application life-cycle management through capabilities such as continuous integration and continuous delivery. Also, certain implementations of containers conform to the principles of open source, which is appealing to organizations wary of being locked-in to a specific vendor.

Containers are also the foundation of a private cloud and, just like the early days of cloud computing, are becoming a game changer for many organizations. Private cloud becomes the platform of choice to deliver the security and control required while simultaneously enabling the consumption of multiple cloud services. This is typical of situations where organizations are running both existing application workloads and new application workloads in the cloud.

The benefits of containerization

Containerization of applications brings many benefits, including the following

  • Portability between different platforms and clouds—it’s truly write once, run anywhere.
  • Efficiency through using far fewer resources than VMs and delivering higher utilization of compute resources—see "Containers vs. VMs: What's the difference?" for a full comparison.
  • Agility that allows developers to integrate with their existing DevOps environment.
  • Higher speed in the delivery of enhancements. Containerizing monolithic applications using microservices helps development teams create functionality with its own life cycle and scaling policies.
  • Improved security by isolating applications from the host system and from each other.
  • Faster app start-up and easier scaling.
  • Flexibility to work on virtualized infrastructures or on bare metal servers
  • Easier management since install, upgrade, and rollback processes are built into the Kubernetes platform.

Use cases

  • Containers help to satisfy three key use cases that reflect what enterprises require to run their applications in the cloud:
  • Modernize your existing applications.
  • Create new cloud native enterprise applications.
  • Open your data center to work with cloud services.

Challenges of containerization

Having recognized that containers can bring real benefit to both developers and infrastructure and operations teams, organizations large and small are exploring containerization. As the container footprint increases, it introduces new challenges for Enterprise IT. These include the following:

  • Designing and maintaining templates for the containers
  • Adapting/expanding existing governance models and practices
  • Conforming to security policies and standards
  • Integrating with the existing DevOps environment
  • Selecting the right open source tools from the hundreds available
  • New skills or knowledge to manage the new containerized environment

The above challenges are, of course, exacerbated by either a lack of skills or insufficient resources with such skills. To address these, Gsoft also provides managed container services that allow our clients to focus on building their applications and while letting us integrate with the existing IT infrastructure and manage the stack.