Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CICD

Avatar for Cybozu Cybozu PRO
August 19, 2020

 CICD

Avatar for Cybozu

Cybozu PRO

August 19, 2020
Tweet

More Decks by Cybozu

Other Decks in Technology

Transcript

  1. CI の利点 ▌⾼速なフィードバック l 問題の早期発⾒ l ⾼速な学習 ▌頻繁に変更がマージされるようになれば差分が⼤きくならない l 問題発⾒時の調査が簡単になる

    l リスク(不確実性)が減る ▌Success/Fail の可視化によるコミュニケーション促進 ▌毎回の変更が⾃動テストで保証される安⼼感 24
  2. ⾃動テスト ▌ 単体テスト l ⼩さい単位のコードが役割通り動作するかチェックする ▌ 結合テスト l 複数のコードを組み合わせた機能が正しく動作するかチェックする ▌

    受け⼊れテスト(E2E テスト) l ビジネス要求を満たしてるかチェックする ▌ 上記以外にもいろいろ l テストの種類ごとの呼び⽅や⽬的はチームによって異なるので、 認識を揃えることが⼤事 31
  3. デプロイ・リリース ▌ メインラインにマージされたときだけ実⾏されることが多い l タスクブランチでも動作確認⽤環境にデプロイとかはある ▌ ステージング環境 l 本番環境によく似せたステージング環境でまずデプロイする ▌

    本番環境へのリリース戦略 l 万⼀の問題発⽣に備えることが重要 l ⼀部の環境から広げていく、ロールバック、無停⽌ l カナリアリリース、ブルーグリーンデプロイ、フィーチャーフラグ など 34
  4. 38

  5. 40

  6. GitHub Actions ▌GitHub が提供する CI/CD サービス l 現在は Enterprise Server

    は未対応 ▌パブリックリポジトリでは完全無料 ▌CI/CD に限らず GitHub の様々なイベントにフックできる 41
  7. その他の CI/CD ツール ▌AWS Code シリーズ l CodeBuild, CodeDeploy, CodePipeline,

    ... l AWS と権限周りを統合しやすい ▌Argo CD l Kubernetes ⽤ CD ツール l GitOps できる l https://www.weave.works/technologies/gitops/ 42
  8. 不安定なビルド ▌不具合ではないのにビルドが失敗する l CI/CD の信頼性が下がる ▌原因はいろいろ l 本番コードではないので書かれる⼿抜きスクリプト l E2E

    テストの微妙なタイミングのズレ l 不安定な環境 l 構築⼿順が微妙に異なる、前のビルドのゴミが残ってる、など 61
  9. Continuous Delivery vs Continuous Deployment ▌コード変更ごとにリリースまでの検証を⾏うのはどちらも同じ ▌Continuous Delivery l 毎回本番環境にリリースするとは限らない

    ▌Continuous Deployment l 毎回本番環境へのリリースまで⾃動で⾏う ▌どちらを選ぶかは時と場合に合わせて 66