Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How Quipper Works with CircleCI
Search
Yuya Takeyama
December 03, 2018
Programming
4
3.2k
How Quipper Works with CircleCI
Yuya Takeyama
December 03, 2018
Tweet
Share
More Decks by Yuya Takeyama
See All by Yuya Takeyama
それぞれのペースでやっていく Bet AI / Bet AI at Your Own Pace
yuyatakeyama
1
740
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.6k
プロダクト開発、インフラ、コーポレート、そしてAIとの共通言語としての Terraform / Terraform as a Common Language for Product Development, Infrastructure, Corporate Engineering, and AI
yuyatakeyama
7
2.4k
Terraformで実現するHR Driven Provisioningとアクセス制御の自動化 / HR Driven Provisioning and automation of access control using Terraform
yuyatakeyama
1
1.5k
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
5
680
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
5
6.7k
スタディサプリ小中高のオブザーバビリティ / Observability in StudySapuri
yuyatakeyama
1
2.9k
スタートアップは Rails を使うべきか / Should Startups Ride on Rails?
yuyatakeyama
7
2.7k
Quipper のマイクロサービス化への道のり / Quipper's Road to Microservices
yuyatakeyama
5
2.3k
Other Decks in Programming
See All in Programming
高速開発のためのコード整理術
sutetotanuki
1
410
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
CSC307 Lecture 02
javiergs
PRO
1
780
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
今から始めるClaude Code超入門
448jp
8
9.1k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
680
CSC307 Lecture 05
javiergs
PRO
0
500
dchart: charts from deck markup
ajstarks
3
1k
CSC307 Lecture 04
javiergs
PRO
0
660
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
Data-Centric Kaggle
isax1015
2
780
Featured
See All Featured
How GitHub (no longer) Works
holman
316
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
94
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
Six Lessons from altMBA
skipperchong
29
4.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
190
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Leo the Paperboy
mayatellez
4
1.4k
Embracing the Ebb and Flow
colly
88
5k
Transcript
How Quipper Works with CircleCI @yuya-takeyama
01 02 03 04 05 Agenda | 自己紹介 GitHub/CircleCI を中心としたワークフロー
CircleCI で monorepo を CI する Quipper で使っている CircleCI 関連ツールの紹介 まとめ
01 自己紹介
@yuya-takeyama ➔ 2015年9月~: Web Developer at Quipper ◆ Rails/Backone.js/React.js/React Native
などなど ➔ 2018年4月~: SRE at Quipper ◆ Kubernetes への移行や Kubernetes の運用およびその効率化 ◆ Kubernetes 環境への移行に向けた開発者のサポートもミッション ◆ インフラ・SRE としてはまだまだ修行中
02 GitHub/CircleCI を中心としたワークフロー
Quipper にとっての CircleCI ➔ ほぼ全てのリポジトリで CI/CD に利用している ◆ アプリケーションもインフラも ◆
Infrastructure as Code をかなり徹底してやってきている ➔ ぶっちゃけメチャメチャ依存度が高い ◆ CircleCI が止まるとデプロイとか止まってしまう ◆ 私とかであれば手動でなんとできるといえばできるけど、仕組み化できて ない... (その辺は追い追い)
GitHub/CircleCI を中心としたワークフロー ➔ 大きく分けて 2 種類 ◆ フィーチャーブランチをマージしてデプロイ ◆ master
にマージした後、デプロイ用のブランチにさらにマージしてデプロイ
フィーチャーブランチをマージするとデプロイされるパターン ➔ 細かくは... ◆ develop/master が分かれてたり ◆ release でリリーステスト環境が作られたり ◆
フィーチャーブランチもステージング環境にデプロイされたり ➔ アプリケーションはだいたいこのパターン ➔ インフラも一部はこのパターン ◆ miam による AWS IAM, roadworker による Route 53 の DNS
None
デプロイ用のブランチにさらにマージしてデプロイするパターン ➔ 一つのリポジトリからのデプロイ対象がたくさんある時に使用する ◆ Ansible, Terraform, Kubernetes クラスタ ➔ master
へのマージ時にはテストや差分の確認等のみ行われる ◆ 破壊的な変更はその時点ではしない ➔ release/*** というブランチにマージすると *** の環境へのデプロイが行われる ◆ 例: release/reverse-proxy-staging, release/reverse-proxy-production
None
None
03 CircleCI で monorepo を CI する
None
Monorepo について ➔ サブディレクトリごとに変更をシェルスクリプトで検知 ◆ 変更があったサービスだけテストを実行する・デプロイする ◆ CircleCI の機能でできてほしい... ➔
最適化が大変 ◆ 変更の有無によってコマンドの実行自体スキップするので、実行時間がバ ラバラ ◆ コマンド実行時だけ実行時間を Datadog に送っていい感じにモニタリング できるようにするツールを作ろうとしている
04 Quipper で使っている CircleCI 関連ツールの紹介
circle-ghc ➔ CircleCI の実行結果を GitHub の Pull Request にコメントしてくれる ◆
差分の出力ができるツールを使ったレビューにおいて大変便利 ➔ Quipper SRE @lamanotrama さん作 ➔ Bash のシェルスクリプトで書かれている ➔ オープンにしない理由は特にないのでめんどくさくて放置されている? ➔ 個人プロジェクトで使いたかったので Rust に移植した ◆ https://github.com/yuya-takeyama/circle-gh-tee
None
yuya-takeyama/circleci-queue-to-datadog ➔ CircleCI のジョブがどれぐらい実行されているか・キューがどれぐらい詰まって いるかを Datadog に記録する ➔ Performance Pricing
Plan にすればそもそも気にしなくてよくなるけど... ◆ その辺ちゃんと知らない頃に作った ◆ Quipper は頃合いを見つつ Performance Pricing Plan にしたい ◆ 現状 30 containers ➔ 管理者権限持ってるなら実行時間は管理画面からも見られる
実行中のジョブ キューで詰まっているジョブ
circleci-env ➔ CircleCI のプロジェクトごとの環境変数を Infrastructure as Code する ◆ Ruby
の DSL で定義できる ➔ 元 Quipper SRE の @hakobera さんの作 ➔ 秘密情報は vault で暗号化して保持・適用が可能 ➔ SSH 秘密鍵も管理できる ➔ Undocumented な API を使っているので現状未公開!!!
Undocumented な API ➔ DELETE /api/v1.1/project/:project_id/ssh-key ➔ GET /api/v1.1/project/:project_id/settings
05 まとめ
Quipper は CircleCI、 CircleCI Japan及び そのコミュニティのご発展を お祈りしています!
None