Scalable Multibranch CICD pipeline_STAC2024

2.7K Views

December 12, 24

スライド概要

STAC2024の発表スライド

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Scalable Multibranch CICD pipeline ~自分だけのQA環境でストレスフリーなシステム開発とテストを~ Asahi Group Holdings, IT and Transformation

2.

自己紹介 アサヒグループホールディングス株式会社、 IT&Transformation 久保嶋 美咲 Misaki Kuboshima アンキット シャルマ Ankit Sharma 2

3.

Agenda 1. 従来のユースケースと問題点 2. スケーラブルマルチブランチCICDパイプラインとは 3. どういう作り? 4. こんなところが凄いんです! 5. デモンストレーション 6. 今後の展開と課題 7. Q&A 3

4.

活動のきっかけ 2025 年の崖 : 既存ITシステムを放置するリスク (経済産業省が2018年に発表したDXレポートに出てくる言葉) 既存システムの保守管理のコストと負担の増大により企業としての成長が停滞する恐 れがあり、この状態を放置すれば日本の産業界全体が沈むのは避けられない。 (既存ITシステムのメインテナンスで、2025年以降一年間に最大12兆円の経済的損 失になる見込み。) 4

5.

従来のユースケースと問題点 従来の問題点:システム全体の技術的なところがブラックボックスになっている ブラックボックス化 5

6.

スケーラブルマルチブランチCICDパイプラインとは? QA環境/開発環境のメインテナンスフリー 好みの環境が自動で作成&破棄される 自分だけの環境で恐れ知らず 6

7.

従来のユースケースと問題点 開発環境のリファクタリング ビルド環境 GitHub Serverless デプロイ環境、動作環境 Serverless 7

8.

スケーラブルマルチブランチCICDパイプラインとは? QA環境/開発環境のメインテナンスフリー 好みの環境が自動で作成&破棄される 自分だけの環境で恐れ知らず 8

9.

スケーラブルマルチブランチCICDパイプラインとは? 4つのツールの機能によって構成されている GitHub プログラムのソースコードをオンラ インで共有・管理するサービス AWS AWS クラウドコンピューティング サービス Jenkins Docker 開発プロセスを自動化するための CI/CD支援ツール 軽量で高速に動作するコンテナ型 仮想環境用のプラットフォーム 9

10.

指示書、案内役 データの保存先やコンテナの情 報(Docker Image)を指定 AWS Pushコード ECS EC2 Jenkins Slave Task Definition 1.コードを クローン Folder 2.Task Definitionの作成 トリガー (Webhook) Task Definition (BUILD) Task Definition (DEPLOYMENT) ECR Docker image (BUILD) 3.FargateTask の作成と実行 ジョブ実行 Cluster EFS Fargate task Folder Overview Flow Fargate task Docker image (DEPLOYMENT ) 4.QA環境の構築 Development environment *ECS(Dockerコンテナの実行・管理)、仮想サーバー(EC2)、 拡張性のあるファイルの保管場所:データに関するファイル(EFS)、コンテナ用ファイル(ECR)

11.

どういう作り?(前半) GitHubの ブランチ Jenkinsの マルチブランチパイプライン GitHubの Webhook 11

12.

ブランチ機能 (GitHub) Current Version Main Branch branch_A Branch A Version 各ブランチは独自の開発環境 を持っている branch_B Branch B Version 12

13.

マルチブランチパイプラインとWebhook Jenkins マルチブランチパイプライン GitHub Webhook GitHubのブランチに対応して作成さ れ、複数の処理をシームレスに実行 GitHubブランチの変更を通知 13

14.

スケーラブルマルチブランチCICDパイプラインとは? QA環境稼働 開発者 プロセスの 実行 コードをプッシュ トリガー (Webhook) QA環境削除 14

15.

指示書、案内役 データの保存先やコンテナの情 報(Docker Image)を指定 AWS AWS Pushコード ECS EC2 Jenkins Slave Task Definition 1.コードを クローン Folder 2.Task Definitionの作成 トリガー (Webhook) Task Definition (BUILD) Task Definition (DEPLOYMENT) ECR Docker image (BUILD) 3.FargateTask の作成と実行 ジョブ実行 Cluster EFS Fargate task Folder Overview Flow Fargate task Docker image (DEPLOYMENT ) 4.QA環境の構築 Development environment *ECS(Dockerコンテナの実行・管理)、仮想サーバー(EC2)、 拡張性のあるファイルの保管場所:データに関するファイル(EFS)、コンテナ用ファイル(ECR)

16.

どういう作り?(後半) AWS Dockerコンテナの実行・管理を担うECSが主軸 仮想サーバー(EC2)、 拡張性のあるファイルの保管場所 データに関するファイル(EFS)、コンテナ用ファイル(ECR) AWSの機能を用いるビルドやデプロイの各工程をシームレスに実行 16

17.

指示書、案内役 データの保存先やコンテナの情 報(Docker Image)を指定 AWS Pushコード ECS EC2 Jenkins Slave Task Definition 1.コードを クローン Folder 2.Task Definitionの作成 トリガー (Webhook) Task Definition (BUILD) Task Definition (DEPLOYMENT) ECR Docker image (BUILD) 3.FargateTask の作成と実行 ジョブ実行 Cluster EFS Fargate task Folder Overview Flow Fargate task Docker image (DEPLOYMENT) 4.QA環境の構築 Development environment *ECS(Dockerコンテナの実行・管理)、仮想サーバー(EC2)、 拡張性のあるファイルの保管場所:データに関するファイル(EFS)、コンテナ用ファイル(ECR)

18.

こんなところが凄いんです! ✓ コードをPUSHするだけで自分の環境が立ち上がる! 開発者 QA環境稼働 プロセスの実行 コードをプッシュ トリガー (Webhook) QA環境削除 ✓ 自分の環境で複数のテストケースを並列的に実行することができる! Fargate Task Fargate Task Fargate Task Fargate Task Fargate Task 18

19.

デモンストレーション デモ内容:2つのブランチでそれぞれ複数のテストを並列的に実行する AWS VSCodeでコードをプッシュ 各工程の状況を確認 Testのタスクの動きを確認 テスト結果の確認 Stac_demo_A Stac_demo_B 19

20.

今後の展開 ✓ GUIテストへの活用 Seleniumでヘッドレステスト スケーラブルマルチブランチCICDパイプラインとの連携 ✓ テストケースのマネジメント TestRailを利用 誰でも分かる管理体制 20

21.

Thank you! ご興味ある方はぜひご連絡ください! ご連絡先:kuniaki.kudo@asahigroup-holdings.com 21