開発時にはリリース後のことを考えよう



開発初心者や突貫開発時によく陥ってしまう罠がリリース後対応です。
大体のシステムが開発完了で終わりではありません。
その後のバグ対応・時流に合わせてのシステムの変更等様々なことがリリース後には待ち構えている場合があります。

開発時にリリースのことを考えないと大変なことになりやすいのでご注意ください。

必ず開発・本番環境は別に作れ!

小規模開発に多いのですが、開発環境をそのまま本番環境にしてしまうパターンがあります。
こういうことをしてしまうと、リリース後にバグ対応等で改修する場合どこの環境でテストをするのか・・・

それに再度開発環境を作成するところからしないと行けません。
なので、開発環境は後に使うことがあるので本番環境にそのまま格上げ等はしないでください。
もし開発環境→本番環境にするのなら別途開発環境を構築し直すようにしてください。
出来れば開発・検証・本番の3環境を構築しておくと色々と捗ります。

後に変更や追加することを前提にする

一例を上げるなら2014年4月に5%→8%に上がった消費税です。
これは多くのエンジニア・システムに影響を与えたかと思います。
私も消費税対応で夜勤を行ったので・・・

「消費税なんてそうそう変わらないだろう」と思うこともあるでしょうが、その考えが後で大変なことになります。

私が消費税変更時に対応した主な内容です。
1.影響範囲の調査
2.商品データ等の価格変更
3.テスト

記述するととても少ないですが、これがお金に係るシステム全部2014年4月1日の0時に対応しなければいけなかったのです。
しかも失敗しても日を改めて出来る事案ではなかったのが、怖かったですね・・・
もし、これがちゃんと消費税変更を前提にしていて、設定を一箇所変更するだけでよかったのであればとても簡単だったのにと思います。

データが巨大になっていく

長年稼働しているシステムだと、起こる現象です。
データ容量がとても多くなってしまい、サーバの処理速度が遅くなってしまうことがあります。

リリース直後は時間が掛からなかったSQLもデータの肥大によって、とても遅くなってしまうことが多々あります。
DBにINDEXを貼るだけで改善されることもありますが、そうでないとSQLの改善作業を行わないと行けません。

これは開発時に少量のデータでテストを行ったため起こります。
このため、出来るなら開発時から大量のデータを投入しておいてテストを行っていくのがいいでしょう。
もしくは定期的に不要になったデータをバックアップを取ってから物理削除するなどの対処等を考えておく必要があります。

ログを取っておく

ログを取っていないシステムっていうのが結構多いです・・・orz
ログを取っていてもエラーが出た箇所だけログとしてだしても、殆ど意味がない場合があります。
それは再現が出来ないからです。
どういったパラメータが送られてきたか等をログに保存していないと、再現が出来なくてバグの対処が出来ないことがあります。

まとめ

開発が終わってから、プロジェクトを抜けたりする人も居るでしょうが、後に引き継ぐ人の為に出来るだけリリース後のことも考えて置いてください。
前述した内容は後々作業するとした場合、とても手間ですが開発時からしているとそんなこともないはずです。

後に発生する問題を予想して先に防護策を用意するのがいいでしょう。


コメントを残す