If you owned a shipping company, you would probably need an ingenious system to send different categories of goods across the sea. For example, it would certainly be ill-advised to lump a live hippopotamus right next to a brand new Macbook Pro. Instead, you and your crew would likely have to pay close attention to the size and shape of goods, as well as the required provisions to keep them safe and stable during transport.
Much in the same way, the shift from monolithic applications to the separately managed components found in microservices has demanded an inventive approach to software deployment. Thankfully, however, just as the shipping industry was able to solve most cargo challenges when freight containers were standardised in the late 1960s, a powerful software container has quickly risen to definitive status in the programming world.
It is called Docker. At its core, the project allows developers to pack, distribute and manage multiple applications with all their required parts, such as different libraries and dependencies, into a single cohesive unit. While containers are not exactly a new concept in software development, Docker is a real game changer. Since hitting version 1.0 in 2014, the project has soared in popularity, doubling its users between 2015 and 2016 to become one of the fastest growing technologies in recent history. Today, it boasts the stamp of approval of large companies like Amazon, Microsoft and PayPal, and the trend shows no signs of waning. But just why is Docker so popular?
The technology’s meteoric rise is perhaps best explained by its exceptional return on investment. Unlike virtual machines (VMs), which emulate different operating systems and may also be used to join various applications on a single server, Docker containers make use of the same OS and kernel. This enables companies to run many more applications on old machines — potentially saving millions of pounds in hardware and electric expenses. Compared to VMs, Docker also offers superior performance and speed.
Concurrently, the project allows companies to ship software at a much faster rate, as developers are free to focus on new features instead of wasting their time on multiple coding languages and compatibility issues. And because Docker containers include all required dependencies, developers can be confident that their applications will run on any computer, infrastructure or cloud, regardless of otherwise problematic host settings.
In the scalability department, Docker also leaves nothing to be desired. Its included Swarm mode gives developers the ability to expand and manage container clusters across different machines or the cloud. To make this even easier, Google has developed a Docker-based solution called Kubernetes that covers all the needs of modern software architectures and even automates cluster operations. And as icing on the cake, the accompanying Docker Hub provides a convenient cloud-based platform with over 100,000 freely available containers, where developers the world over can share and test their applications without a hassle.
Software Planet Group have been using Docker since 2015 with great results. We love the project’s open source nature, as it places collaboration at the heart of containerisation and makes working with complex clusters a breeze. In fact, it was hardly surprising when last June, Docker’s enterprise edition was officially accepted into the UK Government’s G-Cloud 9 framework. Essentially, this means the government has cleared the way for the technology to be used by the country’s public sector — a phenomenal stamp of approval.
We believe Docker creates new possibilities to improve the development process by facilitating CI/CD practices, even in production environments that do not use the technology. Because of course, just as not everyone has a hippo to dispatch, software containers may not be right for every business.
No matter where you find yourself in your journey, SPG are here to meet your company along the way and deliver the solution that will take you further.