これは Livesense Advent Calendar 2024 DAY 19 の記事です。
はじめに
株式会社リブセンスに内定者インターンとして参加している小野です。
本記事では、Datadogを活用してアプリケーションのバージョントラッキングを実装する方法について解説します。 アプリケーション開発の過程でバージョン管理を行うことには、以下のようなメリットが存在します。
- バージョンごとのパフォーマンスの監視
- 発生したエラーがいつリリースされたバージョンによるものなのかを監視
また今回の実装では、GitHubのコミットハッシュをバージョンとして表示する方針で進めます。
(技術ブログを書くのはこれが初めてなので緊張していますが、少しでもお役に立てれば幸いです...!)
本記事で行わないこと
- GitHub ActionsでのCI/CDパイプラインの構築
- タスク定義ファイルに関する説明
実装しようと思った背景
リブセンスでは以前よりDatadogを活用してアプリケーションごとのパフォーマンスの監視やログの収集を行ってきました。
しかし、デプロイメントの追跡が行えていなかったためバグや問題が発生した際にどのコミットでそれが発生したのかを特定できませんでした。
特にバグが混入したバージョンを素早く特定できないことは、開発チーム全体の効率性に影響を与える重要な課題でした。
このような背景から、アプリケーションのデプロイメントを追跡することの重要性を認識し、新たな取り組みを展開することに決定しました。
実装手順
タスク定義にバージョンタグを追加
タスク定義を行っているファイル内の、environment
内にDD_SERVICE
とDD_VERSION
を、environment
と同じ階層にdockerLabels
を追加します。
実際にDatadog上でバージョンとして表示されるコミットハッシュは変数として設定しています。これによりGitHub Actions側からCI/CDが実行されるたびに値を動的に更新させることが可能となり、バージョントラッキングが実現できます。
{ "containerDefinitions": [ --- 省略 --- "environment": [ { "name": "DD_SERVICE", "value": "service_name" }, { "name": "DD_VERSION", "value": "{{GITHUB_SHA}}" }, ], "dockerLabels": { "com.datadoghq.tags.service": "service_name", "com.datadoghq.tags.version": "{{GITHUB_SHA}}" }, --- 省略 --- ] }
GitHub Actionsからコミットハッシュをtask定義ファイルに渡す
GitHub ActionsのGet GitHub_SHA
ステップでコミットハッシュの最初の7桁を取得し、Update JSON with GITHUB_SHA
ステップで取得したコミットハッシュを基にTask定義ファイルを更新します。
これにより、CI/CDが実行されるたびにTask定義には常に最新のコミットハッシュが反映されるため、開発チーム全体で異なるバージョンごとのパフォーマンスの比較や分析を行うことが可能となります。
- name: Get GitHub_SHA id: get_short_sha run: echo "short_sha=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT - name: Update JSON with GITHUB_SHA run: | sed -i "s/{{GITHUB_SHA}}/${{ steps.get_short_sha.outputs.short_sha }}/g" path/to/your/task-definition.json
実装結果
画像のようにコミットハッシュがDatadogのAPM(Application Performance Monitoring)で確認できたら成功です!
最後に
今回はDatadogでアプリケーションのバージョンをトラッキングする方法を説明しました。
バージョン管理はアプリケーション開発において大切な要素です。Datadogのバージョントラッキングを実装することで、より効果的にアプリケーションの改善や問題解決を行うことができるため、ぜひ実装してみてください!
最後まで読んでくださりありがとうございました!