負荷テストコンサルティング・負荷テストツール

負荷テストで落ちないサービス開発を支援します

サービス開始前、運用中のサービスに対して、
パフォーマンス分析、改善方法の提案、
チューニングの支援を行い、
システムの可用性向上の為の活動全般についての
コンサルティングを行います

サービス開始時、運用中の課題

高負荷になるとサービスが不安定になる、落ちる...、サービスのリリースが迫っているが、リリース後に落ちないかどうかが不安...、負荷テストを実施したいが、設計の仕方がわからない...
画像

サービスに適切な負荷テストを行い
安定したサービスを

事業運営で培った経験をもとに、負荷テストの
コンサルティング、脆弱性診断などの支援を行い
システムの可用性を高めます。
また、サービスの長期運用で培ったサービス運用や
開発サイクルのノウハウをもとに
DevOps支援を行い、
永続的なシステムの可用性担保を行います。

負荷テストサービスを通して生まれた負荷テストツールMx.Load

テストシナリオの準備は極めて煩雑で、エンジニアの負担になっている

テスト環境の構築が労力と時間を要している

レポート作成が非効率的で、本質的な開発業務に時間をあてたい


このようなニーズにお答えするsaas型の負荷テストサービスMx.Loadを提供しております。

負荷テスト

対象のシステムに対して攻撃ツールを使い
意図的に負荷をかけることで
モニタ/プロファイルを行い
システムの処理性能を計測します
このテストによってシステムの可用性を高めます

負荷テスト計画

負荷テスト計画

負荷テスト実施において、試験環境の提案、構成設計、テストツールの導入、負荷テストシナリオの作成、目標値設定の支援を行います。

負荷テスト実施

負荷テスト実施

負荷テスト環境の設計と構築、テストの自動化のコンサルティングを行います。

負荷テストのレポートと改善提案

負荷テストのレポートと改善提案

レポートの分析方法、モニタリングツールの利用方法についてのコンサルティングを行います。
また、負荷テスト結果を受けた改善提案とリアーキテクチャのコンサルティング、DBのボトルネック分析やトラフィック分析の支援とチューニング手法の提案を行います。

脆弱性診断

対象のシステムに、潜在するSQLインジェクションや
クロスサイトスクリプティングなどの脆弱性を見つけ出す
セキュリティ診断サービスです。
診断後もセキュリティリスクに対するベストな対処方法をご提示させていただきます。

システム構成、脆弱性対象の把握

システム構成、脆弱性対象の把握

システム構成をもとに、脆弱性対象の策定を行い、脆弱性診断の計画を立てます。

脆弱性診断の実施

脆弱性診断の実施

対象のシステムに、手動やツールを通して、疑似攻撃を行い、診断を行います。

脆弱性診断結果の分析、レポート

脆弱性診断結果の分析、レポート

対象のシステムのリスク評価、検出された脆弱性について詳細をご報告します。

DevOps支援

弊社の事業や、組織の変遷において、
培った経験をもとにした
DevOps導入支援を行います。
ツールなどのコンサルティングや支援だけではなく、
DevOpsの概念の浸透、SRE、
プロジェクトマネジメントの手法として
相性の良いScrum導入などの支援を行います。

1.運用監視支援

負荷テスト計画

監視

現行システムの監視システムの改善提案や、監視支援ツールの導入提案・導入支援を行います。

負荷テスト実施

運用監視

現行システムの運用監視システムの改善提案や、自動化、導入の提案と支援を行います。
また、実際の監視情報から、障害の原因特定や分析方法のレクチャを提供します。

2.運用・開発サイクルコンサル

通信費

通信費の適正化と適正コストの試算を提供します。
また、通信費削減の為の分析と削減オペレーションの支援を提供します。

SRE

システム開発・運用の課題分析と改善提案を提供します。
例)
・システム運用の自動化
・開発フローの改善
・運用プラクティスの提案

ポストモーテム

ポストモーテムについての意義や目的のレクチャ、実際に運用されているポストモーテムの雛形の提供・解説を提供します。
また、実際に作成したポストモーテムのレビューを行います。

SLO

SLI/SLO運用の解説を行います。
また、SLIの設定支援や、レビューを提供します。

SLI

SLI/SLO運用の解説を行います。
また、SLO実装の設計レビューを提供します。

SLA

SLA運用の解説を行います。
また、SLA設計/設定のレビューを提供します。

プロジェクトマネジメント、スクラム、
アジャイル型開発

開発フェーズ、運用フェーズなど、サービスや、組織の状態に適したプロジェクトマネジメントの提案、支援を行います。
弊社では、スクラムベースの支援が得意ですが、いわゆる正しいスクラムの導入から、人数規模(50人程度まで)、移行、教育期間、職種、サービスの状態などを考慮したプロジェクトマネジメント導入支援を行います

設計アドバイス

システム開発において
設計段階からインフラ、負荷、セキュリティ
ソフトウェアの保守性を意識し
後工程の手戻りリスクの軽減を主な目的とした
長年の事業運営から培った知見を一時的に活用するための
設計アドバイスサービスを提供します。

インフラ

オンプレからクラウドへの移設相談、クラウドのマネージドサービスの構成設計を含むインフラ設計

負荷

負荷を考慮したソフトウェアの構成やアーキテクチャ選定、負荷テストの計画・環境に適したアーキテクチャ設計

セキュリティ

セキュリティを考慮したソフトウェア設計、セキュリティリスクに対する対応プランの提案

DevOps

ソフトウェアの保守運用ワークフローの改善、効率的な開発と運用を行うための、運用提案や運用設計、開発オペレーションの自動化、ソフトウェアの監視設計と運用のためのツール導入

事例紹介

これまでの事例の一部をご紹介させていただきます。

外部案件の巻取りとサービスの再構築

概要と課題

サービスリリース後、バックエンドに問題があり、高負荷に耐えられないことが判明し、一時的に中断せざるを得なかったサービスの再構築のご依頼がありました。

大きな問題として

  • ・根本解決には、インフラ構成から、ソースまで全て見直す必要があった
  • ・負荷テストに網羅性がなく、想定規模も甘かった
  • ・根本解決を出来るほどスケジュールと予算には余裕がなかった

これらの問題に対して以下の課題設定を行いました。

  • ・高負荷時のボトルネックの洗い出しと、サービス要件との紐付け
  • ・負荷テスト計画の見積もり、再計画及び、実行
  • ・ビジネス上の制約(改修期間は4ヶ月〜半年)を加味した改修スコープの顧客との調整
結果と効果

約4ヶ月の期間中に、インフラ構成の見直し、アプリケーションの改修、負荷テストの再設計、及びテストの実行を行い、再計画通りにリリースを迎えました。

  • ・サービスのクリティカルな要件と、ある程度の質を許容出来る要件との棲み分け
  • ・顧客との、サービスの状態の認識合わせをしたことにより、再サービスリリース後のリスク共有が見える化
  • ・スケジュール、予算など、ビジネス上の制約内で再リリースを迎えられた
  • ・再リリース後、ピーキーな高負荷にも耐え、サービスが落ちることなく、無事運用に移行できた

高トラフィックかつ長期運用サービス

概要と課題

本件は瞬間的な大量トラフィック、非常に大きいユーザー数・データ量を扱うサービス運用です。ソーシャルゲーム特有の以下の課題がありました。

  • ・単一のデータベースで扱えない大きなデータ
  • ・長期運用で肥大化したサービス仕様によりデータ反映やユーザーデータのセットアップが複雑化

これらの課題に対して以下のアプローチで解決しました。

  • ・データベースを水平分割してアプリから透過的に扱うミドルウェア・ライブラリの開発しOSSとして公開・メンテナンス
  • ・テスト/QA/データチェック環境の自動作成を行う基盤を構築
結果と効果

本サービスは現在運用6年目ですが、現在も新機能開発や運用改善を継続的に実施しています。

  • ・瞬間的なトラフィックへの対策
  • ・大量のユーザーやデータ量に対するアプローチのノウハウ
  • ・データベースの水平分割運用の知見
  • ・ソーシャルゲームの開発運用のワークフロー改善
  • ・QA/テストオペレーションの最適化

外製開発・運用

概要と課題

バックエンドに問題があった外製のプロダクトを半内製化をし、再構築した実績があります。

このプロジェクトのスキームは、内部でリソースの確保が難しかったため、開発を外製し、運用までお任せする計画でいましたが、以下の問題が発生しました。

  • ・サービスリリース直後に、トラフィックが増えるとサービスダウンする
  • ・海外からのサービスへの攻撃が想定以上にあり捌ききれない
  • ・アプリケーション側にも問題があり、データ不整合などが発生しやすい作りになっていた
  • ・内製中心で、外製でのサービス開発、運用経験が少なかったこともあり、バックエンドを含む質を担保するような仕組みが存在していなかった
  • ・サービスリリース時に、サービスの質が顕在化し、事業にダメージを与えた。

リリース後、メンテとサービス再開を繰り返すことを余儀なくされた中、大きく分けて以下のような対処を行いました。

  • ・対処に関しては改めてドリコムが得意な領域と、外部パートナーが得意な領域を棲み分ける
  • ・サービス、ビジネス観点で、短期課題と、長期課題の切り分け
  • ・顧客と、優先順を合意しながら、優先課題を対処していく
  • ・サービスを使うユーザと真摯に向き合い、こまめに情報を伝えていく
結果と効果

サービスを運用しながら、約半年かけてサービスとして正常な状態に改善を行いました。

  • ・サービスダウン要因の洗い出しや、サービスの攻撃に対するに対する対処
  • ・アプリケーションの堅牢性に対する対処
  • ・運用を行う上でのすべてのプロセス改善

以降は安定した運用を行っておりますが、外製でのプロダクト開発・運用の難しさを痛感したことと、外製する際の、気をつけるべきポイント、チェックするべき項目、バッドパターンなどが洗い出されたプロジェクトでした。

ゲームプラットフォームの安定的な開発運用

概要と課題

国内外に展開するゲームプラットフォームの開発と運用の案件の実績があります。

プラットフォームという特性上、以下の要件がありました。

  • ・多くの外部システムとのインテグレーション
  • ・大量のトラフィックを安定的に処理
  • ・サービス停止/ダウンタイムを伴わない運用

これらの課題に対して以下のアプローチで対応いたしました。

  • ・無停止更新やオンラインマイグレーションの為の基盤を構築
  • ・ノーメンテナンスの為の運用設計
  • ・負荷試験の定期実施と試験環境の維持、試験自体の自動化
結果と効果

国内版リリース後、国内版の運用と海外版の開発を並行しながら、海外版を大きな遅延や障害なくリリースし、以下のような運用を実現しています。

  • ・新機能リリースの度に実施する自動化された負荷試験
  • ・無停止環境下でのサービス更新、バージョンアップ
  • ・クラウド起因のサービス停止オペレーションを除き、リリースから無停止更新の運用を継続
  • ・サービスレベルの異なる外部システムのインテグレーションを継続的に追加

インフラの少人数運用

概要と課題

少人数のインフラ/SREチームで多くの社内タイトルのインフラを運用しています。

以下のサービス規模のインフラ領域を少人数で運用する必要がありました。

  • ・スマホアプリ11タイトル、HTML5ゲーム2タイトル、Webアプリ4サービスを運用
  • ・特にスマホアプリはトラフィックが大きくピーキー
  • ・運用中のアプリ・サービスのメンテナンスに加えて、新規開発タイトルのインフラ構築も並行して行った。

これらに対応するアプローチとして以下を実施しています。

  • ・全サービスの障害・モニタリング・エラー検知を一元化
  • ・インフラの構成管理をコード化し、本番環境への適用を自動化
  • ・SLI/SLOを導入し性能指標を策定
  • ・ポストモーテム運用によるトラブルシューティングとふりかえり運用
結果と効果

ドリコム開発の全サービスを4-5名規模のチームで、運用しており、少人数でありながら以下の成果を実現しております。

  • ・サービス障害・アラート・エラー検知の一元化による運用の効率化
  • ・構成管理によるインフラ構築の効率化/高速化
  • ・ポストモーテムの社内共有による知見の社内共有
  • ・サーバーの最適化による通信費の削減