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

スタートアップ企業での散乱した システムリリースフローをととのえる話/Maintain the...

スタートアップ企業での散乱した システムリリースフローをととのえる話/Maintain the system release flow

JAWS DAYS 2021 re:Connect で発表した資料です。
開発者が安心かつスムーズなリリースフローを作り、開発生産性を向上させたいと言う課題感からリリースフロー刷新の取り組んだお話をさせていただきました。

SadayoshiTada

March 20, 2021
Tweet

More Decks by SadayoshiTada

Other Decks in Technology

Transcript

  1. 会社紹介 • おやつ体験 BOX 『snaq.me』 • ⽉額 1,980円(税込、送料込) • 4週

    or 2週毎に100種類以上の商品からお客様にパーソナライ ズした8種のおやつをお届け
  2. • Lambda 単体もしくは Step Functions を組み合わせて Python で開発している • AWS

    SAM を利⽤した開発 • Rails のシステムから直接実⾏したり、社内オペレーション を⾃動化した仕組みを定期実⾏したりしている 改善前のリリースの状況
  3. • EC2 のリリースの改善 • Lambda/Step Functions のリリース改善 • いずれも GitHub

    Actions を使ったリリースフローに変更 リリースフロー改善の実施
  4. • GitHub Actions を使った経緯 • 開発者も別の仕組みでも使っているため GitHub Actions に慣れている •

    ⾃分も開発者も扱うツールが少なくなる リリースフロー改善の実施
  5. • EC2 のリリースの改善 • GitHub Actions と Systems Manager によるリリース

    • リリースでやっていたのはシンプルなコマンド実⾏ • Run Command で実⾏可能であることを確認 • リリースはタイミングを図って⾏う • メンテナンスウィンドウによりスケジュール実⾏ リリースフロー改善の実施
  6. • 改善に向けて⾏ったアクション • リリース時に実⾏しているコマンドを Systems Manager ドキュメントにまとめて Run Command 経由で実⾏

    • GitHub Actions でメンテナンスウィンドウでリリースのタ イミングを指定し Run Command を設定する リリースフロー改善の実施
  7. リリースフロー改善の実施 • 改善に向けて⾏ったアクション • Run Command の実⾏状況は Chatbot 経由で Slack

    に通知 してコマンドの実⾏ステータスをわかるようにした • EventBridge + SNS + Chatbot で実現
  8. • Lambda/Step Functions のリリースの改善 • GitHub Actions と AWS SAM

    によるリリースに変更 • Step Functions も AWS SAM でコード化 リリースフロー改善の実施
  9. • Lambda/Step Functions のリリース改善時の課題 • Lambda と Step Functions は同じリポジトリで管理せず、

    別々のリポジトリにした • Step Functions で管理する Lambda の ARN を AWS SAM が扱えるようにする必要がある 改善後のリリースフロー
  10. • 設定データや機密情報管理のための階層型ス トレージ • パラメーターストアに Lambda のARN を格納 して活⽤ •

    AWS SAM の template.yaml で下記の定義 で指定して取り込む • '{{resolve:ssm:HogeFunctionARN:1}}' 改善後のリリースフロー Parameter store
  11. • Lambda/Step Functions のリリース改善時の課題 • CodePipeline + CodeBuild のデプロイでは感知できなかっ た

    CloudFormation の進⾏状況を SNS + Chatbot を使っ て実現した • GitHub Actions の処理ステータスも Slack に通知した 改善後のリリースフロー
  12. まとめ • 社内システムに関する EC2/Lambda/Step Functions のリリース フロー課題と改善の取り組みをお話しした • 改善前に開発者が負担していたタスクを軽減し、シンプルな仕組 みを整備していくことができた

    • リリースフローの中にテストを組み込み切れてない等課題も残っ ているので引き続き開発者と協⼒して効率的な仕組みになるよう に進めていく