Sie sind auf Seite 1von 25

Environment wise Approach Plan

&
Deployment Architecture

Prepared For

ZZZ Corporation

By

ABC TECHNOLOGY Technologies Inc.

August 2015

Revision History:
The following chart lists the revisions made to this document. Use this to describe the
changes and additions each time this document is re-published (both draft and final). The
description should include as many details of the changes as possible, as well as the reviewers
who requested the changes.

Date Version Author Description of Changes


08/13/2015 0.01 Initial version
08/14/2015 0.02 Review
08/21/2015 0.03 Updated contents of document.
Environment wise Approach Plan & Deployment Architecture May 10, 2019

Contents
1. Objective ..................................................................................................................................... 4
2. Approach for Upgrade ................................................................................................................ 4
3. Upgrade to CRM 2015 on Production. ....................................................................................... 5
3.1 Pre-Upgrade Tasks .............................................................................................................. 5
3.2 Install of CRM 2013 .......................................................................................................... 10
3.3 Changing Registry Settings ............................................................................................... 19

2
Environment wise Approach Plan & Deployment Architecture May 10, 2019

3.4 Disabling Claims and IFD authentication ......................................................................... 19


3.5 Remove Completed Asyncs Jobs ...................................................................................... 19
3.6 Index Maintenance and update statistics ....................................................................... 21
3.7 Change Database Recovery Mode ................................................................................... 21
3.8 Increase OLEDBTimeout setting....................................................................................... 22
3.9 Check the Access to the Report Server ............................................................................ 22
3.10 Full Backup of the CRM Prod Organizations .................................................................... 22
3.11 Import and upgrade organizations to 2013 ..................................................................... 22
3.12 Backup of 2013 Organizations ......................................................................................... 22
3.13 CRM 2015 In-Place upgrade ............................................................................................. 22
3.14 Installation of Reporting Extension ................................................................................. 23
3.15 Restoring reports on CRM 2015 ....................................................................................... 23
3.16 Configuring SCRIBE jobs in CRM 2015.............................................................................. 23
3.17 Creating Tasks in Task scheduler of CRM 2015 env. ....................................................... 23
3.18 Upgrade to CRM 2015 on Quality Assurance and Development. ................................... 23
4. Go Live Activity ......................................................................................................................... 24
5. Deployment Architecture......................................................................................................... 25

3
Environment wise Approach Plan & Deployment Architecture May 10, 2019

1. Objective

Black and Veatch is using MS Dynamics CRM 2011 and they are looking for upgrade
their CRM to 2015 version. ABC TECHNOLOGY as a vendor took responsibility for this upgrade
and this document describes upgrade approach for all three environments i.e. Development,
Quality Assurance and Production.

2. Approach for Upgrade

4
Environment wise Approach Plan & Deployment Architecture May 10, 2019

ABC TECHNOLOGY is going to use top down approach for this upgrade. Hence we will
upgrade environments in following sequence:

1. Production
2. Quality Assurance
3. Development

For upgrading CRM 2015 on production server, we will first migrate from 2011 to 2013 and
then 2013 to 2015.Before taking Prod database backup for upgrade we will disable plug-ins
and remove asynchronous jobs, restore backup and then Import organization.

We will use same steps for all other organization e.g. HR, Tax etc. Once organization will be
upgraded to 2013 Sanity check will be performed on it and then we will backup that
database and use for further upgrade to CRM 2015 in Production server. Once the
production will be ready for go live then we will backup the production database and import
to Test environment for all the organizations

After doing upgrade of Quality assurance ABC TECHNOLOGY will start go live activity.

Because none of existing environments are capable of installing and importing organizations
in CRM 2013 due to low memory, we will not use any existing environment as intermediate
step during upgrade process.

3. Upgrade to CRM 2015 on Production.

3.1 Pre-Upgrade Tasks

Step 1: Assess the deprecated Plugins and Client Side Scripting

5
Environment wise Approach Plan & Deployment Architecture May 10, 2019

To successfully bring back up the CRM into the CRM 2015 system and being able to use all
customizations, we will have to fix all the outdated and unsupported plugins as well as the
deprecated Client Scripting Code.
The full success of the upgrade will depend upon the time it would take to fix the code.

We will use following tools:


Legacy Feature Check Tool – To track all deprecated and unsupported
Plugins/Workflows/Webresources:
The Legacy Feature Check Tool is designed for CRM On-premise customers to scan a CRM 2011
organization for unsupported customization on server side. Below are the customizations
those are not supported for CRM 2013.
The 2007 service endpoint - Extensions that use the 2007 endpoint will not be supported and
may not work in CRM 2013.
ISV folder support for custom web applications
Microsoft Dynamics CRM 4.0 plug-ins
Microsoft Dynamics CRM 4.0 custom workflow activities
Legacy Feature Check Tool is safe to run on production deployments. However, it is
recommended that you run the tool during non-business hours to avoid any unexpected
behaviors. Legacy Feature Check Tool not only scans through CRM deployment/organizations
but is also capable of scanning through IIS logs of CRM website to report external calls to 2007
service end points. However, it requires that IIS log format is set to “W3C” and the field “URI
Stem (cs-uri-stem)” is selected.

CRM Deprecated Plugins to remove before the Indications to find a


Organization CRM Org backup – Code to be updated resolution of deprecated
codes
CRMTax BlackAndVeatch.Plugin.TaxCase.Create  Review the
BlackAndVeatch.Plugin.TAXEmail.CreateCo Legacy.XML file
ntact generated that
flagged those errors-

Full error message definition to the


Assemblies…  If the definitions of
the the errors are
<Message>Error while inspecting Assembly any indication
"BlackAndVeatch.Plugin.StatusSummary"
with version '1.0.0.0'. Error “Object reference not set to
System.NullReferenceException: Object an instance of an object” It is
reference not set to an instance of an referencing V4 methods or
object.&#xD; DLL’s probably. Either you can
have developer of this
assembly look in to it or you
can get this assembly project
and decompile it in VS and
review to find out V4
components.The null
reference could be happening

6
Environment wise Approach Plan & Deployment Architecture May 10, 2019

is when tool couldn’t load the


assembly.
This will need to be updated
to 2013/crm 2015 SDK
standard.

 Upgrade plug-ins and


custom workflow
activities

CRMHR BlackAndVeatch.Plugin.HREmail.CreateCon  Review the


tact Legacy.XML file
BlackAndVeatch.Plugin.Case generated that
flagged those errors-

Full error message definition to the


Assemblies…  If the definitions of
the the errors are
<Message>Error while inspecting Assembly
any indication
"BlackAndVeatch.Plugin.StatusSummary"
with version '1.0.0.0'. Error “Object reference not set to
System.NullReferenceException: Object an instance of an object” It is
reference not set to an instance of an referencing V4 methods or
object.&#xD; DLL’s probably. Either you can
have developer of this
assembly look in to it or you
can get this assembly project
and decompile it in VS and
review to find out V4
components.The null
reference could be happening
is when tool couldn’t load the
assembly.
This will need to be updated
to 2013/crm 2015 SDK
standard.

 Upgrade plug-ins and


custom workflow
activities

CRMSales BlackAndVeatch.Plugin.StatusSummary  Review the


BlackAndVeatch.CRM.Plugin.BV.Contact Legacy.XML file
generated that
BlackAndVeatch.Plugin.4P.4PDetailUpdateT flagged those errors-
otal
BlackAndVeatch.Plugin.ProposalBudgetDet
ail

7
Environment wise Approach Plan & Deployment Architecture May 10, 2019

BlackAndVeatch.Plugin.4P.4PSendNotificati  If the definitions of


on the the errors are
BlackAndVeatch.Plugin.NotificationMatrix. any indication
UpdateUser “Object reference not set to
BlackAndVeatch.Plugin.Prospect an instance of an object” It is
BlackAndVeatch.Plugin.ProspectCopyActivit referencing V4 methods or
y DLL’s probably. Either you can
have developer of this
BlackAndVeatch.CRM.Plugin.BV.Company assembly look in to it or you
BlackAndVeatch.Plugin.ClosedProspectAsse can get this assembly project
ss.UpdateCI and decompile it in VS and
BlackAndVeatch.Plugin.Prospect_CloseAsse review to find out V4
sment_Notes components.The null
BlackAndVeatch.Plugin.Prospect.SubmitAp reference could be happening
proveReject2P is when tool couldn’t load the
assembly.
BVprospectautonumber
This will need to be updated
*BlackAndVeatch.WorkFlowActivity
to 2013/crm 2015 SDK
This last Plugins has got 8 Workflow standard.
dependencies you must have to remove
from CRM UI while logged in as the owner
of the Workflow ( give the CRM Sys Admin  Upgrade plug-ins and
role to the owner and open up a CRM custom workflow
session with this account to proceed: activities
disactivate then remove). Upgrade plug-ins and custom
Full error message definition to the workflow activities
Assemblies…
<Message>Error while inspecting Assembly
"BlackAndVeatch.Plugin.StatusSummary"
with version '1.0.0.0'. Error
System.NullReferenceException: Object
reference not set to an instance of an
object.&#xD;

Code Validation Tool - To examine web resources and determine where there could be
potential upgrade issues:
If the custom validation tool does find any concerns, they will either be using deprecated CRM
4.0 objects and functions or an unsupported coding process.
Following screenshots will give idea about how this tool will display issues:

8
Environment wise Approach Plan & Deployment Architecture May 10, 2019

9
Environment wise Approach Plan & Deployment Architecture May 10, 2019

All issues will be divided in two categories High Severity Items and Med Severity Items.
High Severity Items – will not upgrade to CRM 2013 and will need to be addressed before
the upgrade takes place
Med Severity Items – will upgrade but may cause implications in running CRM from within
Safari, Chrome or Firefox.

Step 2: Upgrade scripts to Microsoft Dynamics CRM 2013/CRM 2015


Once all unsupported code and webresources are identified, we will do necessary changes to
make it compatible with CRM 2013 and CRM 2015.

3.2 Install of CRM 2013

10
Environment wise Approach Plan & Deployment Architecture May 10, 2019

After this we will start installation of CRM 2013 on new production server, it would take 30
Minutes approximately.
Following screenshots will show the installation process.

11
Environment wise Approach Plan & Deployment Architecture May 10, 2019

12
Environment wise Approach Plan & Deployment Architecture May 10, 2019

Installation Directory will be D:\Program Files\Microsoft Dynamics CRM.

13
Environment wise Approach Plan & Deployment Architecture May 10, 2019

SQL Server will be TSMC-PWVSQL-15.

We will select following Organizational Unit:


IT->Groups->CRM->CRM2011.

14
Environment wise Approach Plan & Deployment Architecture May 10, 2019

Service Account name will be NA\CRM2011SERVICE.Password for same will be entered.

15
Environment wise Approach Plan & Deployment Architecture May 10, 2019

Display Name and Unique Database Name will be CRMSales for sales organization.
ISO currency code:USD, currency name:US Dollar,symbol:$,precision:2

Report Server URL : http://tsmc-pwvsrs-05/ReportServer

16
Environment wise Approach Plan & Deployment Architecture May 10, 2019

17
Environment wise Approach Plan & Deployment Architecture May 10, 2019

18
Environment wise Approach Plan & Deployment Architecture May 10, 2019

To upgrade from CRM 2013 to CRM 2015, CRM 2013 Service Pack 1 is needed. So once 2013
installation is finished we will install CRM 2013 SP 1.

3.3 Changing Registry Settings


We will set the OptimizeOrgImport reg key on the targeted CRM Web Server(production)
before the Import process. As a result same CRM Org GUID will be used during upgrade
process.
To force unique GUID creation we will do following:
1. We will open registry editor.
2. Locate registry subkey HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
3. Right click MSCRM point to new, then click DWORD value and name it as
OptimizeOrgImport .
4. Right click OptimizeOrgImport and then click modify , set the value to 1 and click OK.
5. Exit from registry editor and restart CRM web server.

3.4 Disabling Claims and IFD authentication


We will disable the Claims and IFD authentication from the targeted CRM Web Server before
starting the Import process.

3.5 Remove Completed Asyncs Jobs


We will remove completed async jobs. The upgrade process will do this also but if ran prior
to the production upgrade it can speed up the time to completion.
We will use below script to remove jobs:
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS (SELECT name from sys.indexes WHERE name = N'CRM_WorkflowLog_AsyncOperationID')

19
Environment wise Approach Plan & Deployment Architecture May 10, 2019

DROP Index WorkflowLogBase.CRM_WorkflowLog_AsyncOperationID


GO
CREATE NONCLUSTERED INDEX CRM_WorkflowLog_AsyncOperationID ON [dbo].[WorkflowLogBase] ([AsyncOperationID])
GO
IF EXISTS (SELECT name from sys.indexes WHERE name = N'CRM_DuplicateRecord_AsyncOperationID')
DROP Index DuplicateRecordBase.CRM_DuplicateRecord_AsyncOperationID
GO
CREATE NONCLUSTERED INDEX CRM_DuplicateRecord_AsyncOperationID ON [dbo].[DuplicateRecordBase]
([AsyncOperationID])
GO
IF EXISTS (SELECT name from sys.indexes WHERE name = N'CRM_BulkDeleteOperation_AsyncOperationID')
DROP Index BulkDeleteOperationBase.CRM_BulkDeleteOperation_AsyncOperationID
GO
CREATE NONCLUSTERED INDEX CRM_BulkDeleteOperation_AsyncOperationID ON [dbo].[BulkDeleteOperationBase]
(AsyncOperationID)
GO
IF EXISTS (SELECT name from sys.indexes WHERE name = N'CRM_AsyncOperation_CleanupCompleted')
DROP Index AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
GO
CREATE NONCLUSTERED INDEX CRM_AsyncOperation_CleanupCompleted ON [dbo].[AsyncOperationBase]
(
[StatusCode],[StateCode],[OperationType]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,

ONLINE = ON, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]


GO

declare @DeleteRowCount int


Select @DeleteRowCount = 5000
declare @DeletedAsyncRowsTable table (AsyncOperationId uniqueidentifier not null primary key)
declare @continue int, @rowCount int
select @continue = 1
while (@continue = 1)
begin
begin tran
insert into @DeletedAsyncRowsTable(AsyncOperationId)
Select top (@DeleteRowCount) AsyncOperationId from AsyncOperationBase
where
OperationType in (1, 9, 12, 25, 27, 10)
AND StateCode = 3
AND StatusCode in (30, 32)
Select @rowCount = 0
Select @rowCount = count(*) from @DeletedAsyncRowsTable

select @continue = case when @rowCount <= 0 then 0 else 1 end


if (@continue = 1)
begin
delete poa from PrincipalObjectAccess poa
join WorkflowLogBase wlb on
poa.ObjectId = wlb.WorkflowLogId
join @DeletedAsyncRowsTable dart on
wlb.AsyncOperationId = dart.AsyncOperationId

20
Environment wise Approach Plan & Deployment Architecture May 10, 2019

delete WorkflowLogBase from WorkflowLogBase W, @DeletedAsyncRowsTable d


where
W.AsyncOperationId = d.AsyncOperationId

delete BulkDeleteFailureBase From BulkDeleteFailureBase B, @DeletedAsyncRowsTable d


where
B.AsyncOperationId = d.AsyncOperationId

delete WorkflowWaitSubscriptionBase from WorkflowWaitSubscriptionBase WS,


@DeletedAsyncRowsTable d
where
WS.AsyncOperationId = d.AsyncOperationID

delete AsyncOperationBase From AsyncOperationBase A, @DeletedAsyncRowsTable d


where
A.AsyncOperationId = d.AsyncOperationId

delete @DeletedAsyncRowsTable
end
commit
end

--Drop the Index on AsyncOperationBase


DROP INDEX AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
go

--drop index added


DROP INDEX WorkflowLogBase.CRM_WorkflowLog_AsyncOperationID
GO

DROP INDEX DuplicateRecordBase.CRM_DuplicateRecord_AsyncOperationID


GO

DROP INDEX BulkDeleteOperationBase.CRM_BulkDeleteOperation_AsyncOperationID


GO

SET QUOTED_IDENTIFIER OFF


GO

3.6 Index Maintenance and update statistics


We will run Index maintenance and Update Statistics on all Organizations databases.
Script that we will be using can be found on below link:
http://basitaalishan.com/2014/02/23/rebuild-all-indexes-on-all-tables-in-the-sql-server-
database/

3.7 Change Database Recovery Mode


During the CRM upgrade, the transaction log can grow substantially if recovery model is set
to something other than “SIMPLE”. To limit the log growth we will change the recovery mode
to SIMPLE which will limit the amount of data written to the transaction log.
We will open SQL management studio, then expand server, expand database. Then we will
open organization databases properties and for each org db will set “Recovery Model” to
simple.

21
Environment wise Approach Plan & Deployment Architecture May 10, 2019

3.8 Increase OLEDBTimeout setting


To increase OLEDBTimeout registry setting, we will follow below steps:
Click Start, click Run, type regedit, and then click OK.
Locate the following registry subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
Right-click MSCRM, point to New, and then click DWORD Value to create a new DWORD value.
Rename the DWORD value to the following value:
OLEDBTimeout
Right-click the DWORD value and then click Modify.
In the Edit DWORD Value dialog box, type 86400 in the Value data box, click Decimal in the
Base option, and then click OK.
Note: According to the requirement of the computer that is running SQL server and the
number of customization files, the value can be larger than 86400. The value of 86400 is
equivalent to 24 hours.

3.9 Check the Access to the Report Server


We will test out the access to the report server URL from the CRM server machine using the
CRM installing User windows session.

3.10 Full Backup of the CRM Prod Organizations


We will take full backup of all live prod organizations which are on CRM 2011. We will use
those backup files to restore and import organizations in production server.

3.11 Import and upgrade organizations to 2013


We will restore all the backup files that we took in previous step to the database server of
new production environment. We will import all organizations namely Sales, HR and Tax
from the backup. Also we will upgrade all organizations to CRM 2013 while importing.

3.12 Backup of 2013 Organizations


Before starting CRM 2015 upgrade, we will take backup of all the organizations in 2013.

3.13 CRM 2015 In-Place upgrade


For In-Place upgrade, we will follow below steps:
 Run ServerSetup.exe from the CRM 2015 installation file.
 Go through the update checks and enter your license key.
 Install any missing components that the installation wizard finds. This might require
restart. If yes, restart the server and then go back to through the ServerSetup.exe
again
 For an upgrade, the installation wizard should detect an existing CRM install and
provide an “upgrade” screen instead. Choose an organization that you want to
upgrade. Note that you can leave this blank and no organization will be upgraded.
After the upgrade, those organization will be “disabled” and you can choose to
upgrade them one by one afterwards via the Deployment Manager. If you have CRM
organizations with large databases, you might want to postpone the upgrade as
every base and extension tables will be merged during the upgrade process. This
database merge might take several hours to complete.
 We will select one of the organizations for upgrade.

22
Environment wise Approach Plan & Deployment Architecture May 10, 2019

 After selecting org, upgrade will proceed through usual steps of specifying service
accounts, Email router settings, System Checks and finally Service Disruption
Warning.
 Click on upgrade once org is upgraded successfully, we will see server setup
completed screen.
 By now only one organization will be upgraded to 2015.To upgrade other two
organizations we will go to Deployment manager. Both organizations will be
disabled by default. We will select upgrade option for both organizations. Once that
is done all organizations will be upgraded to 2015.

After this step production environment will be running with CRM 2015.

3.14 Installation of Reporting Extension


Microsoft Dynamics CRM Reporting Extensions are data processsing extensions that are
installed on the Microsoft SQL Server Reporting Services server. The Microsoft Dynamics
CRM Reporting Extensions accept the authentication information from Microsoft Dynamics
CRM Server and passes it to the Microsoft SQL Server Reporting Services server.
We will install reporting extension after 2015 upgrade.

3.15 Restoring reports on CRM 2015


All report files will be restored on report server of CRM 2015 and reports will be created in
CRM using those files.

3.16 Configuring SCRIBE jobs in CRM 2015


We will configure all SCRIBE jobs in production server as used in previous production.

3.17 Creating Tasks in Task scheduler of CRM 2015 env.


We will create all required tasks in task scheduler of CRM 2015 application server.

3.18 Upgrade to CRM 2015 on Quality Assurance and Development.


To upgrade CRM on quality assurance and development we will follow the same procedure
as we used for production server.

23
Environment wise Approach Plan & Deployment Architecture May 10, 2019

4. Go Live Activity
Before going live, we will have to ensure that new Production environment is up to date
with current data.
For this we will carry out following tasks.
 As we did before, we will take fresh backup of live production’s CRM 2011
database.
 We will restore and import this backup on new development server. This
server will have CRM 2013 installed. While importing we can upgrade
organizations to 2013.
 Once import is done we will take database backup of new development
server’s CRM 2013.
 On new production server’s CRM 2015 we will export default solution so
that we will have backup of all the changes and customizations.
 After taking backup of solution we will restore and import organizations
from the backup that we took on new development server. Organizations
will be upgraded to 2015 while importing.
 We will reconnect all scribe jobs.
 We will perform final smoke test to check whether everything is working
fine as per requirement.

Once all these steps are completed we will make new production server as live server.

24
Environment wise Approach Plan & Deployment Architecture May 10, 2019

5. Deployment Architecture

Fig: Diagram below explains Deployment Architecture:

MS CRM 2015 Deployment Trusted Devices


Diagram
August 2015
`
MS CRM Web/ MS CRM Web/
Overland Park Data Center Outlook Client Outlook Client

SharePoint hosts
Communities
LAN/VPN

TCP port 443 TCP port 443


O365 (https) (https)
Internal IP of
External IP of
ADFS

External Firewall
https://corp.crm.bv.com ADFS

Internal Firewall
TCP port 443 Internet
Federation Claims (https)
Token (https)
Metadata
Internal IP of
External IP of
CRM TMG Server CRM
TCP port
443 (https)
https://crmsales.crm.bv.com
Exchange Relay Server https://crmtax.crm.bv.com
Mailhost.bv.com MS CRM
Application/Web Server
AD Server ADFS 2.0 Server
Windows 2012 R2
(Domain Controller) (adfs.bv.com)
TSMC-PWVCRM-02
(corp.crm.bv.com/ Untrusted Devices
Crmsales.crm.bv.com)
ADFS Proxy Server
(adfs.bv.com)

TCP port 1433


(ms-sql-s) Mobile Device
SSIS Push data Web/Outlook
TCP port 1433 Browser/s
TCP port 1521 Client
(ms-sql-s)
SQL Server 2012 R2
SRS Windows 2012 R2
Windows 2012 R2 TSMC-PWVSQL-15
(SQL-PROD-CRM alias) BIC
TSMC-PWVSRS-05
AIX 5.3 and Oracle 9i
kca306 (DSS alias)

25

Das könnte Ihnen auch gefallen