GitEngHar / CiCdHandsOn

awsのcicdをハンズオンするための環境
0 stars 0 forks source link

CiCdHandsOn

GithubAction や awsを用いたCICDツールをいろいろやっていくリポジトリ

CICDを知ろう

CICDって何ですか??

継続的インテグレーション CI / 継続的デリバリー CD

image

画像の引用元 : https://www.servicenow.com/jp/products/devops/what-is-cicd.html

CI CDでアプリ開発のステージを一部自動化することで、顧客にアプリケーションを頻繁に提供できる (引用 : redhad)
結果 市場のニーズに常に対応でき、競争力を保つことができる

※本番環境へのデプロイは検証環境でエビデンスを取って、チームでレビューしてから実施すると思われます

デプロイとリリースの違いが気になる方へ 結局デプロイとリリースってどう違うの

百聞は一見に如かず

実演用endpoint

http://cicdha-webAp-eQSCGIFzwy98-1124916881.ap-northeast-1.elb.amazonaws.com

実行の構成

githubAction で AWS で設定しているCodeDeployを動かしているので、実態はAWSにあると思われる simpleWebapp drawio

CICDを使った世界

CI/CD実行 : githubActionで定義 デプロイ設定 : aws codedeploy (cloudformationで管理)

  1. ローカル作業pcでGithubリポジトリをclone
  2. アプリに変更を加える
  3. 変更をGithub リポジトリ に反映

Imageの作成とアプリケーションへの反映は自動で実施される ※検証環境でのデプロイを想定した流れ

CICDを使わない世界(時間あれば)

ローカル環境でイメージファイルを作成して、アプリケーションを起動します

CI : イメージのビルド、リポジトリへのPush CD : 本番環境へのデプロイ

  1. イメージ構築環境でGithubリポジトリをclone
  2. アプリに変更を加える
  3. 変更されたDockerImageを作成
  4. ImageをAWS ECR へPush
  5. 新規Imageのアプリケーション定義を作成
  6. タスク・コンテナ等のアプリケーション実行リソースにデプロイする

CICDのココが凄い (まとめ)

CICD前

1. イメージ構築環境でGithubリポジトリをclone
2. アプリに変更を加える
3. 変更されたDockerImageを作成
4. ImageをAWS ECR へPush
5. 新規Imageのアプリケーション定義を作成
6. タスク・コンテナ等のアプリケーション実行リソースにデプロイする

CICD後

1. ローカル作業pcでGithubリポジトリをclone
2. アプリに変更を加える
3. 変更をGithub リポジトリ に反映

素早い変更の統合(インテグレーション) と デプロイ を実施することで、市場のニーズに常に対応でき、競争力を保つことができる