My journey into DevOps has been strongly influenced by my career path. My career has always involved in developing solutions or products for clients or internal organizational units. For example, early in my career at Ryerson, we were exploring interactive television technologies and trying to understanding the significance of what these new technologies will offer to the Toronto media community. This typically entailed creating a prototyping environment and exploring new software or creating new functionality in applications. Sometimes the addition of new software or features in the application would eventually break the environment. The environment would have to be rebuilt to a known configuration and work would commence again.
It was through that process of breaking and rebuilding we noticed automating some of the steps would help speed the prototyping process up. One beneficial side effect was this allowed us to offer the same environment we used at Ryerson to other companies. Keeping the environment consistent allowed us to collaborate easier since we have a common ground to build our knowledge base on.
Moving from Ryerson to SickKids brought new challenges that increased my DevOps experience. SickKids introduced me to the formal concepts of Software Development Life Cycle (SDLC). More, in particular, utilizing DNS, Dev/Prod server isolation, version control systems. One of the greatest experience was the opportunity to work seamlessly with developers and IT operations staff to streamline workflows. This allowed us to quickly push out tested updates to our applications that a wide group of researchers and clinicians utilize for their work.
The seamless workflow also benefitted us by freeing up our time to innovate and develop better services for our clients. It was during this free time we discovered that we were post-reactive to incidents. Clients would notify us when our infrastructure (email, file servers, web servers) were offline leading us to fire-fight the situation. Clearly, this was not a very scalable solution and does not build confidence in our competency with our clients. Our solution was to develop a monitoring platform composing of Nagios and Cacti. Nagios would alert us when a service or server was offline and Cacti would perform trend tracking using SNMP. This helps us gain valuable insight into our infrastructure and helps us become pre-emptive before our clients knew there was an incident happening. This helped us reassure our clients that we had the situation under control.
The basis of my DevOps journey has started out with my first 2 career jobs. These 2 jobs helped shaped the foundation and provided insight into what organizations will go through in their transformations into DevOps. My blog will be a collection of various DevOps commentaries and tools I encounter along the way.