• No results found

Sitecore Version Upgrade Whitepaper V1.0

N/A
N/A
Protected

Academic year: 2021

Share "Sitecore Version Upgrade Whitepaper V1.0"

Copied!
34
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)

Sitecore Endeavor 1 | P a g e

Contents

Disclaimer: ...3

Introduction: ...4

The Basic Sitecore Solution: ...4

The Expert Sitecore Solution: ...4

What is Sitecore Version Upgrade? ...5

Why upgrade our current Sitecore Solution to a later version? ...6

How to approach a Sitecore Version Upgrade? ...6

Basic Sitecore Solution: ...6

 Identify a version of Sitecore that we want as a target version: ...7

 Verify that the version we selected as Target Version is not mentioned only as a feature release or to be used as only an intermediate version: ... 10

 Check if there are any Known Issues for our selected version: ... 10

 Check for Deprecated Functionalities: ... 12

 Identify the pre-requisites for that particular Version of Sitecore:... 13

 Identify the number of iterations that might be required: ... 16

 Check if we need to upgrade the .NET Framework for our solution: ... 18

 Check if for our target version, we need to upgrade the OS on our Development boxes as well as our Live Servers:... 19

 Check if the target version requires us to upgrade our SQL Server: ... 19

 Identify if there are any Hotfixes or Workarounds Sitecore:... 19

 Check for compatibility of the Sitecore Marketplace modules installed in our solution with the required Target version: ... 20

 Check our custom code which uses some DLLs from Sitecore instance – NewtonSoft, HTMLAgilityPack, etc ... 21

Expert Sitecore Solution: ... 21

How to Upgrade our Current Sitecore Solution? ... 21

Sitecore Version Upgrade for a Basic Solution:... 21

Content Authoring Server: ... 21

Content Delivery Server: ... 23

Sitecore Version Upgrade for an Expert Solution: ... 24

Content Authoring Server: ... 24

Content Delivery Server: ... 26

(3)

Sitecore Endeavor 2 | P a g e

How do I install the Update Package – using the Installation wizard?... 26

What should I do if I have multiple CM/Content Authoring Servers? Do I need to execute the Sitecore Update Wizard on all those Content Authoring instances? ... 26

What if I have a Dedicated Publishing Instance along with my Content Authoring Server? ... 27

How to upgrade Content Delivery Server? ... 27

How do I find which items/files are newly added or updated/changed? ... 27

I am confused seeing so many links for the changes required to be done in my config file. How should we perform the config changes?... 27

Doing the Configuration changes for version upgrades is a tough task, is there an easier way to do that?... 28

We have an Expert Solution but not all items are synced. The Templates, System and Layouts are fully synced but Content and Media Library on Live Content Authoring Server has many items then in my Repository. What can we do?... 29

While installing the Update package, my Sitecore instance suddenly crashed and I could not download my Installation Log and Report. Can I get it from somewhere? ... 29

Learnings of our Team while performing Sitecore Version Upgrade: ... 30

 Always install Upgrade package in FF Browser rather than IE... 30

 Change the values of DefaultSQLTimeout and DataProviderTimeout... 30

 If you are upgrading your Sitecore solution, do keep at least one of your older versions up and running. ... 30

 Sometimes, if you get an error related to the Database Schema, don’t worry, just proceed to your Target Version. To confirm, ask Sitecore Support. ... 31

 Do you have some Jumbled JSON seen on your Browser page in Page Editor Mode? ... 31

 Shrink Databases and Rebuild the Indexes from the Management Studio to have a faster operation. ... 31

 Preserve Analysis and Installation Logs & Reports ... 32

 We run into some issue after upgrade – Google it out or raise with Sitecore Support ... 32

 Create an Upgrade team (IT Infrastructure Team, Developers & QA) to discuss various scenarios from their perspectives. ... 32

 Perform Bug Bash for every environment and make sure every Bug is resolved and then we move to the environment ahead. ... 32

 Document the Approach and Full Steps of Upgrade and discuss with the Upgrade Team ... 32

References: ... 32

(4)

Sitecore Endeavor 3 | P a g e

Disclaimer:

My dear Sitecore Family,

This document is an effort of sharing the experience and learning that I gained while working on a Version Upgrades for a number of Sitecore Solutions.

There are always a number of questions that any/every developer has in his/her mind before going ahead with an upgrade for their Sitecore Solution. This document tries to get you through a number of questions which our managers would ask us and we probably won’t have it at the first go. It includes a number of frequently asked questions regarding the Sitecore Version Upgrade.

A number of diagrams/figures included in the document are made by me to explain things in a simple way. The document may even include a few screenshots from some links on Sitecore Developer Network Release notes, Upgrade Steps and a number of blogs, to explain things in detail and make things easy to understand.

This document is for the Sitecore community to understand the various things included in upgrading a Sitecore solution as well as getting thorough with the small and big details of the same.

The information included in this document is solely to understand things more about the Sitecore Upgrade process and I sincerely regret if any information here is wrong. At the same time, it would be great if you could let me know if you find an error in it. A kind request to all those who are more experienced or have had some different experience, to please share their knowledge about the topic. I would include it in this document to make it a concise and a precise document for every one of us – the ones upgrading their solution for the first time as well as for the ones who have been doing it.

Sincerely,

(5)

Sitecore Endeavor 4 | P a g e

Introduction:

Sitecore Version upgrade, is a process which involves a set of steps performed on our Sitecore Solution, to upgrade it to the version of Sitecore later than what we currently have.

We need to categorize the Sitecore Version Upgrade, into two main sections based on some tools that we use for our Sitecore Solutions:

A. The Expert Sitecore Solution – a Solution using an Item Synchronization tool – like TDS, Unicorn or Sitecore Development Toolkit.

B. The Basic Sitecore Solution – a solution without any Item Synchronization tool. Before continuing further, let’s get some basic details of the above two.

The Basic Sitecore Solution:

This is a normal Sitecore solution. In a basic Sitecore solution, the way in which we synchronize the Sitecore items between various Sitecore instances and environments, is by packaging the m using the Sitecore Package Designer. Without any doubt, it’s a very useful tool provided to us by Sitecore, and we all should thank Sitecore for that. But thinking from the perspective of a team, working on their individual development environments, it becomes a little difficult to manage. So in our discussion moving further in this document, whenever we refer to a Basic Sitecore Solution, we refer to the one that uses Sitecore Package Designer to sync items and does not have any external tool available for synchronizing them.

The Expert Sitecore Solution:

Recently, in the Sitecore world, there has been a dawn of some great modules made by different Sitecore enthusiasts as well as of various tools made by Sitecore Partners that make the work of a developer very easy. A few of them took the problem discussed above as a challenge, and developed tools to overcome them. They are TDS i.e. Team Development on Sitecore by Hedgehog Development, Unicorn by Kamsar, Sitecore Development Toolkit by Alen Pelin (There might be some more in this list, but I am aware of these).

These tools, completely changed the way in which a Sitecore developer worked to sync his/her items with other developers in the team or between various environments. This is because, the Sitecore Items are directly available as files just as our code files. So we can apply all the Repository functions on them – we can commit them, compare them, merge them – and then sync them with our own Sitecore solution. So ideally, we can say the Sitecore items of our Business case, or concern are distinctly available with us. Now, as we are clear with the two distinct type of Sitecore solutions, let’s ask ourselves some basic questions that might help us understand as well as approach a Sitecore Version Upgrade in a way that is suitable for our case.

One point to remember, for every question that we ask ourselves, we will first cons ider the Basic Sitecore Solution and then the Expert Sitecore Solution.

(6)

Sitecore Endeavor 5 | P a g e

What is Sitecore Version Upgrade?

From the top view the steps for Sitecore Version Upgrade are :

 Installing the Sitecore Update Package

 Executing some pre and post install SQL Scripts (if available)

(7)

Sitecore Endeavor 6 | P a g e The above is true as far as both – the Basic as well as the Expert Solution is concerned. But in case of an Expert Sitecore Solution, we have one more and quite easier way to approach a Sitecore Version Upgrade. So, from the Top View the steps for Upgrading an Expert Sitecore Solution are:

 Installing a new Sitecore solution of the required Target Version.

 Sync the items of concern from the Repository with the newly added Sitecore soluti on. Both the approaches look quite simple in the first look but as we go deeper into the core of its understanding, it gets equally critical for us as well as our clients who owns that Sitecore solution.

Why upgrade our current Sitecore Solution to a later version?

There could be one or more of a number of reasons as to why should we go ahead and upgrade our Sitecore solution to the latest version or a particular later Sitecore version:

1. To have the latest Security fixes in our solution that Sitecore has applied in a particular version. 2. To make use of the latest functionality that Sitecore has introduced in a particular version of

Sitecore in our current Sitecore Solution.

3. To remove a Hotfix assembly from our solution, when we find that it has been solved and available in a particular main stream version of Sitecore.

4. To get rid of a Sitecore.Support assembly – i.e. a Workaround solution of an issue – from our Sitecore solution, when get to know that it has been solved and available in a particular main stream version of Sitecore.

Also, the reasons why should be upgrade, remain the same for both the type of Sitecore Solutions – Basic as well as Expert!

How to approach a Sitecore Version Upgrade?

As for any other project, it is utmost necessary for a good planning and then its execution is in case of upgrading our Sitecore solution. For simplicity, we will first consider Basic Sitecore Solution and then the Expert Sitecore solution.

Basic Sitecore Solution:

There are a set of tasks included while approaching Sitecore Version Upgrade for a Basic Solution. Let’s look at each one of them one after the other.

1. Identify a version of Sitecore that we want as a target version.

2. Verify that the version we selected as Target Version is not mentioned only as a feature re lease or to be used as only an intermediate version.

3. Check if there are any Known Issues for our selected version. 4. Check for Deprecated Functionalities.

5. Identify the pre-requisites for that particular Version of Sitecore. 6. Identify the number of iterations that might be required.

(8)

Sitecore Endeavor 7 | P a g e 7. Check if we need to upgrade the .NET Framework for our solution.

8. Check if for our target version, we need to upgrade the OS on our Development boxes as well as our Live Servers.

9. Check if the target version requires us to upgrade our SQL Server. 10. Identify if there are any Hotfixes or Workarounds Sitecore.

11. Check for compatibility of the Sitecore Marketplace modules installed in our solution with the required Target version.

12. Check our custom code which uses some DLLs from Sitecore instance – NewtonSoft, HTMLAgilityPack, etc.

 Identify a version of Sitecore that we want as a target version:

(9)

Sitecore Endeavor 8 | P a g e Steps to select a Target Sitecore Version are as follows:

1) Go to Sitecore Developer Network 2) Go to Products –> Sitecore CMS

3) Here, we find main version links for Sitecore. a. Sitecore CMS 7 and DMS –>

http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%207.aspx b. Sitecore CMS 6 and DMS –>

http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206.aspx

4) Now we can see Release Notes for those particular Main versions and go to the Release History Section – which is the Change Log that Sitecore provides for each version, specifying the main highlights of the version, new features and functionalities, the main improvements, bug and security fixes. Below are a few screenshots which might help us to reach there.

(10)

Sitecore Endeavor 9 | P a g e This section, generally proves to be the main decider whether we want to go ahead with that version as our target version or not and I think the credit goes to Sitecore for writing it so well! 5) At the top, will be the last released version – say 7.5 for Sitecore CMS 7. In a normal scenario, we would directly select the latest Sitecore Version available, select it as a Target Version and decide to upgrade to it.

6) But, say for some reason (which is kind of very rare) we need to upgrade to a Sitecore Version only till the point where our new Feature or Bug Fix requirement gets solved. In that case, move bottom-up in the Sitecore Change Log. Select any particular version from the left menu, and start reading its main features, newly added functionalities, code improvements, bug fixes, security updates, etc.

7) While coming from top to bottom in these steps, we will definitely identify whether the version we selected is the one we wanted. But still, it’s good to question ourselves once again – does this version suffice the main purpose of upgrade?

8) If no, then repeat the steps with a version later than that – above in the list on left menu. 9) If yes, then that becomes our Target Version.

(11)

Sitecore Endeavor 10 | P a g e

 Verify that the version we selected as Target Version is not mentioned only as a feature

release or to be used as only an intermediate version:

There are a number of times, when Sitecore mentions a particular version not to be selected as a target version and a higher version of Sitecore to be selected as a Target version. Consider this case of Sitecore 6.4.0 Initial Release:

Let’s make sure, we haven’t selected any version which Sitecore has already mentioned not to use as a Target version.

 Check if there are any Known Issues for our selected version:

This is very rare, as Sitecore thoroughly tests every version of Sitecore before releasing it. But quite possible, that a version of Sitecore may have some issue. In the Release Notes section, below the Release History, is a link to all the Known issues for that version of Sitecore. I’ll take a case of Sitecore CMS 6 for this case.

Clicking it, takes us to the page where all the known issues are mentioned, as below.

(12)

Sitecore Endeavor 11 | P a g e Drilling down further, the description of each issue and its solution is available in a page on Sitecore Knowledge Base.

Say details of 2.1 Content changes of media items may not be reflected in browser immediately – are available at https://kb.sitecore.net/articles/218124

(13)

Sitecore Endeavor 12 | P a g e Also, Sitecore Community is very active. Once a new version of Sitecore is launched, there are many enthusiasts, which get on to try and share their views and quite vital information with the Community, thus helping everyone. This information might include how a particular functionality is helpful or if they find an issue and get a solution, then even that. So search for that particular version of Sitecore, we would definitely find a couple of blogs about positives of that version, some challenges that they might have faced while upgrading (if any) and their solutions. In case we don’t find anything, we can even check on SDN Forum if there is anything of our help or use. Quite possible, that the solution of such a known issue is already available – either given by Sitecore support or found & fixed by a Sitecore developer. It’s always good to know first that there is a known issue to take care of it when time comes . Also, if any one of us faces an issue while upgrade or after that while testing, I believe it becomes our duty not just to report it to Sitecore but also blog (share with community) about its solution.

 Check for Deprecated Functionalities:

Specifically check, the Deprecated Functionalities section of various versions of Sitecore which fall between our current version and the desired Target Version. This is because, if any of our custom code, uses those functionalities, it’s a must to update our code to use the newly recommended class-function. This surely can be kept for later, when the upgrade is done and we rebuild our Visual Studio solution, we might get warnings and then we can change. But, if Sitecore is already giving us the list why not plan and verify it right now.

The deprecated functionality section is in the Release notes, mostly towards the end of it , as an example a screenshot of Sitecore 7.2 Initial release is as follows:

(14)

Sitecore Endeavor 13 | P a g e

 Identify the pre-requisites for that particular Version of Sitecore:

Once we decide on our Target Version based on the Change Log, we would go to its Downloads section on the Sitecore Developer Network.

In every release history, before starting the Change Log, Sitecore provides us with a link to the Downloads section of the main version.

It leads us to a page where download links for particular main versions as well as the minor versions of Sitecore may be available.

Alternatively, we can also go to the download link of a particular version from the main links of Sitecore CMS & DMS too as seen below:

(15)

Sitecore Endeavor 14 | P a g e Just below the release notes, a section says Download CMS+DMS, click there and it will take you to the same downloads page as seen above.

Moving down further, let’s say, I’ll click on Sitecore 7.2 Link, then it will take me to the main downloads page for that particular version of Sitecore.

(16)

Sitecore Endeavor 15 | P a g e On the left, we’ll be able to see the download links for various other Sitecore 7 versions released by Sitecore.

Each download detail page has 2 sections – 1) Download the Plain Version 2) Upgrade to this version

(17)

Sitecore Endeavor 16 | P a g e As we want to upgrade our solution, we will select the second link – the upgrade link

As we can see, the first sub-section specifies the pre-requisites of this version.

 Identify the number of iterations that might be required:

Now how do we find this? Well, this available from the pre-requisite Sitecore version of our Target Version and the pre-requisite version of it and so on. For this, we would move in a reverse order, from our required Sitecore target version.

(18)

Sitecore Endeavor 17 | P a g e Considering an example for this, to better understand as well as verify the above algorithm, say we are on Sitecore 6.3 Update 3 (rev. 101029) and we want to upgrade to Sitecore 7.2 Update-2 (rev. 140526) So let’s follow the algorithm and check how many iterations would we need.

Dry Run of Algorithm: Let’s start:

Iteration – 1:

Selected Target Version – Sitecore 7.2 Update – 2

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 7.2 – Initial Release

 Is our Current Version equal to or higher than our Current Version – NO

Iteration – 2:

 Open the Download link of – Sitecore 7.2 Initial Release

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 7.1 – Initial Release

 Is our Current Version equal to or higher than our Current Version – NO

Iteration – 3:

 Open the Download link of – Sitecore 7.1 Initial Release

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 7.0 – Initial Release

 Is our Current Version equal to or higher than our Current Version – NO

Iteration – 4:

 Open the Download link of – Sitecore 7.0 Initial Release

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 6.6.0 – Initial Release

 Is our Current Version equal to or higher than our Current Version – NO

Iteration – 5:

 Open the Download link of – Sitecore 6.6.0 Initial Release

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 6.5.0 – Initial Release

 Is our Current Version equal to or higher than our Current Version – NO

Iteration – 6:

 Open the Download link of – Sitecore 6.5.0 Initial Release

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 6.4.0 – Initial Release

(19)

Sitecore Endeavor 18 | P a g e Iteration – 7:

 Open the Download link of – Sitecore 6.4.0 Initial Release

 Add the current Version Name to Iteration List

Check the prerequisite – Sitecore 6.3.0 – Initial Release

 Is our Current Version equal to or higher than our Current Version – YES

 Algorithm Ends – The number of iterations to achieve the Target Sitecore Version from our current Version is as follows:

Also, I found a nice website – Sitecore Update helper – developed by Alexander Doroshenko though not updated, can be very helpful to us identifying the number of iterations that we might require - http://sitecoreupdate.somee.com/Default.aspx

 Check if we need to upgrade the .NET Framework for our solution:

Sitecore manages this at Sitecore Knowledge base – in a document with name: Sitecore CMS Compatibility Table. A screenshot of the related section of it is as follows:

(20)

Sitecore Endeavor 19 | P a g e

 Check if for our target version, we need to upgrade the OS on our Development boxes as

well as our Live Servers:

Sitecore manages this at the same location it manages the above – Sitecore CMS Compatibility Table. A screenshot of the related section of it is as follows:

 Check if the target version requires us to upgrade our SQL Server:

For this too, Sitecore manages the information at the Sitecore Knowledge Base – in a document Sitecore CMS Compatibility Table. A screenshot of the related section of it is as follows:

 Identify if there are any Hotfixes or Workarounds Sitecore:

Let’s go to the bin directory of our Sitecore solution and check if there are any Sitecore.Support DLL(s) and also check the properties of our Sitecore.Kernel if HotFix is mentioned in its description. If in case our current solution say has a number Sitecore.Support DLL(s) and/or Hotfix DLL(s), it’s worth checking if that is solved in any particular version of Sitecore before or at least in the one that we have selected. A location to easily identify that is our Sitecore Support portal. Whenever we raise an issue with Sitecore, the support guys check it thoroughly and report it as a Bug if it’s genuine. They generally provide us with a workaround of the solution in form of Sitecore.Support DLL. In case the issue that we report is very critical – say something in Sitecore Caching – which lies quite internally in Sitecore.Kernel DLL, they provide us with a Hotfix of the Sitecore.Kernel. At the same time, Sitecore Support is generous enough, to always update

(21)

Sitecore Endeavor 20 | P a g e all such tickets that are reported as Bugs to Bug Fixed with along with the information of the particular version of Sitecore where it has been fixed. So let’s refer to all those tickets which have status Bug Reported and/or Bug Fixed. In case it’s not updated, we can do one of the two things – search the Sitecore Change Log with the Ticket ID or the Issue ID which might be assigned to us in the ticket itself. If we are able to find its good, else we might make a list of all such DLLs and ask Sitecore if the fixes for those issues are available in the version that we have selected.

Again, considering the worst case, if say for some Support DLL the solution is still not merged with our target version (which is quite rare to happen) then we can ask Support team if the same DLL would function without any issue or would be need a new one if our target version requires Dotnet Framework upgrade as discussed above.

 Check for compatibility of the Sitecore Marketplace modules installed in our solution with

the required Target version:

Sitecore manages a list of modules and its compatibility table is managed by them in Sitecore Knowledge Base here: Sitecore Modules Compatibility Table. If the modules of our concern is here, we can easily identify and note that down. In case the module you have installed, is not in this list, not to worry! Generally, with every Sitecore marketplace module, its requirements section specifies the various versions of Sitecore on which it might run.

As in the above example, what this means is, this particular module is tried and tested well by the developer till Sitecore 6.5 – doesn’t specifically mean it won’t run on Sitecore 6.6 or above, but it ideally means it might not. But for us to be on a safer side, we need to make a list of all the modules and identify from its Requirements which might not work with our Target Sitecore solution. Best would be to try that particular module on a plain Sitecore solution of our target version.

Considering the worst case, we are able to identify that a particular Sitecore module is no more working or throwing errors in our log file for being incompatible – it’s nothing to worry about, as many of the Sitecore Enthusiasts put up the code for the module on GitHub. So either we might ask the developer of the module to update the code for the version of Sitecore we want or we ourselves update it and push the changed code to GitHub for others to use. In case the module we use is just as a package on the marketplace and its code isn’t available, we can ask its developer to help us out as well as raise the same with SDN Forum or Sitecore Support I guess. In parallel to that, we can decompile the code of that module in a reflector or any such decompiler, create a class library with the required changes in the code of the module, change the code references at required places and make it working.

(22)

Sitecore Endeavor 21 | P a g e

 Check our custom code which uses some DLLs from Sitecore instance – NewtonSoft,

HTMLAgilityPack, etc

Sometimes, due to some specific requirement, we might have made some tool or functionality using some DLL which is present in the Sitecore solution like say NewtonSoft or HTMLAgilityPack. This is because with some of the new versions, Sitecore has upgraded these DLLs, and quite possible, that might affect our tool or functionality. So to be better prepared, let’s make a list of various functionalities in our custom code that uses them as we might need to update them as per the new DLL added.

Expert Sitecore Solution:

While approaching the Sitecore Version Upgrade, whether it’s the Expert Solution or the Basic solution, all the steps except Point 6 remains the same (Point – 6: Identify the number of iterations that might be required).

As we have discussed previously, an expert solution is the one with an item sync tool, so we do not need to worry about the number of iterations. This is because, we only need the Plain Sitecore Solution of the selected target Sitecore Version. Hence, we’ll skip the step 6 of Basic Solution, after selecting the Target Sitecore Version we would directly proceed to point 7.

How to Upgrade our Current Sitecore Solution?

Whether we have a basic Sitecore solution or an expert Sitecore solution, once we follow all the above steps, we are aware of the environment and the instance and that we are ready to upgrade our current solution. We should upgrade our Sitecore instances the same way we follow our sprint deployment phases – from local Dev box to integration Dev environment to UAT environment to CA/CD Live Environment.

Sitecore Version Upgrade for a Basic Solution:

Sitecore provides us with the steps of how to upgrade our current Sitecore Solution stepwise to each intermediate version, and reach our required Target Version, I’ve tried to mention a few steps to upgrade to summarize the steps which remain common irrespective of the current version and required target version of Sitecore.

Content Authoring Server:

1. Mention the Current Sitecore Version

2. Download all the required Sitecore Update packages and SQL Scripts and put them at a location on Disk.

3. Backup the Sitecore Website (and even the Sitecore Project/s if we manage it decoupled - http://varunvns.wordpress.com/2014/06/03/setup-sitecore-in-developer-box-in-less-than-5-minutes/

http://varunvns.wordpress.com/2014/06/21/benefits-of-setting-up-sitecore-developer-box-loosely-coupled/ )

4. Backup the Sitecore Databases.

5. Execute the Pre-Install (Before Install) SQL Script to update the DB Schema (if any).

6. Check your Sitecore Update Installation wizard whether latest or not and open it. ( Sometimes, Sitecore recommends, to install the latest Sitecore Update Installation wizard. It is a must to do

(23)

Sitecore Endeavor 22 | P a g e so if Sitecore recommends it, as it might have some bug fixes/updates which are of our help moving forward.)

7. Upload the Sitecore Update package. 8. Analyze the Package.

9. Download Analysis Log and Analysis Report and store it somewhere. 10. Install the Package.

11. Download Installation Log and Installation Report and store it somewhere.

12. Execute the Post-Install (After Install) SQL Script to update the DB Schema (if any). 13. Make the necessary Config changes (refer to these two questions in Frequently Asked

Questions, for more details – Configuration Question 1 & Configuration Question 2 14. Clear Browser Cache

15. Once the Sitecore instance is up, go to Sitecore Desktop and Rebuild Search Indexes 16. Follow steps 3 through 15 till we reach the required Target Version of Sitecore. 17. Deploy our Custom code changes – DLLs, files, etc.

(24)

Sitecore Endeavor 23 | P a g e Next is identify the list of item/s that we need to publish from the Installation Logs/Report.

Content Delivery Server:

1. Backup the Sitecore Website. 2. Backup the Sitecore Databases.

3. Execute the Pre-Install (Before Install) SQL Script to update the DB Schema (if any). 4. Execute the Post-Install (After Install) SQL Script to update the DB Schema (if any). 5. Publish the items identified to be published.

(25)

Sitecore Endeavor 24 | P a g e 6. Make the necessary Config changes

7. Deploy our Custom code changes – DLLs, files, etc.

Sitecore Version Upgrade for an Expert Solution:

When we have an expert Sitecore Solution, the choice remains with us, whether we want to upgrade it the basic way, or we want to do it a smarter way. Smarter way – means instead of following the

complete upgrade procedure, we will directly install the required Target version and deploy our customs items & files as a deployment package. And with that, we can say our Sitecore Version is upgraded.

Content Authoring Server:

1. Download the required Target Sitecore Version from Sitecore Developer Network. 2. Install it and make it completely running.

3. If we have a decoupled Sitecore solution, like the one discussed here -

http://varunvns.wordpress.com/2014/06/03/setup-sitecore-in-developer-box-in-less-than-5-minutes/, create a new Visual Studio Publish Setting to the point to the new Instance, change the Sitecore DLL references to that of the new one, make the required code changes and Publish the changes.

4. If we don’t have a decoupled solution and our Sitecore folders reside inside our Visual Studio solution, then replace all the Sitecore folders in our visual studio solution with that of the new instance, build the solution and fix the Compilation errors

(26)

Sitecore Endeavor 25 | P a g e 6. Make the changes in IIS Manager, add the bindings to the new Sitecore Solution and stop the

(27)

Sitecore Endeavor 26 | P a g e

Content Delivery Server:

For the Content delivery server, the steps remain same as compared to that of the Basic Solution.

Frequently Asked Questions

How do I install the Update Package – using the Installation wizard?

This is mentioned in the Update Steps that Sitecore provides us, we need to use Sitecore Update Installation Wizard and not the one that we access from Sitecore Desktop to install various Sitecore packages. It is present here: http://oursite/sitecore/admin/updateinstallationwizard.aspx

What should I do if I have multiple CM/Content Authoring Servers? Do I need to execute the

Sitecore Update Wizard on all those Content Authoring instances?

We have almost got to a conclusion as to what does a Sitecore Version Upgrade include:

 Pre & Post SQL Scripts

 Sitecore Update Package

o Adds and/or updates Sitecore items (Sitecore Databases)

o Adds and/or updates Sitecore Files (Data and Website Directory)

 Config File Changes

Deployment of the changes of our custom code & configurations ( if necessary, which generally is).

Now whenever we Upgrade the Sitecore Version of one of the multiple Sitecore Content Authoring instances we follow all the above 4 steps.

About the Pre and Post SQL Scripts – they are for updating the Database Schema as we have multiple CM/Content Authoring servers – their Core and Master DB would be same. So we don’t need to execute them again. Next, about the Sitecore Update package - the item changes are already done in the Database – so ideally your Database is upgraded.

So what remains in upgrading the rest of our CM/Content Authoring instances are Config Files and our Custom Code files and DLLs. As our multiple instances would have the same configuration except a few – say the instance name – the upgrade Config changes would be identical, so, we don’t need to make those changes to configs of each of the instance. Instead, make the changes to one, and copy the same files to other instances with the required changes as per our environment. (We would ideally be managing this in our repository)

Thus, if we have multiple Sitecore Content Authoring servers, and we want to upgrade our Sitecore Version:

 We need to execute all the Sitecore Upgrade Steps on one instance

(28)

Sitecore Endeavor 27 | P a g e

What if I have a Dedicated Publishing Instance along with my Content Authoring Server?

A Dedicated Publishing Instance, can be said as a Content Authoring Server – specifically for publishing our item changes.

So in this case too, we should follow the steps mentioned above .

How to upgrade Content Delivery Server?

We do not need to execute the Update Installation wizard of Sitecore for upgrading our Content Delivery Server. For that we have the following steps:

 Execute the SQL Scripts – Pre and/or Post Scripts (if any).

 Publish the items changed by Sitecore during upgrade.

 Push all our Custom code as well as Sitecore files and configs as a deployment package onto our CD Servers.

How do I find which items/files are newly added or updated/changed?

As we follow the steps provided to us by Sitecore and execute the Sitecore Update Installation Wizard, we reach to a step – Analyze & Install. In both of these, Sitecore provides us with log files as well as reports. Say when we Analyze, Sitecore provides us with Analysis Log and in ne xt step is Analysis Report and when we say Install after that is done it gives us Installation Log and Installation Report. Sitecore mentions every change of file or item into the log and report of Analysis and Installation.

We should save these Logs and Reports and we can easily find the files that are added, changed or deleted by any particular version of Sitecore.

Alternatively, if we have installed the Sitecore History Viewer Module – we will be able to identify the Item changes for the databases.

I am confused seeing so many links for the changes required to be done in my config file. How

should we perform the config changes?

Sitecore manages the config changes for upgrades very nicely and easy to understand and do. Let’s take an example to understand this better.

Say we are currently moving from Sitecore 6.4.0 Initial Release to Sitecore 6.5 Initial Release. So we would be referring to the Upgrade Instructions for Sitecore 6.5 Initial Release. The link for that is as follows: http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/Update/6_5_0_rev_110602.as px

(29)

Sitecore Endeavor 28 | P a g e As we can see above there is a different link for each config entry and the ones that we need to choose is based on from what version we moved to this version. In our case, we will need to go through all the links and apply all the changes mentioned there.

But say for example, if we were upgrading to Sitecore 6.5 Initial Release from 6.4.1 Initial Release, then we had to apply the changes suggested in the first two links only, and we could do away with th e latter two. And to verify that, we can open any one link of the latter two and check for a random config entry – it would be present in our current config also.

Doing the Configuration changes for version upgrades is a tough task, is there an easier way to

do that?

We can divide the Sitecore solutions in yet another two types:

1. Loosely-coupled Sitecore Solution: A Sitecore solution, where we add a new configuration file for our case instead of changing the Sitecore Configuration files.

2. Tightly-coupled Sitecore Solution: Changing the Sitecore Configuration files (say Web.config, or Commands.Config etc)

When configuring a Sitecore Solution, it’s always a best practice create own configuration file for the required settings, instead of updating the Sitecore Configuration files. Say, creating a SiteDefinition.config for a new site that is added, instead of adding a site tag in the web.config and creating a custom index configuration and definition file, instead of changing the current DefaultConfiguration file or index files. Benefit of a loosely-coupled solution from Sitecore Version Upgrade perspective:

 We can directly replace the current configuration file with that in the Target Version

If in case we have missed doing so in our current solution, not to worry, we can do so in upcoming Sitecore projects.

Also, for now, we can work a little smart and avoid doing config changes for each and every environment manually. How?

Steps:

(30)

Sitecore Endeavor 29 | P a g e

 Install SlowCheetah – XML Transforms and create the Transforms for all the config files – No need to do it manually, there is a nice Marketplace module available by Chris Le es – Sitecore Upgrade Automation. Use it and make the required changes.

 Apply the config changes that are needed as per the Sitecore Upgrade links.

 Once we build our solution all the changes would be available for the files of rest of the environments too.

We have an Expert Solution but not all items are synced. The Templates, System and Layouts are

fully synced but Content and Media Library on Live Content Authoring Server has many items

then in my Repository. What can we do?

Generally, that’s the approach that most of us follow for all of our projects. For a development team, what is most important is Templates, Sublayouts and System (if we have written some rules etc.). As far as Content and Media Library is concerned, we just put the main items (say homepage item of site, settings item of a site, etc) and a few items to unit test our test cases. Otherwise, the complete site specific content – i.e. Content and Media Library is on our Live Content Authoring Server.

So we have a few options that we can do:

1. Upgrade the Sitecore Solution the basic way:

Apply all the required upgrades from our current version till the target version just as if we have a basic Sitecore Solution. This is the safest way of making sure that our required content and data is consistent and we don’t lose absolutely anything. But the disadvantage is the time taken – yes, this would take a longer time.

2. Bring all our items from Live Content Authoring to our Local environment before taking up Upgrade:

 Package all Content and Media Library items and bring it to our Local Environment or Backup the Live Database and restore it in our Local environment.

 Get it serialized using some Item synchronization tool – TDS, Unicorn, Sitecore Development Toolkit – and commit it to our repository

 Next, follow the steps for Sitecore Version Upgrade of an Expert Solution.

For the second case, we can even use the Sitecore Instance Comparer tool - Meerkat – Compare Sitecore instances over HTTP. This will give us the Update package with all the item changes and we can install this update package in our local, synchronize the items and follow the Expert Solution upgrade steps.

While installing the Update package, my Sitecore instance suddenly crashed and I could not

download my Installation Log and Report. Can I get it from somewhere?

Yes, we can get it.

Sitecore stores all the files while upgrading at a location: website/temp/__UpgradeHistory Folder. All the upgrades that we perform on our solution, it creates a specific directory in this folder and dumps all the files. So from here, we can get the Log or Report files.

(31)

Sitecore Endeavor 30 | P a g e

Learnings of our Team while performing Sitecore Version Upgrade:

These are the learnings which we had while upgrading our Sitecore Solution. Our solution had 650+ si tes on the same instance, had a Dedicated Publishing Instance with 150GB+ Master DB, had 2 Publishing Targets (i.e. 2 Web Databases) and 10 Content Delivery Servers. I believe the size of a Sitecore instance doesn’t matter, but what matters is how critical any Sitecore Solution is. So if you and your team have some learnings while upgrading your Sitecore solutions and would like to share it with the community, then you can always contact me.

Always install Upgrade package in FF Browser rather than IE

We somehow happened to find it while installing the Upgrade Package in our local environment. Without going into much details of it, I would like to share an article written by Kiran Patil, which explains it fully http://sitecorebasics.wordpress.com/2012/02/26/browser-timeout-error-while-doing-sitecore-version-upgrade/

Change the values of DefaultSQLTimeout and DataProviderTimeout.

By default, these two settings are set to 5 minutes, and they are not present in the Web.Config file. But, we can add them, in case we want to override them, and set it to something greater than that.

Let’s understand why this is required. Sitecore Version Upgrade consists of two main things — the Database Upgrade Scripts and Installing the Upgrade Package.

Applying the Upgrade scripts is never a problem, because we are directly working on the Database with Database Management System (i.e. say SQL Management Studio in case of SQL Database).

But, while installing the upgrade package, it is a continuous database activity from Application to the Database. And the time required to install the upgrade package, could be relatively dependent to our database size or change of some critical items and hence take long time to complete — for us it took some Hours!

We tried without changing this setting and the Sitecore instance gave us SQL Timeout while executing the package, but after changing these settings, it worked fine for us. Some details about what these settings would do — they define how long the .Net Code will wait, before it declares that the SQL query has timed out. These settings, would allow some heavy queries to be executed successfully instead of been claimed as time out.

To override these settings, please add the following in the <settings> section in Web.Config File: <setting name=”DefaultSQLTimeout” value=”00:30:00″/>

<setting name=”DataProviderTimeout” value=”00:30:00″/>

If you are upgrading your Sitecore solution, do keep at least one of your older versions up

and running.

We as a team, had marked this point as Highly Important. We absolutely must have at least one old version running either in our Development Environment or somewhere, so that at any point of time we can directly compare after upgrading our Sitecore Solution to the target version. This is not just useful for our QA Team to test for it, but even for our own unit testing.

(32)

Sitecore Endeavor 31 | P a g e Say there are some deprecated functionalities, and some newly added ones, or some replaced by some others which may affect your Business needs, say just like Sitecore with its Sitecore 6.4.1 version, replaced Telerik RAD by Telerik RTE, which had many changes, and even though RTE had many added functionalities, It was missing out some of our Core Requirements, which we had to plug-in to it, with help from Sitecore and Telerik.

Sometimes, if you get an error related to the Database Schema, don’t worry, just proceed

to your Target Version. To confirm, ask Sitecore Support.

It happened so in our case, while we were upgrading once. We contacted Sitecore Support, and we got a great response from them. For more details on it please refer to the following article:

http://varunvns.wordpress.com/2012/06/12/error-while-applying-upgrade-invalid-column-name-sequence/. In our local development box, we can take a risk of moving ahead with our next intermediate version or the target version. But it is good to consult Sitecore Support, with what we faced, just to confirm it.

Do you have some Jumbled JSON seen on your Browser page in Page Editor Mode?

Please check this article my John West for the solution: http://www.sitecore.net/Community/Technical-

Blogs/John-West-Sitecore-Blog/Posts/2011/06/Sitecore-Page-Editor-Renders-Jumbled-JSON-as-Content.aspx

Shrink Databases and Rebuild the Indexes from the Management Studio to have a faster

operation.

This was particularly very helpful for our case. We had Master Database as big as 25GB in our local environment and in our Live Environment, the Master DB was 150GB+. Also, we had found that our Databases were running with full recovery mode.

Due to this, the LDF file grew high – as big as 7GB. Our DBA suggested, to shrink the Database LDF files and rebuild the Indexes and then start with the Upgrade process. In our local, we had took statistics and found that there was a difference of around 25 minutes. And hence we decided to go ahead with that. Why Shrink & Rebuild your Databases Indexes? – Shrink so that you don’t have a heavy LDF files, and all/most of your data is in MDF & Rebuild Index so that the indexes are in perfect order and the database transactions for upgrade process would be performed faster.

(33)

Sitecore Endeavor 32 | P a g e

Preserve Analysis and Installation Logs & Reports

Always Analyze and then Install the upgrade package, and make sure you save all these Log Files. If in case we run into issues, these files could be very handy – say to read and identify or to provide to Sitecore Support if the criticality of the condition be.

We run into some issue after upgrade – Google it out or raise with Sitecore Support

The Sitecore community is strong and many share some really great information on their blogs or raise issues on Forum or with Sitecore Support. So in case we run into some random & weird issue, first thing would be to search on the web. Most of the time, if someone else encountered it, it could be on the SDN Forum and someone might have provided its solution, or we might get a link to the Sitecore Knowledge Base or some Blog of a Sitecore Enthusiast. In case we don’t find anything, it’s quite critical fir us and can’t wait for it to get solved, we should consult Sitecore Support. Otherwise, we can raise on SDN Forum too.

Create an Upgrade team (IT Infrastructure Team, Developers & QA) to discuss various

scenarios from their perspectives.

Each team member have their own perspective, and their own domain of working. So discussing things with them on multiple intervals during upgrade is quite vital.

Perform Bug Bash for every environment and make sure every Bug is resolved and then

we move to the environment ahead.

Bug Bash is a very necessary step, as every user – Developer, Content Author, Administrator, QA, and Subeditor – has his/her own perspective of working and checking things. So after upgrading our environment, once our unit testing is over, we must perform Bug Bash, mention the bugs found at a central location – say Google Doc – solve them, deploy the fixes on that environment, unit test them again and only then move to the next environment.

Document the Approach and Full Steps of Upgrade and discuss with the Upgrade Team

It is a must that we document things – the approach as well as the steps of upgrade, what needs to be done when and how. Next, we must discuss these steps with the Upgrade Team members and get it verified – update the document as necessary. Keep on updating this document on regular intervals so that we have a complete set of learnings till we reach the Live Environment. For the live environment, divide the Upgrade tasks – upgrading the Main Content Authoring Server, other Content Authoring Servers or Publishing Instance, the Content Delivery Servers and their sub-tasks – in sub teams of the main Upgrade Team, to work it out in parallel to spend most time testing instead of upgrading.

References:

 http://varunvns.wordpress.com/2012/06/06/basics-of-sitecore-version-upgrade/  http://varunvns.wordpress.com/2012/06/18/some-findings-while-sitecore-version-upgrade/  http://varunvns.wordpress.com/2012/06/12/error-while-applying-upgrade-invalid-column-name-sequence/  http://www.nonlinearcreations.com/Digital/how-we-think/articles/2014/05/Sitecore-Upgrade-Tips.aspx

(34)

Sitecore Endeavor 33 | P a g e

Tools that can be useful:

 Sitecore History Viewer:

https://marketplace.sitecore.net/Modules/Sitecore_History_Viewer.aspx

 Sitecore Instances Comparer: http://coreblimey.azurewebsites.net/meerkat-compare-sitecore-instances-over-http/

 Sitecore Upgrade Automation:

References

Related documents

Sitecore 7.x laid the foundation of contextual marketing and experience management by putting in place an integrated suite of technologies that support individual customer

Pada gambar diatas Sistem Awal proses informasi laptop yang di servis di CV Devtek Notebook Makassar dilakukan dengan menggunakan sistem konvensional, dimana pelanggan

If you create an online or offline campaign in the OMS Marketing Center, when the campaign is triggered the campaign appears in the Sitecore Analytics Session report..

Involves developing an understanding of the risk, provide an input to risk evaluation and to decisions on whether risks need to be treated, and on the most appropriate risk treatment

The Education, Practice and Data Division helps to promote excellence and drive innovation in public health education, training and practice and strives to deliver programs

Both of the hypotheses relate variations in the size of the divorce effect to changes in the prevalence of divorce: Is the negative effect of breakup stronger (as is predicted by

commonly assumed 25% difference as being caused by biological factors. LIFESTYLE ASSOCIATED HEALTH RISKS IN WOMEN AND MEN 179.. The three major lifestyle factors affecting

SNAP-25 gene, and may enhance susceptibility to ADHD. Other studies have reported that the SNAP-25 gene modifies the release of neurotransmitters. 31) There is some evidence