DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する
DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)
翔泳社
著者:河村聖悟、北野太郎、中山貴尋、日下部貴章、株式会社リクルートテクノロジーズ
はじめに
CHAPTER 1 DevOpsを知る
1-1 DevOps登場の背景
1-1-1 DevOpsが誕生するまでの背景
1-1-2 アジャイル開発による継続的な開発への変化
1-1-3 継続的な開発によって見えてきた運用課題
1-1-4 DevOpsの誕生と歴史
1-1-5 まとめ
1-2 DevOpsを知る
1-2-1 目的は迅速にビジネスニーズに応えること
1-2-2 PDCAサイクルとDevOps
1-2-3 抽象化
1-2-4 自動化
1-2-5 共通化
1-2-6 継続的インテグレーション
1-2-7 モニタリング
1-2-8 目的意識・共感・自律的思考
1-2-9 まとめ
1-3 組織とDevOps
1-3-1 DevOpsで組織・チームのどんな課題に対応するか?
1-3-2 コンウェイの法則
1-3-3 まとめ
CHAPTER 2 DevOpsを個人で始める
2-1 DevOpsでできることを小さく始めていく
2-2 個人からも実現できるDevOps
2-2-1 どこに着目するか?
2-2-2 ローカル開発環境の構築
2-3 個人環境からチーム環境へ持っていくための準備
2-3-1 Vagrantによるローカル開発環境のInfrastrucuture as Code化
2-3-2 Ansibleで構築作業をより汎用化にし、他環境へ展開する
2-3-3 Serverspecでインフラ構築のテストをコード化する
2-3-4 Gitを用いて必要な構成情報をチームに共有できるようにする
2-3-5 Infrastrucuture as CodeとDevOpsのゴール
CHAPTER 3 DevOpsをチームに広げる
3-1 DevOpsをチームに展開することの意義
3-2 チームで行う作業効率化
GitHubでチーム開発を行う
Dockerを利用して開発をさらに効率的に進める
Jenkinsを利用して作業を管理する
継続的インテグレーション(CI)と継続的デリバリ(DI)でリリースの最適化を行う
3-3 チームでDevOpsに取り組むことで得られること
CHAPTER 4 DevOpsのために仕組みを変える
4-1 DevOpsを中心に仕組みを変えていく
4-2 アプリケーション・アーキテクチャを変える
4-2-1 The Twelve-Factor App
4-2-2 マイクロサービスアーキテクチャ
4-3 インフラ・アーキテクチャを変える
4-3-1 Immutable Infrastructureによる効率的なインフラ管理
4-3-2 Blue-Green Deploymentでサービスを切り替える
4-3-3 オンプレミス vs パブリッククラウド
4-3-4 SaaS(Software as a Service)
4-3-5 ログ収集と分析
4-4 チームを変える
(アジャイル開発, チケット駆動開発, SRE, ChatOps)
4-5 DevOps化されたチームができること
4-5-1 障害対応
4-5-2 継続的インテグレーション/デリバリの実現
4-5-3 パフォーマンスチューニング
4-5-4 開発担当と運用担当の協力体制の構築
CHAPTER 5 実践・Infrastructure as Code
5-1 実践 継続的インテグレーション・継続的デリバリ
5-1-1 継続的インテグレーション・継続的デリバリの構成要素と連携
5-1-2 GitHubとSlackの連携:GitHubのイベントをSlackに通知する
5-1-3 GitHubとJenkinsの連携:git pushしたら処理が動く
5-1-4 JenkinsとSlackの連携:ジョブのイベントをSlackに通知する
5-1-5 JenkinsとAnsibleの連携:ジョブによりインフラの構築を行う
5-1-6 JenkinsとServerspecの連携:ジョブによりインフラのテストを行う
5-1-7 GitHubからJenkinsによるプロビジョニングを繋げる
5-1-8 継続的インテグレーション/デリバリで開発・構築・テストをひとつにする
5-1-9 より実践的な構成にするために
5-2 実践 ELKスタック(Elasticsearch, Logstash, Kibana)
5-2-1 ELKスタックの構成要素と連携
5-2-2 ELKスタックの構築
5-2-3 アクセスログを可視化する
5-2-4 可視化がDevOpsを身近にする
5-3 実践 Immutable Infrastructure
5-3-1 Immutable Infrastructureを実現する要素とリリースフロー
5-3-2 CloudFormationを利用して基本となる環境を構築する
5-3-3 Blue-Green Deploymentを利用したリリースを行う
5-3-4 障害発生時にインフラを切り替える
5-3-5 さらに実践的な構成にするために
5-3-6 Immutable Infrastructureがインフラの利用を根本的に変えていく
CHAPTER 6 組織とチームの壁を越えるDevOps
6-1 DevOpsを伝える事の難しさ
6-2 DevOpsを組織に導入する
6-2-1 新しい組織にDevOpsを適用する
6-2-2 既存の組織にDevOpsを適用する
6-2-3 DevOps導入のアンチパターン
6-2-4 DevOpsを導入する組織体制のベスト・プラクティスはあるのか?
6-3 チームで作り上げるDevOps
INDEX