Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2018-14-DevOps
Search
Cybozu
PRO
June 18, 2018
Programming
36k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2018-14-DevOps
- 開発を加速させる文化・プラクティスを知る
- キーワードを広く
- 深くは解説しない
Cybozu
PRO
June 18, 2018
More Decks by Cybozu
See All by Cybozu
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
89k
新卒1年目QAが リリース基準の"なぜ"をたどってみた
cybozuinsideout
PRO
1
810
kintone リサーチ副部/UXリサーチャー 業務紹介
cybozuinsideout
PRO
0
170
私たちが『JaSST協賛』から『外部コネクト』チームになった理由
cybozuinsideout
PRO
0
580
LLMでもいつものテスト技術〜意外と半分はこれまでのテストでした〜
cybozuinsideout
PRO
1
1.1k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
1
1.6k
LLMアプリの品質保証
cybozuinsideout
PRO
1
810
技術広報チームに丸投げしない!「一緒につくる」スポンサー活動
cybozuinsideout
PRO
0
300
テクニカルライター (グループウェア) について
cybozuinsideout
PRO
0
290
Other Decks in Programming
See All in Programming
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
240
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
260
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
160
App Intentsのビルドプロセスを支える技術
kntkymt
0
260
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
280
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
200
Webの地図
yosuke_furukawa
PRO
6
4.2k
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.7k
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
120
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
530
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Designing for humans not robots
tammielis
254
26k
Site-Speed That Sticks
csswizardry
13
1.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Documentation Writing (for coders)
carmenintech
77
5.5k
Transcript
DevOps 生産性向上チーム 宮田 淳平 1
この講義の目的 ▌開発を加速させる文化・プラクティスを知る ⚫ キーワードを広く ⚫ 深くは解説しない 2
DevOpsとは 3
よくある目標の対立 4 開発 運用 どんどん リリースしたい! 安定運用! 壁
なにが問題なのか? ▌高速リリースは運用と協力しないとできない ⚫ トラブル対応ばかりになって開発が進まなくなってしまう ▌安定運用は開発チームの協力がないと実現できない ⚫ サービス側を修正しないとその場しのぎの対応になりがち 5
6 https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops- cooperation-at-flickr
共通のゴール 7 開発 運用 素早く安全なリリースを繰り返して ビジネスゴールを達成する!
DevOpsの広がり ▌開発と運用だけの話ではない ▌DevOpsQA, DevSecOps, BizDevOps, などなど ▌ビジネスゴールの達成を加速させることが本質 8
組織構造の話? ▌だけではない ▌共通のビジネスゴールの達成を加速させるためには、 プロセスや技術的なプラクティスも重要 9
結局DevOpsって? ▌厳密な定義はない ▌生産性を上げるための ⚫ 組織文化 ⚫ プロセス ⚫ 技術的プラクティス ▌ぐらいの認識でいい
11
DevOpsを支える3つの道 12
13 https://cybozu.co.jp/company/job/recruitment/bus iness/
なにを開発すれば 世界一使われるグループウェア になるか? 14
わからない! ▌顧客にもわからない ▌さらに市場は変化していく 15
ではどうするか? 1. 仮説を立てる 2. 顧客に価値を届ける 3. フィードバックを受け取る 4. 1.〜3.を繰り返す 16
仮説検証の繰り返しを 効果的にするには? 17
3つの道 18
第1の道:フローの高速化 19 ▌顧客に価値を届けるフローを高速化する https://itrevolution.com/the-three-ways-principles- underpinning-devops/
第2の道:フィードバックの強化 20 ▌素早いフィードバックフローの実現 https://itrevolution.com/the-three-ways-principles- underpinning-devops/
第3の道:継続的な学習と実験 21 ▌フィードバックループの継続的な短縮と強化 https://itrevolution.com/the-three-ways-principles- underpinning-devops/
第1の道:フローの高速化 22
リリース速度が遅いと? ▌顧客に価値を届けるのが遅れる ▌急激な変化に対応できない ▌1回のリリースにできるかぎり詰め込もうとしてリスクが高まる ⚫ トラブル時に切り戻しづらくなる ⚫ 原因調査も辛い ▌モチベーション的にも辛い 23
WIPの制限 ▌WIP = 進行中の作業、仕掛り ▌完了しないと顧客に提供する価値はゼロ ⚫ 完了とはリリースして顧客からなにかしらのフィードバック が得られるまで ▌マルチタスクは作業効率が落ちる ▌大きな手戻りのリスクが発生する
▌他の作業待ちのときに新しい仕事を始めたくなるけど、 それよりも遅れの原因を解決したほうがよい 24
バッチサイズを小さくする ▌バッチサイズが大きいと ⚫ フローが長くなる ⚫ WIPが多くなる ⚫ 問題発生時のリスクが大きい ⚫ 手戻りが大きい
⚫ 原因特定が大変 ▌タスクを分割する 25
カンバン ▌作業を可視化して遅れや停滞を把握する 26 https://commons.wikimedia.org/wiki/File:Simple_Task_Kanban.jpg
チーム間の作業の受け渡しを減らす ▌受け渡しが多いと ⚫ 作業が滞留する原因になりがち ⚫ 情報のコンテキストが失われがち ▌チーム間で作業の受け渡しが発生しないようにする ⚫ 自動化 ⚫
クロスファンクショナルなチーム編成 27
第2の道:フィードバックの強化 28
フィードバックが遅いと? ▌顧客に発生する問題が大きくなる ▌対応コストが増える 29
発生と同時に問題を知る ▌自動ビルド、インテグレーション、テスト ▌モニタリング 30
組織的に問題解決に当たる ▌問題の拡大を防ぐ、学習して再発防止をする ▌トヨタのアンドン 31 https://commons.wikimedia.org/wiki/File:Andon_Otomasyon_Panos u2.jpg
上流で品質を担保する ▌問題の発見が遅れるほど対応工数が増える ▌後の工程を意識して品質を作り込む ⚫ テストしやすさ ⚫ 運用しやすさ 32
レビューとペアプロ ▌チーム外に承認をもらうプロセスよりもチーム内のレビューの ほうがパフォーマンスが上がりやすい ⚫ タスクに近い人のほうが問題をよく知っている ▌ペアプロは個別に作業したときよりエラーが減るという 研究結果 ⚫ チーム内のノウハウ共有も捗る ▌最近は3人以上のモブプロもよく行われている
33
第3の道:継続的な学習と実験 34
継続的に改善しないと? ▌徐々に問題が増えていく ▌問題が致命的になってから対応すると手遅れになりがち ⚫ 本来のタスクが止まるリスク 35
失敗を非難しない文化 ▌優秀な組織はそうでない組織よりも多くの失敗を経験している ▌インシデントが発生しても純粋な原因解明と振り返りを行う ⚫ ポストモーテム ▌情報が積極的に共有されるようになる 36
日常業務を改善する習慣をつくる ▌20%ルール、ハックウィークなど ▌仕事にもっとも近いところにいる人々に問題を継続的に見つけ て改善する権限を与える ▌技術的負債の返済を評価することを示す 37
DevOpsを支える技術的プラクティス 38
自動化のメリット ▌Consistency ▌Faster Action ▌Time Saving
Consistency ▌人手で複雑な作業手順を繰り返すのは厳しい ▌一貫性のない手順はなにかしらの問題につながる ▌自動化によって一貫性が保たれる
Faster Action ▌機械は人間には不可能なタイミングと速度で実行できる ⚫ 1日1万件のテストも余裕だし24時間365日いつでも大丈夫 ▌問題の早期発見・早期対応はコスト削減につながる
Time Saving ▌コスト削減は自動化で特に強調されるバリュー ▌誰でも実行できるように自動化されるとより効果が高い ▌自動化とそのメンテナンスにもコストはかかるので注意
自動化のポイント ▌極力人間のActionが入らないようにする ⚫ 人間が実行ボタンを押すよりも特定の操作にフックして実行 する方が望ましいことが多い ▌誰でも使えるようにする ⚫ 利益の最大化 ⚫ 属人化すると負債になりやすい
自動化する時間がない? ▌自動化しないから時間がない ▌効果を実感しやすいところから少しずつ継続的に改善していく
自動テスト ▌手動テストが増えると ⚫ デプロイ頻度が下がる ⚫ バッチサイズが大きくなる ▌しかし、手動テストを単純に自動化すればいいというものでは ない ⚫ ソフトウェアに問題がないのにテストが落ちる
(false positive) 45
テストピラミッド https://watirmelon.blog/testing-pyramids/
継続的インテグレーション (Continuous Integration) ▌一日に何回もリポジトリにコードをチェックインする ▌毎回テストを含む自動ビルドが実行される
CIのメリット ▌問題の早期発見 ▌頻繁にチェックインされるようになれば差分が大きくならない ⚫ 問題発生時の原因調査が楽 ▌Success/Failの可視化によるコミュニケーション促進 ▌毎回の変更が自動テストで保証される安心感
49 https://martinfowler.com/bliki/ContinuousIntegrationCertification.html
継続的デリバリー (Continuous Delivery) ▌CIの発展形 ▌常に信頼できるリリースができる状態を保つ ▌リリースに必要な検証をデリバリーパイプラインで実現する
https://en.wikipedia.org/wiki/Continuous_delivery
継続的デリバリーのメリット ▌ビジネス側の都合のいいタイミングでリリースできる ▌リリースのコストやリスクを抑える ▌リリースまでのフローがパイプラインで可視化される ⚫ どこで問題が起きているかもすぐ分かる
リリースとデプロイの分離 ▌デプロイ:指定された環境に指定されたバージョンのソフト ウェアをインストールすること ▌リリース:すべての顧客、または一部の顧客に対して機能を利 用可能な状態にすること ▌デプロイは開発と運用の責任、リリースはビジネス側の責任
ブルーグリーンデプロイメント https://martinfowler.com/bliki/BlueGreenDeployment.ht ml
カナリアリリース https://martinfowler.com/bliki/CanaryRelease.html
まとめ 56
これから ▌共通のビジネスゴール達成のために3つの道を進んでいく ⚫ フローの高速化 ⚫ フィードバックの強化 ⚫ 継続的な学習と実験 ▌講義で話したことはごく一部 ⚫
業務をする上でもっと知りたくなってきたら参考資料を 読んでみてください 57
参考資料 ▌『The DevOps ハンドブック 理論・原則・実践のすべて』 ▌『Site Reliability Engineering』 ▌『継続的デリバリー』 58