Amazon Web Services ブログ

統合ソフトウェア開発サービスである Amazon CodeCatalyst (プレビュー) の発表

2022/12/01に、Amazon CodeCatalyst のプレビューリリースを発表しました。ソフトウェア開発および配信の統合サービスである Amazon CodeCatalyst を使用すると、ソフトウェア開発チームは AWS 上でアプリケーションを迅速かつ簡単に計画、開発、コラボレーション、構築、および配信できるため、開発ライフサイクル全体でフリクションが軽減されます。

私がデベロッパーだった頃、最も興奮したのは、ソフトウェアをユーザーにお届けすること以外に、新しいプロジェクトを開始したり、プロジェクトに招待されたりしたことでした。どちらの場合にも、何かクールなものを構築し、新しいコードを記述すること、つまり、アイデアが形になるのを目の当たりにすることについての期待に胸を膨らませていました。ただし、開始には時間がかかる場合がありました。私のチームは、私を含めて、ツール、ライブラリ、プログラミングフレームワークを使用して、ローカルの開発環境を更新し、まったく新しいマシンに更新する必要がありました。ソースコードリポジトリの作成、Jira、Confluence、Jenkins などの他の共有ツールの設定、ビルドパイプラインや他のオートメーションワークフローの設定、テスト環境の作成などを行う必要がありました。開発環境と構築環境の日常的なメンテナンスによって、貴重なチームサイクルやエネルギーが消費されていました。情報を共有し、信頼できる唯一の情報源を得るための使用可能なツールがなかったため、チーム間のコラボレーションにも多大な労力を要していました。プロジェクト間のコンテキストの切り替えと、それらのプロジェクト内の競合する依存関係への対処 (例: プロジェクト X には Python 3.6、プロジェクト Y には Python 2.7) により、特に作業するマシンが 1 台しかない場合にはさらに負担が大きくなりました。

「改善されたようには見えません!」 最近、デベロッパーとこれまでの経験について話すとき、最新の開発はさらに複雑になったと感じているという声をよく耳にします。これは、アプリケーションエクスペリエンスを提供するためにすべてを連携させる必要がある、最新のフレームワークやライブラリ、ツール、クラウドサービス、継続的インテグレーションとデリバリーパイプライン、その他の多くの選択肢の幅広いコレクションを選択して設定しなければならないためです。かつては 1 人のデベロッパーが 1 台のマシンで管理できたものが、現在では、意思決定とトレードオフが無秩序に広がりながら動的かつ複雑に絡み合っており、分散したチーム間でこれらすべてを調整する必要があるため、さらに困難になっています。

Amazon CodeCatalyst を利用する
私は、Amazon CodeCatalyst の背後にいるチームと、そのインスピレーションの源や目標について話し合ってきました。このチームは、AWS の新しいデベロッパー、経験豊富なデベロッパー、サービスチームからのフィードバックを受けて、クラウド用のソフトウェアを構築する際にチームや個々のデベロッパーが経験する一般的な課題を検討しました。このフィードバックを収集して検討した結果、ソフトウェア配信を不必要に遅らせるような荒削りな部分を滑らかにする統合ツールの作成に着手し、チームの共同作業やコラボレーションをより容易にする機能を追加しました。これらの課題に対処するための Amazon CodeCatalyst の機能には次が含まれます。

  • プロジェクトのリソースを設定するブループリント。新しいプロジェクトのためのスキャフォールディングだけでなく、ソフトウェアの配信とデプロイをサポートするために必要なリソースも含まれます。
  • オンデマンドのクラウドベースの Dev Environments。一貫性のある開発環境を自分やチーム用に簡単にレプリケートできます。
  • 課題管理。これにより、コミット、プルリクエスト、デプロイにわたる変更を追跡できます。
  • 柔軟なマネージドビルドインフラストラクチャを使用した自動構築およびリリース (CI/CD) パイプライン。
  • コミット、プルリクエスト、テストレポートなどのプロジェクトアクティビティのフィードを表示するダッシュボード。
  • E メールを送信するだけで、プロジェクトにおけるコラボレーションに他のユーザーを招待する機能。
  • 統合検索。これにより、ユーザー、問題、コード、その他のプロジェクトリソースから探しているものを簡単に見つけることができます。

Amazon CodeCatalyst について、この記事では説明しきれないことがたくさんあるため、ブループリント、Dev Environments、プロジェクトコラボレーションなどの特定の機能について簡単に説明します。追加機能については、他の今後の投稿でご説明します。

プロジェクトブループリント
私がブループリントについて初めて耳にしたとき、それはプロジェクトの初期コードをスキャフォールディングする機能のように聞こえました。しかし、それだけにとどまりません! パラメータ化されたアプリケーションブループリントを使用すると、アプリケーションのための初期スターターコードだけでなく、アプリケーション開発ライフサイクルとチームコラボレーションをサポートする共有プロジェクトリソースを数分で設定できます。ブループリントがプロジェクトのために作成するリソースには、ソースコードリポジトリに加えて、一般的なアプリケーションパターン用の初期サンプルコードと AWS のサービスの設定が含まれており、これはデフォルトで AWS のベストプラクティスに従っています。必要に応じて、GitHub などの外部 Git リポジトリを代わりに使用することもできます。ブループリントは課題追跡システムを追加することもできますが、Jira などの外部トラッカーも使用できます。それから、ブループリントは CI/CD のための構築およびリリースのパイプライン (これについては後ほど説明します) や、その他の統合ツールを追加します。

CI/CD パイプラインやアプリケーションをホストする AWS リソースなど、ブループリントを使用して設定されたプロジェクトリソースと統合ツールにより、[deploy] (デプロイ) を押すとサンプルコードを数分で実行でき、すぐに特定のビジネスロジックの作業を開始できます。

新規プロジェクト開始時のプロジェクトブループリント

リリース時点で、お客様は、言語については Typescript、Python、Java、.NET、および Javascript、ならびに React、Angular、Vue フレームワークを備えたブループリントから選択でき、今後さらに追加される予定です。また、ブループリントを使用して始めることは必須ではありません。Linux および Windows オペレーティングシステムで動作するすべてのオペレーティングシステムで実行されるワークフローを使用してプロジェクトを構築できます。

クラウドベースの Dev Environments
開発チームでは、あるチームメンバーのツールチェーンやライブラリのバージョンが他のメンバーやテスト環境とわずかに異なる事象である「環境ドリフト」の問題が発生することがよくあります。これにより、しばらく気付かれないような微妙なバグが発生する可能性があります。ブループリントが作成する Dev Environment の仕様や他の共有リソースは、不要な差異がないようにするのに役立ちます。また、チームの全員が同じ設定を使用して、デベロッパー間で一貫性のある反復可能なエクスペリエンスを提供できます。

Amazon CodeCatalyst は、devfile を使用して、オンデマンドかつクラウドベースの Dev Environment の設定を定義します。現在、この Dev Environment は、2 基、4 基、8 基、または 16 基の vCPU を備えた 4 つのサイズ変更可能なインスタンスサイズのオプションをサポートしています。devfile は、特定のプロジェクトのコーディング、テスト、デバッグに必要なすべてのリソースを定義および設定し、開発チームのメンバーがローカル開発環境の作成や維持に費やす時間を最小限に抑えます。選択したブループリントによってソースコードリポジトリに追加された devfile も、必要に応じて変更できます。Dev Environments では、プロジェクト間のコンテキスト切り替えによるオーバーヘッドを低く抑えることができます。ワンクリックで別の環境に切り替えることができ、すぐに作業を開始できます。つまり、再設定することなく、複数のコードベースで簡単に同時作業できます。Dev Environments はオンデマンドであるため、必要に応じて一時停止、再開、削除することもできます。

Dev Environment をブートストラップする devfile の例を以下に示します。

schemaVersion: 2.0.0
metadata:
  name: aws-universal
  version: 1.0.1
  displayName: AWS Universal
  description: Stack with AWS Universal Tooling
  tags:
    - aws
    - a12
  projectType: aws
commands:
  - id: npm_install
    exec:
      component: aws-runtime
      commandLine: "npm install"
      workingDir: /projects/spa-app
events:
  postStart:
    - npm_install
components:
  - name: aws-runtime
    container:
      image: public.ecr.aws/aws-mde/universal-image:latest
      mountSources: true
      volumeMounts:
        - name: docker-store
          path: /var/lib/docker
  - name: docker-store
    volume:
      size: 16Gi

Amazon CodeCatalyst によってプロビジョニングされたクラウドベースの Dev Environments で作業するデベロッパーは、AWS Cloud9 を IDE として使用できます。ただし、JetBrains IntelliJ IDEA Ultimate、PyCharm Pro、GoLand、Visual Studio Code など、ローカルマシン上の他の IDE から Amazon CodeCatalyst を同じように簡単に操作できます。デベロッパーは、Visual Studio Code などの IDE 内から、または JetBrains Gateway アプリを使用して JetBrains 用に、Dev Environments を作成することもできます。以下では、JetBrains IntelliJ が使用されています。

JetBrains IntelliJ でのアプリケーションソースファイルの編集

構築およびリリースのパイプライン
ブループリントによって作成された構築およびリリースのパイプラインは、柔軟なマネージドインフラストラクチャ上で実行されます。パイプラインでは、マシンサイズの選択を含め、オンデマンドコンピューティングまたは事前にプロビジョニングされたビルドを使用できます。また、独自のコンテナ環境を使用することもできます。パートナーによって組み込まれたか、または提供されるビルドアクション (ソフトウェア構成分析のビルドアクションを提供する Mend など) を組み込むことができます。また、GitHub Actions を組み込んで完全に自動化されたパイプラインを構成することもできます。パイプラインは、ビジュアルエディタまたは YAML ファイルを使用して設定できます。

構築およびリリースのパイプラインにより、Amazon Elastic Container Service (Amazon ECS)AWS LambdaAmazon Elastic Compute Cloud (Amazon EC2) など、人気のある AWS のサービスへのデプロイが可能になります。Amazon CodeCatalyst を使用すると、テスト環境と本番稼働用環境を簡単に設定し、パイプラインを使用して 1 つ以上のリージョン、または複数のアカウントにデプロイしてセキュリティを強化できます。

自動ワークフローの実行

プロジェクトコラボレーション
Amazon CodeCatalyst は統合ソフトウェア開発サービスであるため、AWS でのアプリケーションの構築と配信の開始をより簡単にするだけでなく、あらゆるレベルのデベロッパーが単一の共有プロジェクトスペースと信頼できる情報源を通じてプロジェクトでコラボレーションすることを可能にします。E メールを送信するだけで、デベロッパーをコラボレーションに招待できます。招待を承諾すると、デベロッパーはプロジェクトの全容を把握できるようになり、プロジェクトの Dev Environments を使用してすぐに作業を開始できます。必要なツール、ライブラリ、または他の前提条件に合わせて、ローカルマシンの更新や再設定に時間を費やす必要はありません。

Amazon CodeCatalyst スペースの既存のメンバー、または E メールを使用する新しいメンバーをプロジェクトにおけるコラボレーションに招待できます。

新しいメンバーのプロジェクトコラボレーションへの招待

各メンバーは、[Accept Invitation] (招待を承諾) というリンクが記載された招待メールを受信します。このリンクをクリックすると、ブラウザタブが開いてサインインできます。サインインすると、招待された Amazon CodeCatalyst スペース内のすべてのプロジェクトを表示できるようになり、自分が所有者または招待された他のスペースに迅速に切り替えることもできます。

コラボレーションに招待されたプロジェクト

そこから、プロジェクトを選択すると、最近のワークフローのステータス、未解決のプルリクエスト、使用可能な Dev Environments など、現在の状況の概要を直ちに把握できます。

CodeCatalyst のプロジェクトの概要

[Issues] (問題) ボードでは、チームメンバーはどの問題に取り組む必要があるかを確認し、1 つ選択して開始できます。

問題の表示

プロジェクトのコンテキストを直ちに確認でき、オンデマンドかつクラウドベースの Dev Environments にアクセスできることで、設定の遅れがなくなり、より迅速に貢献できるようになります。

無料利用枠で Amazon CodeCatalyst の使用を今すぐ開始しましょう!
アプリケーションコードだけでなく、アプリケーションの開発とデプロイ、問題の追跡、E メールでの招待によるコラボレーション、自動化されたワークフローなどをサポートする共有プロジェクトリソースをスキャフォールディングするすべてのブループリントは、新しくリリースされた Amazon CodeCatalyst のプレビュー版で本日よりご利用いただけるようになりました。これらは、クラウド開発と配信の取り組みを加速するのに役立ちます。詳細については、「Amazon CodeCatalyst ユーザーガイド」をご覧ください。また、前述したように、さまざまな機能をより詳細に説明するために、チームでは追加のブログ記事や他のサポートコンテンツを計画していますので、ぜひご確認ください!

原文はこちらです。