【読書メモ】DevOps教科書(part.2)
2016−07−02 DevOps -A Software Architect's Perspective
これ読んだ
- 作者: レン・バス,インゴ・ウェーバー,リーミン・チュー,長尾高弘
- 出版社/メーカー: 日経BP社
- 発売日: 2016/06/15
- メディア: 単行本
- この商品を含むブログを見る
長いので分割、第2部
Oveview
- DevOpsを実践すべきシステムアーキテクトに向けたノウハウ
- 特に重要な章
- 4章:ビルド・テスト
- 5章:デプロイ
- 6章:モニタリング
- 9章:非機能要件
Part1: Background
Chapter1.What Is DevOps?
本に数式を1つ入れるたびに売り上げが半分になると言われたので、数式は全く入れないことにした。 --スティーブン・ホーキング ※専門的な言葉ではなく、まずは一般的な言葉で理解しよう
In a nutshell
- DevOpsとは、必要とされる要因と目標とは、目標を達成するためにどうしていくのか
Conclusion
- DevとOpsの共通の目標とは?
- デプロイまでの時間を削減すること
- ビジネスアイデアを最終的にユーザが利用できるように
- DevOpsがかかえる課題
- チーム構造、アーキテクチャ、運用の方法など、現行に及ぼす影響が大きい
- DevOpsのトレードオフ
- DevOpsツールのサポートが必要
- ITProとDeveloperの職務分掌
- 障害解析を開発に任せる、など
Chapter2. The Cloud as a Platform
コンピュータ業界は、女性のファッションよりもファッションに左右される唯一の業界だ オレンジが新しいピンクなら、私たちはオレンジのブラウスを作る だから、私たちはクラウドコンピューティングの発表をする、このことで争うつもりはない --ラリー・エリソン ※なぜクラウドなのかを言い争うまでもなく、クラウドで作ろう
In a nutshell
- クラウドの仕組み
Conclusion
- クラウドの利用によって素早くスケーリングができる
- ユーザ数が増えたらリソースを増やす
- 需要が下がればリソースを解放
- 分散コンピューティングがかかえる課題
- IPアドレスの操作
- 個別のコンポーネントの障害
- 状態情報を管理
- 異常に時間のかかっている要求を認識して復旧する
- 運用の立場では増殖するVMの管理方法の確保
Chapter3. Operations
DevOpsコミュニティには、優れた頭脳の持ち主が数人いる。 彼らは、IT管理とは何かがわかっていて、DevOpsの枠の中でITILを上手く使える。 そして他の人々は、彼らよりも現実をしっかり把握できずにいる。 --ロブ・イングランド ※DevOpsを理解するために、運用を理解しよう
In a nutshell
- 運用の全体像
Conclusion
- ITIL
- 運用のアクティビティについて一般的なガイダンス
- HW/SWの用意
- サービスデスクや技術エキスパートの提供
- 日常的なITサービスの用意
- 具体的ではなく一般的、どのように勧めるべきか
- 例えば、
- 「Xを目標としてAを計測する」、ではなく
- 「Xを目標としてXを決められるような計測値を選ぶ」
- 運用のアクティビティについて一般的なガイダンス
- DevOpsが運用に与える影響
- 企業のタイプや採用されるDevOpsの実践による
- 企業活動は、企業のために戦略的な目標を満足させるべきで、様々な改善が必要
- DevOpsの実践は、運用のサービスの一部にインパクトを与え、それらを改善するメカニズムを提供する
- DevOpsとITILの関係
Part2: Deployment Pipeline
Part3: Crosscutting Concerns
(横断的な関心ごと)
Chapter7. Montoring
まず、事実をつかめ そのあとで暇になった時に事実を歪めていけばよい --マーク・トウェイン ※何かをするために、何が起きているかを把握しよう
In a nutshell
- システムのデータ収集・処理・解釈、エラー検知・修復、パフォーマンス問題の予測
Introduction
- 様々なレベルでの計測値の収集
- 集めた計測値の分析とグラフ化
- ログ収集
- システムの健全性についてのアラート
- ユーザとのやり取りの計測
- モニタリングから得られる洞察
- エラー:実行時と事後検証時
- パフォーマンス:システム個別、相互作用するシステム全体
- ワークロード:短期的/長期的なキャパシティプランニング
- ユーザ:様々なタイプのIFや商品に対するユーザの反応
- セキュリティ:侵入者の検知
- モニタリング
- システムの状態変化やデータフローを、観察・記録するプロセスのこと
- 状態変化は、状態の直接的な計測のほか、状態に影響を与える更新を記録するログでもOK
- データフローは、内部コンポーネントと外部システムの両端の要求と応答をログに残せば捕まえられる
- この章では、DevOpsにより新たに生まれた特徴や課題にポイントを絞る
Conclusion
- モニタリングの目的(少なくとも5つ)
- 障害検知
- パフォーマンス診断
- キャパシティプランニング
- ユーザの反応
- 侵入検知
- モニタリングシステム
- 継続的デプロイを採用後は、変更の頻度が上がる
- ログや計測値の量が非常に増えるため、データの収集・転送・格納をサポートする新しいインフラストラクチャが必要
- 大量のデータを集めたら、ビッグデータアナリティクスで分析
- システムの健全性やパフォーマンスにとどまらず、ビジネスや顧客についての洞察も可能
Chapter8. Security and Audits
過ちは人の常、本気で破滅したければルートのパスワードが必要だ --アノニマス
In a nutshell
- セキュリティの水準を評価する監査者の視点
- デプロイパイプラインの保護の視点
- 悪意のある場合、悪意なく偶然の場合の両観点で
Chapter9. Oter xxxilities
(***)
Chapter10. Business Considerations
In a nutshell
- DevOpsを実践するための、ビジネスの面
- 採用すべき計測のタイプ
- 段階的な採用のためのアプローチ
- DevOpsのビジネスプランを立てるための方法
Conclusion
- DevOps実践を導入するには、経営層の支援が必要、メリットを説得できる支援者が必要
- 通常の方法は、ビジネスケースを作ること
- コスト、メリット、リスクと緩和策、ロールアウトスケジュール、成功の基準
- 採用プロセスが軌道に乗ったら、どれくらい成功したかを計測する方法も必要
Part4: Case Studies
Chapter11. Supporting Multiple Datacenters
--
In a nutshell
- 2つのデータセンターの同期を取る方法
Conclusion
Chapter12. Implementing a Continuous Deployment Pipeline for Enterprises
--
In a nutshell
- 大企業に対するDevOps導入の指導内容
Conclusion
Chapter13. Migrating to Microservices
--
In a nutshell
- 古いシステムへのMSAの導入方法
Conclusion
Part5: Moving Into the Future
Chapter14. Operations as a Process
--
In a nutshell
- ログから個別のプロセスモデルを作り、そのモデルを使ってプロセスのエラー検知、診断、修復を進める
Conclusion
Chapter15. The Future of DevOps
--
In a nutshell
- 組織構造、プロセス定義、テクノロジーの、5年間の変化予想