Day 3/100 of my DevOps Journey

Introduction to DevOps: Working DevOps

Here are 9 key takeaways from the Day-3 learnings!

  1. Working DevOps is pushing small changes quicker, get feedback and maximise learning.

  2. Software Engineering Project should not be treated similar to a Civil Engineering Projects but like product development. Take ownership of the code, maintain stable & lasting teams instead.

  3. Infrastructure as Code (executable textual format): describe infrastructure as code and manage its configurations in template code files. These can managed using Configuration management systems like Ansible, Chef, and so on.

  4. Imagine infrastructure as cattle not pets. Make changes to the image / template from which the infrastructure is created and not directly to the infrastructure itself. But instead delete the infrastructure and create new one from the image. This way time spent on patching is reduced.

  5. Continuous Integration is continuously building, testing, and merging to parent repo. Continuous Delivery is continuously deploying to a production-like environment.

  6. Never merge untested pull requests. Master branch should always be deployable.

  7. A code repository, a build server, an integration server, an artifact repo, automatic configuration & deployment tool all forms a CI/CD Pipeline.

Introduction to DevOps: Organizing DevOps

  1. Any organisation that designs a system will produce a design whose structure is a copy of the organisation's communication structure -- Conway's Law.

  2. If you abstract people from the consequences of their action, people become apathetic.

Introduction to DevOps: Measuring DevOps

  1. You cannot measure / reward to A and hope for B.

  2. Is anyone using the code you're building? Think about it.

  3. Actionable Metrics >> Vanity Metrics. DevOps actionable metrics include Mean Lead time, Release frequency, Change Failure Rate, and MTTR (meantime to recovery).