Reader small image

You're reading from  Implementing Azure DevOps Solutions

Product typeBook
Published inJun 2020
PublisherPackt
ISBN-139781789619690
Edition1st Edition
Tools
Concepts
Right arrow
Authors (2):
Henry Been
Henry Been
author image
Henry Been

Henry Been has been working in IT for over ten years. He is an independent architect, developer, and trainer in a number of companies. With many of these companies, he has embarked on a journey implementing practices such as continuous integration and deployment, infrastructure as code, trunk-based development, and implementing feedback loops. Alongside his work, he creates online training courses for A Cloud Guru, and frequently speaks at meetups and conferences. He was awarded the Microsoft MVP award in 2019.
Read more about Henry Been

Maik van der Gaag
Maik van der Gaag
author image
Maik van der Gaag

Maik van der Gaag is an architect and trainer at 3fifty, an experienced consultancy company with a strong focus on the Microsoft cloud. He has over 15 years' experience of providing architecture, development, training, and design expertise. During his career, he has worked on a variety of projects, ranging from cloud transformations to DevOps implementations. He loves to share his knowledge, which was also one of the reasons why he founded the Dutch Cloud meetup. Maik is a public speaker, writes blogs, and organizes events.
Read more about Maik van der Gaag

View More author details
Right arrow

Preface

As the speed at which IT products are being created and delivered is ever more important when it comes to companies succeeding, the demand for IT professionals with a thorough understanding of DevOps is increasing year on year. In this book, Implementing Azure DevOps Solutions, you will learn about the Microsoft tools that help to make this possible. Besides this, the knowledge that you acquire will help you to embrace DevOps and improve the way you continuously deliver value to your end users.

Who this book is for

This book targets software developers and operations' specialists interested in implementing DevOps practices on the Azure cloud. Application developers and IT professionals with some experience in software development and development practices will also find this book useful. Some familiarity with basic usage of Azure DevOps would be an added bonus.

In addition to this, the best part is that you can also use this book as one of your references for the AZ-400 exam, as the topics covered are along similar lines.

What this book covers

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.

To get the most out of this book

You should have an understanding of software development processes and experience in application development and operations as either a software developer or as an IT professional. Irrespective of your background, be it software development or operations, it is important to have a basic understanding of the software delivery processes and the tools involved.

If you have taken the mock exam or want to take the official exam after reading this book and find that you are struggling with specific exam objectives, you can use the following table to find the chapters you need to re-read.

Exam objective

Relevant chapters

Design a DevOps strategy

Chapters 1, 8, and 13

Implement DevOps development processes

Chapters 4, 6, and 9

Implement continuous integration

Chapters 2 and 3

Implement continuous delivery

Chapter 4

Implement dependency management

Chapter 5

Implement application infrastructure

Chapters 6, 9, and 12

Implement continuous feedback

Chapters 10 and 11

Please keep in mind that some questions may fall into more than one category and that this book is developed without any access to the official exam materials.

While large parts of this book are theory, it is recommended that you experiment with the concepts introduced if you have no hands-on experience with them. Remember, if you intend to sit the AZ-400 exam, this exam is intended for practitioners with two to three years' practical experience. To perform the practical exercises in the book you will require the following:

Software/Hardware covered in the book

OS Requirements

Azure DevOps Services

Any device with a modern browser

Azure portal

Any device with a modern browser

Azure Powershell

Windows 10

Azure CLI, Git client

Windows, Linux or MacOS

Visual Studio

Windows or MacOS

For more practical experience, links to exercises or labs are included at the end of each chapter. Many of these exercises come from Microsoft Learn and can also be searched at https://docs.microsoft.com/en-us/learn/browse/?term=devops. Microsoft has also published a cloud workshop that enables you to practice many of the topics covered in Chapters 1 to 6. This cloud workshop can be found at https://github.com/microsoft/MCW-Continuous-delivery-in-Azure-DevOps/blob/master/Hands-on%20lab/Before%20the%20HOL.md.

Download the color images

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "In Command Prompt, type hostname and press the Enter key."

A block of code is set as follows:

public class FoodClassifier : IFoodClassifier
{
public FoodClassification Classify(Food food)
{
// Unchanged classification algorithm
}
}
public class FoodClassifierToBeRemoved : IFoodClassifer
{
public FoodClassification Classify(Food food)
{
// Unchanged classification algorithm
}
}

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)

Any command-line input or output is written as follows:

git lfs install
git lfs track "*.mp4"
git add .gitattributes

Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Select System info from the Administration panel."

Warnings or important notes appear like this.
Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at customercare@packtpub.com.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at copyright@packt.com with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in, and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Implementing Azure DevOps Solutions
Published in: Jun 2020Publisher: PacktISBN-13: 9781789619690
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at ₹800/month. Cancel anytime

Authors (2)

author image
Henry Been

Henry Been has been working in IT for over ten years. He is an independent architect, developer, and trainer in a number of companies. With many of these companies, he has embarked on a journey implementing practices such as continuous integration and deployment, infrastructure as code, trunk-based development, and implementing feedback loops. Alongside his work, he creates online training courses for A Cloud Guru, and frequently speaks at meetups and conferences. He was awarded the Microsoft MVP award in 2019.
Read more about Henry Been

author image
Maik van der Gaag

Maik van der Gaag is an architect and trainer at 3fifty, an experienced consultancy company with a strong focus on the Microsoft cloud. He has over 15 years' experience of providing architecture, development, training, and design expertise. During his career, he has worked on a variety of projects, ranging from cloud transformations to DevOps implementations. He loves to share his knowledge, which was also one of the reasons why he founded the Dutch Cloud meetup. Maik is a public speaker, writes blogs, and organizes events.
Read more about Maik van der Gaag