SlideShare a Scribd company logo
backlogでもCI/CDする
夢を見る
まえはらたける
わたくし
• まえはらたける(前原武)
• 経歴
• 東京
• 某ポイントメディアのデータ分析基盤・データ分析屋さん
• 某アドテク企業のSRE・データ分析屋さん
• 某スマートフォン向けゲーム企業のデータ分析基盤
• 鹿児島
• データ分析・ダッシュボード・基盤・アクセス解析の受託会社
• 本社は東京だよ
• 鹿児島支社5名(うちインターン2名)
• 好きなAWSサービス
• Redshift
• Fargate
• 趣味
• FF14(いーじす)
• 焼酎(懇親会よろしくおねがいします)
backlog知ってる人?
backlogでgitリポジトリの
ホスティングができるって知ってる人?
こんなの
• Githubの一部機能がつかえるみたいなやつ
• Pull request
• タグ
• backlogのタスクとの紐付けは便利
こんなの
• Githubの一部機能がつかえるみたいなやつ
• Pull request
• タグ
• backlogのタスクとの紐付けは便利
Githubでよくない?
• hai
• やんごとなき事情で・・・
• ぶっちゃけbacklogも、そんなに悪くはない
困りごと
• 各種連携サービスが使えない
• CI/CDどうしよっか?
• 当然Circle CI/Travis CIは連携できない
• Jenkinsにbacklog用のpluginがあるらしい
• けど、jenkinsサーバー立てて管理するのは・・・
• 顧客に対してサーバー立てる?
お気持ち
• CI/CDくらいはできるようにした
• いちいち手元でdocker imageをpushとかしたくない
• サーバーに入ってgit pullとかしたくない
• サーバーレスでよしなにしたい
調べた
なるほど?
https://support-ja.backlog.com/hc/ja/articles/360036145053-Git%E3%81%AE%E6%A6%82%E8%A6%81 より
なるほどなるほど??
https://aws.amazon.com/jp/codebuild/faqs/?nc=sn&loc=5 より
いけそう
考えた
• 自動化するスコープ
• Pull reqがmasterにマージされたら、
docker imageをbuildして、ECRにpushしてほしい
考えた
• 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
機密情報取得
考えた
• 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
機密情報取得
考えた
• 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
機密情報取得
考えた
• 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
機密情報取得
考えた
• 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
機密情報取得
わーい
わーい
わーい
わーい
大変だったところ
• あんまないです。
• ただas code化してないので、terraformに落とすときは少し大変そう
なイメージが
• API Gatewayのポリシー変更がdeployしないと反映されてない
と知らず、延々と困った
• あとbacklogのwebhookの仕様がちょっと謎い
• merge時に謎リクエストが飛ぶ時がある
まとめ
• backlog Gitの弱点だった点をAWSピタゴラスイッチで解決
• 思った以上に簡単にできて、便利ーってなった
• 手でpushしなくてよくなった(わーい
• いろいろ問題はまだあるので解決していきたい所存
• branch push時の自動テストとか
Githubを使おう!!!
Ad

More Related Content

What's hot (20)

ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 

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

Rでを作る
Rでを作るRでを作る
Rでを作る
Nagi Teramo
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
Haruki Okada
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
Kenichi Tatsuhama
 
データ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたデータ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみた
YASUKAZU NAGATOMI
 
スクレイピングのススメ
スクレイピングのススメスクレイピングのススメ
スクレイピングのススメ
Tomoki Hasegawa
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
 
mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipmmod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm
鉄次 尾形
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!
__john_smith__
 
ある工場の情シス
ある工場の情シスある工場の情シス
ある工場の情シス
Kohei Nakamura
 
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
Developers Summit
 
ある工場の情シスの生存戦略
ある工場の情シスの生存戦略ある工場の情シスの生存戦略
ある工場の情シスの生存戦略
Kohei Nakamura
 
tsudaりについて
tsudaりについてtsudaりについて
tsudaりについて
Yoshikazu GOTO
 
20150808 osc関西@京都
20150808 osc関西@京都20150808 osc関西@京都
20150808 osc関西@京都
Takayuki Gondoh
 
20140419【qpstudy】OSとNW設計の勘所
20140419【qpstudy】OSとNW設計の勘所20140419【qpstudy】OSとNW設計の勘所
20140419【qpstudy】OSとNW設計の勘所
Yukitaka Ohmura
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
Tokoroten Nakayama
 
Rustでソートを高速化した話(Shinjuku.rs)
Rustでソートを高速化した話(Shinjuku.rs)Rustでソートを高速化した話(Shinjuku.rs)
Rustでソートを高速化した話(Shinjuku.rs)
MasayukiUrakami1
 
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはChromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するには
goccy
 
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Masahito Zembutsu
 
Rでを作る
Rでを作るRでを作る
Rでを作る
Nagi Teramo
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
Haruki Okada
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
Kenichi Tatsuhama
 
データ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたデータ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみた
YASUKAZU NAGATOMI
 
スクレイピングのススメ
スクレイピングのススメスクレイピングのススメ
スクレイピングのススメ
Tomoki Hasegawa
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
 
mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipmmod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm
鉄次 尾形
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!
__john_smith__
 
ある工場の情シス
ある工場の情シスある工場の情シス
ある工場の情シス
Kohei Nakamura
 
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
Developers Summit
 
ある工場の情シスの生存戦略
ある工場の情シスの生存戦略ある工場の情シスの生存戦略
ある工場の情シスの生存戦略
Kohei Nakamura
 
20150808 osc関西@京都
20150808 osc関西@京都20150808 osc関西@京都
20150808 osc関西@京都
Takayuki Gondoh
 
20140419【qpstudy】OSとNW設計の勘所
20140419【qpstudy】OSとNW設計の勘所20140419【qpstudy】OSとNW設計の勘所
20140419【qpstudy】OSとNW設計の勘所
Yukitaka Ohmura
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
Tokoroten Nakayama
 
Rustでソートを高速化した話(Shinjuku.rs)
Rustでソートを高速化した話(Shinjuku.rs)Rustでソートを高速化した話(Shinjuku.rs)
Rustでソートを高速化した話(Shinjuku.rs)
MasayukiUrakami1
 
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するにはChromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するには
goccy
 
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Masahito Zembutsu
 
Ad

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