Why we need to manage?
1. Multiple environments -
Dynamics 365 (CRM) online enterprise projects have multiple
instances deployed - Dev / QA / UAT. Clients also want to be able
to do continuous development and deliver releases to Production in an
agile process. Agile also adds complexity, as we have multiple teams (dev /
integration / business) who interact together as the development
progresses through different sprints. Hence in a typical deployment you
will have possibly many or all of the following instances.
- Development
- QA
- UAT
- Integration
- Migration
- Performance
- Pre-production
- Production
2. Multiple user access -
Each environment has its own team of users who may need
access to that specific instance only. There may be few users who need
access to multiple environments like Build Manager or System Admin. Also
the Solution owner or Build manager maintains and deploy the correct
customization code (solutions) for each instance. All of this requires
proper planning and management of Dynamics 365 (online) deployments.
Here are some of the options to manage Dynamics 365 deployments -
1. Deployment process – A deployment
process needs to be planned out for the Project. In an Agile continuous
development the deployments are done in “Releases”. So there could be an
initial Release-1 which goes through Dev to Production.
A typical
Release-1 deployment path from Dev to Prod is shown below -
Release-1 deployment path
Once the Production environment is ‘Live’ with Release-1
functionality, it is essential to have a second parallel path for the
development and testing of Release-2 functionality.
In addition a hotfix
deployment path is also needed to fix any bugs found in Production
environment. A Release-2 deployment can include the following instances.
Production and Release-2 development path
Any fixes done for Production are also implemented in Dev-2
environment. As the Release-2 is ready to be deployed the same path can
be followed for deployments for the next Release cycle. Thus providing
ongoing Production support and continuous development.
2. Control User Access -
Security plays an important role in preventing unauthorized
users from accessing environments. There are many ways that
Dynamics 365 environments can be secured and managed.
- Active Directory / Office 365 user access – Dynamics 365 online access is provided through Active Directory / Office 365. Once the user has access to Office 365, they have to be provided access to the individual instances by assigning them a valid license and a security role. If an employees leaves the organization and their Active Directory access is removed, this also disables the user from all Dynamics 365 environment.
- Security roles - This is the next step to grant user access to the Dynamics 365 instance. It is also probably the most widely used (not recommended) method of managing user access to different environments. A user with system admin security role in Dynamics 365 can assign another user a security role – This will grant access to the instance to the user.
If we only manage user access by
adding or removing security roles it can be difficult to manage for
large number of users. Users may get temporary access to environments
and the access never gets removed. It is also a challenge because there
is no way of knowing which user has access to what environments without
logging in to each individual environment.
- Security groups – This is one feature that should be used for managing user access to Dynamics 365 environments. In office 365 users can be added to Security groups. The security groups can than be assigned to the individual instances of Dynamics 365.
Users can be divided into the following groups.
1. Dev
2. QA
3. UAT
4. Integration / Migration
The security groups can now be
given access to the corresponding environments. A user who needs access
to multiple environments can be added to the corresponding security
groups.
3. Solutions Management
Solutions are used to move customization's and
configurations from one environment to another. The build manager will
be responsible for the solution movements and tracking. Solutions can be
managed or unmanaged and this depends on the project requirements.
Dynamics 365 has tools to do Solution patching and
versioning which can be utilized. Versioning is important to keep track
of the customization's in each environment.
In addition to import and export a solution, there are 3 new buttons as highlighted above. They are
1. Clone a Patch
2. Clone Solution
3. Apply Solution Upgrade
I hope the above assists you in managing
multiple Dynamics 365 deployments. Please leave your feedback on how do
you manage Dynamics 365 deployments in your project.
Keep reading.
Mihir