Colocation is often associated with the old way of hosting applications. Companies would buy servers, host software directly on their operating system, and manage software with a package manager. Services and applications were intimately tied to individual machines and their OS environments. The introduction of public cloud platforms instigated a new way of managing applications: DevOps. Cloud servers can be automated, deployed at will, and facilitate a more agile approach to infrastructure management.
But this division is too stark in the modern infrastructure environment. Of course, the difference between owned hardware and on-demand cloud servers remains, but the container revolution has elided much of the difference between cloud and colocation: the DevOps approach is equally applicable to both.
In fact, many modern enterprise colocation deployments are cloud-like platforms, whether private clouds using traditional virtualization or, more recently, container-based platforms using lightweight container systems like Docker and a container deployment and management layer like Kubernetes or Docker Swarm.
Businesses don’t have to choose between the benefits of owned hardware colocated in a world-class data center and the agile approach facilitated by DevOps.
Containers are self-contained environments that bundle all the libraries and utilities an application, service, or micro service needs to run. They do not contain a complete operating system environment or their own kernel; they use the facilities of the host operating system, making them much faster and lighter than virtual machines.
The definition of DevOps can depend on who you’re asking, but this one from HashiCorp captures the essence: “DevOps primarily involves the people responsible for delivering applications, including developers, operators, and security professionals. These three interdependent roles need tightly coupled tools to coordinate their contributions to application delivery.”
Coordination between development and operations teams is essential to the agile, automated workflows that leverage continuous integration and deployment to get code into production quickly and safely.
Whether those applications ultimately run on containers in servers in a colocation data center or on servers owned and managed by a cloud provider is merely an implementation detail from the perspective of DevOps teams.
But colocating hardware has advantages of its own. Organizations can buy the hardware they need for their specific applications. They control the costs, the security, and the reliability of that hardware. Colocation users aren’t beholden to the choices made by a third-party vendor and they’re free to move their workloads and hardware to any colocation data center that suits their needs.
Perhaps most importantly, containers running on colocated servers are private. The Spectre and Meltdown vulnerabilities were devastating to the separation between public cloud platform users. The risk was significantly reduced, although not removed, for organizations that didn’t have to contend with the possibility that a competitor or criminal could run code on the same physical server that they use to host sensitive applications.
Colocation provides security, choice, and control while depriving organizations of none of the compelling operational benefits that drew them to the cloud in the first place.