Today’s Docker success and its emerging perspectives. Containers are changing software development and more globally hosting in an impressive manner. It has never been so easy to deploy any app anywhere on the cloud.
Last week, while playing with Docker and Kitematic for installing a PostgreSQL database server in one click, I remembered when I had to manually install database systems for my projects. It reminded me of hours of system setup, maintenance and other loss of times. In a way, I knew every configuration file location and main parameters to edit. Application servers helped us to handle the deployment world: packaging standards and automatic process of deployment, monitoring of apps.
The virtualization technologies came to offer new capabilities. The processor market helped spread the ability to anyone to virtualize any system. Provisioning tools (chef, puppet, ansible…) emerged from the need of a better way to automatically populate software on machines. Finally those last years, we saw the resurrection of containers technologies and the consideration of software isolation.
Today in 2015, we can’t spend hours anymore setting up hardware and services.
“If your developers are spending time thinking about individual machines, you are operating at too low level of an abstraction. You want to operate at the level of applications and let the system take care of the scheduling of the applications. That means your developers can move faster, you can ship faster, you can iterate faster, your business grows faster – speed improves everything.” – DeMichillie
We need to stay focused on IT level:
- restfull API / Stateless Backend
- simple standalone applications & micro services
- quick build & deploy
- scalability & reactivity
Why such a buzz today? In some way, it reminds me the J2EE application containers promise: build your app and deploy it to any application server. But it has never come true. My previous experience with j2EE 1.4 & 1.5 told me, that were always stucked to your container API. You are doing Jboss, you will have some modification for weblogic deployment. Write once but can’t run everywhere 😉
The Docker ecosystem allow us to reach more concretely the “Commercial-off-the-shelf” idea. Docker allows to abstract your IT architecture at Service level: you don’t have to bother of your hardware or OS anymore. Just pack any app in containers and run it everywhere. It’s then a fantastic tool to share between developers and operators.
- Docker’s magic is made of simple but powerfull concepts (see Bert’s article):
- The dockerfile is simple but efficient text file to describe what your container do (simple keywords, extremely fast feedback…)
- Run any image on your system in seconds
- Package any application and give the ability to anyone to execute your app in the exact same environment
- Download/Build any docker image
- While the provisioning tools are focused on deploying and setup systems on host. With Docker you run an image, it just works.
But there is till posing some problem with containers: you have to rethink about transversal infrastructure thematics and spread it across containers (data, integration between services, security, availability, backup, monitoring/supervision…)
The cloud hosting market is also mutating: Big players like Google, Amazon, OVH… and even Microsoft now offers Docker hosting. Whereas the big ones always proposed their API and power of scaling, today’s target is the container infrastructure: people want to avoid vendors Locking and need a very flexile IT. That’s why tools such as swarm, tutum, kubernetes are filling te gap. The big thing of the moment is to be able to deploy to the cloud as easily as it can be done on your local machine, and be able to supervise anything.
Is devops and Docker the new “graal” of the IT?
The biggest challenge is not only technical but also cultural. It’s not just about tools. It’s before all, about men and organizations. Startups and small companies can quickly embrace such culture and tools. It’s easy to go there when you don’t have any old historical IT. Startups will be wrong to not take the chance to start with such solutions.
It will be hard for old companies for whom the challenge will be proportionally difficult to their size. They will have to transform their culture to adopt the devops usages, but not only. They must face to their global IT Deprecation, otherwise they won’t be able to react to any change or competitors.Google+