32,39 €
Managing Power Platform solutions manually can be challenging and time-consuming, as is application lifecycle management (ALM), which encompasses governance, development, and maintenance. This book provides comprehensive coverage of ALM, addressing planning, development, testing, deployment, and maintenance. Drawing on his extensive experience as a Power Platform consultant and Microsoft MVP, Benedikt Bergmann simplifies complex topics, making them accessible and easy to grasp.
From planning and designing applications to deploying and maintaining them, this book provides step-by-step instructions, best practices, and real-world examples to effectively manage the entire application lifecycle. You’ll gain insights into optimizing Power Platform's toolbox, including Power Apps, Power Automate, Power Pages, and Power Virtual Agents, for seamless collaboration, agile development, and rapid application delivery. You’ll also implement best practices for version control, code management, and collaboration using the Microsoft Power Platform.
By the end of this book, you’ll be equipped with the knowledge and skills to effectively manage the entire application lifecycle, accelerate development cycles, and deliver exceptional solutions with the Microsoft Power Platform.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 210
Veröffentlichungsjahr: 2024
Application Lifecycle Management on Microsoft Power Platform
A comprehensive guide to managing the deployment of your solutions
Benedikt Bergmann
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 author, 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.
Associate Group Product Manager: Aaron Tanna
Publishing Product Manager: Kushal Dave
Book Project Manager: Manisha Singh
Senior Content Development Editor: Rosal Colaco
Technical Editor: Vidhisha Patidar
Copy Editor: Safis Editing
Indexer: Tejal Soni
Production Designer: Ponraj Dhandapani
Business Development Executive: Kritika Pareek
First published: December 2024
Production reference: 1060924
Published by Packt Publishing Ltd.Grosvenor House 11 St Paul’s SquareBirmingham B3 1RB, UK
ISBN 978-1-83546-232-4
www.packtpub.com
When I first met Benedikt Bergmann, before he was awarded Microsoft Most Valuable Professional, I remember being impressed by the presentation he was delivering on advanced Application Lifecycle Management (ALM) within Power Platform. Since then, I’ve had the pleasure of calling him a friend and peer, witnessing him become one of the leading experts in the field of Application Lifecycle Management and Power Platform solution development. Just as Benedikt’s presentations are clear, insightful, and well thought out, in the same way, his latest book will guide you through the basics as well as some of the more complex aspects of ALM and its application within Power Platform.
Do you have a source code control and environment strategy? Do you know how to effectively segment your solutions? This book explores these topics and more, bringing you techniques and opinions that Benedikt has collected through his years of experience as a Power Platform consultant. The content is delivered in an accessible and engaging way, using examples, well-laid-out step-by-step instructions, screenshots, YAML code snippets, and links to additional sources of information. You will learn how to structure your solutions, create quality gates, develop a branching strategy, and create automated build and release pipelines.
I believe that Benedikt’s book is a valuable resource for anyone looking to understand and implement ALM, perhaps one of the most overlooked aspects of Power Platform solution delivery. By the end of this book, you’ll not only grasp the theoretical aspects of ALM within Power Platform but also be ready to apply them to real-world projects. Start reading today, and let Benedikt help you raise the quality bar of your next Power Platform project.
- Scott Durow, Microsoft Cloud Developer Advocate
Benedikt Bergmann is the CEO of CRM Konsulterna Deutschland and develops solutions for Dynamics 365 and the Power Platform with his German precision and nearly 15 years of experience. He is a solution architect with a huge understanding of customers’ challenges and a real problem solver with very detailed knowledge about most of the Platform.
One area he is very invested in is everything around Application Lifecycle Management. In 2021, he was awarded Microsoft Most Valuable Professional in the Business Application area.
I would like to thank my loving and patient wife, for her continued support, patience, and encouragement throughout the long process of writing this book.
Wael Hamze is a Power Platform Lead and a 7 times Microsoft Business Applications MVP with over 20 years of experience in software design and development. He is an expert in Microsoft technologies with a focus on Power Platform and Dynamics 365. Wael is a passionate speaker, author, and mentor in the Power Platform community. Wael is the author of “Power DevOps Tools”, which is the first widely adopted Azure DevOps extension for Power Platform that has been adopted by thousands of organizations to implement automated DevOps processes for Power Platform and Dynamics 365. His mission is to enable and empower teams and organizations to achieve their goals and optimize their performance by providing simple innovative solutions.
Application Lifecycle Management (ALM) is a crucial aspect of software development. It encompasses the entire lifecycle of an application, from conception to decommissioning, and includes automated deployment to downstream environments. The different stages of a complete ALM process are:
PlanDevelopTestDeployMaintainThis book will primarily focus on the automated deployment aspect.
In recent months, there has been a surge in attention towards ALM in the Power Platform. This heightened interest is driven by Microsoft’s efforts to enhance the Platform and by the desire of customers and implementers to achieve more reliable and predictable deployments.
To succeed in this endeavor, it is essential to have a strong grasp of Power Platform fundamentals, such as Environments, Solutions, and Power Platform CLI, as well as a deep understanding of the various ALM options available. This book will comprehensively cover these areas and provide practical examples of automated deployment implementations.
The first part of the book is intended for anyone working with the Power Platform or Dynamics 365. It is crucial to grasp the concept of Application Lifecycle Management and its implications.
The second half is geared towards technical individuals capable of implementing the described pipelines.
Chapter 1, An Intro to ALM, provides a general, unrelated to the Power Platform, overview of what the Application Lifecycle is.
Chapter 2, ALM in Power Platform, relates the general ALM approach to the Power Platform. This chapter also covers the usual problems one experiences when trying to implement a proper ALM process for the Power Platform.
Chapter 3, Power Platform Environments, will explain in detail what is meant when talking about Environments when it comes to the Power Platform. We will discuss different environment setups.
Chapter 4, Dataverse Solutions, deepens your knowledge about solutions in Power Platform. We learn what they are for, and not for, as well as different approaches to structure them.
Chapter 5, Power Platform CLI, explains everything one needs to know about the Power Platform CLI when it comes to ALM. We will mostly focus on the commands around Solutions.
Chapter 6, Environment Variables, Connection References, and Data, dives into areas to make implementation more dynamic and how to deploy those components securely and predictably to downstream environments.
Chapter 7, Approaches to Managing Changes in Power Platform ALM, explains the difference between environment-centric and source code-centric approach. We also will learn about branching, and which pipelines a source code-centric approach requires.
Chapter 8, Essential ALM Tooling for Power Platform, dives into the different tools we have at hand to implement an ALM process for the Power Platform and how to select the correct one for your project.
Chapter 9, Project Setup, goes through everything that needs to be set up to implement the previously discussed approaches. This includes creating Service Principal Names (SPN), setting up Azure DevOps, setting up GitHub, and setting up Power Platform Pipelines. It also briefly explains how project folders could be structured.
Chapter 10, Pipelines, is the chapter where the magic happens, and we learn how to implement the source code-centric approach.
Chapter 11, Advanced Techniques, the very basic implementation we do in Chapter 10 usually requires some extension to fit a real-life scenario. This chapter will explain some of them. We will learn about advanced YAML (variables, parameters, conditions, and loops), settings files, healthy code state, and transporting data.
Chapter 12, Continuous Integration/Continuous Delivery, looks at which areas you need to focus on to implement a proper CI/CD process for the Power Platform. We will learn more about branching, quality gates, Pull requests, and Versioning.
Chapter 13, Deepening ALM Knowledge, is the last chapter of this book and focuses on which areas you could dive more into after finishing this book.
If you are using the digital version of this book, we advise you to type the code yourself or access the code from the book’s GitHub repository (a link is available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.
You can download the example code files for this book from GitHub at https://github.com/PacktPublishing/Application-Lifecycle-Management-on-Microsoft-Power-Platform. If there’s an update to the code, it will be updated in the GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
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: “In the PowerPlatformSPN parameter, you need to provide the name of the service connection to the development environment.”
A block of code is set as follows:
- task: PowerPlatformPublishCustomizations@2 displayName: Publish Customizations inputs: authenticationType: 'PowerPlatformSPN' PowerPlatformSPN: '<Name of the dev ADO Service connection>' AsyncOperation: true MaxAsyncWaitTime: '60'Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “Within the GitHub project in question, we navigate to Actions and select the New workflow button.”
Tips or important notes
Appear like this.
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, email us at [email protected] and mention the book title in the subject of your message.
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 and fill in the form.
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.
Once you’ve read Application Lifecycle Management 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.
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 belowhttps://packt.link/free-ebook/9781835462324
Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directlyThe most productive companies deploy custom software on a regular schedule. To achieve this kind of efficiency, a flawless process of software development from start to end is crucial. This is where application lifecycle management (ALM) comes into the picture.
ALM adoption, especially within the Power Platform, is growing. There are a lot of questions people have about this topic.
This first chapter will give you a general introduction to ALM, as well as what is included.
In this chapter, we’re going to cover the following main topics:
What is ALM?What are the stages of an ALM process?What the benefits of ALM are and why we should use itThe tools of an ALM strategyBy the end of this chapter, you will be familiar with the key concepts and ideas in ALM. The topics covered will help you understand what ALM contains and why it is important.
When we talk about ALM, we often only talk about the automation part. Even though this is an essential part of it, there is more to ALM than that. ALM is a complex system of tools, people, and processes to control the complete cycle of an application, from planning and development, testing, and maintenance to retirement. It is important to know that all of these are integral parts of holistic ALM.
The following diagram illustrates the different stages of an ALM process and that it is an ever-repeating cycle:
Figure 1.1 – Stages of ALM
Whenever we have completed one cycle by starting from the Maintain stage, we start over with the planning of the next iteration. After the first iteration, the Maintain stage continues while the other stages are executed to support and maintain the current version in production while the next version is prepared. This goes on until the application is finally retired.
As you can see in Figure 1.1, the ALM cycle contains five stages:
PlanDevelopTestDeployMaintainThe following sections will explain these five stages.
First, an application must be planned. Therefore, this is the first stage of the ALM process. This will include requirement gathering from all stakeholders to collect all their needs for the application to support their business cases in the best way possible. Business requirements are not the only requirements we have to take into consideration. Within this stage, gathering compliance and governance requirements is as important as gathering business requirements. Usually, we differentiate between functional and non-functional requirements, where business requirements are often functional and the others mentioned are often non-functional.
With all this input and requirements, a design of the application will be created.
Since the ALM process is a cycle and can repeat itself, it can support an Agile development approach. In this case, the requirements gathered in the Plan stage of one iteration can change the requirements and design of an earlier iteration.
After the plan for the application (or the next iteration) is completed, the team starts implementing it. The development team must break down given requirements into small pieces to be able to implement them.
Within this stage, the team could use different development approaches. The most known ones are either a Waterfall or an Agile approach. Since the whole ALM process is a circle and repeats itself, this would mean that the chosen development approach is a sub-approach.
Usually, the Test stage and the Develop stage are very tightly related to each other and even overlap. Testers start their work of defining test cases and setting up test environments while the application is still in development. They send features back to development whenever they find parts that are not working as expected, which should happen in close communication between the test team and the development team.
In addition to the often-manual tests of dedicated test teams, it is recommended that the development team also creates unit tests as well as integration tests for the software they are writing. In addition to that, there might be the need for automated UI tests, performance tests, load tests, and a bunch of other tests.
The formal purpose of this stage is to verify that the created application meets the requirements defined in the planning stage of the ALM process. Until this is the case, the team will do mini-iterations between the Develop and Test stages.
This stage defines the release of the product to production or the end user. There is no direct definition of how this stage should be done. It very much depends on the kind of software developed, the target audience, the prerequisites within the organization, and a lot of other factors.
The last stage is to maintain your application, as the name says. It includes monitoring and managing the application. This stage is usually the longest in an ALM process.
As soon as an application is in this stage, it stays there until it gets retired, even though new iterations (a.k.a., new versions) are usually started as soon as one version goes to production and therefore enters the Maintain stage.
As mentioned earlier, a flowless process to develop custom software is crucial to the success of an implementation. In the upcoming sections, we will analyze the following key advantagesof ALM:
Boosting communication and strengthening visibilitySharpening testingIncreasing qualityImproving development and deployment speedA good ALM strategy provides your team with the tools needed to deliver high-quality software. This includes proper team communication and planning platform(s). All of the tools in an ALM strategy should be as integrated as they can be to improve collaboration.
When those tools and platforms are in place, all stakeholders, and the development team in particular, will get better insights into the current project status and what has been achieved already, as well as what lies ahead.
Another part of a sophisticated ALM strategy should be guidelines, best practices, and tools when it comes to testing. This includes manual tests such as regression tests by the test team, as well as automated tests such as, for example, unit tests or integration tests.
When those guidelines, best practices, and tools are in place, the development team can easily create automated tests, which should be run on a regular basis, at least before the software is deployed to the downstream environments.
The first two key advantages together will lead to increased software quality. Since all stakeholders are able to communicate better and more frequently and get better insights into the current project status, and the development team can create automated tests, the overall quality of your delivered software will be increased, mainly because the identification of issues can be done a lot earlier in the process.
Through source code management and proper branching, the quality of the delivery can be increased even more.
All of the aforementioned will, in the end, improve development and deployment speed. Since issues can be identified earlier in the process, the development team needs less time to fix them and respond to the input of the testers. Therefore, the cognitive shift between tasks becomes less for both developers and testers, which leads to more efficiency and thus improved productivity.
The deployment process that should be set up during the establishment of an ALM strategy should optimize and automate the current deployment process. Through iterations of improvements, it will be optimized even further. This means that the deployment speed will be increased over time.
ALM tools are usually a collection of project management tools. How sophisticated those tools are depends on a lot of factors, one of which is how mature the current organization is in relation to application development. It could range from a very simple document or wiki to a “full-blown” ALM product.
It is also important to mention that there are usually several tools that are combined to achieve a holistic ALM tool landscape.
The following list gives you an idea of the features your ALM tool landscape should (at least) cover:
Communication: The team implementing the solution needs to communicate with various stakeholders. Since communication is a crucial part of developing an application, it should be part of the ALM planning. It should be clear to the entire implementation team which communication channels they should use.Requirement planning: Requirements are necessary so that the development team implements the correct functionalities according to the needs of the business. Therefore, clear structure and tooling in regard to requirements (including gathering, defining, estimation, and tracking) are important.Test management