情報畑でつかまえてロゴ
本サイトは NTTテクノクロスが旬の IT をキーワードに
IT 部門が今知っておきたい最新テクノロジーに関する情報をお届けするサイトです

気付きにくいトラブル原因を見逃さず、システム開発のトラブルを減らすには

いくつかのトラブルを例に、このようなシステム開発のトラブルを減らすにはどうしたらよいか、システム基盤開発について考えてみましょう。

 「今度開発するシステムは、アプリケーションの要件がまだ確定していない部分が多い。システム基盤開発は早く終わらせて、アプリケーション開発に注力しよう。」と、こんな思いにかられることはないでしょうか。
 システム開発では、アプリケーション開発にばかり目がいってしまい、システム基盤開発を疎かにしてしまいがちです。このままですと、アプリケーションを動かしたときにシステム基盤が原因のトラブルに見舞われて、足をすくわれることになります。特に、オープンソースソフトウェア(OSS)を組み合わせてシステム基盤を開発する場合は、そういったことが起きやすくなります。
 ここでは、いくつかのトラブルを例に、このようなシステム開発のトラブルを減らすにはどうしたらよいか、システム基盤開発について考えてみましょう。

システム基盤開発の現状

システム基盤開発はさっさと済ませたいが・・・

 本来なら、アプリケーションを動かすための、ハードウェア、OS、ミドルウェアといった製品・バージョンの組み合わせを選定し、設計・構築・検証などを行いたいところです。
 しかし、開発プロジェクトとしては、出来合いの製品を持って来たり、サーバベンダーに任せっきりにしたりと、システム基盤開発をさっさと済ませて、ユーザー要望の多いアプリケーション開発に集中したいと考えるでしょう。
 例えば、検証を疎かにすると、アプリケーションを動かして初めて、システム基盤に問題があることに気付くことになります。

アプリケーションを動かして初めて、システム基盤が原因のトラブルに気付く

 アプリケーションを動かして初めて気付く、システム基盤が原因のトラブルとはどんなものか、2つのトラブルケースを例に説明します。

システム基盤が原因のトラブルってどんなもの?

トラブルケース1:同じ製品を組み合わせたのに想定通りに動かない

 「新しいシステムを開発することになったが、以前開発したシステムと同じシステム要件だから、同じ製品を組み合わせれば問題なく動くだろう。」と考え、システム基盤開発では、以前の開発で作成した設計書を流用して構築した後、システム基盤の検証はほとんど行わずに、基幹業務用のWebアプリケーション開発を進めました。
 しかし、アプリケーションの試験で、バッチ処理はうまくいくのに、オンライン処理が途中で失敗するトラブルが起きました。よくよく調べると、システム基盤が原因のトラブルであり、その原因特定と対処に多くの時間と稼働を取られてしまったのです。
 同じ製品を利用していたのに、なぜシステム基盤に問題があったのでしょうか。

 この開発プロジェクトでは、以前の設定パラメータを流用してシステム基盤を構築しましたが、Webサーバで利用しているミドルウェア製品に組み込まれるモジュール群の一部のバージョンが、以前開発したシステムとは異なっていました。そのバージョンの違いによって、設定パラメータ値を変更する必要がありましたが、検証をほとんど行わなかったために、それに気付くことができませんでした。そのため、アプリケーションを動かして初めて、システム基盤が原因のトラブルが起きたのです。

トラブルケース2:別のクラウドに移行したらシステムダウンした

 お客様から、「以前開発してもらったクラウド上のWebシステムを、別のクラウドに移行したい。」という相談を受けました。
 アプリケーションに変更はなく、アプリケーションを動かす基盤が変わるだけだったため、以前開発した際の設計書をもとに、同じリソース設計値で新しいクラウドに移行しました。しかし、移行後にシステムを運用し始めたところ、Webシステムのレスポンスが以前より遅く、タイムアウトが頻発するようになり、遂には、システムダウンしてしまいました。
 リソース設計値は同じなのに、なぜこのようなことが起きたのでしょうか。

 リソース設計は、以前開発した際の設計書に記載されている設定パラメータや、Webサービスの同時接続数などをもとに、vCPU数やメモリサイズ、サーバ台数など必要なスペックや設定パラメータ値を算出します。
 例えば、「クラウド上にvCPU数が4個とメモリサイズが32GBのスペックを持つインスタンスを2台以上必要」といった設計を行います。
 しかし、クラウド基盤側で用意されているvCPUやディスク自体のスペック、ネットワーク帯域といった部分は、クラウド毎に条件が違います。このような条件が違うことを加味したリソース設計を行わなかったため、トラブルが起きたのです。

 2つのトラブルケースを挙げましたが、このようなシステム基盤が原因のトラブルを無くすためには、どんな方法があるのでしょうか。

システム開発のトラブルを減らすには

参考

※記載されている商品名・会社名などの固有名詞は一般に該当する会社もしくは組織の商標または登録商標です。
※当ソリューション・製品に関するお問い合わせ、会員登録リンク、は、NTTテクノクロスのお問い合わせ専用ページ(社外サイト:MARKETINGPLATFORM)に遷移します 。(MARKETINGPLATFORMは、株式会社シャノンが提供しているクラウドアプリケーションです)
連載シリーズ
トレンドコラム
著者プロフィール
後藤 厚友
後藤 厚友