ドリコムのInfrastructure as code
-
Upload
yosuke-hiraishi -
Category
Technology
-
view
11.113 -
download
4
description
Transcript of ドリコムのInfrastructure as code
Copyright Drecom Co., Ltd. All Rights Reserved. 1
ドリコムのInfrastructure as Code
2014.05.23最新インフラエンジニア技術勉強会
Copyright Drecom Co., Ltd. All Rights Reserved. 2
名前 ひらしー ( とか狂犬?とか ) 出身 : グンマー
所属 サービス基盤本部 サービス基盤部 インフラグループ
職種 インフラエンジニア
Copyright Drecom Co., Ltd. All Rights Reserved. 3
⁃ ドリコムのインフラ規模
⁃ Chef 運用
⁃ コード管理
⁃ テスト駆動インフラ
Copyright Drecom Co., Ltd. All Rights Reserved. 4
ドリコムのインフラ規模
⁃ 1 日の全アプリ合計 PV
⁃ 1 日の全アプリ合計 DAU1億以上
100万以上
Copyright Drecom Co., Ltd. All Rights Reserved. 5
ドリコムのインフラ規模
⁃ サーバ台数
ホスティング
クラウド
約 300 台
約 1000 台
Copyright Drecom Co., Ltd. All Rights Reserved. 6
ドリコムのインフラ規模
⁃ サーバ台数
1 ヶ月の増加台数
約 30 台~ 50 台
Copyright Drecom Co., Ltd. All Rights Reserved. 7
ドリコムのインフラ規模
⁃ 上記サーバを診るインフラエンジニア
Copyright Drecom Co., Ltd. All Rights Reserved. 8
ドリコムのインフラ規模
3 人
Copyright Drecom Co., Ltd. All Rights Reserved. 9
ドリコムのインフラ規模
少人数で早く正確なインフラを回すには?
Copyright Drecom Co., Ltd. All Rights Reserved. 10
⁃ ドリコムのインフラ規模
⁃ Chef 運用
⁃ コード管理
⁃ テスト駆動インフラ
Copyright Drecom Co., Ltd. All Rights Reserved. 11
Chef の運用方法
米国 Chef 社 ( 旧 : Opscode 社 ) が開発オープンソースとして公開されている
サーバの構成管理を行うフレームワーク
Copyright Drecom Co., Ltd. All Rights Reserved. 12
Chef の運用方法
⁃ 特徴Ruby で書ける ( 内部 DSL)
べき等性という考え方
Ruby エンジニアが多いため、 構築状況が共有しやすい
Copyright Drecom Co., Ltd. All Rights Reserved. 13
Chef の運用方法
何度実行しても” nginx.conf.src” という Chef 管理のファイルと等しくなるべき
べき等性に沿った記述
Copyright Drecom Co., Ltd. All Rights Reserved. 14
Chef の運用方法
Chef-ServerChef-Solo
Copyright Drecom Co., Ltd. All Rights Reserved. 15
Chef の運用方法
Chef-Server 構成※Chef 社公式サイトから引
用
Copyright Drecom Co., Ltd. All Rights Reserved. 16
Chef の運用方法
Chef-Solo 構成※Chef 社公式サイトから引
用
Copyright Drecom Co., Ltd. All Rights Reserved. 17
Chef の運用方法
Chef-ServerChef-Solo
Copyright Drecom Co., Ltd. All Rights Reserved. 18
Chef の運用方法
⁃ Why 以前は Chef-Server 構成だったが
クライアント 100 台を超えたあたりから CouchDB がボトルネックになった※Chef11 から PostgreSQL が採用された
Chef-Server と Chef-Client 連携による定期的収束を既存サーバに適用できなかった
Copyright Drecom Co., Ltd. All Rights Reserved. 19
Chef の運用方法
⁃ Why プロビジョニング処理とサーバ情報の取得
という観点では Chef-Server が必要ない
現状 Chef-Solo とシェルスクリプト
の組み合わせで十分
Copyright Drecom Co., Ltd. All Rights Reserved. 20
Chef の運用方法
ドリコムの Chef 開発フロー
Copyright Drecom Co., Ltd. All Rights Reserved. 21
Chef の運用方法
レシピの開発
Copyright Drecom Co., Ltd. All Rights Reserved. 2222
CI
DC
DC
DC
本番環境インフラメンバ
git push
Chef の運用方法
Copyright Drecom Co., Ltd. All Rights Reserved. 23
Chef の運用方法
GitLab
Copyright Drecom Co., Ltd. All Rights Reserved. 2424
CI
DC
DC
DC
本番環境
GitLab
Chef の運用方法
インフラメンバ
Copyright Drecom Co., Ltd. All Rights Reserved. 25
Chef の運用方法
Jenkins
Copyright Drecom Co., Ltd. All Rights Reserved. 26
Chef の運用方法
Vagrant
vagrant snapshot back
OS インストール直後のスナップショット
vagrant provision
Chef の実行
Copyright Drecom Co., Ltd. All Rights Reserved. 27
Chef の運用方法
Foodcritic
Copyright Drecom Co., Ltd. All Rights Reserved. 28
Chef の運用方法
serverspec
nginx の状態をテストする例
Copyright Drecom Co., Ltd. All Rights Reserved. 2929
CI
DC
DC
DC
本番環境
GitLab
Jenkins Vagrant
Chef の運用方法
インフラメンバ
Copyright Drecom Co., Ltd. All Rights Reserved. 3030
CI
DC
DC
DC
本番環境
GitLab
Jenkins Vagrant
Chef の運用方法
インフラメンバ
Copyright Drecom Co., Ltd. All Rights Reserved. 3131
CI
DC
DC
DC
本番環境インフラメン
バ
GitLab
Jenkins Vagrant
Chef の運用方法
git push
Copyright Drecom Co., Ltd. All Rights Reserved. 3232
CI
DC
DC
DC
本番環境インフラメン
バ
GitLab
Jenkins Vagrant
Chef の運用方法
Copyright Drecom Co., Ltd. All Rights Reserved. 33
Rundeckホスト名や IP アドレスを正規表現で検索
Chef の運用方法
Zabbix-API にて取得済のホスト情報
Copyright Drecom Co., Ltd. All Rights Reserved. 34
Rundeck
ホスト毎の実行結果
Chef の運用方法
Copyright Drecom Co., Ltd. All Rights Reserved. 3535
CI
DC
DC
DC
本番環境インフラメン
バ
GitLab
Jenkins Vagrant
Chef の運用方法
Copyright Drecom Co., Ltd. All Rights Reserved. 36
⁃ ドリコムのインフラ規模
⁃ Chef 運用
⁃ コード管理
⁃ テスト駆動インフラ
Copyright Drecom Co., Ltd. All Rights Reserved. 37
コード管理
3つの「○○ Driven
Infrastracture 」
Copyright Drecom Co., Ltd. All Rights Reserved. 38
コード管理
Issue Driven Infrastructure
Copyright Drecom Co., Ltd. All Rights Reserved. 39
コード管理
Pull Request Driven Infrastructure
Copyright Drecom Co., Ltd. All Rights Reserved. 40
コード管理
マサカリ Driven Infrastructure
Copyright Drecom Co., Ltd. All Rights Reserved. 41
⁃ ドリコムのインフラ規模
⁃ Chef 運用
⁃ コード管理
⁃ テスト駆動インフラ
Copyright Drecom Co., Ltd. All Rights Reserved. 42
テスト駆動インフラ
テスト項目書 作業手順書
インフラ作業といえば…
Copyright Drecom Co., Ltd. All Rights Reserved. 43
テスト駆動インフラ
serverspec で作業項目を記載
GitLab を使ってコードレビュー
開発環境で実行・テスト
本番環境で実行・テスト
Copyright Drecom Co., Ltd. All Rights Reserved. 44
44
テストシナリオ (yaml)
drecom-serverspec実行する serverspec ファイルパス
テスト対象ホスト
テスト駆動インフラ
Copyright Drecom Co., Ltd. All Rights Reserved. 45
45
drecom-serverspec
テスト結果 ( コマンド出力 )
テスト項目 (describe)テスト対象サーバ
テスト駆動インフラ
Copyright Drecom Co., Ltd. All Rights Reserved. 46
まとめ
Copyright Drecom Co., Ltd. All Rights Reserved. 47
少人数で早く正確なインフラを回すには?
Copyright Drecom Co., Ltd. All Rights Reserved. 48
⁃ 早
⁃ 正確
Chef によるプロビジョニング自動化
CI ツールと serverspec によるテスト自動
化
PDCA サイクルによる品質管理
Copyright Drecom Co., Ltd. All Rights Reserved. 4949
PlanDoCheckAction
Chef,serverspec のコードレ
ビューChef,Rundeck による実行
serverspec 実行
Chef,serverspec コード修正
Copyright Drecom Co., Ltd. All Rights Reserved. 50
その他雑感
Copyright Drecom Co., Ltd. All Rights Reserved. 51
⁃ Chef-Server Chef-Server を有効に活用できている事例ってあ
る?
⁃ Rundeck リモートサーバのオペレーション管理が便利すぎるのに無名
Copyright Drecom Co., Ltd. All Rights Reserved. 52
ご静聴ありがとうございました! !
Copyright Drecom Co., Ltd. All Rights Reserved. 53
会社概要
社名:証券コード:本社:
電話番号:社員数:設立年月日:資本金:
事業内容:
株式会社ドリコム3793 東証マザーズ〒 153-0064東京都目黒区下目黒1丁目 8-1 アルコタワー 17FTEL:03-6682-5700 FAX:03-6682-5711239 名 (正社員・契約社員のみ)2001年 11 月 13 日1,124百万円(2014年 3 月末現在 )
ソーシャルゲーム事業ソーシャルラーニング事業アドソリューション事業
Copyright Drecom Co., Ltd. All Rights Reserved.