いろんな人が
つい最近起きたシステム移行トラブルについて
いろんなこと好き勝手言ってるようなので自分も言ってみる。
まず風土
自分が思うに日本のシステムはリリース時から(実装部分は)完璧でなければならないという風土であり、インフラにいたっては99.9999・・・・%稼働でも1件起きたら思いっきり叩かれるのが我が国日本である。
でその中でのシステムの立ち位置
開発・構築費はだしても保守費は出さない企業が多すぎるねん。
社内情シスの人とか大変だと思う。経営者クラスにマジでただのコストセンターだとおもってるアホもいっぱいいますから・・・
いくつものシステムを作ってきた身からすると
基本最初のリリースで完璧、止めない限り問題は出ない、1個でもトラブルがでたら保証金みたいな感覚で契約に臨む企業経営者が多かったです。
そう
システムは作ってリリースすれば以後完璧でなければならない
と本気で考えてる人がいるんです。なので開発工数はかかるうえどんぶり勘定で上乗せしないとやっていけないのです。
海外だと不具合があれば都度なおしまーすそれでいっしょーその分早くリリースしてつかえるようになりまーす。って感じだからなぁ。
で、今回の問題
記事を斜め読みしているのでなんともいえませんが、大規模システムであるため複数回の更新による移行作業計画のしょっぱなでなんらかの移行失敗があったようです。
まず、移行って種類によってはものすごく大変なんですけど、今回は記事を見る限り、正直難易度は低めに入ります。
なので何で起きたのか、、までの資料は確認できていないのでなんともですけど、たぶん人為的ミスじゃないかなと思っています。
移行には、完全リプレイスを除いて、どうしてもこの処理をこえたら絶対に引き返せない処理というのが必ずあります。
しかし今回は切り戻しができた(という記事があった)ようなので完全に戻せるやり方だったのがある意味救いだったと思う。
自分が経験した大規模移行は一週間ぐらいかけて稼働させながら新環境に変えていくという内容の一部の部門での対応はしたことがあります。
何がどこまでいっていて問題なし、アリ、遅延、切り戻し(その後続行)、復旧などの情報が入り組んでるなかで、対象システムのこれはアップデートしていい、ここはしたらいけない。なんかの条件を1つ1つ処理していくのはマジで死にます。仮眠しておきてたらスケジュール進んでなかったとかあると確認作業で死にます( ´∀` )
オラが言いたいこと
風土がいい悪いはともかくSEとしての心構えとして、会社員時代におしえられたのは
計画段階で、どこで何が起きようと100%処理を終わらせること(切戻、リプレイス含)
であります。
もちろんとある処理を実施した後の処理では切り戻しができないタイミングとかありますが、万が一それがおきたときの被害最小限での対処方法は考えておくということです。
しかし完璧は絶対にない
もちろん戻れない処理はどんな以降でもあります。(置き換えだと旧サーバー持っていかれて戻せない等もある)
新人時代、どうしてもここの処理を超えた後、エラーが発生したら前にも先にも進めない事態になることを顧客に説明する際、もちろん上司にも事前説明するんですが
こっぴどく上司に怒られました。
なぜか
起きた時の対処方法を全戻ししか考えてなかったから
であります。
問題が起きた時、どうしたらいいか、どこまで検討したのか?ってところを責められました。
ようは、例えば戻すよりエラー出したまま進んで後で直すということをちゃんとかんがえていたのか?ということです。
仮に、1%のデータに問題があるならその1%を修復するツールを用意しておけばいいんじゃね?ってことです。
最終的には
どこでどうやってもこういうデータが存在していたらこれだけの件数(予測)に問題が発生します。
を整理しきって初めて移行ができます(作業時間も含)。
でも動き始めてからエラーもでる
移行事態はそういう細かい積み重ねをして完了したとしても、本来の新機能(モジュール等)にエラーがあり、稼働しはじめたら問題が出るケースもあります。
今回のケースはどうもそうではなさそうなんで、簡単に書きますが、
この場合は、移行というよりも、新モジュール側のバグのため
移行を戻すのが早いのか、新モジュール(鯖)にパッチを当てて直すのが早いか、停止させるのか・・の判断にせまられます。
データが破壊されていく場合は1秒でも早く止めることにはなるんですけどね。
とまぁ・・・
システムの移行ってパソコン交換とかとくらべて数万倍考えることが多いです。
たとえば自分のスマホを新しいスマホに入れ替えるとき最近は便利になりボタン1こである程度移行してくれますが、どうしても引き継げないものがあったりしませんか?
商用システムではそういうものが1件でもあって業務ができなくなることは許されません。なので大変です
まとめ
ヒューマンエラーはいつどこで起きてもしかたありません。
移行処理に関してはまともな会社になればなるほど”エリートメンバー”が対応します。
雑用とかは新人とか経験浅い人がやったりはしますけど、設計から移行本番までは全てを熟知した人がやることになります。
それぐらい難しいってことを経営にかかわる人達にわかってもらいたいな~と元SE的には思っております。
なのでコメンテータが、下請けにやらせたんでしょとか適当なこと言ってるのみるとやっぱり適当なことを言うだけの人だよねって思います。
やり方がよかったか悪かったかの検証は設計、作業そのものを検証しない限りわかりません。
現場のメンバーは完遂にむけてがんばっているので責めないでください。