There are few things that have impacted our daily behaviours as much as technology and similarly, there are few things that truly impact the technology ecosystem. 

In the same way devices and machine learning have changed our lives, containers are widely acknowledged as the disruptor of technology and belong to a group referred to as the future of compute, alongside AI, DevOps and cloud native. 

Container technology can be considered the department store of solutions: it packages everything up into one neat, consistent and reliable space making things easier and quicker. 

Containers enable applications to run regardless of the operating system or infrastructure environment by keeping everything a service needs to run – system tools, runtime, code, system libraries –  in one place, creating a portable, standalone, executable package. 

In this 101 we’ll explore the benefits of containers and why they’re a vital part of any ecosystem. 

 

What is a container?

A container is a standard unit of software that packages up code and it’s dependencies, including its own operating system needs.

A container image is a standalone package that contains everything you need to run that unit of software (excluding any external dependencies)  – system tools, code, runtime, settings, etc. 

Virtualisation technology enabled hypervisor software to split servers enabling it to host more than one operating system – which in turn provided an opportunity for container technology to create even more room for disruption by putting each app into its own container, and multiple containers to run on a single OS. The outcome? Increased efficiency across servers and faster deployment of apps. 

Source: https://www.docker.com/resources/what-container

What are the benefits of containers?

There are numerous benefits to container technology, here’s a few: 

  • Cost-effective: Containers enable more efficient use of the underlying CPU. They enable more granular control of how we consume the underlying compute resources. Typically this means they can easily scale up and down with demand, freeing up CPU and memory costs when not needed.
  • Immutable: Meaning we can package software up along with everything the software needs to run and know when we deploy it through our path to production, it will behave consistently across all our environments.
  • Portable: As mentioned above, containers keep all of the dependencies and configurations in one place, making it easy to move between environments.
  • Stability: Containers provide a predictable, stable environment, where CPU/memory is optimised and code is abstracted from infrastructure for portability.
  • Simplicity:  By doing the basics really well, containers make infrastructure easier because there’s less to manage. 
  • Pace: Containers unlock modern architecture – this enables developers to break applications into microservices. This can speed up development and be scaled individually when deployed.

What are the challenges of containers?

If there are pros you’ve got to have cons and although there aren’t huge downsides (like security or lack of adoption) these are things to consider. 

  • Like every relatively new technology, you need experienced people to run the show and who know how to work within containerised environments. Teams may need to transition to a new way of working, training will be required and a whole new skill set developed. Adjustment and changes will need to be factored into any planning. 
  • As easy and simple as it sounds, not every app is able to be containerised and much like a square peg and a round hole, attempting to make this work could prove costly and a resource drag. 
  • We’ve said this many times in previous blogs, but not every new technology is a silver bullet and the same applies to containers. Sure, the list of benefits is long, however a deep understanding of what you require, what will and won’t work, time frames and resources at your disposal is a good place to start.

When do you need containers – are they the best option?

If you’re looking to build from scratch, want to apply a microservices-based architecture or are looking for a build-once-deploy-anywhere solution, then container technology is a great option for you. A worthwhile exercise would be considering your needs and the needs of the business – a RAM hungry application would need to be reconfigured – applications that are resource heavy may not be the best candidates for container technology. 

Want to learn more? We have extensive experience in designing container platform solutions and providing 360 guidance that meets the needs of your business. If you’d like to talk to our team at ClearPoint about container technology and how it could change the game for your organisations, contact us today. Keep an eye out for our next blog on containers where we explore how to implement containerisation within an organisation.