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
CircleCI 2.0を支えるインフラとSREの役割
Search
Kim, Hirokuni
March 26, 2019
Technology
5
2.3k
CircleCI 2.0を支えるインフラとSREの役割
NoOps Meetup Tokyo #5
https://noops.connpass.com/event/123494/
での登壇資料
Kim, Hirokuni
March 26, 2019
Tweet
Share
More Decks by Kim, Hirokuni
See All by Kim, Hirokuni
How We Migrated K8S Without Downtime
kimh
0
200
エンジニアが起業する意味: 起業経験ゼロから電動キックボード 事業を創る話
kimh
0
1.2k
K8sとTraefikでつくるマイクロフロントエンド
kimh
14
2.8k
CI/CDを使い倒して数段上のソフトウェア開発をしよう (デブサミ関西)
kimh
2
1k
デブサミ福岡: CI/CDを使い倒して数段上のソフトウェア開発をしよう
kimh
0
590
CircleCI 2.0を支える2つの コンテナクラスターとSRE
kimh
6
6.3k
なぜ今CI/CDがアジャイル組織に必要とされるのか?
kimh
0
340
CircleCI 2.0を支える2つのコンテナクラスター
kimh
2
4.6k
Orbsを使ってAWSへ簡単デプロイ
kimh
1
1.6k
Other Decks in Technology
See All in Technology
新規プロダクト開発、AIでどう変わった? #デザインエンジニアMeetup
bengo4com
0
450
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
6.4k
Kotlinで学ぶ 代数的データ型
ysknsid25
5
1.1k
AWS全冠したので振りかえってみる
tajimon
0
140
技術職じゃない私がVibe Codingで感じた、AGIが身近になる未来
blueb
0
120
kotlin-lsp を Emacs で使えるようにしてみた / use kotlin-lsp in Emacs
nabeo
0
150
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
140
Agentic DevOps時代の生存戦略
kkamegawa
0
120
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
150
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.6k
Copilot Agentを普段使いしてわかった、バックエンド開発で使えるTips
ykagano
1
810
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Scaling GitHub
holman
459
140k
Done Done
chrislema
184
16k
It's Worth the Effort
3n
184
28k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Unsuck your backbone
ammeep
671
58k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Into the Great Unknown - MozCon
thekraken
39
1.8k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Transcript
1 CircleCI 2.0を支えるインフラとSREの 役割 #kimhirokuni #circlecijp
2 1.0からの移行ありがとうございました!! • LXCベースのCI/CD • コンテナを使ったCI/CDのパイオニア • 先日RIPされた
3 CircleCI 2.0について 1日120万ビルドのCI/CDプラットフォーム
4 技術編: 2つのクラスター 組織編: SREチームの紹介
5 自己紹介 Kim, Hirokuni (金 洋国) • CircleCI Japan Tech
Lead • 日本支社の立ち上げ • カンファレンス登壇 • 採用活動 • 記事執筆 • コミュニティー運営 ”この発言は個人の見解ではなく所属する組 織を代表しています” Twitter: https://twitter.com/kimhirokuni
6 おまえSREのこと話せんの?
7 自己紹介 ”この発言は個人の見解ではなく所属する組 織を代表しています” Kim, Hirokuni (金 洋国) • CircleCI
Japan Tech Lead • 日本支社の立ち上げ • カンファレンス登壇 • 採用活動 • 記事執筆 • コミュニティー運営 • 元プロダクトチーム • 現SREチーム Twitter: https://twitter.com/kimhirokuni
8 宣伝 (会社) • 日本語サポート • ドキュメントの日本語化 • ユーザーコミュニティー CircleCI初の海外支社
@CircleCIJapan FB Community Group
9 宣伝 (個人) 海外で大流行の電動キックボードを体験できるサービス Hop-on! を運営 • 日本で唯一のサービス(のはず) • みなとみらいで体験できます
• 続きはhttps://hop-on.jpで!
10 技術編: 2つのクラスター 組織編: SREチームの紹介
11 CircleCI 2.0のアーキテクチャ概要 • マイクロサービス • AWS • Clojure, Go,
TypeScript • コンテナベース • Kubernetes/Nomad ← 今日はココの話
12 2つのクラスター • Kubernetes ◦ マイクロサービスが動いている • Nomad ◦ ビルド実行のマシン
二つを分けることでセキュリティーを担保している
13 クラスター間通信
14 Kubernetes • 全てのマイクロサービスが動いている • CoreOS • EC2 • Terraformで管理
15 Nomad 概要 • Servers -> k8s master nodes •
Clients -> k8s worker nodes • バッチジョブ • ここでビルドが実行される • 1 コンテナ = 1 Nomad Job
16 コンテナ == Nomad Job
17 Nomad ズームイン
18 ビルドが実行されるまで • ビルドリクエスト • Nomad Jobが作られる • Dockerコンテナの起動 •
Goで書かれたAgent起動 • ビルドのコマンドを逐次実行 • ビルドのログをK8sのサービスへ送信
19 なぜNomadか? • Nomadはバッチ処理がk8sより得意だった (2016年の時点) • 現時点ではk8sもよくなっている (らしい) • シンプルなアーキテクチャー
(単一Goバイナリ) • Hashicorp Toolとの親和性 (ConsulやTerraformなど) 詳しくは https://speakerdeck.com/kimh/cdpuratutohuomu
20 技術編: 2つのクラスター 組織編: SREチームの紹介
21 SREチーム構成 • 現在9人のチーム • 4カ国にまたがる • 時差きつい
22 ボーイング方式 • 時差の有効活用 • 継続的なペアリング • 障害時対応
23 コミュニケーション • 基本はSlackを使っている • 情報量が多い話はZoom • 100ワードのSlackより10秒のZoom • 1年に一回のAll
Hands • 半年に一回のチームごとのSmall Hands
24 SREの役割 • 安定したインフラの運用 • プロダクトの開発に集中できるようにサポート • プロダクトエンジニアとのペアリング・コードレビュー • 障害対応
(日本時間は障害少ない)
25 障害対応フロー #investigation 障害の可能性あり
26 障害対応フロー #investigation #incident 故障かな?と思ったら - ユーザー影響あり - 障害用のZoom開始 -
@メンションされる
27 障害対応フロー #investigation #incident https://status.circleci.com 故障かな?と思ったら - ユーザー影響あり - 障害用のZoom開始
- @メンションされる
28 障害対応フロー #investigation #incident https://status.circleci.com Incident Commander Note Taker 任命
故障かな?と思ったら - ユーザー影響あり - 障害用のZoom開始 - @メンションされる 役割分担 (後述)
29 障害対応フロー #investigation #incident https://status.circleci.com Incident Commander Note Taker 任命
20分ごとにアップデート 故障かな?と思ったら - ユーザー影響あり - 障害用のZoom開始 - @メンションされる 役割分担 (後述) - できるだけリアルタイム情報 - バナーに表示される
30 障害対応フロー #investigation #incident https://status.circleci.com Incident Commander Note Taker 任命
20分ごとにアップデート 故障かな?と思ったら - ユーザー影響あり - 障害用のZoom開始 - @メンションされる 役割分担 (後述) - できるだけリアルタイム情報 - バナーに表示される - 30分様子見 - 問題なければクローズ
31 Incident Commander と Note Taker Incident Commander (現場指揮官) •
障害復旧のために必要なチームを動かす • SREがなることが多いけど、SREとは限らない Note Taker (記録係) • 20分ごとにアップデートを届ける • 時系列をまとめる • zoomのレコーディング
32 Postmortem == 検死解剖 == 反省会 Postmortem準備 • 障害報告書のPRを作成 •
関係者のミーティングセットアップ Postmortem中 • PRをレビュー • Note Takerの事実ベースの分析 • 障害宣言は適切なタイミングだったか? • どうやれば障害を防げたか? • PRをマージ
33 おわりに
34 今後の課題: ホスティング型k8sサービスへの移行 メリット • GKEの機能が豊富 • GCP安い デメリット •
AWSからの移行 メリット • 移行なし • 学習コスト低い デメリット • 機能面でGKEに劣る
35 今後の課題: チームの拡大 • Platform Engineeringの設立 • SREチームの拡大 • プロアクティブなSRE業
36 WE ARE HIRING!
37 SRE Team in Japan こんな人募集 • CircleCIに興味がある • 大規模インフラを面倒みたい
• コンテナをガチでやりたい • 海外のチームと働きたい
Thank you. 38 Optional Name