The modern cloud marketplace offers businesses a bewilderingly complex set of options. There are dozens of cloud vendors offering subtly differentiated and incompatible products spread across the globe. None of these vendors fits all potential use cases. A large cloud deployment might include storage, database servers, virtual machines, bare metal servers, and a host of software-defined and hardware networking solutions. Often, to provide optimal performance, resources will need to be located close to users, and since large cloud providers usually only offer a presence in a handful of big cities, that means dealing with multiple vendors.
Cloud marketplaces and integration layers have evolved to solve one of the problems associated with modern multi-cloud environments. By uniting the multitude of cloud vendors and their platforms under one control interface and payment system, cloud integrators can significantly simplify the process of procuring and paying for infrastructure wherever and whenever it’s needed.
But running software development and production environments in multi-cloud environments is a problem even if setting up the infrastructure is relatively straightforward. Ideally, all cloud platforms could be thought of as simple and compatible units of computing resource that would run anything you threw at them, allowing businesses to move their workloads around at will.
The Docker container technology, in essence, allows businesses to not care about the operating system environment into which they are launching their software. Docker, and competing container technologies, package up software and all of its dependencies into a self-contained unit that will run everywhere that the Docker container engine will run — and it runs almost everywhere.
Docker is in use by many large companies for large-scale application distribution, continuous integration and delivery, and for building distributed application architectures.
The magic of Docker is that if an application runs on a developer’s MacBook or a company’s development server, it will run on any server. That quality helps companies elide the differences inherent in cloud platforms. In essence, Docker provides a portable Platform-as-a-Service environment, except that instead of relying on a vendor’s platform, each application carries its own platform with it, ready to be deployed on any suitable infrastructure.
If a company needs to spin up servers for an application deployment in a new geographic area, they can use a cloud marketplace’s integration layer to select, manage, and deploy the infrastructure layer, and push existing Docker containers onto that infrastructure, enormously reducing the time it takes to deploy.
Compared to how it would have been done a few years ago — contracting and negotiating with a new cloud or hosting provider, configuring individual server environments, installing applications — the Docker / Cloud integration model is fast, significantly less complex, and easier to manage.
Image: Flikr/ Glyn Lowe