Contain Yourself!

So what exactly is a container and what is all the fuss about? Well, it's not a Tupperware Party that's for sure!

Read Time: 5 Mins

pexels-photo-122164.jpeg

What is a Container and do I need them?

Containers are a solution to the problem of how to get software to run reliably when moved from one computing environment to another. This could be from a developer's laptop to a test environment, from a staging environment into production, and perhaps from a physical machine in a data center to a virtual machine in a private or public cloud.

Instead of shipping a full operating system and your software, containers all you to pack your code and its dependencies so that it can run anywhere.  As containers they are usually pretty small, you can pack lots of containers onto a single computer.

 Image:  TechCrunch

Image: TechCrunch

The launch of Docker in 2013 jump started a revolution in application development - bringing software containers to the masses.

Containerized code has proven its appeal to companies because it allows them to run both legacy and new applications on modern infrastructure with trendy tooling. Containers allow software to be isolated from its surroundings to help reduce conflicts for software running on the same infrastructure.

 Image:  Docker

Image: Docker

Containers at Scale

This sounds great, but big companies will require a lot of containers, so focus is required on managing and orchestrating all of those virtualized bundles both on a technical and policy perspective .

Created by Google in 2014, Kubernetes is an IT management tool designed to simplify the scalability of workloads using containers and has become the de facto industry standard for orchestration.

Difference between containers and virtualization

A virtual machine simulates a whole computer running an operating system. Both the simulation of the computer and the large number of operating system instances require a lot of computing power. In contrast, Docker containers share only one operating system instance but have their own network interface and file system - significantly reducing the workload. . A process in a Docker container consumes as few resources as processes running directly on the operating system. This achieves an efficiency that dwarfs that of virtualization. Running hundreds of Docker containers on a laptop is just not an issue.

Are there other benefits?

The benefits don't stop there - containers solve another problem: installing software. Before products such as Docker, developers had to use tools like Chef or Puppet to install software in a repeatable and consistent manner.

Whereas containers use their own images  - an inert, immutable file that's essentially a snapshot of a container. The images are created by a script that includes every step of the installation from a bare server. Compared to an installation that hasn't been changed, the approach is much easier and guarantees a complete installation without any gaps. Behind the scenes, images use parts of other images. This saves disk space, and creating new images is incredibly fast because only the new parts are actually built.

Market Trends

Docker and Kubernetes are very much alive and have become indispensable in the microservices and continuous delivery world. Container technologies are even beginning to take over the legacy of virtualization because they are more lightweight and proven in complex cluster environments that are needed for demanding applications.

pexels-photo-325229.jpeg

Additionally, Docker Images make software installation reliable and easy and are a great alternative to traditional installation tools. Anyone who still relies on classic virtualization or classic tools for installing software, and has not yet looked at Docker, has ignored an important trend.

Find out more

Check out She Can Code Events listing to find conferences, training, MeetUps or events that have talks and workshops related to containerisation


#shecancode

Claire copy.jpg

Claire Donald is a Project & Program Manager with over 15 years’ experience delivering IT infrastructure and application projects using traditional, agile and continuous delivery methods. She has a high tolerance for ambiguity and has worked within fast paced and high-pressure environments, taking an entrepreneurial approach. Claire is currently completing an Executive MBA with Surrey Business School.

Follow Claire: LinkedIn | Twitter