[Sitecore][Upgrade]サイトコア10アップグレード

これはサイトコア10.2へのアップグレード手順のメモ書き

検証環境:Sitecore 10.2.0

概要:

サイトコア10.2へのアップグレードの手順を書き留めます。なぜなら、従来のアップグレードの手順と違うので、書き留めた方が誰かの参考になるかも。



始める前に:
アップグレードする前にお客さんから既存サイトコアの情報をできるだけ収集するのは大切です。

例えば、下記のような質問をあらかじめに確認しておきましょう。
1.Web.config また、何かカスタマイゼーションがあるかどうかについての情報収取。

2.以前に使用していた サイトコアのバージョンまた、これまでにアップグレードされたことなど。

3.既存のサイトコアのバージョン、購入されているモジュールの一覧。

4.サード パーティ モジュールがインストールされいるかどうか(他のベンダー、独自のもの)

5.外部システムとの統合などあるかどうかを確認、外部システムがアップグレードする
  サイトコアのバージョンをサポートするかどうかを確認する必要があります。

6.Web フォーム (WFFM) を使用していますか?

7.アップグレード環境一覧、Dev,QA、UAT、ステージング、プロダクション、インスタンスの数。

8.xDB からの分析データを xConnect に移行する必要があるかどうか
  クリーンな状態から始めても可能かどうか?

9.現在使用されている検索エンジンとバージョンは? (Lucene、Solr、Coveo など)

10.アップグレード後、環境変化があるかどうか、例えば、on-prem また cloud?

11.環境によって、セキュリティ規制などがあるかどうか

12.ビルドとテストに継続的インテグレーション ソフトウェアを使用していますか?

13.スケジュールジョーブなどがあるかどうかを確認しましょう。 
   これらのスケジュールジョーブを事前停止します。

     例えば、

     *製品情報の更新

     *サーバーのヘルスチェック

     *インポート、エクスポート

     *パブリッシュ、インデックス

     *キャシュークリア など


ステップ 1、データベースのアップグレード

参照リファレンス:

Sitecore Experience Platform 10.2

https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/102/Sitecore_Experience_Platform_102.aspx

使用したアップグレードガイド:

Upgrade Guide        Explains how to directly upgrade from Sitecore XP 8.1.0 through 10.0.1 to Sitecore XP 10.2.0.

https://sitecoredev.azureedge.net/~/media/93CC3A931DB7459AAC38BA111E0DD16D.ashx?date=20211207T101247

アップグレードで使用したファイル

https://sitecoredev.azureedge.net/~/media/0CE195E3F7754AE6887BBC7A06B7E7C4.ashx?date=20211101T103348

手順

1. 既存のデータベースのバックアップの.bakを作ります。

2. .bak を使って sc10 prefixのデータベースをリストーアします。

3. アップグレードを従って、データベースのアップグレードします。例えば、

4.サイトコアUpdateApp ツールを使ってデータベースの クリーンアップ行います

https://dev.sitecore.net/Downloads/Sitecore_UpdateApp_Tool/1x/Sitecore_UpdateApp_Tool_120.aspx


ステップ 2、サイトコア10.2インストール

インストールの方法に関して主に下記四つです。

1.Sitecore インストール アシスタント (SIA) / SIF レス

2.Sitecore インストール フレームワーク (SIF)

3.サイトコア インスタンス マネージャー (SIM)

4.ドッカー(Docker)

私4つの方法とも行ったのでそれぞれ、ターゲットサーバーの環境によって、それぞれの問題がありました。今後またそれあらの問題を整理して書きます。しかし、一番簡単な方法はSIAです。

ローカルにてPOCとして行う際にお勧めします。既存のコート都の兼用確認や、サード パーティ モジュールのサポートの確認など。SIAはとにかく早く、インストレーションの画面に従って、Solr,Sqlとサイトコアのライセンス情報を提供するだけですべての設定を行ってくれます。その他の環境はSIFを使用します。なぜなら、環境によって独自の設定が必要からです。とくに、XCONNECTとCM/CDと別のサーバーへ設置する場合はSIFが便利です。

私はアップグレード後、安定した動作するサイトコアのバージョンをできた時点でDockerへ移行しました。このメモ書きはSIMとDockerを使ったインストレーションを含まれていません。

SIAのインストレーションについて、ネットで関連する記事がたくさんあり、またインストレーション自体も分かりやすく、特にメモ書きすることがありません。



ステップ 3、 データベースの切り替え、コードのデプロイ

インストレーションが完了後、ConnectionStrings.configにてデータベースの接続を更新します。

その後サイトが立ち上がりいることを確認し、バックアップします。なぜなら、一度コード
デプロイメントを始めたら、エアーを解決する際に動作する環境へ戻って比較する必要があります。

動作するインすテンスのバックアップ:
私は毎回コードデプロイメントをする前にサイトをバックアップします。あまり頻繁にバックアップするので、簡単なスクリプトを使っています。

テキストファイルにてbackupa.ps1を作成し、下記の内容を貼り付けて、

毎回コードデプロイメントをする前backupa.ps1を走らせればバックアップを作ります


コードデプロイメントについて、二つの部分に分かれています。

1.ソースコントロールにあるコードまたファイル
  これらはソリューションにて更新すればよい。

2.ソースコントロールにないコードまたファイル
  これは既存のサイトと比較し、ソースコントロールになにコード
  またファイルを新しいサイトへ手動でコピーする必要があります。


コードリファレンスのアップグレード

コードリファレンスは主に二つところで参照されています。

1.ローカールにあるdllへの参照
  サード パーティ 関連のリファレンスまた、Nugetにないサイトコアdllへの参照

2.Nugetサーバーにあるdllへの参照

3.また、主なサイトコアのリファレンスのリストに従って確認することもお勧めします。

Sitecore.Mvc
Sitecore.Mvc.Analytics
Sitecore.Kernel
Sitecore.ContentSearch
Sitecore.ContentSearch.Linq
Sitecore.ContentSearch.SolrProvider
Sitecore.ContentSearch.SolrNetExtension
Sitecore.Analytics
Sitecore.Analytics.Core
Sitecore.Analytics.Model
Sitecore.Analytics.DataAccess
Sitecore.Logging
Sitecore.Marketing
Sitecore.Buckets
Sitecore.Services.Core
Sitecore.Services.Infrastructure
Sitecore.Services.Client
Sitecore.CES.GeoIp.Core
Sitecore.Client
Sitecore.Commerce.Connect.Core
Sitecore.Owin.Authentication
Sitecore.XConnect
Sitecore.XConnect.Client
Sitecore.XConnect.Client.Configuration
Sitecore.XConnect.Collection.Model

それぞれのリファレンスにて更新していきます。

カスタマイゼーションまたホットフィックス関連の設定

これはプロジェクトによって違って来ます。カスタマイゼーションをそれぞれの機能を理解して、
アップグレードしたバージョンのサイトコアで動作するかどうか、また必要かどうかをレビューする必要があります。


サード パーティモジュール
インストールされているモジュールをそれぞれレビューし、対応したバージョンを取得してインストール。例えば、Coveo,公式サイトにて必要なバージョンを取得すればよい


コンパイルして、ソリューションがエラーがなくなるまで繰り返します。エラーがなくなる時点で
コードデプロイメントします。サイトをエラーがなく立ち上がれば、ログファイルをレビューし、
エラーメッセージがあるかどうかを確認。

もし、エラーがあった場合はそれぞれのエラーを解決していきます。もし、エラーの情報が表示されない場合は、コードデプロイメントする前のバックアップしたサイトとの比較し、変更をレビューすることでエラー解決の手係となります。


最後に、QAへ渡す前にインディスを行い、簡単なテストなどを行いましょう。
1.アイテムの作成からパブリッシュまで

2.xdbが訪問者の情報がキャッチされているかどうか

3.サインアップやサインイン

4.ショッピングカート

5.検索など