LoginSignup
0
1

Azureで構築するCI/CDパイプライン

Last updated at Posted at 2023-11-22

はじめに

今回はAzureを利用してCICDを構築しようと思います。
構築するまえにCI/CDについて説明します。

CI/CDとは?

화면 캡처 2021-11-30 005330.png
アプリケーションの構築、テスト、および展開の自動化を実施することにより、
開発および運用アクティビティとチームの間のギャップを埋めることです。

CI(continuous integration)

継続的インテグレーションと言う意味です。
CIとは継続的にクオリティコントロールを適用するプロセスを実行することを言います。
最小限の努力で新しいコードを配布することを目指しています。

多数の開発者がバージョン管理ツール(ex. Git, SVNなど)を共有して使用する環境にCIが必要です。
継続的に運用するサービスや開発中のサービスに機能追加するさいにコミットしてレポジトリをアップデートします。
多数の開発者が1つのチームで作業している場合、このレポジトリに多数のコミットが積み重ねられます。
コミットするたびに毎度ビルド・テスト・マージまでするのであれば、かなりの時間が必要となります。
このような状況で、CIは自動化されたビルド・テストで既存のコードと新しいコードとの競合を防ぎます。

CD(continuous delivery)

継続的デリバリーまたは継続的な展開という意味です。
Continuous Deliveryは共有レポジトリで自動的にReleaseすること、
Continuous DeploymentはProductionレベルまで自動的にデプロイすることを意味します。

複数のワークを複数のサーバーに展開する環境にCDが必要です。
手作業で複数のワークを複数のサーバーに展開する際に発生しやすいミスを防ぐことができます。

CI/CDの種類

  • Jenkins
  • CircleCI
  • TravisCI
  • Github Actions
  • etc

CI/CIDの構成例

構成とデータフロー

構成

제목 없는 프레젠테이션 (1).png

利用するサービス

  • GitHub
  • aks(Azure Kubernetes service)
  • Jenkins
  • Docker

データフロー

  1. ユーザーがコードを修正してGitHubにコミットする
  2. GitHubにコミットされたことでJenkins build Triggerが動作する
  3. AKSを使ってビルドジョブがトリガーする
  4. JenkinsがDockerコンテナーをビルドし、ACRにPushする
  5. JenkinsがPushしたコンテナーをACRがAKSにデプロイする

上記の構成通り、CICD環境構築に取り組んでいきます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1