いよいよリリースの時が来ました。
手塩にかけて開発してきた我が子のようなシステムを世の中に解き放つ瞬間です!
長かった開発を抜け、ようやくリリースです。
が、リリース直後にバグが発覚したらどうしますか?
本番環境で全く違う挙動をしてしまったら、、、
リリースする時には、きちんと準備しておくべき項目があります。
時間に追われてリリース準備が出来ておらず、リリース直後に大慌て。
なんてことにならないようにするにはどんなことに気をつければ良いのでしょうか?
では、見ていきましょう。
目次
第1章 要件定義
第2章 設計
第3章 開発(実装)
第4章 テスト・検証
第5章 リリース ←今回はココ!
第6章 運用
リリース前の準備
リリース前に考えておくべき一番のポイントはズバリ!
リリース直後の動き
です。
開発環境と異なる本番環境にリリースするに当たって、予想もしないようなことが起きることがあります。
そうなった時にいかに早く復旧出来るかは、きちんと準備出来ているかによります。
考えてみれば当たり前の話かもしれませんが、意外と見落としがちな視点かと思います。
では具体的にどんなことに気をつければ良いのかポイントを絞ってまとめてみました。
リスクの洗い出し
リリース後にどんなことがおきうるかあらかじめ予想しておきます。
こうなった時には、こうしよう、といった問答集のようなものを作っておくとリリース後の復帰までの時間が短くなります。
一度作ってしまえば虎の巻として会社の資産にもなるでしょう!
余裕を持つ
何を当たり前なことを!
と思うかもしれません。
リリースしてからすぐに全員が緊急対応出来る体制を作れていますか?
リリース前後にMTGや移動など入れてないでしょうか?
その機能を作った業務委託の方が当日いないなんてことないでしょうか?
ある程度のリスクを見込んできちんと余裕を持って対応出来る体制を整えておくのも準備の一つです。
また、リリースのタイミングも週末や夜間は避けるべきかと思います。
リリース直後に問題発覚でせっかくの休日吹っ飛ぶなんてこと嫌ですよね。。。
リリース直後の動き
しっかりとした準備が出来、いよいよリリースの瞬間!
ドキドキですね!
さぁ、本番反映しました!!
いよっ!!
パチパチパチ(拍手)
いやー終わった終わった!!
さぁ解散!!
とはなりませんね笑
リリースした直後にはまず確認です。
2段階の確認手順を踏みます。
まずは単純にシステムが動いてるかどうかを確認するだけの、いわゆるスモークテスト的なことをします。
とりあえずアクセス出来るかどうか、きちんとページが表示されるかどうかなどを確認しましょう。
確認出来たらもう少し踏み込んだテストをしていきます。
ユーザーが正常な操作をした場合の動きを再現してみたり、追加した機能がきちんと動いているかを確認します。
まずは簡単な動作確認を行い、その後きちんとリリース内容が正しいかどうかを確認するという流れですね!!
リリース時に問題発覚した場合
いざリリースしてみたらシステムが全く動きません!!
なんてことになったらゾッとしますが、現実にはアリエルことかと思います。
考えたくはないですが、考えておかないといけないことです。。。
答えはシンプルです。
そのままGoするかBackするかの二択です。
シンプルですがその答えを出すのには何が必要か。
しっかりとした準備に他ありません。
また準備かよ、と思うのですがリリース後の動きはリリース前でしか考えられないのです。
準備の項目には
・撤退ライン(リリースの続行、中止の判断基準)を決めておく
・(改修作業の場合)旧バージョンに戻す手順を定めているか
・変更前の環境の全てのバックアップは取得しているか
などが挙げられます。
この段階でも依頼者(発注者)にとって本当に価値のある成果物を提供する意識が重要だと思います。
無理やりリリースをして質の低いものを提供するか、一旦戻ることにはなりますが反省を活かしてよりよりものを作るか。
判断が難しいところがあると思います。
そんな難しい判断だからこそ、事前にしっかり考えておく必要があるんです!!
そして場合によってはリリースを延期する勇気も必要かと思います。
まとめ
リリースに潜む危険は様々です。
もはやどれだけテストしても、リスクは潜んでいると言っても過言ではないでしょう。
ですが、そのリスクをどれだけ小さく出来るかは自分たち次第です。
リリースは手塩にかけて育てた我が子のようなサービスを世の中に解き放つ瞬間だからこそ、暖かく見守ってあげられるようにしっかり準備をすることが大事なんです。
ハートフルな感じで締められて良かったです笑
Google先生に聞くとリリース時のチェックポイントをまとめてくださっている下記のようなサイトを紹介してくれます。
参考にどうぞ!
大きなリリースの際にチェックすべき34のこと
業務でWebサービス開発をする際に気をつけたいこと(新卒向け)
新卒未経験エンジニアの「リリース」経験談
初めてのリリースの瞬間。
作ったのは単純なファイル共有システムです。
自分で確認した限りでは大丈夫そうだけど本当に大丈夫だろうか。。。
そんな不安がいつまでも拭えませんでした。
そしてリリース後。
無事、ファイルがアップロードされていきました。
いや、アップロードされているうように見えました、という言い方が正確です。
データベースにはファイルの情報は保存されていたのですが、肝心のファイルの中身を保存する処理をコメントアウトしており、
実際にはファイルが上がっていない事態になっていました。
死ぬかと思いました。
リリースは危険がいっぱいです。。