everand.content_preview.content.explore_1_5m_audiobooks_ebooks_free_trial

From $11.99/month after trial. Cancel anytime.

Mastering DevOps on Microsoft Power Platform: Build, deploy, and secure low-code solutions on Power Platform using Azure DevOps and GitHub
Mastering DevOps on Microsoft Power Platform: Build, deploy, and secure low-code solutions on Power Platform using Azure DevOps and GitHub
Mastering DevOps on Microsoft Power Platform: Build, deploy, and secure low-code solutions on Power Platform using Azure DevOps and GitHub
Ebook925 pages7 hours

Mastering DevOps on Microsoft Power Platform: Build, deploy, and secure low-code solutions on Power Platform using Azure DevOps and GitHub

Rating: 0 out of 5 stars

()

Read preview
LanguageEnglish
PublisherPackt Publishing
Release dateSep 5, 2024
ISBN9781835880852
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

Enterprise Applications For You

View More

Reviews for Mastering DevOps on Microsoft Power Platform

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Mastering DevOps on Microsoft Power Platform - Uroš Kastelic

    Cover.png

    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 phases

    Figure 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 model

    Figure 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-model

    Figure 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

    Enjoying the preview?
    Page 1 of 1