Amazon Web Services ブログ
Amazon CodeCatalyst を用いたチームコラボレーション
Amazon CodeCatalyst を使用すると、チームは機能、タスク、バグ、およびソフトウェア構築に関連するその他の作業について共同で取り組むことができます。CodeCatalyst は re: Invent 2022 で発表され、現在( 2023 年 3 月 31日時点)プレビュー中です。
イントロダクション:
このシリーズの以前の記事「Amazon CodeCatalyst を用いたワークフローによるビルド、テスト、デプロイの実現」では、Gene Kim著 The Unicorn Project を読み、主人公の Maxine が新しいチームに加わった後、複雑なソフトウェア開発ライフサイクル (SDLC) でどのように苦労しているかについて説明しました。
彼女が直面する課題(Issue)には次のものがありました
- 高品質なアップデートを継続的に提供することは複雑で時間がかかる
- 他者との効率的なコラボレーションが難しい
- アプリケーション環境の管理は複雑さを増していく
- 新しいプロジェクトの立ち上げに時間がかかる
このブログでは、この中の 2 番目の項目に焦点を当てて、どのように CodeCatalyst が場所にとらわれずに、色々な人とコラボレーションするのにどのように役立つかを説明します。
前提条件
このチュートリアルに沿って進めたい方は、以下のものが必要です。
- CodeCatalyst にサインインするための AWS Builder ID を持っていること。
- スペースに所属し、そのスペースの管理者ロールが自分に割り当てられていること。詳細は、「Amazon CodeCatalyst でのスペースの作成」、「スペースのメンバーの管理」、「スペース管理者ロール」を参照してください。
- スペースに関連付けられた AWS アカウントを持ち、そのアカウントで IAM ロールを持っていること。ロールとロールポリシーの詳細については、「 CodeCatalyst サービスロールの作成」を参照してください。
チュートリアル
前回の投稿と同様に、
このチュートリアルではModern Three-tier Web Application のブループリントを使用します。
CodeCatalyst ブループリントは、新しいプロジェクトのテンプレートを提供します。「Amazon CodeCatalyst でのプロジェクトの作成」の説明に従ってブループリントを起動できます。 これにより、次の図に示されている Mythical Mysfits サンプルアプリケーションがデプロイされます。
このチュートリアルでは、アプリケーションに簡単な変更を加える必要があると仮定します。法務部門は、“© 2023 Demo Organization.”というテキストを含むフッターを追加したいと考えています。 CodeCatalyst で課題を作成してこの作業を追跡し、CodeCatalyst を使用してソフトウェア開発ライフサイクル (SDLC) 全体にわたる変更を追跡します。
CodeCatalyst では、プロジェクトはスペースに所属する構成となります。スペースは会社、部門、またはグループを表し、プロジェクト、メンバー、および CodeCatalyst で作成した関連するクラウドリソースが含まれます。このチュートリアルでは、次のスクリーンショットに示すように、現在このスペースにBrian Beach と Panna Shettyという 2 人のメンバーが含まれています。 どちらのユーザーも管理者ですが、CodeCatalyst は複数のロールをサポートしていることに注意してください。スペースのメンバーの役割について詳しくは、こちらをご覧ください。
この後の手順を進めるには以下の設定が必要です(訳者注)
issueメニューを開いた後、ギアアイコンをクリックした先の設定画面で‘“Hide estimates”となっている箇所のチェックを外します
まず、Brian は法務部門からのリクエストを追跡するための新しい課題を作成します。彼はその課題を Panna に割り当てますが、今のところは未処理のままにしておきます。CodeCatalyst は、作業を整理するために複数のメタデータフィールドをサポートしていることに注意してください。この課題はユーザーには影響せず、比較的簡単に修正できます。そのため、Brian はこれを優先度が低いと分類し、労力は非常に小さい (XS) と見積もっています。Brianもラベルを追加したので、法務部門からのリクエストをすべてまとめて追跡できます。これらのメタデータフィールドはカスタマイズ可能であることに注意してください。詳細については、課題の設定をご覧ください。
CodeCatalyst は Description フィールドのリッチマークダウンをサポートしています。これについては、Markdown のヒントとコツをご覧ください。次のスクリーンショットでは、 Brian が「 @app .vue 」と入力すると、ユーザー、課題、コードのインライン検索が表示され、Panna が後で変更する必要のある関連するコードを見つけるのに役立ちます。
Panna は新機能の作業を開始する準備ができたら、課題を「未処理」から「進行中」に移します。CodeCatalyst では、ユーザーがカンバンスタイルのボードを使用して作業を管理できます。Panna はボード上で課題をドラッグアンドドロップするだけで、課題をあるエリアから別のエリアに移動できます。チームが小さいので、Brian と Panna は 1 枚のボードを使いますが、CodeCatalyst では、前述のメタデータフィールドでフィルターされた複数のビューを作成できます。たとえば、Sprint-001 というラベルを作成し、それを使用してスプリント用のボードを作成することができます。
Panna は feature_add_copyright
という名前の、変更用の新しいブランチを作成し、課題の説明にあるリンクを使用してソースコードリポジトリに移動します。この変更はとても簡単なので、彼女はブラウザでファイルを編集して変更をコミットすることにしました。より複雑な変更については、CodeCatalyst が Dev Enviroments をサポートしていることに注意してください。このシリーズの次回の記事は、開発環境に特化しています。Dev Environment はクラウドベースの開発環境であり、プロジェクトのソースリポジトリに保存されているコードをすばやく処理できます。
Panna はフィーチャーブランチをメインブランチにマージするプルリクエストも作成します。彼女はBrianを必須のレビュアーとして挙げています。その後、Panna は課題 をカンバンボードの「レビュー中」列に移動して、チームの他のメンバーが進捗状況を追跡できるようにします。Brian は変更を確認すると、プルリクエストを承認してマージします。
プルリクエストをマージすると、コードの変更時に自動的に実行され、変更をビルド、テスト、デプロイするようにワークフローが設定されます。ワークフローについては、このシリーズの以前の投稿で説明しました。ワークフローが完了すると、チームの Slack チャンネルで Panna に通知が届きます。通知の詳細については、こちらをご覧ください。彼女は production の変化を検証し、問題をカンバンボードの「完了」列に移動します。
デプロイが完了すると、ページの下部にフッターが追加されます。
この時点で課題は完了し、この小さなチームがどのように協力してソフトウェア開発ライフサイクル (SDLC) 全体を進めていったかがわかりました。
クリーンアップ
このワークフローに従っていた場合は、引き続き料金が発生しないように、デプロイしたリソースを削除する必要があります。まず、ブループリントを起動したときに関連付けた AWS アカウントの AWS CloudFormation コンソールを使用して CDK がデプロイした 2 つのスタックを削除します。これらのスタックには mysfitsXXXXXWebStack や mysfitsXXXXXAppStack などの名前が付けられます。次に、プロジェクト設定に移動し、プロジェクトの削除 を選択して、CodeCatalyst からプロジェクトを削除します。
まとめ
この投稿では、CodeCatalyst が他の開発者との迅速なコラボレーションにどのように役立つかを学びました。課題を使って機能やバグを追跡したり、コードレビューを割り当て、プルリクエストを管理したりしました。
今後の投稿では、CodeCatalyst がThe Unicorn Project で Maxine が直面した残りの課題にどのように対処できるかについて引き続き説明します。
(この記事は Team Collaboration with Amazon CodeCatalyst を翻訳したものです。)
この記事の著者について
翻訳はパブリックセクター ソリューションアーキテクト梅田が担当しました。原文はこちらです。