Mastering DevOps on Microsoft Power Platform: Build, deploy, and secure low-code solutions on Power Platform using Azure DevOps and GitHub
()
Related to Mastering DevOps on Microsoft Power Platform
Related ebooks
Application Lifecycle Management on Microsoft Power Platform: A comprehensive guide to managing the deployment of your solutions Rating: 0 out of 5 stars0 ratingsPower Apps Tips, Tricks, and Best Practices: A step-by-step practical guide to developing robust Power Apps solutions Rating: 0 out of 5 stars0 ratingsSalesforce DevOps for Architects: Discover tools and techniques to optimize the delivery of your Salesforce projects Rating: 0 out of 5 stars0 ratingsDevOps for the Modern Enterprise: Winning Practices to Transform Legacy IT Organizations Rating: 0 out of 5 stars0 ratingsA Platform Mindset: Building a Culture of Collaboration Rating: 0 out of 5 stars0 ratingsTools and Skills for .NET 8: Get the career you want with good practices and patterns to design, debug, and test your solutions Rating: 0 out of 5 stars0 ratingsBeyond Agile: What Is the Next Big Development Paradigm? Rating: 0 out of 5 stars0 ratingsMastering Windows 365: Deploy and Manage Cloud PCs and Windows 365 Link devices, Copilot with Intune, and Intune Suite Rating: 0 out of 5 stars0 ratingsDevSecOps for Azure: End-to-end supply chain security for GitHub, Azure DevOps, and the Azure cloud Rating: 0 out of 5 stars0 ratingsDevOps - A Business Perspective Rating: 0 out of 5 stars0 ratingsMastery in Azure DevOps: Navigating the Future of Software Development Rating: 0 out of 5 stars0 ratingsThe DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations Rating: 4 out of 5 stars4/5DevOps Interview Questions and Answers Rating: 5 out of 5 stars5/5How DevOps Works: Organizing People, from Silos to Platform Teams Rating: 0 out of 5 stars0 ratingsLeading the Transformation: Applying Agile and DevOps Principles at Scale Rating: 2 out of 5 stars2/5Hands-On Visual Studio 2022: A developer's guide to new features and best practices with .NET 8 and VS 2022 for maximum productivity Rating: 0 out of 5 stars0 ratingsThe Anatomy of DevOps Rating: 0 out of 5 stars0 ratingsDevOps Patterns for Private Equity: Technology organization strategies for high performing software investments Rating: 0 out of 5 stars0 ratingsMS-700 Managing Microsoft Teams Exam Guide: Ace the MS-700 exam and become a Certified Microsoft Teams Administrator Rating: 0 out of 5 stars0 ratingsUnbundling the Enterprise: APIs, Optionality, and the Science of Happy Accidents Rating: 0 out of 5 stars0 ratings
Enterprise Applications For You
Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5QuickBooks 2023 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsSome Future Day: How AI Is Going to Change Everything Rating: 0 out of 5 stars0 ratingsNotion for Beginners: Notion for Work, Play, and Productivity Rating: 4 out of 5 stars4/5Excel All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsExcel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Bitcoin For Dummies Rating: 4 out of 5 stars4/5Excel 101: A Beginner's & Intermediate's Guide for Mastering the Quintessence of Microsoft Excel (2010-2019 & 365) in no time! Rating: 0 out of 5 stars0 ratingsOneNote 2013 For Dummies Rating: 0 out of 5 stars0 ratingsMastering QuickBooks 2020: The ultimate guide to bookkeeping and QuickBooks Online Rating: 0 out of 5 stars0 ratingsSharePoint For Dummies Rating: 0 out of 5 stars0 ratingsEnterprise AI For Dummies Rating: 3 out of 5 stars3/5Excel Formulas & Functions For Dummies Rating: 0 out of 5 stars0 ratingsCompTIA Project+ Study Guide: Exam PK0-005 Rating: 0 out of 5 stars0 ratingsQuickBooks 2024 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsExcel Tips and Tricks Rating: 0 out of 5 stars0 ratingsExcel 2019 For Dummies Rating: 3 out of 5 stars3/5Excel Data Analysis For Dummies Rating: 0 out of 5 stars0 ratingsExcel Formulas and Functions 2020: Excel Academy, #1 Rating: 4 out of 5 stars4/5M Is for (Data) Monkey: A Guide to the M Language in Excel Power Query Rating: 4 out of 5 stars4/5QuickBooks Online For Dummies, 2025 Edition Rating: 5 out of 5 stars5/5Salesforce.com For Dummies Rating: 3 out of 5 stars3/5Microsoft Excel 365 Bible Rating: 0 out of 5 stars0 ratings
Reviews for Mastering DevOps on Microsoft Power Platform
0 ratings0 reviews
Book preview
Mastering DevOps on Microsoft Power Platform - Uroš Kastelic
Mastering DevOps on Microsoft Power Platform
Copyright © 2024 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Group Product Manager: Preet Ahuja
Publishing Product Manager: Surbhi Suman
Book Project Manager: Uma Devi
Senior Editor: Runcil Rebello
Technical Editor: Yash Bhanushali
Copy Editor: Safis Editing
Proofreader: Runcil Rebello
Indexer: Tejal Soni
Production Designer: Prashant Ghare
DevRel Marketing Coordinator: Marylou De Mello
First published: September 2024
Production reference: 1090824
Published by Packt Publishing Ltd.
Grosvenor House
11 St Paul’s Square
Birmingham
B3 1RB, UK
ISBN 978-1-83588-084-5
www.packtpub.com
To my rock-solid life partner and our three extraordinary kids. Thank you for your tremendous support, patience, and inspiration to be more.
- Uroš Kastelic
To my beloved little warriors, Nandor, Botond, and Marton, who bravely faced the long, dark winter weekends with independence and imagination, allowing me the time to bring this book to life. And to the light of my life, my dear wife, whose unwavering support and love made this journey possible. Without her, I would not have dared to embark on this adventure.
– József Zoltán Vadkerti
Contributors
About the authors
Uroš Kastelic is a technology specialist in low-code/no-code at Microsoft, where he helps large enterprise customers implement and adopt Microsoft Power Platform. He holds a Master of Science (M.Sc.) degree in computer and information science. Prior to joining Microsoft, he worked as a software developer on various projects. He joined Microsoft in 2014 and has worked in different roles. For the last five years, he has been helping organizations with their application modernization projects and the implementation of DevOps practices, supported by Microsoft Azure services. He is a Microsoft Certified Trainer and an Expert with many certifications in Microsoft Azure and Power Platform technology, as well as being actively engaged in various tech communities.
I would like to extend my gratitude to my parents, who taught me to always reach for the stars. I would also like to thank Microsoft for helping me to grow professionally and personally. Thank you, the Packt team and technical reviewers, for the support throughout the writing process and making this book possible.
József Zoltán Vadkerti is a senior technology specialist at Microsoft with a computer science (MSC) degree from the Karlsruhe Institute of Technology. He has almost 20 years of experience in software development. Since 2015, he has been working in different roles for Microsoft, with a focus on application development and innovation. He has deep technical knowledge of Microsoft Azure, cloud-native architecture, serverless, DevOps practices, applied AI, and Microsoft Platform. He is a Project Management Professional (PMP®), Microsoft Certified Trainer, Azure Solution Architect Expert, and DevOps Engineer Expert. Today, he is one of the most experienced Power Platform professionals at Microsoft in the CEE and MEA region. József currently resides in Budapest with his wife and three boys.
I extend my deepest gratitude to my family, my wife, and my three heroes, who inspired me to undertake the writing of this book. I would also like to thank my employer, Microsoft, for fostering an environment where I could learn it all
and empowering me to share this knowledge widely so that, together, we all achieve more.
About the reviewers
Ralph Rivas is a seasoned professional with over two decades of experience delivering quality software and solutions, currently with Sogeti, part of Capgemini, where he works in the corporate Applications and Cloud Technologies group, focused specifically on Power Platform and the M365 ecosystem, actively promoting and growing technologies and features to help customers make the most of their digital modernization journey. More recently, he has also been part of the global technology team, promoting and advancing low-code and Gen AI platform initiatives aligned with Microsoft and the industry.
As an MS MVP for BizApps, he is a frequent speaker at many community events as well as being the Chicago UG leader and cofounder of the M365 Chicago Community Days event.
Praveen Gujar is a distinguished product leader having a transformative impact on digital advertising, ML/AI, and cloud technologies, honed at LinkedIn, Twitter, and Amazon Web Services. Renowned for building large-scale enterprise products and driving business growth, Praveen transitioned from a hands-on engineer to a strategic technology leader. At LinkedIn, he spearheaded AI/ML-powered products, co-founded the DataHub and Business Manager platforms, and enhanced advertiser trust through AI models. Additionally, he leads LinkedIn’s Associate Product Manager intern program and mentors emerging tech professionals. Praveen’s career is marked by innovation, strategic vision, and a commitment to mentorship.
Osazee Odigie currently works as a senior consultant at Deloitte, UK, where he is actively involved in delivering cloud transformation and business application development projects. He has worked in the technology space for more than six years as a platform engineer and Power Platform developer. A strong advocate of Infrastructure as Code (IaC) and open source applications, he specializes in building IaC accelerators for Microsoft Business Applications development. He volunteers for the Microsoft Power Platform Connectors open-source project and has developed two premium connectors published by Microsoft.
Table of Contents
Preface
Part 1: Understanding DevOps on Microsoft Power Platform
1
Mastering DevOps and ALM for Efficient Software Development
SDLC – what it is all about
Phases
Methodologies
Agile, Scrum, and Lean
The Agile manifesto
Lean management
Scrum
What is ALM?
CI and CD
DevOps-enabled architecture patterns
Summary
Further reading
2
Getting Started with Microsoft Power Platform
Technical requirements
The rise of low-code/no-code
The current and the future state of LCNC development
Understanding the benefits of LCNC
Getting started with Microsoft Power Platform services
What is Microsoft Power Platform?
Setting up our first environment
Power Platform administration
The Power Platform admin center
Power Platform management and automation for administrators, makers, and developers
Admin and management connectors
Governance, compliance, and data privacy
Data residency
Compliance offerings
Data protection
Starting to build real-world business solutions
Creating solutions using templates in Power Platform
Enterprise templates
Power Platform patterns
Other ways for building business solutions
Customer stories
Summary
Further reading
3
Exploring ALM and DevOps in Microsoft Power Platform
Why implement ALM and DevOps in Power Platform?
Plan and track
Development
Build and test
Deploy
Operate
Monitor and learn
ALM and DevOps tooling
Application modernization with an LCNC approach
Application modernization options
Building Power Platform adoption journey
The Power Platform adoption maturity model
Ways to improve the maturity level
Summary
Further reading
Part 2: Implementing DevOps on Microsoft Power Platform
4
Understanding Power Platform Environments and Solutions
Technical requirements
What comes to a solution?
Versioning of solutions and packages
What about data – Dataverse and data modeling aspects
Environments, managed environments, and environment strategy
Managed Environments
Environment strategies
Managed pipelines – Our first CI/CD
Power Platform pipelines
Step-by-step walkthrough – creating our first CI/CD pipeline
Summary
Further reading
5
Streamlining Power Platform Development with DevOps Tooling
Technical requirements
Git – the single source of truth
Power Platform CLI
Power Platform build tools for Azure DevOps
GitHub Actions for Power Platform
Managed pipelines – source control integration with Git
GitHub workflows
Dataverse with Power Automate cloud flows
Copilots in Power Platform pipeline development
Summary
Further reading
6
A Deep Dive into Continuous Integration/Continuous Deployment (CI/CD) Pipelines
Technical requirements
When everything comes together
Branches and environments
The Power Platform catalog
Azure pipeline templates and reusable GitHub workflows
The ALM Accelerator for Power Platform
Automated testing in DevOps and Power Platform pipelines
Summary
Further reading
7
An Overview of DevSecOps in Power Platform
Technical requirements
What is DevSecOps?
Setup
Plan and Design
Commit (CI)
Deploy (CD)
Operate and Monitor
Security model of Power Platform
Secret scanning and static code analysis tools
Solution checker
Spinning up DevSecOps projects at scale
Security of DevOps processes
Summary
Further reading
8
Demonstrating ALM and DevOps Implementation
Technical requirements
Exercise – repository management and branch strategies for the applications
Exercise – building CD pipelines and a release train
Exercise – backlog management in GitHub
Exercise – testing solutions
Exercise – monitoring the applications
Exercise – introducing feature flags
Summary
Further reading
Part 3: Exploring DevOps Best Practices and the Road Ahead
9
Implementing the Fusion Development Approach
Technical requirements
What is the fusion development approach?
Common examples of the fusion development approach in Power Platform
Empowering collaboration with open source development practices
Building a catalog process
Additional tools for developers using Visual Studio
Microsoft Azure and Power Platform together
Application hosting services
Integration Services
Data analytics
AI services
Data storage
Example of an Azure and Power Platform integration scenario
Creating a Web API and a Power Platform custom connector with Visual Studio 2022
Creating a Power Platform custom connector with Azure APIM
Applying ALM to custom connectors
Summary
Further reading
10
Enabling Pro-Dev Extensibility in Power Platform
Technical requirements
Enabling the power of the integration – connectors
Connectors
Connection references
Environment variables
Example – Decoupling configuration from the application
Overview of canvas components and component libraries
Canvas components
Component libraries
Managing the life cycle of the component library
Getting to know code components
Code component composition
Creating your code component
ALM for code components
ALM for Power Pages
Use of the PAC CLI for Power Pages
Using Power Platform Build Tools with Power Pages
Using Power Platform pipelines with Power Pages
Summary
Further reading
11
Managing the Environment Life Cycle with Design Best Practices
Technical requirements
Building on the design best practices
Power Platform Well-Architected
Power Platform landing zones
Automating environment life cycle management
Infrastructure as code (IaC) over ClickOps
Power Platform management with Terraform
Traditional automated environment management approaches
DLP considerations when managing environments
Power Platform CoE
The CoE Starter Kit
Example of environment management
Summary
Further reading
12
Looking Ahead with Copilots, ChatOps, and AI-Infused Applications
Technical requirements
The era of AI and the rise of GPTs
Introduction to AI
GPTs
Responsible AI
Microsoft Copilots and Copilots in Power Platform
Copilots in Power Platform
Copilots’ usage from the perspective of a maker
Extending business solutions with AI Builder and Azure OpenAI
Introducing AI Builder
Using AI models and AI prompts
Introducing Azure OpenAI
ChatOps and Copilot Studio
A closer look at Copilot Studio
What is ChatOps
Integrating Microsoft Teams with GitHub and Azure DevOps
Building ChatOps for Power Platform with Copilot Studio
ALM for Copilot Studio
Summary
Further reading
Index
Other Books You May Enjoy
Preface
Microsoft Power Platform is the world’s leading low-code, no-code platform – a modern application runtime on which an infinite number of business solutions can be realized. The more complex and business-critical these scenarios become, the more need there is for professional DevOps processes. This book focuses on the well-known practices of custom software development projects and the mapping of these common activities to the Microsoft Power Platform toolset. We explore every phase of the software development life cycle and the tools and capabilities that are provided by this Software-as-a-Service (SaaS) product to delve into the usual DevOps activities, such as packaging, building, deploying, testing, and releasing solutions, in detail. In addition, we take a deep dive into DevSecOps processes and introduce the security-infused development practices in Microsoft Power Platform. You’ll learn about modern DevOps tools such as Azure DevOps Services and GitHub and the different ways to implement DevOps processes for Microsoft Power Platform. With the right DevOps implementation in place, our solutions can run in highly regulated industries in a controlled and governed manner.
We strongly believe that low code is for professional developers. Microsoft Power Platform is one of the rapid application development frameworks and the only framework that provides a UI for citizen developers (makers). The platform was created for professional developers and engineering teams to reduce the go-to-market time of business applications. But, this only works if it is backed by professional DevOps processes.
As a unique approach, this book brings these two orthogonal worlds together: low-code/no-code enthusiasts who can build complex solutions on one side and professional developers who know about DevOps and Application Life Cycle Management on the other side. This knowledge is a unique opportunity for you, dear reader, to build up competencies that will give you a compelling advantage in the job market.
As a final thought, with the rise of generative AI solutions, developers’ work will change significantly and the focus will shift to prompt engineering and larger building blocks. Since AI agents can act in different roles (as developers, testers, or project managers) and can synthesize applications on their own with only provided prompts, instead of writing code lines, we craft components. These components can correspond to the building blocks offered by Power Platform. Considering the Copilots for Power Platform, a kind of new application crafting era has just begun, which can only be successful if DevOps processes are implemented in the same way as in the case of custom development projects.
Who this book is for
This book is designed for professionals in the field of software development and IT operations who are interested in learning about Application Life Cycle Management (ALM) and DevOps processes specifically for Microsoft Power Platform. It is suitable for the following people:
Software developers
DevOps engineers
Cloud architects
Site reliability engineers
Testers
Low-code engineers
The book will be particularly beneficial for those who already have a basic understanding of software development processes and tools used in software development life cycles. Additionally, it is an excellent resource for professional developers who are curious about the ALM and DevOps aspects of Power Platform.
What this book covers
Chapter 1
, Mastering DevOps and ALM for Efficient Software Development, provides an overview of the most significant breakthroughs in the software development industry, such as Agile, Lean, and DevOps, and explains state-of-the-art application development processes and patterns, and cutting-edge DevOps and ALM practices.
Chapter 2
, Getting Started with Microsoft Power Platform, starts by introducing the low-code/no-code development approach, provides an overview of Microsoft Power Platform services, and describes how the platform complies with various governance and compliance standards, making it an enterprise-ready development platform. It shows how to provision a trial environment that can be used to work along with examples provided in the book. It also dives into the tools for managing Power Platform and options for getting started building business applications.
Chapter 3
, Exploring ALM and DevOps in Microsoft Power Platform, works on building a connection between ALM and DevOps with Power Platform. It provides a brief introduction to Azure DevOps and GitHub. To help organizations understand how Power Platform can be used against an existing application portfolio, this chapter talks about app modernization options. It closes by connecting the Capability Maturity Model Index (CMMI) and the Power Platform adoption maturity model, to help organizations create a plan to increase maturity across different areas.
Chapter 4
, Understanding Power Platform Environments and Solutions, covers the fundamental building blocks of Power Platform: environments and solutions. It also discusses environment strategies, managed environments, and Power Platform pipelines. The chapter ends with a hands-on lab that guides us through building our first continuous-integration and continuous-delivery pipeline with the help of Power Platform pipelines.
Chapter 5
, Streamlining Power Platform Development with DevOps Tooling, takes one step forward and unleashes tools beyond Power Platform pipelines. It discusses Git, PAC CLI, and Azure DevOps Services pipelines with Power Platform-specific build tasks and GitHub actions to CI/CD our solutions across environments. Finally, it combines the Power Platform managed pipeline results from the previous chapter with professional DevOps tools and looks at version control integration directly from managed pipelines.
Chapter 6
, A Deep Dive into Continuous Integration/Continuous Deployment (CI/CD) Pipelines, describes advanced patterns of DevOps CI/CD processes, such as Git branching strategies, automated testing frameworks for Power Platform, and the Power Platform Catalog for package management. It walks through YAML pipelines in Azure DevOps and GitHub workflows that automatically spin up developer branches and developer environments respectively by using various PAC CLI commands, GitHub actions, and Azure DevOps build tasks. Additionally, it discusses the ALM Accelerator for Power Platform and how this solution uses pipeline templates, branching strategies, and environment management in general as reusable solutions for our projects.
Chapter 7
, An Overview of DevSecOps in Power Platform, goes through the theory of DevSecOps in software development projects and then it maps security-related activities to DevOps processes of our Power Platform projects. It delves into GitHub Advanced Security and CodeQL for static application security testing. It introduces a solution checker and showcases how to spin up DevSecOps projects at scale with Entra ID groups, service principals, and other security guardrails in place. It concludes with a surface attack and risk analysis of established processes and recommendations to manage solutions across tenants.
Chapter 8
, Demonstrating ALM and DevOps Implementation, takes a deep dive into the practical application of DevOps and ALM principles. This chapter provides hands-on exercises on a real-world example – the Kudos app from the Power Platform enterprise template public repository – from Git branching strategies to CI and CD pipelines through automated testing, backlog management, and monitoring applications in production. Finally, the chapter introduces feature flags to control feature rollouts.
Chapter 9
, Implementing the Fusion Development Approach, emphasizes the importance of building fusion teams that help organizations reach their goals. It demonstrates examples of the fusion development approach and talks about the importance of InnerSource practice. Then, it continues with possibilities around integration with Microsoft Azure cloud services. Finally, it concludes by demonstrating a common Azure and Power Platform integration scenario.
Chapter 10
, Enabling Pro-Dev Extensibility in Power Platform, continues explaining the possibilities pro-developers have when developing for Power Platform. It covers the power of connectors for integration scenarios and options around decoupling configuration from the application. It goes into reusable components and the power of custom code components. The chapter demonstrates how code components can be developed and how ALM practices can be applied to code components. The chapter ends by exploring application life cycle management for Power Pages.
Chapter 11
, Managing the Environment Life Cycle with Design Best Practices, builds on design best practices. It talks about Power Platform Well-Architected and Power Platform Landing Zones, explaining how they can help organizations build application workloads that follow best practices that are deployed in governed and secured environments. The chapter then transitions toward environment life cycle management and talks about automated environment management with different approaches, including infrastructure-as-code and Terraform. Finally, we conclude this chapter by looking into the Power Platform Center of Excellence and how the CoE starter kit can help organizations manage Power Platform tenants.
Chapter 12
, Looking Ahead with Copilots, ChatOps, and AI-Infused Applications, is the last chapter of this book and looks at how artificial intelligence can help organizations enrich their applications. It helps understand how various Copilots can be used to improve makers’ productivity and how AI Builder or Azure OpenAI can modernize existing business processes. We close this chapter and the book by talking about Copilot Studio and its ability to create custom copilots that can help organizations automatize DevOps processes using custom-built AI assistants.
To get the most out of this book
You will need to have a basic understanding of the Microsoft Power Platform product family and fundamental knowledge of software development practices and the basics of IT application administration, support, and monitoring. Besides this theoretical knowledge, you will need to install the following software components to be able to execute the provided script snippets locally:
Please note that the scripts are created to run in cloud-hosted agents of Azure DevOps or GitHub and local execution is only intended for demonstration purposes.
To get the most out of the book, you will need to have Power Platform developer licenses, an Azure DevOps or GitHub organization (free plans available for public repositories are sufficient), and a Microsoft Azure tenant. A Microsoft Azure subscription is not required because we will use only Microsoft Entra ID features to connect the Power Platform world with our preferred DevOps tool. Of course, if your organization has enterprise tiers of these online services, the experience with the examples will be even more smooth and straightforward.
There are many examples in the book that have been created for both Azure DevOps Services and GitHub. The concepts stated in those chapters are the same beyond these DevOps tools and the scripts can be easily moved between these platforms. We highly recommend creating your workflows in the DevOps tool on your own flavor, so go either with Azure DevOps or GitHub for the samples in the book.
In Chapter 7
, it is recommended to have the GitHub Advanced Security add-on for GitHub or Azure DevOps Services. Although the CodeQL commands can be locally executed, the advanced security features of Azure DevOps and GitHub are only available with public projects and, respectively, with public repositories as well.
If you are using the digital version of this book, we advise you to type the code yourself or access and fork the code via the GitHub repository (link available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.
You can place the real-world example in Chapter 8
in a separate repository to introduce everything that you will learn over the course of the book in the same solution. With that, you will have an end-to-end, production-ready DevSecOps reference implementation for your organization.
Download the example code files
You can download the example code files for this book from GitHub at https://github.com/PacktPublishing/Mastering-DevOps-on-Microsoft-Power-Platform
. In case there’s an update to the code, it will be updated in the existing GitHub repository.
We also have other code bundles from our rich catalog of books available at https://github.com/PacktPublishing/
. Check them out!
Conventions used
There are a number of text conventions used throughout this book.
Code in text: 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: We will change the property from SingleLine.Text to a number (Whole.None) by changing the highlighted property.
A block of code is set as follows:
pac admin help
pac admin list help
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
codeql.exe database analyze .\codeql-database-js .\codeql-pack\ javascript\codeql\javascript-queries\0.8.12\codeql-suites\
javascript-code-scanning.qls --format=csv --output=results.csv
Any command-line input or output is written as follows:
pac solution create-settings --solution-zip .\EnvConnRef_1_1_managed.zip
Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: This time we select New | More | Environment variable.
Tips or important notes
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 [email protected]
.
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 [email protected]
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
.
Share Your Thoughts
Once you’ve read Mastering DevOps on Microsoft Power Platform, we’d love to hear your thoughts! Please click here to go straight to the Amazon review page
for this book and share your feedback.
Your review is important to us and the tech community and will help us make sure we’re delivering excellent quality content.
Download a free PDF copy of this book
Thanks for purchasing this book!
Do you like to read on the go but are unable to carry your print books everywhere?
Is your eBook purchase not compatible with the device of your choice?
Don’t worry, now with every Packt book you get a DRM-free PDF version of that book at no cost.
Read anywhere, any place, on any device. Search, copy, and paste code from your favorite technical books directly into your application.
The perks don’t stop there, you can get exclusive access to discounts, newsletters, and great free content in your inbox daily
Follow these simple steps to get the benefits:
Scan the QR code or visit the link below
https://packt.link/free-ebook/978-1-83588-084-5
Submit your proof of purchase
That’s it! We’ll send your free PDF and other benefits to your email directly
Part 1:Understanding DevOps on Microsoft Power Platform
In this section, we will establish the foundational knowledge required for modern DevOps and software development methodologies, and examine the reasons behind the rise of low-code/no-code frameworks in the past decade. We will delve into Microsoft Power Platform, outlining its extensive feature set and correlating these features with established software development life cycle methodologies. Furthermore, we will study the theory of the CMMI model and its influence on the development of the Power Platform adoption maturity model, underscoring the importance of this model in our practices.
This part has the following chapters:
Chapter 1
, Mastering DevOps and ALM for Efficient Software Development
Chapter 2
, Getting Started with Microsoft Power Platform
Chapter 3
, Exploring ALM and DevOps in Microsoft Power Platform
1
Mastering DevOps and ALM for Efficient Software Development
Software development practices and methodologies have evolved a lot since the first program was written on punch cards. Nowadays, every business process in every industry vertical runs on software and we cannot even imagine our life without applications, as they are used in almost every interaction with our world. Digital transformation has been accelerated during the pandemic and the demand to create more applications has risen to a level that cannot be fulfilled exclusively by traditional software development tools and frameworks. Today, every organization is a software development company regardless of its industry thanks to the global digital transformation.
In this chapter, we will explore Application Life Cycle Management (ALM) in the context of software development. We begin with an overview of Software Development Life Cycle (SDLC), followed by a discussion of various software development methodologies. We will then delve into the concept of ALM, examining it from the perspective of the SDLC and the journey from requirement engineering through development and testing to production and maintenance. This knowledge is crucial as it equips us with the understanding needed to effectively manage and streamline the process of planning, creating, testing, and deploying an application of any kind. We will also explore the origin of the Lean concept, a philosophy that emphasizes creating value for customers and eliminating waste and that originated in the car manufacturing industry.
We will then introduce the Agile manifesto and the Scrum methodology, which are key frameworks in modern software development practices. We will further learn about DevOps-enabled architecture, including various design patterns and non-functional requirements such as testability and deployability. We will also cover Continuous Integration (CI) and Continuous Deployment (CD), two practices that automate the stages of app production. Finally, we will discuss the concepts of Release Trains and release cycles, which are strategies for managing the release of new features in a coordinated and predictable manner. This knowledge will help us streamline the development processes and improve product quality.
By the end of this chapter, we will have gained familiarity with state-of-the-art application development processes, and patterns, as well as cutting-edge DevOps (bringing dev and ops teams together to continuously deliver value to our customers) and ALM practices.
In this chapter, we’re going to cover the following main topics:
SDLC – what it is all about
Overview of Software development methodologies
What is ALM?
Lean principles, the Agile manifesto, and Scrum methodology
DevOps-enabled architecture patterns
CI and CD
SDLC – what it is all about
SDLC, which is sometimes also referred to as the software development process, is the systematic methodology used to produce quality software cost-effectively. We can use several methodologies developed in the last few decades to develop or modify computer systems.
Originally, the concept was created in the 1960s. Its main goal was to establish a repeatable, auditable, and, at that time, sequential software development process that covered the steps from the ideation of the application to the delivery of the final solution by targeting corporate mainframes. Since then, many enhancements, innovations, and inventions have been implemented starting with the introduction of object-oriented programming languages through DevOps and DevSecOps practices to cloud-native architectures, which led to newer and newer SDLC methodologies. As a result of the continuous process improvement, most modern software development methodologies follow Agile principles nowadays.
Phases
Regardless of the selected software development methodology, the stages (phases) of the software development process are the same:
Figure 1.1 – The software development phasesFigure 1.1 – The software development phases
Let us discover these phases:
Requirement analysis or requirement engineering is the step in which the development team collects customer requirements and objectives. The development team works closely with customer representatives to identify the key features of the solution. In this phase, requirements are also analyzed, meaning that needs are validated and documented unambiguously. This phase also covers identifying the non-functional requirements of the system, such as performance, resource needs, or availability expectations. It is a crucial step to ensure that the final product meets the customer’s needs and expectations.
The planning and design phase is the one in which the development team creates the project plan with cadence and key deliverables. This process usually ends with a Work Breakdown Structure (WBS). The development team then assigns milestones to different parts of the WBS to be able to track the progress at a higher level. A milestone frequently signifies the completion of contractual obligations, leading to financial settlements. In this phase, the team also designs software architecture and User Experience (UX). Wireframes for the UI and prototypes for architecture are frequently used to get more input for effort estimations. Another practice to calculate the effort and complexity of the tasks in WBS is to play so-called planning poker. Team members use cards with numbers to assign values to tasks separately. At the end, poker team members reveal their cards and discuss the results until they reach a consensus.
The development phase is essentially the coding part. The team implements the application, writes the unit tests, and debugs the code. Traditional methodologies view the development phase as solely for writing code. In contrast, Agile approaches eliminate this separation and incorporate testing and deployment earlier in the process. They do it so that they can repeat the coding-testing-deployment cycle many times in an iterative way. In addition, these modern approaches foster collaboration between development teams and client representatives by providing access to the working software at the end of every iteration.
The test and quality assurance phase is about creating different levels of tests for the application. The development team writes and executes integration tests, system tests, end-to-end tests, performance tests, and other non-functional tests, such as resource usage or chaos tests, to validate the system against the defined requirements. In the past, there were dedicated test teams whose main duty was to provide these tests and to ensure that the software meets the customer’s requirements. When the validation passed, the software was ready to deliver to production.
The deployment phase is the step in which the development team deploys the solution into the client’s environment. It involves not just installing the system but also configuring it and migrating data from previous solutions in some cases. Deployment can target on-premises or cloud infrastructure. Nowadays, this process is fully automated. The development team conducts user training if needed and hands over the documentation (user manuals) to the customer, too.
The maintenance phase is about monitoring the solution in a production environment. Based on the results and customer feedback, the development team provides updates, upgrades, bug fixes, security patches, and even new features. This phase is sometimes referred to as a support period and customers pay additional fees to get those services from development teams.
Application runtime platform
Low-code/no-code platforms are application runtime platforms that enable professional developer teams to develop applications of any kind. Since this application development is fully identical to any other custom application development, the same SDLC methodologies can be applied to these low-code or no-code applications.
Depending on the software development project, an organization can apply different approaches to their work, from following fixed guidelines to adapting to changing situations. However, in all scenarios, the aforementioned phases are the same. In the next section, we will learn about the most-used methodologies.
Methodologies
As we have seen, the SDLC describes the main phases of the software development process, focusing on the question of why, but it does not define what or how we should implement those phases. The methodologies tell us what we should deliver and how we should work in those phases in detail.
By examining the following two distinct methodologies, we can better understand what each aims to define for software development projects:
The Scrum framework iterates through all the phases of SDLC from requirement analysis, planning, development, testing, and deployment to maintenance every 2-4 weeks
The waterfall methodology only goes through the SDLC phases once in a sequential way and it takes several months or sometimes even years
Some of the major methodologies include the following, in chronological order:
Waterfall
V-model
XP
Iterative and incremental development
Agile (Scrum)
In the next sections, we will learn more about these frameworks and methodologies, and how they could be applied to low-code/no-code platforms, such as Microsoft Power Platform.
Waterfall
This is the oldest software development process that defines the software development phases sequentially and rigorously.
It is very often criticized for its rigidity and sequential method. As we will see, all upcoming methodologies have tried to improve on this original approach in different ways, but it has also some advantages foremost in software development projects, such as writing kernel drivers or programming mission-critical applications, such as nuclear plant software. The following figure visualizes those development phases in the waterfall model that were discussed earlier in this chapter:
Figure 1.2 – The waterfall modelFigure 1.2 – The waterfall model
The phases, requirement analysis, planning and design, development, testing and quality assurance, deployment, and maintenance, are equivalent to the phases described earlier in this chapter. The difference is the sequential execution order of those phases.
The pros of this model are as follows:
It is a preferred methodology for mission- or business-critical projects.
It is preferred when repetitive application development is required. This occurs when projects are highly similar, such as developing kiosk applications or writing embedded software. In these cases, the requirements and customer expectations are well understood, and no changes are anticipated.
Project milestones and deadlines are clearly defined.
The cons are as follows:
Big upfront design cost
Customer expectations cannot be considered after requirement analysis
Time-to-market is huge; it is measured in years and can result in outdated deliveries
Testing does not take place until the end of the SDLC
In spite of the aforementioned cons, even in low-code/no-code platforms, we can use this methodology to create our applications using the foundation provided by the platform.
V-model
This model is an enhancement of the previous one to improve the time-to-market Key Performance Indicator (KPI) with high software quality by introducing parallel activities in the process.
The following figure shows the process in detail:
Figure 1.3 – A V-modelFigure 1.3 – A V-model
Everything starts with the decomposition of the requirements (the domain space) into modules or components that can be implemented separately. The V-model expects modular architecture, but not necessarily loosely coupled architectures in which those components are considered subsystems of the large system design. Low-code/no-code platforms, such as Microsoft Power Platform, provide built-in tools for testing and validation, which can help developers ensure that their applications meet the requirements and function as intended. In a low-code/no-code environment, the V-model can be realized by following a structured development process that includes requirements analysis, design, development, testing, and deployment. Each phase of the process can be completed using the tools and features provided by the low-code/no-code platform, allowing developers to build, test, and deploy their applications in a streamlined and efficient manner.
There is a corresponding V-model definition for US government institutions as part of the US Government Standard. It is more detailed and stricter than the original V-model definition to fulfill the US government’s requirements.
The pros are as follows:
Faster time-to-market with higher overall velocity
Built-in quality assurance
The cons are as follows:
It is still a rigid process
Requirement changes can hardly be managed
Extreme programming
Extreme Programming (XP) as a software development methodology emphasizes the need to accelerate the reaction time of the development team to customers’ changing requirements – which is expected in any software development project – by maintaining high software quality.
This