I started teaching DevOps around the year 1999. All together now: “Darwin, are you insane? The term, ‘DevOps’, is a lot newer than that!” That’s absolutely true, but a concept always exists long before it is recognized and labelled…
In 1999 I was a newly hired Principal Consultant and I clearly remember getting a call from my manager. He was at a Microsoft partner event that demonstrated Microsoft’s soon-to-be released technologies. One of hottest demos for Windows 2000 showcased the life-saving capabilities of a new software deployment automation technology that was code named “Darwin” It tickled him that it was named after the newest member of his team and he was calling to have a chuckle about it with me. That technology became Windows Installer or MSI.
I didn’t expect to become entwined in a technology whose pre-release code name was my namesake, but it did impact my primary focus at the time - software deployment automation. If you were in IT at that time, you’ll recall that while automation was not common place in data centers, it was critical in desktop systems. Servers were still individually pampered pets, not the cattle of the modern cloud. The desktop, however, was on a clear trajectory towards leveraging automation to commoditize the desktop into cattle - and I was a ranch hand.
In my experience, the fundamental incentive to automate a given area of technology comes down to the “admins to nodes” ratio. Almost since the beginning, desktops required automation because no one could afford an admin per five or ten end nodes. In the age of the cloud, the server has scaled and we’ve long passed the magic ratio of admins to nodes which is propelling the current requirement for automation.
In 1999, software installers assumed an interactive user would be driving the software installation process. To scale software deployments to thousands of endpoints, administrators used advanced tools to reverse engineer these installers and rebuild them so that they could be installed completely automatically and completely silently, while including whatever customizations the organization required.
Since I was involved in software deployment automation at the time, I felt that operations professionals were going to be building Windows Installer packages in droves in order to leverage its unprecedented support for mass-automation with customization. Yet it was evident from the published information and tools that Microsoft had assumed “package creation” would be the sole domain of Software Developers.
So I asked myself, “How does one create a training experience that unpacks the essentials of a developer-oriented technology in a way that allows operations folks to understand and leverage it for automation?”
This seed question eventually grew to be a 5 day technical course titled “Windows Installer for Administrators”. Since that time I have enjoyed creating training experiences and conference sessions that bridge the gap between Development and Operations for the purpose of scaled software deployment automation.
Both DevOps and Automation are all the rage in IT now! For automation geeks there are so many toys to choose from it becomes a challenge just to choose!
There is one technology, however, that was not hard for me to choose…
Chocolatey NuGet is in a unique position of providing a common framework between developers and operations for driving the automation of the windows installation technologies in a standardized way. It leverages the standard plumbing of NuGet - an elegant technology designed to delivery free open source .NET assemblies to development environments. Chocolatey is a lightweight client that extends this open and capable framework to allow it to accomplish true artifact oriented software deployment and configuration automation on Windows.
So am I glad to be rid of all the crusty installer technologies I’ve been reverse engineering for a long time? Uhhhh… well, that’s the thing, see - it has actually made those hard earned skills new again. My background in solving automation challenges for Windows Desktop meant solving a lot more logistical challenges than are typical on the server - logged on users locking files, multiple language versions of the Windows OS, massive geographical dispersion, low bandwidth to the client, installing from within SYSTEM account context, installing in a background service, 32-bit software on the 64-bit OS and the capstone: repeatedly upgrading software in place on the same machine for years.
Chocolatey accomplishes its automation magic not by replacing standard Windows installation technologies, but by driving them. Software deployment automation engineering skills are still used a lot!