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.2k
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
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.7k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.1k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
120
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.2k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
220
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
410
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
5.7k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.4k
元現場エンジニアが思う「もっとこうしておけばよかった」から学ぶDevSecOps / DevSecOps Best Practices learned from my experiences
ihcomega56
1
470
Other Decks in Technology
See All in Technology
Functional TypeScript
naoya
7
3k
#Zenoh 完全に理解した 〜組込み純情篇〜
takasehideki
1
450
RAGHack: Building RAG apps in Python
pamelafox
0
120
Oracle Database 23ai 新機能 #3 Oracle Globally Distributed Database(GDD)
oracle4engineer
PRO
1
160
LLM を現場で評価する
asei
4
690
デジタル化・DX推進あるある
y150saya
0
230
Azure SQL Database Hyperscale HA レプリカの監視
sansantech
PRO
0
210
Building Static Websites with Sculpin
opdavies
0
1.5k
日経電子版から始まった内製開発の現在地と向き合っている課題/inhouse
nishiuma
0
240
自社サービスのための独自リリース版Redmine「RedMica」の取り組み
vividtone
0
770
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
39k
ことばをそろえる / Bridging the Terminology Gap
amaotone
5
1k
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1029
450k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
34
1.9k
A designer walks into a library…
pauljervisheath
201
24k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.2k
Into the Great Unknown - MozCon
thekraken
28
1.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Scaling GitHub
holman
458
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Mobile First: as difficult as doing things right
swwweet
220
8.8k
[RailsConf 2023] Rails as a piece of cake
palkan
44
4.6k
Thoughts on Productivity
jonyablonski
65
4.2k
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