
12 Factor Appに則ったモニタリングをNew Relicで ~第一回~
イントロダクション
SaaSサービスなどのWebアプリケーションを開発するにあたって、理想的なベストプラクティスをまとめた”12 Factor APP”。
12の項目からなるこのベストプラクティスについて、各項目の概要を説明しながら、当該項目と親和性の高いNew Relicの設定について、今回から3回にわたって掲載していきたいと思います。
1. コードベース ~アプリケーションのバージョン管理~
概要
12 Factor Appでは、GitやSubversionなどのバージョン管理システムや複数のデプロイメント環境を使用することで、常にコードの変更を追跡できるようにします。また、ステージングやプロダクションなどの複数のデプロイメント環境に対応した単一のコードベースから作業します。
1つのコードベースに対して、1つのアプリケーションを紐付け、デプロイを重ねたり、環境ごとに異なるバージョンをリリースしていきます。
New Relicはどのようにサポートするか?
- APMの”Development Marker”機能を使用して、アプリケーションのデプロイメントとバージョンを管理することができます。
- また、カスタム変数を使用して、アプリケーションのバージョン番号をエージェントの設定に挿入すると、New Relic INSIGHTSで特定のVersionのアプリケーションモニタリングが可能です。
- こちらのGit to Insightsプロトタイプで、InsightでGitHubデータを追跡できるようになります。
2. 依存環境 ~アプリケーション依存環境の定義~
概要
12 Factor Appでは、すべての依存関係は明示的に記されるべきであるとしています。いぞんをアプリケーションは常にゼロから構築できるよう、ビルドプロセスを保証し、依存関係は決して見逃されたりすることがないようにします。
New Relicはどのようにサポートするか?
- New Relic APM Settingsの「Environment snapshot」ページからJVMによってロードされたJarsおよびその依存関係を追跡することができます。
- New Relicエージェントをパッケージ及び依存関係マネージャに含めて、監視構成の管理を容易にします。
3. 設定 ~アプリケーションの設定を環境変数に保存する~
概要
アプリケーションの設定はステージングやプロダクションなど、デプロイメント環境によって異なるため、12 Factor Appは「コードと設定の分離」を提案しており、環境変数へのアプリケーション設定保存を推奨しています。
New Relicはどのようにサポートするか?
- 環境変数をカスタムアトリビュートとして取り込み、それらをInsightsに送信します。
- 環境変数を使用して、特定の環境に依存したエージェント設定を定義することができます。詳しくはこちらのドキュメントにてご確認ください。
- アプリケーションのグループ化/Alertingのため、環境変数を使用してラベルを作成します。
4. バックエンドサービス ~バックエンドサービスのリソース管理~
概要
バックエンドサービスには、データベース、メッセージキュー、キャッシュサービスなどが含まれ、Twelve-Factor Appによれば「バックエンドサービス」には、環境変数に入れたURLをもとにネットワークを介してアクセスするものとして、アプリケーションは利用します。
Localサービスであっても3rd Partyサービスであっても区別せず、URLなど、環境変数などに保存された資格情報を介してアクセスすることができるようにします。
New Relicはどのようにサポートするか?
- New RelicのINFRASTRUCTURE Agentを使用して、すぐにアプリのバッキングサービスをチェックすることができます。
- サービスマップを使用して、アプリのトポロジを視覚化することもできます。
関連記事
この記事を書いた人
- mfmiyano
人気の記事
新着記事
PROプランのすべての機能を
14日間無料でお試し
新規無料登録いただくとPROプランのすべての機能を
14日間無料でお試しいただけます。
クレジットカードなど決済情報の登録は不要です。
