Upgrade to Pro — share decks privately, control downloads, hide ads and more …

構成管理してるつもりだけにならない方法

 構成管理してるつもりだけにならない方法

構成管理ツールを用いたインフラ開発フローの改善
at Pepabo Tech Conference #5
http://pepabo.connpass.com/event/30348/

Kasumi Hanazuki

May 14, 2016
Tweet

More Decks by Kasumi Hanazuki

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 可視化しよう!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 2016-05-14 @k_hanazuki

    View Slide

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

    View Slide

  16. それ……でできるよ

    View Slide

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

    View Slide

  18. これから

    View Slide

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

    View Slide

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

    View Slide