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
なぜ今CI/CDがアジャイル組織に必要とされるのか?
Search
Kim, Hirokuni
July 18, 2019
Technology
0
330
なぜ今CI/CDがアジャイル組織に必要とされるのか?
Agile Japan 2019の登壇資料
Kim, Hirokuni
July 18, 2019
Tweet
Share
More Decks by Kim, Hirokuni
See All by Kim, Hirokuni
How We Migrated K8S Without Downtime
kimh
0
180
エンジニアが起業する意味: 起業経験ゼロから電動キックボード 事業を創る話
kimh
0
1.1k
K8sとTraefikでつくるマイクロフロントエンド
kimh
14
2.7k
CI/CDを使い倒して数段上のソフトウェア開発をしよう (デブサミ関西)
kimh
2
920
デブサミ福岡: CI/CDを使い倒して数段上のソフトウェア開発をしよう
kimh
0
500
CircleCI 2.0を支える2つの コンテナクラスターとSRE
kimh
6
6.1k
CircleCI 2.0を支える2つのコンテナクラスター
kimh
2
4.4k
CircleCI 2.0を支えるインフラとSREの役割
kimh
5
2.2k
Orbsを使ってAWSへ簡単デプロイ
kimh
1
1.6k
Other Decks in Technology
See All in Technology
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
540
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
150
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
270
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
180
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
450
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
160
MLOps の現場から
asei
6
640
Featured
See All Featured
Designing for Performance
lara
604
68k
How GitHub (no longer) Works
holman
311
140k
Optimizing for Happiness
mojombo
376
70k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Code Reviewing Like a Champion
maltzj
520
39k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Agile that works and the tools we love
rasmusluckow
328
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
The Invisible Side of Design
smashingmag
298
50k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Transcript
1 なぜ今CI/CDがアジャイル組織に必要 とされるのか? Kim, Hirokuni (CircleCI SRE/Japan Tech Lead) #agilejapan
#circlecijpanan
2 CircleCIについて • 世界最大規模のクラウド CI/CD サービス • より良いコードをより速く、簡単にリリースすることを可能に • 2011年設立、サンフランシスコ本社
• 220人以上の社員、5大陸に在籍(米国と東京にオフィス) • 18年1月 3,100万ドルのシリーズCを実施、合計5,950万ドルを調達 Representative Customers
3 サークルシーアイ チョットデキル 左: CEO Jim Rose 右: CTO Rob
Zubber
4 海外初オフィスとなるCircleCI Japan
5 自己紹介 Kim, Hirokuni (金 洋国) - CircleCI SRE -
CircleCI Japan設立 - CircleCI Japan Tech Lead Twitter: https://twitter.com/kimhirokuni
6 宣伝 (個人) 電動キックボードを公道で体験できるサービス Hop-on! を運営 • みなとみらい・渋谷で体験できます • 続きは
https://hop-on.jp で!
7 アジャイルとは? • 0/1な定義ではなく属性の度合い ◦ 自律的 ◦ フラット ◦ 変化に対する柔軟性
◦ 失敗から学ぶ姿勢
8 アジャイルとは? • 0/1な定義ではなく属性の度合い ◦ 自律的 ◦ フラット ◦ 変化に対する柔軟性
◦ 失敗から学ぶ姿勢
9 自分が考えるアジャイルなチームとは? 失敗を推奨しそこから 学ぶ仕組みが存在する
10 自分が考えるアジャイルなチームとは? 失敗を推奨しそこから 学ぶ仕組みが存在する CI/CDがどのように貢献するか <- 今日のテーマ
11 CI/CDとは何か?
12 CI/CD 戦国時代 Google GCP Cloud Build Microsoft Azure Pipelines
AWS CodeBuild
13 CI/CDとは何か? 2つの開発手法から構成される • Continuous Integration (継続的インテグレーション) • Continuous Deployment
(継続的デプロイメント)
14 CIとはテストを自動で実行する仕組み 開発者のコード変更に対して • 常に • 同じ環境で テストを実行してくれる
15 CIの流れ 2. VCSからCircleCIへ通知 1. コードをプッシュ 3. CircleCIでテスト実行 4. テスト結果通知
16 CIの流れ 2. VCSからCircleCIへ通知 1. コードをプッシュ 3. CircleCIでテスト実行 4. テスト結果通知
17 CIの流れ 2. VCSからCircleCIへ通知 1. コードをプッシュ 3. CircleCIでテスト実行 4. テスト結果通知
18 CIの流れ 2. VCSからCircleCIへ通知 1. コードをプッシュ 3. CircleCIでテスト実行 4. テスト結果通知
19 なぜCIが重要か? • テストがあるけど実行し忘れた • 昔書いたテストが壊れていて動かない • テスト結果が環境依存 CIがないと色々問題が CIがないとき
CIがあるとき
20 なぜCIが重要か? • テストがあるけど実行し忘れた • 昔書いたテストが壊れていて動かない • テスト結果が環境依存 CIでさくっと解決! •
常に自動で実行される • テストが壊れた時点で通知がくる • まっさらな環境でテストを実行 CIがないとき CIがあるとき
21 CIがある開発フロー コードをPush
22 CIがある開発フロー コードをPush CIでテスト
23 CIがある開発フロー コードをPush CIでテスト masterへマージ
24 CIがある開発フロー コードをPush CIでテスト masterへマージ 自動
25 CIがある開発フロー コードをPush CIで自動テスト masterへマージ 自動 デプロイ 手動
26 CD (継続的デプロイメント)とは? 開発者のコード変更に対して • CIを実行後 • 自動で デプロイしてくれる
27 なぜCDが重要か? • 毎回のデプロイ作業が大変 • 間違った環境にデプロイ (ヒューマンエラー) CDがないと色々な問題が
28 アジャイルとCI/CDの関係
29 CI/CDまでの歴史 アジャル DevOps CI/CD 時間
30 アジャイル • 顧客と対話 • コミュニケーションの重要性 • 変化への対応
31 CI/CDまでの歴史 アジャル DevOps 時間
32 DevOps • 開発 (Dev)と運用 (Ops)の協調 • 作業の自動化
33 アジャイルとDevOps アジャイル: 開発チームと顧客との積極的な協力 DevOps: 開発 (Dev) と 運用 (Ops)
の協調
34 CI/CDまでの歴史 アジャル DevOps CI/CD 時間
35 CI/CD • DevOpsのアイデアを実現するためのツール • テスト・デプロイを自動化
36 抽象度のピラミッド図 アジャイル DevOPs CI/CD 抽象度 高い 低い
37 CircleCIのチーム紹介
38 グローバルチーム • アジア • ヨーロッパ • 北アメリカ
39 ボーイング方式 • ワーキング・トュギャザー • 時差の有効活用 • 継続的なペアリング • 無理のないアラート対応
• 障害時対応
40 リモートチーム成功の秘訣 Over Communication • 質問・疑問があればなんでもSlackに • SlackよりZoomを • Slackでメンションをためらわない
41 開発手法: 独自のKANBAN方式 (1) KANBANとは? • ご存知TOYOTAの工場での生産手法が起源 • 仕事を細分化 •
プロセスの視覚化 • 開発者は Ready For Devな作業をプルしていく
42 開発手法: 独自のKANBAN方式 (2) 分散チームに合うようにカスタマイズ • ミーティングの数や種類 • Story Point
• WIP Limitの有無
43 チーム構成 Eng. Manager: チーム全体の管理。コードは書かない Tech Lead: 設計や重要な技術的決定に責任を持つ Team Lead:
Eng. Managerへの一歩手前 Engineering Manager Team Lead Tech Lead Developers 1チーム7人から10人の構成
44 Competency Matrix
45 エンジニア組織の原則 • 全てのエンジニアがマネジャーのキャリアパスを目指す わけではない • 若手エンジニアでもリードできる • エンジニアによって成長過程や強みはそれぞれ •
エンジニアは成長していく • コードを書く力は求められる技術のほんの一部 Competency Matrixはここに公開されています
46 エンジニアチームの重要原則: アイデアを常にテストする • 早くMVPを作る • ユーザーからのフィードバックを得る • 修正を常に本番環境へ反映させる
47 CI/CDで失敗から学ぶチームを作る
48 Thinking Time ⏰ Q: 失敗から学ぶチームはどうすれば作れるか?
49 Thinking Time ⏰ Q: 失敗から学ぶチームはどうすれば作れるか? A: 失敗のコストを下げる
50 失敗のコストが下がると少なくなるもの • 責任の追求 • 対応のミーティング • 無駄なチェックリスト • etc.
51 開発での失敗あるある 1 手戻りの問題 • 2ヶ月仕様定義 • 4ヶ月実装 • リリース後大きな仕様の間違いが発覚
52 開発での失敗あるある 2 QAの問題 • テスト環境で1週間テスト • 本番と構成が違っていてバグを見逃す
53 なぜこのような問題が起こるのか? テスト可能部分 外部サービス ビジネス要求 仕様 トラフィック・負荷 テスト可能部分 外部サービス ビジネス要求
仕様 トラフィック・負荷 テスト可能領域はとても小さい
54 我々の重大な気づき 結局リリースしてみないとわからない!
55 シフト・レフト ライト 本番環境でテスト • CDで常に本番環境へデプロイする • 実際にユーザーに使ってもらう • 問題・失敗を見つける
• 修正 • CDでもう一度デプロイ
56 シフト・レフト ライト 設計・デザイン 開発 リリース テスト 時間 設計・デザイン 開発
リリース テスト 設計・デザイン 開発 リリース テスト フィードバック フィードバック
57 でも本番環境でテストってほんとに大丈夫?
58 本番環境でテストするための技術 • カナリーリリース • フィーチャーフラグ • ブルー・グリーンデプロイメント
59 フィードバックループ • 問題の早期発見 • 素早いフィードバック • カイゼン
60 CDなしだとだとループが回らない • リリースの許可が必要 • ヒューマンエラー フィードバックループが回 らない
61 CDなくしてフィードバックループなし No CD, No Feedback Loop
62 結論: CDを活用して失敗から学ぶチームを作ろう • 早く失敗できる • 失敗のコストが下がる • フィードバックループが回る CDをうまく活用すると、、、
63 前半のスライド 失敗を推奨しそこから 学ぶ仕組みが存在する
64 前半のスライド 失敗を推奨しそこから ↑ CDで本番環境でテスト 学ぶ仕組みが存在する
65 前半のスライド 失敗を推奨しそこから ↑ CDで本番環境でテスト 学ぶ仕組みが存在する ↑ フィードバックループ
66 Japan to APAC! : 多数のポジションを日本で採用中! circleci.com/careers Senior Full Stack
Software Engineer Senior Site Reliability Engineer Account Executive Customer Success Manager Japan Marketing Manager Solutions Engineer Sales Development Representative Tokyo, Japan グローバルプラットフォームを作るディ ベロッパーの採用 日本とAPACを担当するメンバーの採 用
Thank you. 67 Optional Name