112 Views
April 18, 19
スライド概要
au Webポータル デプロイ・ジャーニー
Slideshare から移行しました。 https://www.slideshare.net/yasufumimoritake
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/
ありがとうございました🍺