■当時の状況
開発はフリーランスの外注先に全て委託をしていました。ところが、そのフリーの方との契約が急に終了する事になったとの事で、弊社に依頼が舞い込んできました。
依頼を受けて内容を精査すると、仕様書等のドキュメントは一切無く、結果的にプログラムもその場しのぎで拡張して来たらしく、つぎはぎのように作られており、いくつかのオープンソースのソフトも利用されていました。直感的に、これは簡単に手を付けられる状態ではなく、かなりの大手術は避けられない状態だと即座に判断しました。
このような状況であったところにくわえて、既にそのサイトは相当数のユーザーが登録しており、日々更新が起こるため、常に障害が発生し、ユーザーからのクレームが増え続けているという厳しい状況でした。
■対応
あまりにもサイトの規模が大きく、全てを作り直すのは予算、時間がありませんでした。また、既に多くのユーザーがついており、日々増加している状況を考えると、新規ユーザー獲得の障害となるばかりか、既存ユーザーの離反をも招きかねない状況でした。類似したサイトも多く立ち上がりだしており、競合環境も厳しく、他社サービスに乗り換えられるリスクも高まっていました。
このため、基本方針としては、現状をだましだまし稼働させながら、少しづつ修復、プログラムの入れ替えを施しながら、徐々に安定化させる方針をご提案、ご了承頂きました。
着手箇所としては、まず具体的に問題が発生している箇所に集中して解析と修復、プログラムソースの入れ替えを実施しました。それを起点に、関連箇所を徐々に整理していく、という方法で進めました。全てを解析した上で、個別に問題を解決する時間的余裕は全く無く、あちらを直せばこちらに不具合が、という可能性もありましたが、解決すべき優先順位をはっきりさせる事が修羅場では最重要だと判断したためです。
また同時に、日々増えているトラフィックに対応するため、WebサーバとDBサーバの分離、ロードバランシングとサーバ台数増強を行い、少しずつ安定稼働を実現していきました。また、その課程でPodcasting等、新規のサービスを追加していく、という作業も同時に実現していき、結果的に安定稼動を図る事が出来ました。
|