開発手法であるDevOpsとは?わかりやすく

2021.08.30

2022.02.02

Fabeee社員ブログ

こんにちは。また会えました。白いパンです。

現在スマホゲームの運営業務を担当しております。
スマホゲームをプレイしている皆さんがご存知と思いますが、
運営一年未満で終わるタイトルがありまして、十年以上運営するタイトルもあります。
その差は何でしょう。
常に動く市場の中で、ユーザーに満足出来るサービスを提供することが大切だと思います。

今回はスマホゲームの運営によく使う開発手法の「DevOps」を皆さんに紹介いたします。

DevOpsとは?

Development(開発)とOperations(運営)それぞれ2つの言葉を掛け合わせた造語です。
現在のサービスはリリースしてから長い年月を運営して、最大の価値を生み出すことが求められています。
開発チームと運営チームが密に連携し、ユーザーが求めるコンテンツを迅速かつ頻繁に配信することを目指しています。

DevOpsのアーキテクチャ

今回はゲーム運営をモデルにしてDevOpsの各アーキテクチャを説明します。

  • plan:市場調査を基に、ゲーム施策、バランスの調整、サービスの改善などを企画する。
  • code:企画書を元に、システムを構築します。コーディング、レビュー、バージョン管理など一連の作業を実施。
  • build:iOS、Android、PC、ブラウザなど、様々なプラットフォームを対応するように、アプリをビルトします。
  • test:品質やパフォーマンスを上げるための作業。
  • release:変更管理、リリース承認、リリース自動化。メンテナンスなしでリリースする仕組みを求められています。
  • deploy:様々なプラットフォームや地域に配信する。世界中のユーザーにサービスを届ける。
  • operate:サービスを安定保つこと。障害時、災害時などを備えてシステムの可用性を求めます。
  • monitor:アプリの性能監視、KPI管理、CS対応など、企画を改善するために、継続的フィードバック。

DevOpsのミッション

DevOpsを達成するためのミッションを紹介します。

コミュニケーション

DevOpsでは開発チームと運営チームの密の連携を求められています。
そのために、コミュニケーションが一番重要の位置つけです。
コミュニケーション不足や情報の認識ずれで、大きな不具合を生み出す可能性があります。

継続的インテグレーション

Continuous integration。コードのビルドや動作テストが継続的に行われ、常にアップデートする仕組みです。
これを実現するには、デグレード発生がしずらいシステムの設計と確認点を全部網羅出来るテスト設計を求められています。
code、build、testを密に連携すること。

継続的デリバリー

Continuous delivery。継続的インテグレーションの一歩先で、テスト済みのコードを自動的にリリースします。
時間ごと、日ごと、サーバー負荷低い時間帯、またはリアルタイムなど、要件にあった時間に自動的にリリースします。
build、test、release、deployを密に連携すること。

継続的フィードバック

ユーザーの要望や市場の変化を継続的に受け取ることで、迅速にサービスに反映します。
リアルタイムで情報を取得出来ることを求められています。
monitor、planを密に連携すること。

DevOpsを実現するためによく使われるサービス

コミュニケーション

開発チームと運営チームが密に連携するために、情報共有、意思疎通するツール。
テレワークが推奨される今では、ビデオチャットも重要です。
例:slack、chatwork、zoom、Google Meet

タスク管理

企画を細かくして、頻繁にリリースが行われるため、
施策Aの検討、施策Bの実装、施策CのQA対応、CS問い合わせの調査、障害対応など、
メンバーが同時複数のタスクを持つことがよくあります。
混乱しないようタスクをさばくためには、タスク管理ツールが必要です。
例:backlog, Jira, redmine

バージョン管理

違う地域やプラットフォームに、独自の反映を入れることがよくあります。
それを対応するために、同時に複数のバージョンを管理するツールが必要になります。
例:git

CI/CDツール

DevOpsを実現するために、CI/CDの自動化は欠かせないです。
CI/CDを使うことで品質を高めるだけではなく、作業時間も短縮できます。
例:Jenkins

サーバー管理

サーバーの可用性、信頼性、耐久性を上げる為に、クラウドサービスを利用します。
例:AWS, GCP, azure

コンテナ技術

開発環境、テスト環境、本番環境など、コンテナイメージを利用すれば、簡単に構築や変更が出来ることが特徴です。
短期間で統一化、標準化の手法で開発から配信まで、繰り返して行えます。
例:docker、kubernetes

モニターリングツール

継続的フィードバックを実現するために、システム動向をリアルタイムで確認する必要があります。
KPIの取得など、頻繁に発生する作業はモニターリングツールを導入することで、精度上昇、作業時間短縮の効果が期待できます。
例:datadog

まとめ

DevOpsの開発手法をご紹介してきましたが、いかがでしょうか。
ユーザーが満足できるサービスを継続的に提供することが長期運営のポイントと思います。
開発チーム、運用チームお互い信頼の出来る組織を作りとDevOpsをうまく運用できれば、
ユーザーの要求と市場の変化を適した高品質のアプリを継続的に提供できます。

この記事の監修者:杉森由政

この記事の監修者:杉森由政

2018年2月Fabeee株式会社CTOに就任。現在は、新規事業開発部門の責任者を務めるともに、AIやブロックチェーンなどの先端技術を用いた研究開発も担当。また広島大学との連携研究においては、生体データを解析する人工知能および解析アルゴリズムの研究開発にも携わるなど、多岐に渡り活躍をしている。
>>プロフィール情報