Slide 1

Slide 1 text

構成管理ツールを用いた インフラ開発フローの改善 構成管理してるつもりだけにならない方法

Slide 2

Slide 2 text

2016-05-14 @k_hanazuki ● 2015-04 入社 ● 2016-01― 技術部インフラG Twitter: k_hanazuki GitHub: hanazuki 花月かすみ

Slide 3

Slide 3 text

2016-05-14 @k_hanazuki ● ホームページ作成サービス ○ ウェブ (PHP, MySQL, …) ○ メール, メールマガジン ○ DNS ○ ... グーペ (goope.jp)

Slide 4

Slide 4 text

2016-05-14 @k_hanazuki ● 物理サーバから プライベートクラウドへ 昨年末移設 ● ~20ロール / 35インスタンス グーペのインフラ

Slide 5

Slide 5 text

2016-05-14 @k_hanazuki 1. Puppetで構成を記述 2. Serverspecで仕様を記述 3. GitHubでレビュー 4. Droneを使ってCI 5. サーバへPuppet適用 インフラ開発フロー

Slide 6

Slide 6 text

構成管理してた つもりなんだけど……

Slide 7

Slide 7 text

2016-05-14 @k_hanazuki ● 変更のコード化を忘れる ○ 障害対応のため手動で設定変更 ○ 巻き戻って障害再発 ● コードの適用を忘れる ○ PRをマージはしたんだけど…… ○ 台数が多いとうっかり…… 課題: 構成管理と本番の差異

Slide 8

Slide 8 text

2016-05-14 @k_hanazuki ● CI環境: ベースイメージから構築 ○ 構成と仕様の一致を検査 ● 本番: 既存の環境に差分適用 ○ うまく動くとは限らない 課題: CI環境と本番の差異

Slide 9

Slide 9 text

2016-05-14 @k_hanazuki ● 本番と構成記述の差異 ● 本番とCI環境の差異 課題

Slide 10

Slide 10 text

可視化しよう!

Slide 11

Slide 11 text

2016-05-14 @k_hanazuki ● 「あるべき状態」と本番の比較 ○ Puppet ○ Serverspec コードと本番の差分の可視化

Slide 12

Slide 12 text

2016-05-14 @k_hanazuki ● 本番の状態と一致しているか ○ 構成の記述漏れ ○ 仕様の修正漏れ ○ 時間経過による状態の変化 ● 本番に適用して想定通りか 差分の可視化によりわかること

Slide 13

Slide 13 text

2016-05-14 @k_hanazuki ● 差分を可視化するダッシュボード ○ https://github.com/ hanazuki/puppet-theatre ● 毎朝始業前に結果を通知 ダッシュボード(プロトタイプ)

Slide 14

Slide 14 text

2016-05-14 @k_hanazuki

Slide 15

Slide 15 text

2016-05-14 @k_hanazuki ● パッケージ更新にいち早く気づく ● コードの質の向上 ○ 偽陽性の差分を撲滅 思わぬうれしさ

Slide 16

Slide 16 text

それ……でできるよ

Slide 17

Slide 17 text

2016-05-14 @k_hanazuki ● ブラウザ上でデプロイ設定する 機能は不要 ○ 差分の可視化に的を絞る ● Puppetと疎結合 ○ Serverspec等を統合的に扱う Puppet Dashboardとの比較

Slide 18

Slide 18 text

これから

Slide 19

Slide 19 text

2016-05-14 @k_hanazuki ● レビューフローとの統合 ○ コードの変更による本番への 影響を可視化 ● デプロイフローとの統合 ○ デプロイ時の差分, デプロイ後の差分を可視化 これから

Slide 20

Slide 20 text

2016-05-14 @k_hanazuki ● 構成の変化の可視化 = サーバ構成の監視 ● プッシュ型のコード改善フロー ● 安心感 まとめ