au Webポータル デプロイ・ジャーニー
mediba Inc.
Yasufumi Moritake
2019.4.17
BIT VALLEY -INSIDE- Vol.8
アジェンダ
• 自己紹介
• デプロイ?
• バックエンド(BE) デプロイ
• フロントエンド(FE) デプロイ
• まとめ
自己紹介
• 森竹 泰文(Yasufumi Moritake)
• yasufumi.moritake @moriyasu0410
• 静岡市出身🍵🍊
• mediba Inc.
• エンジニア
• カイゼン・ジャーニー係
• Scrum Inc. 認定スクラムマスター(LSM)
• BIT VALLEY -INSIDE- 運営
会社概要
• 社名:株式会社 mediba
• 設立:2000年12月6日
• 本社:東京都港区六本木3-2-1
住友不動産六本木グランドタワー39F/8F
• 従業員:431名(※2018年7月現在)
デプロイ?
デプロイ?
• 各種アプリケーションモジュールを実際に使用され
る環境に配備することをアプリケーションデプロイ
メントと呼ぶ
ソフトウェアデプロイメント
https://ja.wikipedia.org/wiki/ソフトウェアデプロイメント
バックエンド(BE) デプロイ
BE
• バッチアプリケーション
• ECS(Fargate)
• fetch-and-run
• ECS(Fargate)がジョブ
を実行
• fetch_and_run.sh が
実行され、AWS S3
から myjob.sh を取得
• myjob.sh を実行
BE
mediba Advent Calendar 2018 20日目
バッチのアーキテクチャジャーニー
https://adventar.org/calendars/3315#list-2018-12-20
フロントエンド(FE) デプロイ
FE
• Webアプリケーション
• ECS(Fargate)
• Server/API
• Node.js + pm2
ECS(Fargate)デプロイ手法
• Amazon ECS CLI
• AWS Cloud Development Kit(AWS CDK)
• AWS CodePipeline
• Deployfish
• ECS Deploy
• mu
ECS(Fargate)デプロイ手法
• Amazon ECS CLI
• AWS Cloud Development Kit(AWS CDK)
• AWS CodePipeline
• Deployfish
• ECS Deploy
• mu
ベストプラクティスはなさそう
クネビンフレームワーク
• Complex(複雑)
• 反復活動を繰り返し、得られる
フィードバックをもとに技法や手法が
出現する
• Complicated(煩雑)
• 専門家によるグッドプラクティスが
適用可能
https://en.wikipedia.org/wiki/Cynefin_framework
AWS CodePipeline
AWS CodePipeline?
• Amazon ECS CLI
• やりたいこと出来ない
• AWS Cloud Development Kit(AWS CDK)
• β版
• AWS CodePipeline 🎉
• Deployfish
• 公式ではない
• ECS Deploy
• 公式ではない
• mu
• 公式ではない
AWS CodePipeline
AWS CodePipeline
• Pipeline
• Source Stage
• Amazon S3
• Build Stage
• BuildAPI
• BuildServer
• DeployAPI Stage
• Deploy API
• DeployServer Stage
• Deploy Server
デプロイ 課題
• デプロイ時間
• ロールバック時間
デプロイ 時間
• 20分…😱
デプロイ 時間
• 20分…😱
• Build : 6分
• DeployAPI : 7分
• DeployServer : 7分
• Travis CI 実行時間を入れればもっと…
ロールバック 時間
• デプロイ時間と同じ 20分…😂
デプロイ カイゼン
Build
• BuildKit
• docker:18.09.0 から使える
• BUILDが30倍早くなる(こともある)
• DOCKER_BUILDKIT=1
• Done
• 若干 早くなった❗️
Build
• イメージサイズ軽量化
• 廃棄処理
• multi-stage build
• 成果物のみをイメージに保存する
• Doing…
Build
• Blue/Green Deployment
• Source Stage
• Amazon Code Commit の場合は動いたが、
Amazon S3 の場合は Exception/Internal Error
となり試行錯誤中…
• Doing…
デプロイアーキテクチャ
• Build までは事前
• Server/APIを個別にデプロイする
• Slack
• ToDo
まとめ
• AWS CodePipeline
• Better, Faster, Safer, Happier
デプロイ・ジャーニーは続く…
https://www.mediba.jp/
ありがとうございました🍺

au Webポータル デプロイ・ジャーニー