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
DevOpsって何だろう / What is DevOps?
Search
ihcomega56
July 09, 2020
Technology
3
2.4k
DevOpsって何だろう / What is DevOps?
JFrog webinar
動画はこちら!:
https://www.youtube.com/watch?v=l3AYycWpMqc&feature=youtu.be
ihcomega56
July 09, 2020
Tweet
Share
More Decks by ihcomega56
See All by ihcomega56
JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
ihcomega56
1
120
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.9k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.5k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
190
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.4k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
280
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
490
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6.3k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.6k
Other Decks in Technology
See All in Technology
リリース2ヶ月で収益化した話
kent_code3
1
310
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
10
2.3k
20250807_Kiroと私の反省会
riz3f7
0
240
全員が手を動かす組織へ - 生成AIが変えるTVerの開発現場 / everyone-codes-genai-transforms-tver-development
tohae
0
200
意志の力が9割。アニメから学ぶAI時代のこれから。
endohizumi
1
100
ZOZOTOWNの大規模マーケティングメール配信を支えるアーキテクチャ
zozotech
PRO
0
430
リモートワークで心掛けていること 〜AI活用編〜
naoki85
0
170
Lambda management with ecspresso and Terraform
ijin
2
170
Serverless Meetup #21
yoshidashingo
1
130
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
170
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.3k
Kiroでインフラ要件定義~テスト を実施してみた
nagisa53
3
370
Featured
See All Featured
Designing for Performance
lara
610
69k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Scaling GitHub
holman
461
140k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Visualization
eitanlees
146
16k
Transcript
DevOpsって何だろう 2020.07.09 JFrog webinar
自己紹介 Ayana Yokota Developer Advocate §2020年2月よりジョイン §前職までは主にバックエンドの開発 (SIer -> 広告会社
-> 証券スタートアップ) §どうぶつの森に全く飽きないことが 最近の悩み 5XJUUFS!JIDPNFHB ʮΑ͜ͳʯͱ ݺΜͰ͍ͩ͘͞ 1
DevOpsとは JFrog Platformのような 専門ツールを導入して 開発・運用を 効率化すること… 2
JFrog Platformのような 専門ツールを導入して 開発・運用を 効率化すること… DevOpsとは 3 ではない!!
DevOpsとは 顧客に価値を素早く届けるため 開発・運用が協力する 文化的な姿勢・取り組み 4
DevOpsを取り入れる前 • 開発と運用がそれぞれ独立した組織として仕事をする • 互いの理解は十分に行わず、相手の領域での作業が必要な時は 依頼をする 開発 運用 本番環境で不具合が出たので 調査してください
依頼 依頼 指定した時刻・サーバーの ログをください 5
DevOpsを取り入れる前 6 開発 • 運用の協力なくしてはデプロ イができないため、作ったも のを出したいときに出せない • 本番環境で起きていることの 把握が不十分になるため問題
に気付きづらい 運用 • 運用上の考慮が不十分なソフ トウェアを管理しなくてはな らない • 問題が起きてもソフトウェア の詳細が分からないため自力 で解決することができない
DevOpsを取り入れる前 7 開発 • 運用の協力なくしてはデプロ イができないため、作ったも のを出したいときに出せない • 本番環境で起きていることの 把握が不十分になるため問題
に気付きづらい 運用 • 運用上の考慮が不十分なソフ トウェアを管理しなくてはな らない • 問題が起きてもソフトウェア の詳細が分からないため自力 で解決することができない 遅くて不正確 X ストレス
昔の「正しい姿」、今はどうか? • かつては開発と運用が別々に作業することが当たり前だった 8 ಉ͡ձࣾʹ͍Δͷʹɺ ։ൃͱӡ༻͕ରཱͯ͠ ͍Δ͜ͱʜ
昔の「正しい姿」、今はどうか? • 今や時代も使える武器も大きく変化した 9
DevOpsを取り入れた後 •Developers(開発)とOperations(運用)が協業する 開発 運用 10 ։ൃͱӡ༻͔Βऔͬͨ จࣈΛΈ߹Θͤͯ ʮ%FW0QTʯͰ͢
DevOpsを取り入れた後 開発・運用 • 予め運用への影響を考えたソフトウェアを開発・運用できる • 適切な担当者(詳しい人)が本番環境にアクセスしトラブルシューティン グやモニタリングができる • インフラやツールの自動化・情報やリソースの共有により、各自が必 要な時に必要なものにアクセスしやすい
11
DevOpsを取り入れた後 開発・運用 • 予め運用への影響を考えたソフトウェアを開発・運用できる • 適切な担当者(詳しい人)が本番環境にアクセスしトラブルシューティン グやモニタリングができる • インフラやツールの自動化・情報やリソースの共有により、各自が本 当に必要なものに必要な時にアクセスしやすくなる
素早く 自発的な改善 12
DevOpsとは(改めて) 13 顧客に価値を素早く届けるため 開発・運用が協力する 文化的な姿勢・取り組み
DevOpsとは…? 14 ݁ہԿͨ͠Β ͍͍ΜͩΖ͏
DevOpsを支える柱 15 文化 ツール ベスト プラクティス 参考: https://jfrog.com/devops-tools/what-is-devops/ ղऍʹ৭ʑ͋Γ·͢ ྫ͑ʰ&GGFDUJWF
%FW0QTʱ Ͱগ͠ҟͳΔͭͷப͕ ॏཁͱઆ͍͍ͯ·͢
DevOpsを支える柱 • 始めからすべてに取り掛かる必要はないが、最終的にはすべて 達成することを目指す • 他社の事例やベストプラクティスの真似、ツールの導入をすれ ば終わりというものではない 16 ࢝Ίʹ͑ͨ ؒҧͬͨ%FW0QTͷղऍ
ͦΕ͚ͩͩͱΓͳ͍ ͱ͍͏Θ͚Ͱ͢Ͷ
文化 • 開発と運用がひとつのチームで働く • 自動化、コミュニケーション、協力を促進する • 早い段階でのフィードバックと継続的な学習をしながらトライ アンドエラーができる • どのチームにも責任を果たすことを重んじるが、何かあっても
互いに非難はしない 17 ϛεىͬͯͨ͜ΓલͳͷͰ͢ େࣄͳͷى͖ͨ࣌ʹͲ͏͢Δ͔Ͱ ୭ͷ͍͔ͤͰ͋Γ·ͤΜ
ツール • ソースコード管理ツール • CI/CDパイプライン • テストツール • 設定の管理やデプロイを支えるツール •
バイナリ管理ツール • モニタリングツール • セキュリティ対策ツール • コラボレーションツール(チャットやバグトラッキングなど) 18 ࣍ͷΣϏφʔͰ σϞΛ͓ݟͤ͠·͢ʂ
ベストプラクティス 19 ベストプラクティス 理由や補足説明 何でもバージョン管理しよう コードだけでなく、設定ファイル、パラメーターの類など システムに関連するものはすべて管理する インフラの変更もアジャイルに行おう ソフトウェアだけでなくインフラも同じように管理し、 いつでもテストで品質を担保できる状態にする
何でも自動化しよう マニュアルオペレーションはミスの温床となるしスケールしない ため、デプロイやテストなどは自動化してCI/CDに組み込む 継続的インテグレーション・ デプロイ・デリバリーを実現しよう 開発環境から本番環境までソフトウェアの提供はCI/CDを 用いる。途中で問題が起きても素早くリカバリできるようにする 統一されたツール・プラットフォームを 採用しよう 開発、ステージング、本番どの環境でもできるだけ同じツール、 設定、ハードウェアリソースを使う。それにより、開発時に 動いたものが他の環境でも正常に動作することを保証する
それぞれの柱を深堀りする方法 • 既にたくさんある書籍・ブログ・スライドなどを活用して見識 を深めよう • 例えば文化や組織は経験を積めば雰囲気で改善していけると捉 えられることもあるが、科学的な理論や方法論もたくさんある • 現場の生の声を聞くことも有効である。エンジニアにとって、 個人ブログ、技術コミュニティ、SNSなどは大事な勉強の材料
と言える • 知識を身につけたら満足するのではなく、実行してみる。そし て、実行してみて気付いたことや感じたことを発信すると頭が 整理される上に新たな情報を得るチャンスとなる 20
それぞれの柱を深堀りする方法 • DevOpsがきっかけで学習する場合も、参考にする資料は DevOpsを謳っていないもので良い。次のようなキーワードか ら辿ってみると色々見つかる 21 文化 ツール • アジャイル
• リーン • スクラム • エンジニアリング組織 • エンジニアリングマネージャー • チームビルディング • CI/CD • Infrastructure as Code • 具体的なツール名(Git, Docker, Kubernetesなど) • ベンダー名 ϕετϓϥΫςΟε ྻͷ߹ΘٕͤͰ ͖ͬͱݟ͔ͭΓ·͢ 上記はあくまで「一体何から調べたらいいの!?」という方向けの参考。情報の見つけ方は徐々に上達するし、 段々とトピック同士の関連も分かるようになってくるので焦りは禁物。
取り組みが上手くいっているかの点検 • DevOpsの成果や成熟度は次のような指標で測ることができる • 3つの柱すべてを満たしていない状態で数字だけに着目しても 意味がない • チームに合った軸を設けて点検していくことが大事である 22 リードタイム
リカバリタイム デプロイの頻度 変更の失敗率 コーディングから 本番環境への リリースまで どのくらいかかるか 本番環境で 問題が起きた時 サービスの復旧に どのくらいかかるか 本番環境に 何回リリースしたか リリースを行い 変更を反映した際に 何回失敗したか
DevOpsの先へ: DevSecOps •Securityも共に歩む 開発 運用 23 セキュ リティ
DevOpsの先へ 開発 運用 24 セキュ リティ QA 社内IT (情シス)
DevOpsの先へ • 「別々のチームで別々の目標を見ていた人たちが協力すること でメリットを享受する」という考え方は他にも適用できる • 組織の構造や課題によって応用の仕方を変えてみる 25
DevOpsを取り入れるにあたって • DevOpsは目的ではなく手段のひとつである • DevOpsの導入ですべての課題がすぐ解決するわけではない • 目指すものは顧客に素早く価値を提供し続けることであり、開 発に関わる全員の最終的なゴールをそこに据える必要がある • 会社や部署といったなるべく大きな単位で志したほうが、所謂
「エラい人」の説得コストが減って嬉しい • 実現の仕方はチームによって大きく異なる • 改善し続けることが大切なので、終わりはない 26
なんだか大変そう… 27 ࣗʹ Ͱ͖Δͷ͔ͳ ্࢘Λઆಘͯ͠ ৫Λม͑ͳ͍ͱ ͍͚ͳ͍ͷʁ ͨ͘͞Μ ษڧ͠ͳ͍ͱ ͍͚ͳ͍ͷʁ
ۤ࿑ͯ͠ औΓΉ Ձ͋Δͷʁ ձࣾͱ͔৫ͱ͔ ݴΘΕͯࢲʹ ՙ͕ॏ͍Αʜ
簡単ではないけど価値がある • エンジニア個人にとっても嬉しい • • • • • • •
• 嬉しいと感じられそうなところから取り入れていけば良い • 28 ͍͚͠Ͳ৽͍͜͠ͱʹ νϟϨϯδ͢Δͷ͕ ͖ͳํʹͽͬͨΓͰ͢
まずは考え、少しずつ広げる 29 ݸਓͰ ߟ͑ͯΈΔ ࠓ͋Δ՝Կ͔ʁ Ͳ͏ͳͬͯཉ͍͔͠ʁ ݸਓͰ ࣮ߦͯ͠ΈΔ ୭͔ͱ ߟ͑ͯΈΔ
ͯ͠ΈΔ νʔϜͰ ߟ͑ͯΈΔ ͯ͠ΈΔ ୭͔ͱ ࣮ߦͯ͠ΈΔ νʔϜͰ ࣮ߦͯ͠ΈΔ 『カイゼン・ジャーニー』 『チーム・ジャーニー』
30 Thank you
参考文献 • Jennifer Davis, Ryn Daniels『Effective DevOps ―4本柱による持続可能な組織文化の育て方』(オライ リー・ジャパン) •
Gene Kim, Jez humble, John Willis, Patrick Debois『The DevOps ハンドブック 理論・原則・実践 のすべて』(日経BP) • 「What is DevOps?」https://jfrog.com/devops-tools/what-is-devops/ • 「DXとかDevOpsとかのなんかいい感じのやつ」https://www.slideshare.net/TokorotenNakayama/dxdevopstechlive 31