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

デプロイ頻度を10倍にした、ブランチ戦略とGitHub Actions on AWS ECS

デプロイ頻度を10倍にした、ブランチ戦略とGitHub Actions on AWS ECS

Tadashi Nemoto

April 27, 2021
Tweet

More Decks by Tadashi Nemoto

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • 根本 征 (ねもと ただし) • 株式会社エクサウィザーズ • Platform

    Engineer (DevOps Engineer) ◦ CI / CD 基盤の構築・改善・導⼊ ◦ 本番・検証環境の構築・運⽤ ◦ テスト⾃動化の導⼊・布教
  2. アウトライン • これまでの CI / CD・デプロイフロー • 変えたこと ◦ Jenkins

    → GitHub Actions on AWS ECS ◦ Git Flow → GitLab Flow • 改善の効果 • これから
  3. これまでのCI / CD・デプロイフロー • Hashicorp Nomad on AWS ◦ develop,

    staging, production ◦ 簡単に複数の develop 環境が作れない • Git Flow ◦ チームによって使い⽅が多少異なる • Jenkins on AWS ◦ 本番環境へのデプロイは⼀部弊チームに依存
  4. GitHub Actions self-hosted runners • GitHub Actions ではクラウド版とセルフホスト版を⽤意 • セルフホスト版は無料で利⽤可能(GitHub

    ユーザー) • クラウド版同等の機能を利⽤可能 (Marketplace, Secret) • クラウド版とセルフホスト版を両⽴することが可能 ◦ デプロイはセルフホスト版、テストはクラウド版 • ワークフロー管理部分をマネージドにできる
  5. Git Flow • リリースタイミングが決まっている開発には有効 ◦ モバイルアプリ(1~2週間に1回) • 恣意的にリリースできる開発にはメリットが少ない ◦ API

    / Frontend をクラウドにいつでもデプロイできる • 不要なブランチ作業によってデプロイ頻度を下げる可能性 ◦ リリースブランチ・Hotfix ブランチ・Tag の作成
  6. GitHub Flow 本番環境 ?環境 ?環境 • シンプルなブランチ管理 ◦ master /

    feature ブランチ • リリース頻度を⾼くできる • リリース前の検証環境が課題 ◦ master ブランチ = production ◦ staging 環境︖ ◦ development 環境︖
  7. GitLab Flow • feature → master ブランチの関係 ◦ GitHub Flow

    と同じ • リリースに必要なブランチを⽤意できる ◦ master ブランチ → staging 環境 ◦ production ブランチ → 本番環境 ◦ リリースするタイミングで merge Staging 環境 本番環境