Table of Contents

Solution Layers

Overview

Altus utilises Power Platform solution layers to contain configuration items. These solution layers enable a controlled release of configuration from lower to higher environments to ensure that a robust release process is followed and to keep environments synchronised with each other.

There are two types of solutions that exist within a Power Platform environment:

  • Unmanaged layer: All imported unmanaged solutions and unmanaged customizations exist at this layer. The unmanaged layer is a single layer.
  • Managed layers: All imported managed solutions and the system solution exist at this level. When multiple managed solutions are installed, the last one installed is above the managed solution installed previously. This means that the second solution installed can customize the one installed before it. When two managed solutions have conflicting definitions, the runtime behavior is either “Last one wins” or a merge logic is implemented. If you uninstall a managed solution, the managed solution below it takes effect. If you uninstall all managed solutions, the default behavior defined within the system solution is applied. At the base of the managed layers level is the system layer. The system layer contains the tables and components that are required for the platform to function.

Uses for Altus

Altus leverages solution layers in two ways:

  • Base Solution: Altus uses solution layering to push out updates as part of the Release process.
  • Client Configuration: When Consultants make client specific changes, these are added to specific solution layers created for these.

Base Solution

In this scenario, the unmanaged layers exist in Altus's environment. These are then deployed to the client's environment using the Hub.

In this approach, Altus hosts the unmanaged layer in its environment, and the solution is deployed as a managed layer into each of the clients environments.

Client Configuration

For client specific configuration, the solution layer is created in the Development environment as an unmanaged layer. Deployments occur from the Development to higher environments, where the solution is deployed as a manager layer.

SolutionLayers_ClientSolutions.png

Environments

The purpose of each environment is defined below:

Development Environment

  • Is the master environment for the Altus Solution Layers and Power BI dashboards.
  • If a change/fix is required in Production, it is to be applied to the Development environment first.
  • When it is ready for the Client to review, solutions will be deployed into the Test environment.
  • Once testing is signed off, the same solutions will be deployed to Production.

Test Environment

  • Is where the Client will complete UAT on all enhancements and defects fixes.
  • If issues are found in the Test environment, the client will need to flag these with their Partner who will apply updates in the Development environment and re-deploy to the Test environment.
  • Written sign off on testing is required prior to fixes/enhancements being deployed to the production environment.

Production Environment

  • Environment which end users will manage their projects and where corporate reporting is generated from.
  • No fixes/enhancements are to be applied directly to this environment.