​Application Lifecycle Management on Microsoft Power Platform - Benedikt Bergmann - E-Book

​Application Lifecycle Management on Microsoft Power Platform E-Book

Benedikt Bergmann

0,0
32,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

EPUB
MOBI

Seitenzahl: 210

Veröffentlichungsjahr: 2024

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Application Lifecycle Management on Microsoft Power Platform

A comprehensive guide to managing the deployment of your solutions

Benedikt Bergmann

Application Lifecycle Management 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 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

Foreword

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

Contributors

About the author

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.

About the reviewer

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.

Table of Contents

Preface

1

An Intro to ALM

ALM overview

Stages of the ALM cycle

Plan

Develop

Test

Deploy

Maintain

Advantages of ALM

Boosting communication and strengthening visibility

Sharpening testing

Increasing quality

Improving development and deployment speed

ALM tools

Summary

Questions

Further reading

2

ALM in Power Platform

Terminology

Tenant

Environment

Solution

Component

Configuration

Customization

Development

Solution-aware

PPAC

Maker portal

Preview functionality

Release wave

Release plans

Early access

PAC

“Normal” ALM versus Power Platform ALM

Solution levels

Configuration

Noncomplex customization

Complex customization

Third-party product

Development

Preview features

Summary

Questions

Further reading

3

Power Platform Environments

Environment basics

Environment types

Default

Development

Sandbox and production

Trial

Environment strategies

Minimal

Functional separation

Data separation

Development separation

Internal development

Surrounding environments

Tiers

Productivity

Important

Mission critical

Landing Zones

Summary

Questions

Further reading

4

Dataverse Solutions

Basics of Dataverse Solutions

Customization versus data

Managed versus unmanaged

Update versus upgrade

Solution layering

Publisher

Patch and clone

Solution segmentation

Vertical segmentation

Horizontal segmentation

Supplier separation

Working with solutions

Creating a solution

Creating a publisher

Navigating in a solution

Adding components

Removing components

Set preferred solution

Exporting and importing solutions

Export

Import

Summary

Questions

Further reading

5

Power Platform CLI

Technical requirements

About the Power Platform CLI

Command Groups

Solution Command Group

export

import

unpack and pack

upgrade

create-settings

Installing the Power Platform CLI

Power Platform tools for Visual Studio Code

Power Platform CLI for Windows

Summary

Further reading

6

Environment Variables, Connection References, and Data

Environment variables

Data types

Creating an environment variable

Applying an environment variable

Connection references

Connections

Tips and tricks

Configuration and reference data

Summary

Questions

Further reading

7

Approaches to Managing Changes in Power Platform ALM

Environment-centric approach

Advantages and disadvantages

Source code-centric approach

Advantages and disadvantages

Combining both of the approaches

Branching

Process of a source code-centric approach

Export pipeline

Build pipeline

Release pipeline

Summary

Questions

Further Reading

8

Essential ALM Tooling for Power Platform

Pipelines in Power Platform

ALM Accelerator

Azure DevOps/GitHub

Selecting the appropriate tool

Summary

Questions

Further reading

9

Project Setup

Service principal

Add SPN to Dataverse

Setting up Azure DevOps

Installing Power Platform Build Tools

Service connections

Environments

Repo permissions

Setting up GitHub

Environments

Repo Permission

Configuring the ALM Accelerator

Configuring PPP

Configuring managed environments

Folder structure

Root folder

Development

Screenshot

Summary

Questions

Further reading

10

Pipelines

Technical requirements

What is YAML

Source code-centric approach

General setup of a new pipeline

ADO

GH

Export pipeline

Checkout (GH only)

Installing the tooling

Publishing customizations

Exporting as unmanaged

Exporting as managed

Unpack

Commit

Build pipeline

Checkout (GH only)

Installing tooling

Packing the solution

Publishing the artifact

Release pipeline

ADO

GH

Downloading the artifact (GH only)

Installing tooling

Importing the solution

Apply Upgrade

Running a pipeline

ADO

GH

Environment-centric approach

Summary

Questions

Further reading

11

Advanced Techniques

Technical requirements

Exploring advanced YAML

Variables and parameters

Conditions

Loops

Understanding settings files

Generating a settings file

Using Settings files

A healthy code state

Creating a map file

Using a mapping file

Transport data

Creating a schema

Using a schema

Generating an export of data

Importing data

Summary

Questions

Further reading

12

Continuous Integration/Continuous Delivery

Branching

Types of branches

Quality gates

Solution checker

Automated unit testing

Pull requests

Versioning

Summary

Questions

Further reading

13

Deepening ALM Knowledge

Testing

Unit tests

Integration tests

Performance tests

Load tests

UI tests

Smoke tests

Regression tests

Parameters for import configuration

Third-party solutions

Complex components

Deployment of Azure components

Bicep

Best practices

Everything should be managed

Use as few solutions as possible

Use only changed components

Have at least dev, test, and prod

Use an evaluation environment for early access

Create connection references manually

As few connection references as possible

Use tools provided by Microsoft where possible

Final thoughts

Test, test, and test

Build a network

Community

Assessments

Chapter 1, An Intro to ALM

Chapter 2, ALM in Power Platform

Chapter 3, Power Platform Environments

Chapter 4, Dataverse Solutions

Chapter 5, Power Platform CLI

Chapter 6, Environment Variables, Connection References, and Data

Chapter 7, Approaches to Managing Changes in Power Platform ALM

Chapter 8, Essential ALM Tooling for Power Platform

Chapter 9, Project Setup

Chapter 10, Pipelines

Chapter 11, Advanced Techniques

Chapter 12, Continuous Integration/Continuous Delivery

Index

Other Books You May Enjoy

Preface

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:

PlanDevelopTestDeployMaintain

This 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.

Who this book is for

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.

What this book covers

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.

To get the most out of this book

Azure DevOps or GitHub AccountTwo Dataverse environments (one for source and one for target)App Registration: follow this instruction: https://benediktbergmann.eu/2022/01/04/setup-a-service-principal-in-power-automate/

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.

Download the example code files

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!

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: “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.

Get in touch

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.

Share Your Thoughts

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.

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/9781835462324

Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directly

1

An Intro to ALM

The 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 strategy

By 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.

ALM overview

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.

Stages of the ALM cycle

As you can see in Figure 1.1, the ALM cycle contains five stages:

PlanDevelopTestDeployMaintain

The following sections will explain these five stages.

Plan

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.

Develop

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.

Test

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.

Deploy

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.

Maintain

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.

Advantages of ALM

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 speed

Boosting communication and strengthening visibility

A 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.

Sharpening testing

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.

Increasing quality

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.

Improving development and deployment speed

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

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