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
190
エンジニアが起業する意味: 起業経験ゼロから電動キックボード 事業を創る話
kimh
0
1.1k
K8sとTraefikでつくるマイクロフロントエンド
kimh
14
2.7k
CI/CDを使い倒して数段上のソフトウェア開発をしよう (デブサミ関西)
kimh
2
950
デブサミ福岡: CI/CDを使い倒して数段上のソフトウェア開発をしよう
kimh
0
520
CircleCI 2.0を支える2つの コンテナクラスターとSRE
kimh
6
6.2k
なぜ今CI/CDがアジャイル組織に必要とされるのか?
kimh
0
340
CircleCI 2.0を支える2つのコンテナクラスター
kimh
2
4.5k
Orbsを使ってAWSへ簡単デプロイ
kimh
1
1.6k
Other Decks in Technology
See All in Technology
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
6.2k
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
740
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
720
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
2
3k
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
740
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
RSNA2024振り返り
nanachi
0
580
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
1.4k
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
420
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
370
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
350
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.2k
A Tale of Four Properties
chriscoyier
158
23k
Code Review Best Practice
trishagee
67
18k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
960
Practical Orchestrator
shlominoach
186
10k
Facilitating Awesome Meetings
lara
52
6.2k
The Language of Interfaces
destraynor
156
24k
How STYLIGHT went responsive
nonsquared
98
5.4k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Mobile First: as difficult as doing things right
swwweet
223
9.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