ドリコムのInfrastructure as code

Post on 08-Sep-2014

11.113 views 4 download

Tags:

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.