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

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

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

Avatar for Tadashi Nemoto

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 環境 本番環境