AWS のワークショップ「Code Quality Workshop」を試した❗️
AWS CodePipeline / AWS CodeCommit / AWS CodeBuild / AWS CodeDeploy を組み合わせた CI/CD パイプラインの中で JUnit / JaCoCo (Java Code Coverage Library) を実行したり,Amazon CodeGuru Reviewer でコードレビューを自動化したり,Amazon CodeGuru Profiler でアプリケーションのパフォーマンスを分析したりできる.AWS サービスを組み合わせてプロダクトコードの品質を向上する仕組みを構築する流れを体験できるワークショップになっている👏
catalog.us-east-1.prod.workshops.aws
ワークショップで使うサンプルコード (Java) は以下の GitHub リポジトリにある.ワークショップの手順として develop
ブランチから master
ブランチにプルリクエストを送る流れになっているため develop
ブランチを見るとサンプルコードや設定ファイルなどを確認できる.
試した感想
AWS CodeBuild で JUnit / JaCoCo を実行した結果をレポートとして表示できる機能を試せるのは良いと思う❗️今回は Java コードを取り扱うけど,レポートのファイル形式さえ合えば Jasmine / Jest / pytest / RSpec なども使えるので便利〜
また Java もしくは Python でアプリケーションを実装しているなら Amazon CodeGuru Reviewer を導入しておくと品質向上に繋がるコードレビューを自動化できる🤖 AWS CodeCommit でプルリクエストを作ると Amazon CodeGuru Reviewer によってコメントが付くのは開発体験として良くて,もちろん GitHub と GitHub Actions もサポートされている👌 すぐ導入できるから「Amazon CodeGuru Reviewer ってこんなに簡単に使えるんだ〜」と学べるのはワークショップの良いところかな〜
そして Amazon CodeGuru Profiler を使えば APM (Application Performance Monitoring) のように Java(JVM ベース)アプリケーションと Python アプリケーションのパフォーマンスを分析できる.プロファイル結果はリッチな画面になっていて,CPU 使用率改善・レイテンシー削減など目的別に調査をしたり,ヒープ関連の詳細な調査もできる.「Amazon CodeGuru Profiler 良さそう〜」という気持ちになれるのもこのワークショップのメリット❗️
Amazon CodeGuru の位置付けや基本的な機能は少し古めだけど AWS re:Invent 2020 のセッション Continuous improvement of code quality with Amazon CodeGuru (DOP403) の資料を読むのがわかりやすいと思う💡
ワークショップ実施ログ
誤植など
AWS CloudFormation スタックを作るときにパラメータとして KeyName
を指定する必要はなくて,その部分は手順書が間違っているようだった📝
まとめ
「Code Quality Workshop」を試してみた❗️AWS CodeBuild を使った JUnit / JaCoCo の実行とレポーティング・Amazon CodeGuru Reviewer を使ったコードレビューの自動化・Amazon CodeGuru Profiler を使ったアプリケーションのパフォーマンス分析などを体験できる "楽しめる" 入門コンテンツだった.所要時間は2時間あれば十分に終わると思う🕐
ちなみにワークショップを実施した背景としては,今支援してる開発チームに Amazon CodeGuru Reviewer と Amazon CodeGuru Profiler を紹介したく,サクッと試せそうなコンテンツを探していたら「Code Quality Workshop」を発見したという流れ💡現時点だと Amazon CodeGuru は大阪リージョンでは使えないけど,GitHub と連携するならリージョンは自由に選択できるし,Amazon CodeGuru Profiler で別リージョンにプロファイルを送信するドキュメントもあって問題なく使えそうだった.
まとめると Code Quality Workshop おすすめでーす \( 'ω')/