ServiceNow 開発者向けインスタンスに公式パッチを当てる

ServiceNowインスタンスのバージョンには、ABC順に名付けられた大きなバージョン（HelsinkiやIstanbulなど）と、その中の小さなバージョン（Istanbul Patch1やIstanbul Patch6など）がある。
大きなバージョンはファミリー（Family）と呼ばれており、<font color="red">ファミリーが変わるアップデートをアップグレード</font>、<font color="blue">ファミリーが変わらないアップデートをパッチ</font>と言う。

本記事ではServiceNow開発者向けインスタンスのパッチを扱う。
開発者向けインスタンスではあまり気にすること無くパッチをあてても良いとは思うが、色々スクリプトを組んだアプリケーションを開発しているのであればしっかりチェックしつつ行うことを推奨する。
（実環境での手順は[こちらのサイト](https://express.servicenow.com/support/skip-line-upgrade-istanbul-sooner/)が参考になる）
インスタンスのビルドタイプはIstanbul。
アップグレードに関しては次の記事に記載している。
> - [ServiceNow 開発者向けインスタンスをアップグレードする](http://qiita.com/Kisaragi13/items/2630bea5c16383ae2a2a)

# 1. パッチの修正内容を確認する
公式が出しているパッチの修正内容を確認し、既存の実装に影響がないことを確認する。
URL（2017年6月時点）：https://docs.servicenow.com/

【確認手順】
ファミリーを選択する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/cae37042-0b8e-68ae-5db0-aff83f6ade8c.png)

リリースノートを選択する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/d1cefcbe-7923-c276-bb9d-d0c64d14d449.png)

Available versionsを選択する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/846de095-c1b4-419a-edc5-f0b06cdbcd4f.png)

パッチの一覧が表示されるので、目的のパッチを選択する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/5c5c02ae-596d-f6b4-4235-ee0a69c3a5c9.png)

修正内容が確認できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/af9c9b1f-8379-88f0-ac35-b768e59db8be.png)

修正内容は毎回とても多いので、頑張って読もう...

# 2. パッチにより影響を受ける機能を特定し一覧化しておく
1の作業の中で、影響を受ける機能を特定し一覧化しておく。
リリースノートの「**Affected plugins**」に仕様中のプラグインがあれば特に注意しておく。

# 3. パッチをあてる
[ServiceNow Developersのインスタンスページ](https://developer.servicenow.com/app.do#!/instance)を開く（要ログイン）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/493c3798-2e70-7891-8173-fd547247c2cb.png)

**Action** -> **Upgrade Instance**を選択する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/cceea50e-6b2c-c5ff-df0f-97bd95706487.png)

確認メッセージが表示されるので「**YES**」ボタンをクリックする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/cb14604b-78bf-3313-9e7d-451a43cdb472.png)

暫く待つ。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/d2ffd8e9-9a77-5407-13d7-20e53acb05dc.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/82d3272c-951f-4532-6344-bebf6fa49086.png)

このときアドミンでログインすると進行状況を確認できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/175688/0c780d16-a570-816c-e89b-b37a64fe68ff.png)


# その他 - パッチ計画チェックリスト -
公式Wikiにあったので日本語翻訳（実環境での手順なので、必要に応じて読み替えが必要）
> 元ページ：[ServiceNow Wiki - Patch Planning Checklist -](http://wiki.servicenow.com/images/e/ed/ServiceNow_Patch_Planning_Checklist.pdf)

| # | 作業内容 | YES | NO | N/A | <div style="white-space: nowrap">　　　　コメント　　　　</div> |
|:-:|:-:|:-:|:-:|:-:|:-:|
| 1 | [Patching Best Practices](http://wiki.servicenow.com/index.php?title=Patches_Best_Practices)を確認する |   |   |   |   |
| 2 | [リリースノート](https://docs.servicenow.com/search?page=2&q=release+notes&labels=7)などを確認する |   |   |   |   |
| 3 | 重要な機能に関するチェックリストを作成する |   |   |   |   |
| 4 | クローン環境（検証環境）を作成する |   |   |   |   |
| 5 | クローン環境にパッチをあてる |   |   |   |   |
| 6 | クローン環境でテストを行う |   |   |   |   |
| 7 | 本番インスタンスにパッチをあてる |   |   |   |   |
| 8 | 本番インスタンスでテストを行う |   |   |   |   |
| 9 | （任意）反省会を開き、手順などを[話し合う](http://wiki.servicenow.com/images/d/d0/Patch_Lessons_Learned_Template.pdf) |   |   |   |   |

# 関連記事
> - [ServiceNow 開発者向けインスタンスをアップグレードする](http://qiita.com/Kisaragi13/items/2630bea5c16383ae2a2a)

# 参考サイト
> 『ServiceNow Wiki』
http://wiki.servicenow.com/
> 『ServiceNow Istanbul Release Notes』
https://docs.servicenow.com/bundle/istanbul-release-notes/page/release-notes/r_AvailableVersions.html
> 『ServiceNow Wiki - Patching Best Practices -』
http://wiki.servicenow.com/images/e/ed/ServiceNow_Patch_Planning_Checklist.pdf
> 『Skip the Line – Upgrade to Istanbul Sooner』
https://express.servicenow.com/support/skip-line-upgrade-istanbul-sooner/