自社サービスのサービス名を変更することになりました。
Webサイトの「お知らせ」にしたら、単純な一文ですが、
サービスのシステム運用をしているチームにとっては、重大事件です。
どんな作業があるのか?と考えた時に、最初に浮かぶのは「ウェブサイトやアプリの変更」かと思います。
サービス名の変更に伴い、ウェブサイトやアプリのインターフェースやコンテンツを更新する必要があります。新しいサービス名を反映させるために、ページのタイトル、ロゴ、ドメイン名などを変更します。
上記作業で一番の曲者が「ドメイン名」の変更です。
キャプチャ
ドメイン名を変更の主な作業は次の通り。
1)新サービス名に合わせたドメインの主塔
2)DNSサーバーへの設定
3)Webサーバー等の設定
4)外部サービス連携している場合の所設定
5)DBやファイル等に含まれるドメイン文字列の変更
1)~4)は、関係する管理画面で設定を変更すればいいので簡単です。
問題は、5)。これに付きます。
間違いなく変更するためには
1.バックアップ = 間違った時のリカバリのために保管
2.変更箇所の調査 = どこに、何が含まれているかのチェック
3.置換処理 = 該当ドメイン部分のみを変更
のステップを踏みます。
ファイルは意外と簡単です。grepを使って対象リストアップして、置換コマンドを実行すればいいからです。
大変なのはDBです。
システムの仕様書から、どのフィールドにどんな内容が格納されているかを確認した上で、対象ドメイン文字列が含まれているレコードおよびレコード数を事前にチェックして、SQL文やバッチ処理を組んで実行するのです。これが、時間がかかる!
今回は、SQL文を対象テーブルに合わせて組んでひたすら流す状態がほとんどでした。
MysqlのREPLACE関数万歳です。
通常のプログラム実装の時は、なかなか使用しない関数ですが、こういう時はありがたいですね。
UPDATE sample_table SET target_column = REPLACE(target_column, ‘before word’, ‘after word’);
切り替え作業時間も決まっているので、事前準備からドメイン当日切り替えまで1週間ほどかけました。
なお、今回変更したサービスは、ご存知の通り、LINEを利用しているため、DB情報変更後にはリッチメニューの再適用処理などcurlコマンドにもお世話になりました。(連打してました。)
ターミナル作業ダイスキーな私でも、さすがにしばらくお目にかかりたくない、作業です。
【蛇足】
久しぶりにブログを書くぞ!というタイミングで、話題の「ChatGPT」を試してみました。
とりあえず、ブログのタイトル(「サービス名変更とドメイン変更」)を入れてみたら、次のように返ってきました。
申し訳ありませんが、サービス名やドメインの変更に関する詳細な情報を提供することはできません。なぜなら、私は2021年9月までの情報しか持っておらず、現在の日付での最新の変更には関する情報を持っていません。サービス名やドメインの変更については、関連するウェブサイトやニュースソースを確認するか、関係者に直接お問い合わせいただくことをおすすめします。
ChatGPTのサービス名変更と判定されたのかしらん?
と思いつつ、「私は2021年9月までの情報しか持っておらず」をガン見してしまった。
え、そうなの? 2年前ぐらいまでの精度なの?
時間部分に関して、謎をふりまかれて、今回は終わりました。