Complete DevOps Operations (Tool: Azure DevOps)

"It's clear DevOps has become increasingly critical to a team's success." -- Jamie Cool, Microsoft

Lesson 1: Microsoft's DevOps Tools

Here we have Denis Petelin presenting, first, his understanding of what DevOps is, and secondly, how the Microsoft toolkit offers end-to-end support for good DevOps practices:

Azure DevOps, Part I
Azure DevOps, Part II

Below are the key DevOps ideas that Denis presented, with some commentary as to how they relate to other material presented in our course:

  1. Small releases
    This is our incremental development idea stated a little differently. The result of adopting this practice is almost magical: whereas previously, you may have found yourself doing an eight-hour coding spree, and then testing and correcting bugs for another 20 hours, you will find that 12 one-hour sessions, each aimed to get a tiny part of your software working, will get the same amount of work done as the 8-hour session... but will be followed by 20 minutes of debugging.
  2. Everything as code
    Infrastructure as code is a part of this principle. But also, your tests should be code (pytest), and your code reviews should be code (flake8), and your builds should be code (make).
  3. Use components
    This is an extension of the UNIX tool philosophy, which over many years led to the idea of microservices. The basic idea is the code that has the fewest bugs and the minimum development time is the code you don't have to write, since somebody else already wrote it!
  4. Automate everything you can
    Automating routine workflows allows us to:
    1. Turn them into code that itself can be put under version control and tested.
    2. Remove the drudgery of these repeated tasks from humans and assign it to machines.
    3. Document these workflows through the very code that automates them.
  5. Zero-bug mindset
    When we embrace the idea of (very) small releases, and adopt automated testing, there is no need for us to have any "bug backlog" at all: the automated tests should catch most problems, and anything they miss, since our release was a very small addition to the previous code, will be easy to track down.
  6. Develop resilience (be anti-fragile!)
    Nassim Taleb teaches in Tandon's finance department. He has developed the idea of anti-fragility. An application of that idea is Netflix's Chaos Monkey tool, part of its Simian Army toolkit.
  7. Use cloud services
    This is really an extension of the "Use components" idea: why manage your own server room when there are pros at managing server rooms who will sell you their expertise at a reasonable cost?
Lesson 2: DevOps at DRAFT
Trevor John on DevOps at DRAFT

Please watch this video, and pay special attention to the discussion about whether DevOps should be a job, or a way of working.

Other Readings

    There is no quiz available for this module.