翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マルチアカウント DevOps 環境に GitHub フローブランチ戦略を実装する
Amazon Web Services、Mike Stephens と Abhilash Vinod
概要
ソースコードリポジトリを管理する場合、さまざまな分岐戦略が、開発チームが使用するソフトウェア開発およびリリースプロセスに影響します。一般的な分岐戦略の例としては、Trunk、GitHub Flow、Gitflow などがあります。これらの戦略では異なるブランチが使用され、各環境で実行されるアクティビティは異なります。DevOps プロセスを実装している組織は、ビジュアルガイドを活用して、これらの分岐戦略の違いを理解できます。組織でこのビジュアルを使用すると、開発チームが作業を調整し、組織の標準に従うのに役立ちます。このパターンでは、このビジュアルを提供し、組織に GitHub フローブランチ戦略を実装するプロセスについて説明します。
このパターンは、複数の を持つ組織の DevOps ブランチ戦略の選択と実装に関するドキュメントシリーズの一部です AWS アカウント。このシリーズは、クラウドでのエクスペリエンスを効率化するために、最初から正しい戦略とベストプラクティスを適用するのに役立つように設計されています。GitHub フローは、組織で使用できるブランチ戦略の 1 つです。このドキュメントシリーズでは、トランクおよび Gitflow ブランチモデルについても説明します。まだ確認していない場合は、このパターンのガイダンスを実装する前に、「Choosing a Git branching strategy for multi-account DevOps environments」を確認することをお勧めします。デューデリジェンスを使用して、組織に適したブランチ戦略を選択してください。
このガイドでは、組織が GitHub フロー戦略を実装する方法を記した図を示します。「AWS Well-Architected DevOps Guidance」でベストプラクティスを確認することをお勧めします。このパターンには、DevOps プロセスの各段階に推奨されるタスク、ステップ、制限が含まれます。
前提条件と制限事項
前提条件
「インストール済み
」Git これはソースコードリポジトリツールとして使用されます。 Draw.io がインストールされていること
。このアプリケーションは、図の表示や編集のために使用されます。
アーキテクチャ
ターゲットアーキテクチャ
次の図は、パネットスクエアfeature ブランチから本番環境へのデプロイまでを示します。

GitHub Flow アプローチの AWS アカウント、環境、ブランチの詳細については、「マルチアカウント DevOps 環境の Git ブランチ戦略の選択」を参照してください。
自動化とスケール
継続的インテグレーションと継続的デリバリー (CI/CD) は、ソフトウェアリリースライフサイクルを自動化するプロセスです。CI/CD は、初期コミットから本番環境に新しいコードを移行するために従来必要とされていた手動プロセスの多く、またはすべてを自動化します。CI/CD パイプラインには、サンドボックス、開発、テスト、ステージング、および本番環境が含まれます。各環境で、CI/CD パイプラインはコードをデプロイまたはテストするために必要なインフラストラクチャをプロビジョニングします。CI/CD を使用することで、開発チームはコードを変更し、自動的にテストとデプロイを行うことができます。CI/CD パイプラインは、機能の受け入れとデプロイに一貫性、標準、ベストプラクティス、最小限の承認レベルを適用することで、開発チームのガバナンスとガードレールも提供します。詳細については、「AWSでの継続的インテグレーションと継続的デリバリーの実践」を参照してください。
AWS は、CI/CD パイプラインの構築を支援するように設計された一連の開発者サービスを提供します。例えば、AWS CodePipeline は完全マネージド型の継続的デリバリーサービスであり、リリースパイプラインを自動化して、迅速かつ信頼性の高いアプリケーションとインフラストラクチャの更新を実現します。AWS CodeBuild はソースコードをコンパイルし、テストを実行し、すぐにデプロイできるソフトウェアパッケージを生成します。詳細については、「Developer Tools on AWS
ツール
AWS サービスとツール
AWS には、このパターンの実装に使用できる一連の開発者サービスが用意されています。
スケーラビリティが高く、フルマネージド型のアーティファクトリポジトリサービスである AWS CodeArtifact を使用すると、アプリケーション開発に使用するソフトウェアパッケージを保存および共有できます。
AWS CodeBuild は完全マネージド型の構築サービスです。ソースコードのコンパイル、ユニットテストの実行、すぐにデプロイできるアーティファクトの生成を行います。
AWS CodeDeploy は、Amazon Elastic Compute Cloud (Amazon EC2) またはオンプレミスインスタンス、 AWS Lambda 関数、または Amazon Elastic Container Service (Amazon ECS) サービスへのデプロイを自動化します。
AWS CodePipeline は、ソフトウェアリリースのさまざまな段階を迅速にモデル化および設定し、ソフトウェアの変更を継続的にリリースするために必要なステップを自動化するのに役立ちます。
その他のツール
Draw.io Desktop
は、フローチャートと図を作成するためのアプリケーションです。コードリポジトリには、Draw.io 用の .drawio 形式のテンプレートが格納されています。 Figma
は、コラボレーション用に設計されたオンライン設計ツールです。コードリポジトリには、Figma 用の .fig 形式のテンプレートが格納されています。
コードリポジトリ
このパターンにおける図のソースファイルは、Git Branching Strategy for GitHub Flow
ベストプラクティス
「AWS Well-Architected DevOps Guidance」と「Choosing a Git branching strategy for multi-account DevOps environments」のベストプラクティスと推奨事項に従ってください。これらは、GitHub フローベースの開発を効果的に実装し、コラボレーションを促進し、コード品質を高め、開発プロセスを合理化するのに役立ちます。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
標準の GitHub フロープロセスを確認する。 |
| DevOps エンジニア |
バグ修正 GitHub フロープロセスを確認する。 |
| DevOps エンジニア |
ホットフィックス GitHub フロープロセスを確認する。 | GitHub フローは、継続的な配信が可能になり、コードの変更が上位環境に頻繁かつ確実にデプロイされるように設計されています。重要なのは、すべての
| DevOps エンジニア |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
ブランチの競合 | GitHub フローモデルで発生する可能性がある一般的な問題は、ホットフィックスを本番環境に適用する必要がある場合に、同じリソースが変更されている |
チームの成熟度 | GitHub フローは、真の継続的インテグレーションと継続的デリバリー (CI/CD) により、上位環境への日々のデプロイを促進します。機能を構築し、機能の自動化テストを作成するには、チームのエンジニアリングスキルが成熟している必要があります。チームは、変更が承認される前に、マージリクエストの詳細なレビューを実行する必要があります。これにより、開発プロセスの品質、説明責任、効率性を促進する堅牢なエンジニアリング文化が育まれます。 |
関連リソース
このガイドには Git のトレーニングは含まれていませんが、このトレーニングが必要な場合は、インターネット上で多くの高品質のリソースを入手できます。Git ドキュメント
以下のリソースは、 AWS クラウドで GitHub フローブランチを利用する際に役立ちます。
AWS DevOps ガイダンス
GitHub フローガイダンス
その他のリソース
Twelve-factor app methodology
(12factor.net)