Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Azure DevOps Explained
  • Table Of Contents Toc
  • Feedback & Rating feedback
Azure DevOps Explained

Azure DevOps Explained

By : Sjoukje Zaal, Stefano Demiliani, Amit Malik
3.9 (7)
close
close
Azure DevOps Explained

Azure DevOps Explained

3.9 (7)
By: Sjoukje Zaal, Stefano Demiliani, Amit Malik

Overview of this book

Developing applications for the cloud involves changing development methodologies and procedures. Continuous integration and continuous deployment (CI/CD) processes are a must today, but are often difficult to implement and adopt. Azure DevOps is a Microsoft Azure cloud service that enhances your application development life cycle and enables DevOps capabilities. Starting with a comprehensive product overview, this book helps you to understand Azure DevOps and apply DevOps techniques to your development projects. You'll find out how to adopt DevOps techniques for your development processes by using built-in Azure DevOps tools. Throughout the course of this book, you'll also discover how to manage a project with the help of project management techniques such as Agile and Scrum, and then progress toward development aspects such as source code management, build pipelines, code testing and artifacts, release pipelines, and GitHub integration. As you learn how to implement DevOps practices, this book will also provide you with real-world examples and scenarios of DevOps adoption. By the end of this DevOps book, you will have learned how to adopt and implement Azure DevOps features in your real-world development processes.
Table of Contents (17 chapters)
close
close
1
Section 1: DevOps Principles and Azure DevOps Project Management
4
Section 2: Source Code and Builds
9
Section 3: Artifacts and Deployments
12
Section 4: Advanced Features of Azure DevOps

Understanding DevOps principles

The DevOps encompasses a range of interpretations, each shedding light on the importances of optimizing the flow of software and IT project delivery. Among these interpretations, one stands out for its clarity and all-encompassing scope: DevOps refers to a collection of methodologies that automate the processes between software development and IT teams, empowering them to construct, test, and release software more swiftly and with greater reliability. This approach cultivates a collaborative culture, where the traditionally separate roles of development and operations merge, facilitating continuous integration, continuous delivery, and prompt feedback. This perspective not only captures the essence of DevOps but also emphasizes its objective of enhancing product quality and hastening delivery through teamwork and technological innovation.

In the upcoming sections, we will highlight six DevOps principles that we think are essential when adopting a DevOps way of working.

Principle 1 – Customer-centric action

In today’s rapidly evolving technological landscape, software development projects must embrace short cycles and feedback loops to keep up with the need for rapid adaptation and innovation. A key aspect of this is involving end users and real customers directly in the development team, ensuring that the software not only meets their expectations but surpasses them. This approach allows for immediate feedback and adjustments, significantly reducing the time it takes to go from concept to deployment. DevOps teams and organizations are therefore encouraged to continually invest in products and services that not only maximize client satisfaction but also maintain agility. This agility enables them to quickly pivot and adjust their strategy in response to changing market demands or feedback, ensuring that they stay competitive and relevant. The core principle behind this approach is to foster a cycle of continuous improvement, where feedback directly informs the development process, resulting in the creation of products that are closely aligned with user needs and market trends.

Principle 2 – Embrace a continuous product mindset

Organizations need to act more like product companies. They should focus more on building working products that are sold to real customers. This engineering mindset needs to be shared by all employees. This is required to realize those products. This means that they should let go of the approach where each unit focuses on a particular role with its own scoped responsibility.

Principle 3 – End-to-end responsibility

In traditional software development models, there’s a clear division where development teams create software and services, which are then passed on to operations teams for deployment and ongoing maintenance. However, the DevOps approach transforms this process by ensuring that the teams who develop the software are also responsible for its maintenance and support post-delivery. This accountability extends through the entire lifecycle of the product, up to its end of life. This shift not only heightens the team’s sense of ownership but also significantly enhances the quality of the output, as the same team oversees development, deployment, and maintenance, ensuring a more integrated and quality-focused approach.

Principle 4 – Cross-functional autonomous teams

Organizations that embrace vertical and fully autonomous teams empower them to operate independently throughout the product lifecycle. For these teams to function effectively without dependency, members must possess a diverse and comprehensive skill set. It is essential for team members to have T-shaped profiles, which combine deep expertise in their primary area with a broad understanding of complementary disciplines. This approach moves beyond the traditional focus on narrow specialization. Essential skills for each team member include development, requirement analysis, testing, and administration, ensuring a versatile and adaptable team capable of handling various aspects of the project lifecycle.

Principle 5 – Continuous improvement

Another part of end-to-end responsibility is that, for organizations, it is important to adapt to changes continuously. There can be several changing circumstances, such as new technology that has been released, changing customer requirements, and so on. Continuous improvement is a strong focus in DevOps when it comes to optimizing for speed and costs, minimizing waste, and eas of delivery, and to continuously improve the software and services that are being built and released. An important activity to embed inside these cycles is experimentation. This will allow teams to develop a way of learning from their failures, which is essential to continuous improvement.

Principle 6 – Automate everything

To fully adopt and embed a continuous improvement culture inside an organization, most organizations have a lot of waste and tech debt to eliminate. To achieve high cycle rates, and to process instant feedback from customers and end users as soon as possible, it is imperative to automate everything. This means that not only the software development process should be automated using continuous delivery (which includes continuous development and integration), but also the whole infrastructure landscape needs to be automated. The infrastructure also needs to be ready for new ways of working. In this sense, automation is synonymous with the drive to renew the way the team delivers their services to their customers.

In this section, we have covered the six principles that are important when adopting or migrating to a DevOps way of working. In the next few sections, we are going to look at what Azure DevOps has to offer as a tool that supports teams so that they can work in a DevOps-oriented manner.

Principle 7 – Failure as a Learning Opportunity

At its essence, this principle is founded on the understanding that the journey towards innovation is not linear and is filled with obstacles. It acknowledges that breakthroughs often arise not when everything goes as planned, but rather when unforeseen outcomes prompt a reassessment of assumptions, processes, and strategies. This principle draws from the expansive theoretical realm of experiential learning, which suggests that the most profound insights often emerge from reflecting on experiences, particularly those that deviate from our expectations. In the context of DevOps, this principle manifests in practices that promote continuous experimentation, feedback, and iteration. DevOps, by its very nature, blurs the boundaries between development, operations, and quality assurance, thus fostering an environment conducive to interdisciplinary learning and innovation. When a deployment fails or a new feature fails to meet user expectations, the integrated DevOps team is encouraged to thoroughly analyze the failure, comprehend its underlying causes, and extract valuable insights that can shape future endeavors. This approach not only expedites the pace of improvement but also cultivates a culture where fear of failure does not impede creativity.

Visually different images
CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Azure DevOps Explained
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon