Wednesday, March 8, 2017

Managing Dynamics 365 (CRM) deployments online

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.
  1. Development
  2. QA
  3. UAT
  4. Integration 
  5. Migration
  6. Performance
  7. Pre-production
  8. 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.

  1. 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.
  2. 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.
  1. 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