Más contenido relacionado

Presentaciones para ti(20)

Similar a backlogsでもCI/CDする夢を見る(20)

backlogsでもCI/CDする夢を見る

  1. backlogでもCI/CDする 夢を見る まえはらたける
  2. わたくし • まえはらたける(前原武) • 経歴 • 東京 • 某ポイントメディアのデータ分析基盤・データ分析屋さん • 某アドテク企業のSRE・データ分析屋さん • 某スマートフォン向けゲーム企業のデータ分析基盤 • 鹿児島 • データ分析・ダッシュボード・基盤・アクセス解析の受託会社 • 本社は東京だよ • 鹿児島支社5名(うちインターン2名) • 好きなAWSサービス • Redshift • Fargate • 趣味 • FF14(いーじす) • 焼酎(懇親会よろしくおねがいします)
  3. backlog知ってる人?
  4. backlogでgitリポジトリの ホスティングができるって知ってる人?
  5. こんなの • Githubの一部機能がつかえるみたいなやつ • Pull request • タグ • backlogのタスクとの紐付けは便利
  6. こんなの • Githubの一部機能がつかえるみたいなやつ • Pull request • タグ • backlogのタスクとの紐付けは便利
  7. Githubでよくない? • hai • やんごとなき事情で・・・ • ぶっちゃけbacklogも、そんなに悪くはない
  8. 困りごと • 各種連携サービスが使えない • CI/CDどうしよっか? • 当然Circle CI/Travis CIは連携できない • Jenkinsにbacklog用のpluginがあるらしい • けど、jenkinsサーバー立てて管理するのは・・・ • 顧客に対してサーバー立てる?
  9. お気持ち • CI/CDくらいはできるようにした • いちいち手元でdocker imageをpushとかしたくない • サーバーに入ってgit pullとかしたくない • サーバーレスでよしなにしたい
  10. 調べた
  11. なるほど? https://support-ja.backlog.com/hc/ja/articles/360036145053-Git%E3%81%AE%E6%A6%82%E8%A6%81 より
  12. なるほどなるほど?? https://aws.amazon.com/jp/codebuild/faqs/?nc=sn&loc=5 より
  13. いけそう
  14. 考えた • 自動化するスコープ • Pull reqがmasterにマージされたら、 docker imageをbuildして、ECRにpushしてほしい
  15. 考えた • backlogのwebhookのpost先に API Gateway • API Gatewayのリクエスト処理をlambda • Code pipelineでs3のput event発火 • デフォルトでできる! • Code buildではbuildspec.ymlに従いbuild • ECRにimageをpush • Pipelineの結果をslack通知 構成 backlog リポジトリ Amazon API Gateway masterにマージで webhook AWS Lambda git clone Amazon Simple Storage Service 実行 リポジトリをzipに 固めて保存 AWS CodePipeline zipが置かれたら cw eventでpipeline発火 AWS CodeBuild 実行 Zipダウンロード Amazon Elastic Container Registry Image push AWS Secrets Manager 機密情報取得
  16. 考えた • backlogのwebhookのpost先に API Gateway • API Gatewayのリクエスト処理をlambda • Code pipelineでs3のput event発火 • デフォルトでできる! • Code buildではbuildspec.ymlに従いbuild • ECRにimageをpush • Pipelineの結果をslack通知 構成 backlog リポジトリ Amazon API Gateway masterにマージで webhook AWS Lambda git clone Amazon Simple Storage Service 実行 リポジトリをzipに 固めて保存 AWS CodePipeline zipが置かれたら cw eventでpipeline発火 AWS CodeBuild 実行 Zipダウンロード Amazon Elastic Container Registry Image push AWS Secrets Manager 機密情報取得
  17. 考えた • backlogのwebhookのpost先に API Gateway • API Gatewayのリクエスト処理をlambda • Code pipelineでs3のput event発火 • デフォルトでできる! • Code buildではbuildspec.ymlに従いbuild • ECRにimageをpush • Pipelineの結果をslack通知 構成 backlog リポジトリ Amazon API Gateway masterにマージで webhook AWS Lambda git clone Amazon Simple Storage Service 実行 リポジトリをzipに 固めて保存 AWS CodePipeline zipが置かれたら cw eventでpipeline発火 AWS CodeBuild 実行 Zipダウンロード Amazon Elastic Container Registry Image push AWS Secrets Manager 機密情報取得
  18. 考えた • backlogのwebhookのpost先に API Gateway • API Gatewayのリクエスト処理をlambda • Code pipelineでs3のput event発火 • デフォルトでできる! • Code buildではbuildspec.ymlに従いbuild • ECRにimageをpush • Pipelineの結果をslack通知 構成 backlog リポジトリ Amazon API Gateway masterにマージで webhook AWS Lambda git clone Amazon Simple Storage Service 実行 リポジトリをzipに 固めて保存 AWS CodePipeline zipが置かれたら cw eventでpipeline発火 AWS CodeBuild 実行 Zipダウンロード Amazon Elastic Container Registry Image push AWS Secrets Manager 機密情報取得
  19. 考えた • backlogのwebhookのpost先に API Gateway • API Gatewayのリクエスト処理をlambda • Code pipelineでs3のput event発火 • デフォルトでできる! • Code buildではbuildspec.ymlに従いbuild • ECRにimageをpush • Pipelineの結果をslack通知 構成 backlog リポジトリ Amazon API Gateway masterにマージで webhook AWS Lambda git clone Amazon Simple Storage Service 実行 リポジトリをzipに 固めて保存 AWS CodePipeline zipが置かれたら cw eventでpipeline発火 AWS CodeBuild 実行 Zipダウンロード Amazon Elastic Container Registry Image push AWS Secrets Manager 機密情報取得
  20. わーい
  21. わーい
  22. わーい
  23. わーい
  24. 大変だったところ • あんまないです。 • ただas code化してないので、terraformに落とすときは少し大変そう なイメージが • API Gatewayのポリシー変更がdeployしないと反映されてない と知らず、延々と困った • あとbacklogのwebhookの仕様がちょっと謎い • merge時に謎リクエストが飛ぶ時がある
  25. まとめ • backlog Gitの弱点だった点をAWSピタゴラスイッチで解決 • 思った以上に簡単にできて、便利ーってなった • 手でpushしなくてよくなった(わーい • いろいろ問題はまだあるので解決していきたい所存 • branch push時の自動テストとか
  26. Githubを使おう!!!