A long time ago, in a land far, far away-well, not quite far, but here on earth-before we had virtual machines (VMs), bringing up a new hardware resource took days, even weeks. Virtualization reduced this number to minutes. Docker and containers are a whole new way of developing and delivering applications and IT infrastructure. Docker defines a format for bundling an application and all its dependencies into a single object, which can be transferred to any docker-enabled machine, and executed with the guarantee that the environment exposed to the application will be the same. Docker is optimized for the deployment of applications, as opposed to machines. This is reflected in its API, user interface, design philosophy and documentation.
Containers, on the other hand, promise a world that moves us from our attachment to traditional servers. By creating a container and not booting up an OS, the virtualization process shortens to mere seconds. In the olden days, we had a 1:1 ratio of server to app. Often we overestimated needs for server resources because nobody knew what our applications needed for computing resources. Today, most of us have moved to cloud computing resources to manage and deploy our apps. While cloud computing changed how we manage “machines,” it did not change the basic things we managed.
Adopting a transformative technology such as cloud or containers impacts every aspect of IT. Container technologies symbolize the new economic reality that changes the way we develop and deploy applications. Platforms and micro-services can manage new, lighter workloads, indicating a change from virtualized infrastructures to a container centric model. Gone will be the days of developing apps on cloud services and hosted environments sitting on servers in your datacenter. But are containers ready for enterprise level apps? Performance is becoming a key-value driver for containers, but they still have an associated complexity and that is what we will need to work on for the future.
The future of application–centric infrastructure speaks to a shift that is less about the machines, and more about software and services that will make it possible for startups to build services faster and cheaper.
We are now in the process applying containers to our application development process at Rapid in 2016, we can’t wait for the possibilities that will come from this. Let the game begin.