The book comprises four parts. The chapters are in the recommended reading order and each chapter builds upon the previous one. The order of the chapters is such that it matches the order in which you would implement the different aspects in the real world. However, it is possible to pick and choose, especially once you have gone through the first part in its entirety.
Chapter 1, Introduction to DevOps, provides you with an understanding of what DevOps is and what it is not. DevOps is defined and its relationship to the Agile way of working is described. The chapter ends with an introduction to DevOps practices and habits that are central to a DevOps culture.
Chapter 2, Everything Starts with Source Control, introduces different types of source control systems and how they compare. Pull requests and code reviews are introduced as the default way for ensuring that every change is reviewed before it becomes part of the source. The chapter concludes by going over a number of strategies for branching and merging that align well with a way of working that focuses on a constant flow of value.
Chapter 3, Moving to Continuous Integration, covers how to go from sources to build artifacts that are ready to be deployed later on. Azure Pipelines, as the most important way of doing so, is covered in depth. Alongside the classical, visual editor, YAML pipelines-as-code are also introduced.
Chapter 4, Continuous Deployment, is about orchestrating deployments using Azure Pipelines. Once again, the classical, visual release editor is introduced. Multi-stage YAML pipelines are also introduced as a means of also describing your deployment process as code. The chapter concludes by introducing different deployment strategies that can be used to mitigate the risks that come with continuous deployment, to balance the need for change with stability.
Chapter 5, Dependency Management, introduces package management. Package management can be used as a means for splitting larger software solutions into multiple components that are built and tested independently and only then put together. Packages can also be used to distribute build artifacts between different continuous integration and deployment products.
Chapter 6, Infrastructure and Configuration as Code, goes into how creating, managing and configuring infrastructure can be transformed from a manual, error-prone task into the automated deployment of configuration that is kept as code in source control. The chapter covers ARM templates, Azure Blueprints, Azure App Configuration services, and a number of related tools.
Chapter 7, Dealing with Databases, dives into the topic of managing database schemas in combination with continuous deployment.
Chapter 8, Continuous Testing, explains how, having everything as code, continuously deploying new versions is of little value if the quality of new versions is not high enough. This chapter introduces different types of tests and how they can be integrated within Azure DevOps Pipelines.
Chapter 9, Security and Compliance, talks about the integration of security and compliance concerns within DevOps practices. You will learn how security and dependency scanning can be integrated into pipelines. Azure Policy and Security Center are introduced for preventing non-compliant configurations and detecting new risks that come in over time.
Chapter 10, Application Monitoring, is the first chapter that goes into learning from changes deployed previously. For this purpose, Azure Monitor and Application Insights are used to create metrics, dashboards, and alerts.
Chapter 11, Gathering User Feedback, also involves learning, but learning from your users, instead of from your systems. You will learn how you can interact with users to drive your roadmap and maximize the value delivered to users. Hypothesis-driven development is introduced as an approach to minimize investments that do have minimal returns and find features that are in high demand and bring great value.
Chapter 12, Containers, introduces you to the topic of containers. While DevOps and containers are not synonyms, containers assist in the adoption of DevOps principles in situations where that might not otherwise be possible.
Chapter 13, Planning Your Azure DevOps Organization, goes into the final and overarching considerations regarding the setup of your Azure DevOps organization and project(s). Licensing and the cost model are covered, along with the subject of traceability. Another important subject is that of migrating between products, so as to achieve standardization on DevOps tools.
Chapter 14, AZ-400 Mock Exam, provides you with an opportunity to test the knowledge that you have acquired throughout this book by means of a mock exam.