投稿日
DevOps環境構築キット Epona
はじめに
技術の進化やビジネス環境の変化により不確実性が増している現在、サービスを立ち上げる際に最初から正解を求めるのは困難です。 このため、サービスを迅速に立ち上げ、フィードバックを得ながら成長させていくことが求められます。 これに伴い、開発者と運用者が連携しサービスを改善し続ける、「DevOps」を実現したいというニーズも増してきています。
その一方でDevOps用の環境を立ち上げる際、その環境構築にハードルを感じてしまうことも多いのではないでしょうか。
- クラウドサービスを活用したいが、どのようなクラウドサービスを組み合わせればよいのかわからない
- インフラ環境をどのように作ったらいいのかわからない
- ユーザーやシステムからのフィードバックを得るためにログ収集や監視などを検討する必要があるが、そこまで手が回らない
- DevOpsに興味はあるが、何から始めたらいいのかわからない
Eponaはこのような課題を解決し、サービスチームが自分たちに必要な環境をオンデマンドで構築するためのツールキットです。 DevOpsを構成するアクティビティの説明と、その実現手段としてのTerraformモジュール、ガイドを提供します。
コンセプト
Eponaの開発コンセプトは以下の通りです。
Self-Service
サービスチームの自律性を重視し、サービスチームが自ら開発、運用するための環境を構築する手段を提供します。
サービスチームは、Epona開発チームに何ら許可を求めることなく当該の環境を自由に使い、自由に運用が可能です。 自分たちの裁量でサービス開発・運用をすることで、そのアジリティは大きく高まると考えています。
一方で、自由は責任を伴います。
サービスチームはこれら環境の上で、安定したサービスを責任をもって提供しなければなりません。 そのためには、Eponaがどのようなアクティビティをカバーしているかを理解し、その実現方法として選定された技術を学び使いこなす必要があります。 そのようにして「自分たち自身で」サービスを開発・運用していくことは、慣れない開発チームにとっては大きなハードルとして立ちふさがるはずです。 しかしそれを超えた時、サービス、チームは双方ともに大きく成長するはずです。
Operation-Less
サービスチームはお客様の価値に直接結びつかないシステム自体の運用(監視システムの構築、セキュリティパッチの適用等)について煩わされるべきではありません。 このため、EponaではSaaS、マネージドサービスを積極的に採用します。 これは、システム運用の仕組みをサービスチーム自身で構築しメンテナンスするコストよりも、 SaaSやマネージドサービスに頼る方が総合的にコストパフォーマンスに優れる場合が多いためです。 とくにサービス開発に携わる人数が少ないほど、この傾向は顕著だと考えます。
SaaSやマネージドサービスでは要件を満たせなくような時にサービスチームが自身で構築を行い、そうでなければシステム運用を外部リソースに任せましょう。サービス自体の開発や、ビジネス運用に注力すべきです。
Switchable
サービスごとにさまざまなユースケースがあり、本ツールキットでそれらすべてを満たすことはできません。 そのため、本ツールキットで構築される環境がサポートする機能はできる限り疎結合にし、サービス開発者によって以下を実現できるようにします。
- 不要であれば容易にそれを無効化できる
- 他の手段で実現する場合は、できる限り簡易に切り替えることができる
コンテンツ紹介
提供するコンテンツは以下のとおりです。
- Epona
Eponaで構築できる環境の全体像、サポートするDevOpsのアクティビティや利用可能なTerraformモジュールを提供します。
ドキュメントについては、GitLab Pagesでもご参照いただけます - Getting Started
実際にEponaを使った環境構築の具体例を提供します。Eponaを利用する際にぜひ合わせてご参照ください。Eponaで提供する内容は多岐にわたりますが、その使い方や組み合わせ方を実際のサンプルを通して確認できます。
また、ドキュメントについてはGitLab Pagesでもご参照いただけます - Epona HandsOn
Eponaの使い方を学ぶためのハンズオン用コンテンツです。Eponaを用いた環境構築を具体的な手順で学ぶことができます。
※ AWS上のトレーニング環境が必要です。 - Epona AWS Starter CLI
Eponaを利用するための環境構築を簡易にすることを目的としたツールです。Epona AWS Starter CLIを使用することで、Eponaモジュールを使用するためのTerraform実行環境のセットアップや、一部のモジュールの適用が容易に行えます。
※ クリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。
※ 本コンテンツ内に記載されている会社名、製品名は、各社の登録商標または商標です。
※ AWSは、米国および/またはその他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。