Cloud computing is leading a trend to greater abstraction and automation in software deployments and systems architecture while concurrently facilitating significant increases in development velocity. Initial innovations, like virtualization, drastically reduced costs and time-to-market for new services; ushering in new concepts like continuous delivery and continuous integration.
These two concepts have gained more traction over the last few years thanks to containerization and the microservices approach, which is proving to be even more agile, responsive, and rapidly scalable. Containerization and microservices are closely tied, with container technology directly enabling the trend toward enterprise solutions composed of small, decoupled, and rapidly developed services.
In the world of container technology, Docker is leading the way. It uses some unique features of the Linux operating system to provide many of the advantages of virtualization in a lighter, faster, and more ephemeral package. Docker provisions pre-configured software in ready-to-run images that can be launched on a host machine in discrete software containers. Because your software is pre-configured inside a container, you can take it and get it running almost instantly on any Linux environment with Docker installed.
With the trend toward microservices, a new need for automated container management has emerged. A large web application today may constitute hundreds of services, with thousands of instances running in Docker containers on a number of server clusters. Managing such an application manually, accounting for load balancing and scaling in response to demand, would be quite a challenge. Luckily, solutions are being developed including management frameworks like Kubernetes, Docker Swarm, and Rancher as well as specialized lightweight Linux operating systems optimized to work with Docker, like CoreOS and RancherOS.
Take a look at our latest success story to learn how Datamart’s DevOps crew deployed a new mobile application using Docker and Kubernetes, ensuring continuous integration and continuous delivery throughout the life of the product.