インスタンスのアップグレードについて

miyu
Tera Guru

インスタンスのアップグレードについて、以下2点教えてください。

①インスタンスのアップグレードを1世代スキップした場合の懸念事項はありますか?
例えば、QuebecからRomeへのバージョンアップをスキップした場合、
次にバージョンアップした際にRomeで追加された機能(Employee Center等)が使えないというような懸念事項はありますか?

②開発期間中にインスタンスのアップグレードは行わないほうが良いですか?
例えば、本番環境と検証環境、開発環境でカスタマイズ状況が異なります。
開発環境と検証環境にはA機能がカスタマイズされていますが、本番環境にはA機能はカスタマイズできていない状態です。
開発完了後にアップグレードしたほうが良いのでしょうか?

1 ACCEPTED SOLUTION

  • 質問:スキップした機能は次のバージョンアップでは正常に追加されるのでしょうか?それともバージョンアップ時にエラーになるのでしょうか?

    • 回答:次のバージョンアップでは正常に追加されます。
      Paris => Quebec => Rome => SanDiego => Tokyo => Utah => Vancover
      アップグレードは、どこをいくつスキップしたとしても、バージョンアップは正常に行われます。理由は選択したバージョンに必要なプログラムやデータはすべて適用する(適用を試みる)ためです。そのためワークフローが足りないとかビジネスルールが足りないとかは発生しません。Romeをスキップしたからと言って、SanDiegoでRomeの機能が適用されないとかはありません。San Diegoはそれ以前バージョンすべて、RomeもQuebecもすべてを含みます。(廃止された機能は含みません)
      ただし、すでに環境にプログラムやデータがあった場合、適用しない(できない)場合もあります。(適用する場合もあります)
      またデータ形式が変わって、データ変換が必要で、完全には新しく移行できない場合もあります。
      参考データ、デモデータの一部はアップグレードに含まれないため、すぐに使えない場合もあります。(含まれているデータもあります)
      曖昧さが少々含まれている説明になっていますが、基本的にそのバージョンに必要なプログラムやデータはすべて適用するので問題ありません。

View solution in original post

4 REPLIES 4

iwai
Giga Sage
  • 質問:①インスタンスのアップグレードを1世代スキップした場合の懸念事項はありますか?
    例えば、QuebecからRomeへのバージョンアップをスキップした場合、
    次にバージョンアップした際にRomeで追加された機能(Employee Center等)が使えないというような懸念事項はありますか?
    • 回答:基本的には1世代スキップしても、特定の機能が使えないことはありません。私の個人的な意見では1世代スキップによるデメリットのようなことはありません。
      スキップに限った話ではないのですが、インスタンスのカスタマイズの影響でRomeの新機能が使えないとか、プラグインが有効になっていないとか、初期設定が行われていないなどの理由で使えない場合はあります。Rome以降はデフォルトで有効でも、Quebecなど古いインスタンスからUpgradeした場合は有効になっていない場合などあるかもしれません。
      初期の払い出し時のRome環境やZbootなどで完全に初期化すると、Romeの初期設定が有効になって、Upgradeとは違う初期設定のため、初めから新機能などが使える状態になっていたりします。画面レイアウトやそのほかのデータも微妙に違っている場合もあります。
      個人インスタンスなどで、一度RomeでZbootしてみると、その違いを比較できるので良いです。
      これらはスキップに限った話では無いです。スキップによるデメリットは個人的には感じていません。変化が大きすぎて困るとかそう言うのはあるのかもしれません。
  • 質問:②開発期間中にインスタンスのアップグレードは行わないほうが良いですか?
    例えば、本番環境と検証環境、開発環境でカスタマイズ状況が異なります。
    開発環境と検証環境にはA機能がカスタマイズされていますが、本番環境にはA機能はカスタマイズできていない状態です。
    開発完了後にアップグレードしたほうが良いのでしょうか?
    • 回答:開発期間中はなるべくアップグレードを行わない方が良いです。開発完了後にアップグレードしたほうが良いです。
      • Upgrade後の動作確認が、開発中の機能がうまく動かないため確認ができない場合がある。(Upgrade後の不具合なのか、開発中の機能の不具合なのか切り分けが必要など)
      • 本番環境にUpdateSetを適用するとき、Versionが違うと適用できない場合がある。(新機能や変更点が開発と本番で違うため適用できない)
      • Upgrade SkipのUpdateSetと、開発のUpdateSetの適用順序や依存関係が複雑になる。開発のUpgradeとUpgradeSkipの一部と重複する場合がある。

開発完了と本番適用までアップグレードを待ってもらうのが安心安全です。そのご、開発は完全停止して、本番を開発にクローンバックしてから(環境の差異をなくすため。)開発をアップグレードすると良いです。

iwaiさん

ご回答ありがとうございます。大変助かります。

①について、追加で確認させてください。

①で追加される機能としてEmployee Centerを例示しましたが、

Employee Centerのようなプラグイン以外でもバージョンアップによって機能が追加されることがあると思います。

例えば、ワークフローやビジネスルールなどです。

その場合、スキップした機能は次のバージョンアップでは正常に追加されるのでしょうか?

それともバージョンアップ時にエラーになるのでしょうか?

具体的には以下のようなイメージです。

・QuebecからRomeへのバージョンアップをスキップ

・RomeではワークフローAとビジネスルールAが1つずつOOTBで追加されている

・次のバージョンアップ時にワークフローAとビジネスルールAは正常に追加される?エラーになる?

  • 質問:スキップした機能は次のバージョンアップでは正常に追加されるのでしょうか?それともバージョンアップ時にエラーになるのでしょうか?

    • 回答:次のバージョンアップでは正常に追加されます。
      Paris => Quebec => Rome => SanDiego => Tokyo => Utah => Vancover
      アップグレードは、どこをいくつスキップしたとしても、バージョンアップは正常に行われます。理由は選択したバージョンに必要なプログラムやデータはすべて適用する(適用を試みる)ためです。そのためワークフローが足りないとかビジネスルールが足りないとかは発生しません。Romeをスキップしたからと言って、SanDiegoでRomeの機能が適用されないとかはありません。San Diegoはそれ以前バージョンすべて、RomeもQuebecもすべてを含みます。(廃止された機能は含みません)
      ただし、すでに環境にプログラムやデータがあった場合、適用しない(できない)場合もあります。(適用する場合もあります)
      またデータ形式が変わって、データ変換が必要で、完全には新しく移行できない場合もあります。
      参考データ、デモデータの一部はアップグレードに含まれないため、すぐに使えない場合もあります。(含まれているデータもあります)
      曖昧さが少々含まれている説明になっていますが、基本的にそのバージョンに必要なプログラムやデータはすべて適用するので問題ありません。

t_sadahisa
Giga Guru

こんにちは。ご質問に対して私の経験から回答させていただきます。

>①インスタンスのアップグレードを1世代スキップした場合の懸念事項はありますか?
アップグレード対象が最新のメジャーバージョンになるため、Hotfix等緊急パッチが頻繁に発生し、
その対応に追われるリスクがございます。

最新の1世代前までがサポート対象ですので、1世代スキップするというのはつまり、
1年間に一度リリースされた最新のバージョンにアップグレードを意味すると理解しております。

過去のリリースノート等を見ていただくと、雰囲気が伝わるかと思いますが、
メジャーバージョンがリリースされた直後は深刻な問題が検出されることが多く出る印象があります。
※QuebecではPatch1,Patch2それぞれにHFが5つ出ていたようです

たとえ影響がなかったとしても深刻な問題があるとアナウンスされている以上、
運用としてはパッチを当てないという選択肢はないと思います。
結果的に、運用作業がスキップしない場合に比べて増えてしまうのかなと思います。

 

>②開発期間中にインスタンスのアップグレードは行わないほうが良いですか?
開発しない期間が存在するのであればその時に対応するのが一番良いです。

継続的に開発している場合は、
開発したインスタンスのバージョンとリリース対象のインスタンスのバージョンに
差異がない様にリリースします。

例えば今月開発環境をQuebecからRomeにアップグレードしたとしたら、
検証環境をRomeにアップグレードするまではリリースを行いません。といった形で調整します。
(本番も同様です)

理由はiwaiさんが説明してくれている通り、バージョンに差異があるとリリース時にエラーになってしまう、原因がアップグレードなのか開発物なのかわかりにくくなってしまう等の懸念があるからです。

 

以上、参考になれば幸いです。