Caution: This blog will teach you nothing about GPS (or Self-Driving Vehicles)
Remember the days when a road trip meant heading to AAA, getting triptiks, planning your stops and exits carefully and then hoping for the best?
That’s what Release planning looked like with long and tedious spreadsheets that listed dev modules, tests, defects, environments and action items. Dedicated program managers would pore over these spreadsheets, identify owners and remind them of their tasks in weekly status meetings.
Long, 24-48 hour phone meetings during release cycles were the norm and a release could take anywhere from a few months to several quarters. I remember engineers who bragged about how long they stayed on the call. Inefficiency was a badge of honor.
(Semi-automated) Release Management and Deployment Automation solutions discarded that approach. Integrated with CI tools such as Jenkins they acted like an integrated GPS system, orchestrating every single action and cutting the release time and the number of errors by up to 60%. Certainly impressive improvement from the good ole’ spreadsheets.
But it wasn’t until PaaS burst onto the screen that people realized that a fully automated continuous delivery with little to no effort was not only a possibility but a great way to test out new ideas in the market.
PaaS however, came with its own shortcomings – lack of supported dev frameworks and platform lock-in being the 2 most obvious ones. PaaS was great for new, web native apps but didn’t do anything for existing applications.
That said, if Triptik was the manual navigation with a paper map, PaaS was the self-driving vehicle of Continuous Delivery.
However, the need for quick deployments without sacrificing developer flexibility is real and so crucial that enterprise IT would rather do a few tasks manually rather than use all encapsulating PaaS.
Enter, containers. Ability to package up your apps and ship them to any target environments freed the developers up to compose new apps from a repository of containers. It not only accelerated app delivery and deployment but also allowed architects to rethink their service architecture.
As we go forward, more and more apps will move to container delivery. Docker Cloud, Shippable, Nirmata etc solve the problem of container delivery but leave customers holding the bag when it comes to providing operator services. More on this in the next post.