Getting Started: DevOps for IT Ops

After reading a bunch of the comments in these forums about possible barriers with regarding IT silos, knowledge hoarding, and that grumpy guy in the basement, it comes to mind that not everyone will be keen on moving from traditional Ops to DevOps.  I think as IT professionals, we understand that change is inevitable, but that's been based around the technology, not the methodology.  Switching mental gears can induce whiplash in some IT organizations.

Which leads me to the discussion question of the day:

If your organization is on its DevOps journey, what are some of the best practices or tips that you would share with others who are interested in starting?

If you've been git-ing for a while or build up a store of your own containerized apps, how would you encourage others to get started in understanding the "why" the industry is moving this way?

  • Getting the team into a "GitOps" habit can be a great start, even if you need to avoid using those kinds of words around resistant team members. Noone truly enjoys ClickOps, especially when it's frequently repeated. A few ways to help get this started: 

    • Get the team into the idea of keeping all of their PowerShell scripts in a git-based repo. They'll gain versioning (for when an update breaks it), reduce duplicate work by sharing scripts among each other, learn from each other's code, and make their scripts more easily available from wherever they log on.
    • Have the team start writing "configuration as code" whenever possible. Most firewalls, load balancers, switches, routers, fabrics, storage arrays, and chassis have the ability to write and push configuration as a file. Adopting this approach lets the team maintain and store configuration versions, peer review configuration files before deployment, more easily catch mistakes that would be missed during "ClickOps," and also makes it easy to submit detailed change requests that include the configuration changes (redacted, if necessary).

    Once a team has a moderately consistent baseline of knowledge with these two new types of workflows, they may unexpectedly find themselves ready to automate configuration changes--or at least script the deployment of those files, further reducing work steps required.

    Then they may be able to learn how to use actions/runners to automatically validate and lint their code for additional quality checks.

    Now, they're more than halfway into this new methodology that they were probably either intimidated by or thought was irrelevant to them a year ago!

  • Absolutely, navigating the transition from traditional Ops to DevOps can indeed be challenging, especially considering potential barriers like IT silos and resistance to change. However, embracing DevOps practices can lead to significant improvements in efficiency, collaboration, and innovation within IT organizations.

    Here are some best practices and tips for organizations embarking on their DevOps journey:

    1. Start with Culture: DevOps is as much about culture as it is about technology. Foster a culture of collaboration, transparency, and continuous learning within your organization. Encourage cross-functional teams where developers, operations staff, and other stakeholders work together towards common goals.

    2. Focus on Automation: Automate repetitive tasks, such as deployments, testing, and infrastructure provisioning, to streamline processes and reduce human error. Tools like Jenkins, Ansible, and Terraform can be invaluable in this regard.

    3. Implement Continuous Integration and Continuous Delivery (CI/CD): Adopt CI/CD practices to enable frequent and reliable software releases. This involves automating the build, test, and deployment processes to deliver changes to production quickly and safely.

    4. Embrace Infrastructure as Code (IaC): Treat your infrastructure as code, allowing you to version control, test, and automate the provisioning and configuration of infrastructure resources. Tools like Kubernetes, Docker, and AWS CloudFormation can help in this area.

    5. Encourage Learning and Knowledge Sharing: Provide training and educational resources to help team members develop the skills needed for DevOps practices. Encourage knowledge sharing through internal workshops, lunch-and-learns, and collaborative tools like wikis and chat channels.

    6. Start Small and Iterate: Begin your DevOps journey with pilot projects or low-risk applications to test out new practices and tools. Learn from these experiences and iterate on your processes and workflows as you progress.

    7. Measure Success: Define key performance indicators (KPIs) to track the success of your DevOps initiatives. Metrics like deployment frequency, lead time for changes, and mean time to recovery can provide insights into the effectiveness of your practices and help identify areas for improvement.

    As for understanding the "why" behind DevOps and containerization, it's essential to emphasize the benefits that these approaches bring, such as faster time-to-market, improved reliability, scalability, and resource efficiency. Encourage team members to explore case studies, Online DevOps Training Courses, attend workshops or conferences, and engage in discussions with peers to deepen their understanding and motivation for adopting these practices. 

    Overall, transitioning to DevOps requires a combination of technological innovation, cultural transformation, and ongoing learning. By focusing on collaboration, automation, and continuous improvement, organizations can unlock the full potential of DevOps and drive greater business value.