SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

性能改善ノウハウを現場から直送! NTTデータのよりぬき『週刊まかせいのう』

大幅コスト削減を実現するための性能設計ノウハウ~地道で丹念な見直しが大きな成果に

性能改善ノウハウを現場から直送! NTTデータのよりぬき『週刊まかせいのう』 第3回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載は、パフォーマンスを主な対象としてシステム開発・運用の改善や設計を行うNTTデータのコンサルタントチーム「まかせいのう」のメンバーが、業務での体験やそこから得た知見を共有する『週刊まかせいのう』の記事を編集し転載するものです。今回は、既存システムを丹念に見直すことで、性能を確保しつつコストを大幅に削減することのできた事例と施策を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

悩ましいが重要な課題~コストと性能の両立

 システム開発のプロジェクトには様々な課題が出てきますが、大きな課題の1つはお金、つまり「開発コスト」でしょう。いきなり夢のない話ではありますが、近年、システム開発に対する企業の投資額は潤沢とは言えず、ベンダ間の価格競争もあって、コストカットのシビアなつばぜり合いが日夜行われています。

 一方で、ポイントを外したダウンサイジングによってシステム品質を著しく損なう事例にも事欠きません。特に、私たち「まかせいのう」が専門とするパフォーマンスという領域は、ハードウェアやソフトウェアのリソース削減がダイレクトに性能問題発生に直結するため、ダウンサイジングには慎重を期す必要があります。

 本稿では、このダウンサイジングの実例として、学生を対象に教育コンテンツを提供するモバイルアプリとサーバ側機能の開発プロジェクトを例に、システムキャパシティを最適化する性能設計とそのポイントを紹介します。

サイジングあれこれ

 まかせいのうは本プロジェクトに初期フェーズから参画し、アーキテクチャデザインからサイジング、性能設計支援、性能試験、商用リリース支援まで一貫した支援を行いました。これらのうち、真っ先に実施したのがサイジングです。システムにどの程度のキャパシティが必要かが分からないと、システム全体のアーキテクチャ設計や、調達するハードウェア/ソフトウェアが決まらないからです。

 サイジングの方法は、状況に応じていくつかやり方があります。大きく分類すると次のとおりです。

1) 実機検証で基礎数値を取得してサイジング
実際にハードウェア、ミドルウェアを用意して検証環境を構築し、システムに負荷をかけることで限界キャパシティやスケーラビリティを確認する。最も精度は高いが、実施するためのコストと時間も大きい。
2) 類似システムからのサイジング
システムの更改や拡張であれば、「現行」システムが存在しているはずなので、そのスペック情報やリソース情報を取得して類推を行う。このときの類推に使うベンチマーク指標値としては、SPEC(https://www.spec.org/)などが公表している数値が一般的。あくまで机上計算のため、1)に比べれば精度が落ちる。
3) 机上サイジング
2)のように参考にできる先行事例すら存在しないケース。先述のSPECやTPCを使って見積もるしかないが、精度が最も悪いため、大きめの安全率を見込むとともに、スケールアウト/スケールアップが可能な構成としておくなどのリスクヘッジが欠かせない。

 サイジングの精度は、1)が最も高く、3)が最も低くなります。実施コストという面では、逆に1)が最も大きく、3)が最も小さくなります。実際には、それほど特殊なシステム構成を採用したり、初物のハードウェアやソフトウェアを利用するのでなければ、少なくとも何らかの類似システムを参考にできる2)の方法で対応できます。

RDBMSのライセンス料金は高い

 このケースでは、お客様の元に運用中の類似システムがあったため、それをベースに各サーバのサイジングを実施しました。そこで明らかになったのは、ハードウェアとソフトウェアの調達費用に、当初想定した2倍以上の予算が必要という事実でした。さらに、予算の75%を占めているのが、商用RDBMSのライセンス費用であることも分かりました。

アーキテクチャ最適化後のコスト配分
アーキテクチャ最適化後のコスト配分

 「かなり極端な例だろう」と思われるかもしれませんが、ソフトウェアライセンス費用の中で最大の割合を占めるのがRDBMSであることは、珍しくありません。大量のデータを管理するため、RDBMSは非常に複雑な機能を持っておりソフトウェアとしても巨大です。また、パフォーマンス、セキュリティ、バックアップ、クラスタリングなどのオプション機能が必要になるケースも多く、それがライセンス料金を膨らませる一因となります。

 ライセンス料金の安い他のRDBMSやオープンソース製品への乗り換えは、既存アプリケーション資産の単純な流用ができない、セキュリティなど必要な機能を充足できないといった理由から認められませんでした。だからといって、費用の増加が簡単に認められるわけではありません。かくしてまかせいのうでは、全力で次のミッションに取り組むことになりました。

ハードウェア/ソフトウェア費用を削減しろ。
ただし、機能・非機能要件を落としてはならない。

 これは、無理なダウンサイズによってシステムの機能不全を招くリスクがある危険なミッションです。唯一幸いだったのは、本システムはプライベートクラウド上に構築されていたため、負荷試験によるPoC(Proof of Concept)を実施したのちにサーバスペックを確定することができた点です。環境構築とスケールアップ/スケールアウトが容易なクラウドの利点が活きました。

次のページ
ライセンスコストを削れ!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
性能改善ノウハウを現場から直送! NTTデータのよりぬき『週刊まかせいのう』連載記事一覧

もっと読む

この記事の著者

藤本 一樹(株式会社NTTデータ 「まかせいのう」チーム)(フジモト カズキ)

2005年に株式会社NTTデータ入社。ハードウェア選定やOS・ミドルウェアの設計経験をもとに、ハードウェアスペックを最大限活用できるシステムアーキテクチャおよびアプリケーション設計を目指し、現在は性能プロフェッショナルチーム「まかせいのう」で主にITアーキテクト・性能コンサルタントとして活躍中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8883 2015/08/21 14:40

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング