SlideShare a Scribd company logo
1 of 53
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日の全アプリ合計DAU
1億以上
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-Server
Chef-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-Server
Chef-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. 22
22
CI
DC
DC
DC
本番環境
インフラメンバ
git push
Chefの運用方法
Copyright Drecom Co., Ltd. All Rights Reserved. 23
Chefの運用方法
GitLab
Copyright Drecom Co., Ltd. All Rights Reserved. 24
24
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. 29
29
CI
DC
DC
DC
本番環境
GitLab
Jenkins Vagrant
Chefの運用方法
インフラメンバ
Copyright Drecom Co., Ltd. All Rights Reserved. 30
30
CI
DC
DC
DC
本番環境
GitLab
Jenkins Vagrant
Chefの運用方法
インフラメンバ
Copyright Drecom Co., Ltd. All Rights Reserved. 31
31
CI
DC
DC
DC
本番環境
インフラメン
バ
GitLab
Jenkins Vagrant
Chefの運用方法
git push
Copyright Drecom Co., Ltd. All Rights Reserved. 32
32
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. 35
35
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. 49
49
Plan
Do
Check
Action
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 アルコタワー17F
TEL:03-6682-5700 FAX:03-6682-5711
239名 (正社員・契約社員のみ)
2001年11月13日
1,124百万円
(2014年3月末現在)
ソーシャルゲーム事業
ソーシャルラーニング事業
アドソリューション事業
Copyright Drecom Co., Ltd. All Rights Reserved.

More Related Content

What's hot

AWSインスタンス設定手順書
AWSインスタンス設定手順書AWSインスタンス設定手順書
AWSインスタンス設定手順書iret, Inc.
 
Cloudera impala
Cloudera impalaCloudera impala
Cloudera impala外道 父
 
AutoScale×ゲーム ~運用効率化への取り組み~
AutoScale×ゲーム ~運用効率化への取り組み~AutoScale×ゲーム ~運用効率化への取り組み~
AutoScale×ゲーム ~運用効率化への取り組み~Takashi Honda
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
Webアプリケーションは難しい
Webアプリケーションは難しいWebアプリケーションは難しい
Webアプリケーションは難しいTakafumi ONAKA
 
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜Drecom Co., Ltd.
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたDrecom Co., Ltd.
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例gree_tech
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テストTakahiro Moteki
 
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについてインフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについてToshiaki Baba
 
Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-
Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-
Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-賢 秋穂
 
ペネトレーションツール Penetratorご紹介
ペネトレーションツール Penetratorご紹介ペネトレーションツール Penetratorご紹介
ペネトレーションツール Penetratorご紹介Bluestar Corporation
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introductionTaiji Tsuchiya
 
プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)
プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)
プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)Yasushi Osonoi
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
VIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCIVIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCItetsusat
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018Yoshio Terada
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Takashi Honda
 

What's hot (20)

AWSインスタンス設定手順書
AWSインスタンス設定手順書AWSインスタンス設定手順書
AWSインスタンス設定手順書
 
Cloudera impala
Cloudera impalaCloudera impala
Cloudera impala
 
AutoScale×ゲーム ~運用効率化への取り組み~
AutoScale×ゲーム ~運用効率化への取り組み~AutoScale×ゲーム ~運用効率化への取り組み~
AutoScale×ゲーム ~運用効率化への取り組み~
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Webアプリケーションは難しい
Webアプリケーションは難しいWebアプリケーションは難しい
Webアプリケーションは難しい
 
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみた
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
VyOSでMPLS
VyOSでMPLSVyOSでMPLS
VyOSでMPLS
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについてインフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
 
activerecord-turntable
activerecord-turntableactiverecord-turntable
activerecord-turntable
 
Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-
Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-
Chefのエンタープライズ事例 ossミドルウェアスタックishigakiテンプレートにおける事例-
 
ペネトレーションツール Penetratorご紹介
ペネトレーションツール Penetratorご紹介ペネトレーションツール Penetratorご紹介
ペネトレーションツール Penetratorご紹介
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introduction
 
プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)
プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)
プレゼン インフラエンジニア、アプリ開発者集まれ!今注目のクラウド 「Bluemix」、「soft layer」をはじめよう!(OSC福岡2015)
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
VIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCIVIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCI
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割
 

Viewers also liked

Simple Energy Brand Book
Simple Energy Brand BookSimple Energy Brand Book
Simple Energy Brand BookBrooke Webster
 
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet Yusuke Kawasaki
 
エンジニア生存戦略
エンジニア生存戦略エンジニア生存戦略
エンジニア生存戦略Drecom Co., Ltd.
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクションzaki4649
 
人と向き合うプロトタイピング
人と向き合うプロトタイピング人と向き合うプロトタイピング
人と向き合うプロトタイピングwariemon
 
【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMP【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMPSatoru Yamamoto
 
The Drift Brand Book
The Drift Brand BookThe Drift Brand Book
The Drift Brand BookDrift
 
アドテク勉強会
アドテク勉強会アドテク勉強会
アドテク勉強会Shoho Kozawa
 
お金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかたお金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかたSatoru Yamamoto
 
ITエンジニアに易しいUI/UXデザイン
ITエンジニアに易しいUI/UXデザインITエンジニアに易しいUI/UXデザイン
ITエンジニアに易しいUI/UXデザインRoy Kim
 
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイントSlideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイントTaichi Hirano
 
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司schoowebcampus
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識Tsutomu Sogitani
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版MOCKS | Yuta Morishige
 
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017NVIDIA
 

Viewers also liked (19)

Simple Energy Brand Book
Simple Energy Brand BookSimple Energy Brand Book
Simple Energy Brand Book
 
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
 
エンジニア生存戦略
エンジニア生存戦略エンジニア生存戦略
エンジニア生存戦略
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクション
 
人と向き合うプロトタイピング
人と向き合うプロトタイピング人と向き合うプロトタイピング
人と向き合うプロトタイピング
 
Nike- Strategic analysis
Nike- Strategic analysisNike- Strategic analysis
Nike- Strategic analysis
 
【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMP【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMP
 
DMP勉強会
DMP勉強会DMP勉強会
DMP勉強会
 
The Drift Brand Book
The Drift Brand BookThe Drift Brand Book
The Drift Brand Book
 
アドテク勉強会
アドテク勉強会アドテク勉強会
アドテク勉強会
 
お金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかたお金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかた
 
ITエンジニアに易しいUI/UXデザイン
ITエンジニアに易しいUI/UXデザインITエンジニアに易しいUI/UXデザイン
ITエンジニアに易しいUI/UXデザイン
 
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイントSlideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
Slideshareで見つけた「読みやすい・見やすいスライド」に共通する4つのポイント
 
カヤックコピー部のコピー講座
カヤックコピー部のコピー講座カヤックコピー部のコピー講座
カヤックコピー部のコピー講座
 
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
 
コンテンツ作りの三原則
コンテンツ作りの三原則コンテンツ作りの三原則
コンテンツ作りの三原則
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
 

Similar to ドリコムのInfrastructure as code

drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battledrecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battleMitsuki Kenichi
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”Drecom Co., Ltd.
 
こんな辛いテストはいやだ
こんな辛いテストはいやだ こんな辛いテストはいやだ
こんな辛いテストはいやだ Takuya Mikami
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Makoto Haruyama
 
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみましたKoji Hasebe
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~Ryosuke Uchiyama
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Hironobu Isoda
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsGo Sueyoshi (a.k.a sue445)
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Emma Haruka Iwao
 
cndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmaltcndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmaltcapsmalt
 
クラウド概要 by Engine Yard
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine YardYu Kitazume
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
「AROW」お披露目(実用編)
「AROW」お披露目(実用編)「AROW」お披露目(実用編)
「AROW」お披露目(実用編)Drecom Co., Ltd.
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜Shuji Yamada
 

Similar to ドリコムのInfrastructure as code (20)

drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battledrecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battle
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
 
ドリコムのインフラCI
ドリコムのインフラCIドリコムのインフラCI
ドリコムのインフラCI
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
こんな辛いテストはいやだ
こんな辛いテストはいやだ こんな辛いテストはいやだ
こんな辛いテストはいやだ
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみました
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
 
cndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmaltcndjp: 「Microclimate」by capsmalt
cndjp: 「Microclimate」by capsmalt
 
RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)
 
クラウド概要 by Engine Yard
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine Yard
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
「AROW」お披露目(実用編)
「AROW」お披露目(実用編)「AROW」お披露目(実用編)
「AROW」お披露目(実用編)
 
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
 
Paa s and oss
Paa s and ossPaa s and oss
Paa s and oss
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

ドリコムのInfrastructure as code

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

Editor's Notes

  1. はい。ではドリコムのInfrastructure as Code というタイトルで初めさせて頂きます
  2. 名前はひらしーとか暴力的なことは全くせずに寧ろおとなしいのですが狂犬と呼ばれています 出身は後ろを延ばさない方の”群馬”です。Google画像検索で表示されるこのような場所ではありません 所属・職種は世間一般的なWEBサービス会社のインフラ部署のインフラエンジニアです
  3. まずはドリコムのインフラ規模です
  4. PVとDAUですが 1日の全アプリ合計は=> 1億以上 1日の全アプリ合計は=>100万以上 となっております
  5. サーバ台数ですが全て仮想サーバ換算で ホスティングしているものが300台以上 イアースのクラウドで1000台以上 となっています
  6. そして1ヶ月に増加する台数は現在30台程度となっています
  7. これを診るインフラエンジニアの人数ですが
  8. 現在3人で回しています
  9. この人数で早く、安く、正確なインフラ構築をするためにインフラストラクチャのコード化をどのように活用しているかをお話していきます
  10. Chefの運用方法
  11. 既に皆さんご存知かと思いますがChefはサーバの構成管理を行うオープンソースのフレームワークですね
  12. 特徴としてRubyで書けるという点がRuby on Railsの会社であることと親和性が高く情報共有しやすいということととべき等性という考え方を元にした記述ができるという点があります
  13. 例えばこのようなnginxの設定ファイルを配布する例ですと、何度実行してもファイルの内容が同じになるということを保証する書き方ができます
  14. Chefには大きく分けて2つの構成がありまして
  15. 1つはこのように各サーバ情報を集約・管理するサーバを置き
  16. 各サーバのローカルでのみ動作する構成です
  17. ドリコムではChef-Soloのほうを採用しています。
  18. 以前はChef-Server構成でしたが、クライアント100台超えたあたりからCouchDBがボトルネックになりました。今はPostgreSQLなのでこれは改善されたとは思いますが 他にChef-Serverで管理している情報を変更することによりChef-Clientになんらかの影響をあたえるという機能を既存サーバに適用できなかったという点があります
  19. また、プロビジョニングとサーバ情報の取得という観点ではChef-Serverが必要ないので 現状はシェルスクリプトの組み合わせで十分足りると判断しています
  20. 実際のChef開発フローですが
  21. 例えばこのようにプロビジョニングするサーバのnginxの設定ファイルを変更するレシピを編集するとしますと
  22. まずCI環境にあるgitサーバにpushを行います
  23. 社内のほぼ全てのソースはGitLabサーバにて管理しています。 Chefのレシピのほうもこちらに含まれております
  24. PushするとGitLabによるWeb hook機能によりhttpリクエストが飛びまして
  25. そのhttp通信をJenkinsのGitlab Hook Pluginで拾いまして
  26. 仮想マシンにはベイグラントを使用して、いつでもOSインストール直後の状態のスナップショットからChefの実行ができるようにしています
  27. Chefのレシピの品質を上げるためにFoodcriticというコード規約をチェックするツールを使い
  28. また、テストにRubyでこのようにrspec風にテストを実行できるserverspecを使用します
  29. テストが全て完了するとインフラメンバに結果とgitlogの内容をメールします
  30. テストに失敗したら このように再度ソースコードを編集して、gitpushしテストが成功するまでCIをまわします
  31. その内容に問題なければインフラメンバが本番環境に反映するのですが
  32. こちらは数が多い時はRundeckというGUIでオペレーションの履歴とタスクの管理ができるツールで効率的に回しています ホスト一覧はZabbixにて管理しているホスト情報をZabbix-API経由で定期的に取得して更新しています
  33. 当初chefやcapistranoを使っていたのですが、サーバ数が多くなりすぎてタスクと実行履歴の管理ができなくなり、 RundeckというGUIでオペレーションの履歴とタスクの管理ができるツールで効率的に回しています
  34. そしてRundeckを使用して本番環境にChefとserverspecを使用します 試験環境でserverspecを使用しているので本番環境でserverspecを使用する必要ないと言う意見もありますが 全てのネットワーク環境、ハードウェア環境と同一のテスト環境をエミュレートするのは厳しいと考えていまして、毎回serverspecを実行しています
  35. 次にコード管理についてお話したいと思います
  36. 先程コード管理にgitlabを使用しているとお話しましたが、弊社ではgitlabを最大限に活用して3つのインフラとしてのコード運用をしております
  37. 1つはイシュードリブンインフラストラクチャと称しましてまずインフラの状態に変更を加えて欲しい人が要望を投げ、インフラメンバがこれに対応する方法 この運用方法であればChefやserverspecのコードがわからなくてもインフラメンバがgitlab上でコミュニケーションを取って依頼できますね
  38. もう1つはプルリクエストドリブンインフラストラクチャと称しまして、gitlabではMerge Requestなのですがgithubのプルリクエストと同じ機能なのでプロリクエストの名前を使ってます これはある程度Chefやserverspecに詳しい人やパラメータの変更のような簡単な部分であれば自ら進んで実施してもらっています。これを使う人はインフラやコードに対して意識が高いということが分かりますね
  39. もう1つは勝手にマサカリドリブンインフラストラクチャと読んでいるんですが、 gitlabであらゆるコミットに対してコメントが付けられるのでそれに対して意識の高いモヒカンが4方8方からマサカリが飛んでくるので インフラメンバがそれに対応するということをしています ここでは、メムキャッシュディーのサイズを間違えてマサカリが飛んできて修正したら別のモヒカンからマサカリが飛んで来たところですね
  40. 最後にテスト駆動インフラについてお話したいと思います
  41. インフラ作業といえば こんなテスト項目書であったり こんな作業手順書のような 開くのに時間がかかるエクセルが典型的ですが これでは1000台規模のサーバを作業するのはあまりにも厳しいので
  42. Rspecを知っている人はご存知ですけども、作業項目の階層をコードに記載したサーバスペックを作りまして これをGitlabでコードレビューします そして開発環境で作業とテストをしまして 問題なければ本番環境で作業とテストを実行します
  43. serverspec単体では機能が足りないので拡張したコマンドツールを使っています このように実行するserverspecファイルパスと対象ホストを指定したシナリオファイルを用意しまして 実行するとこのようにserverspecコード内でdescribeで指定した項目ごとに結果が表示されます このようにして大量のサーバとテスト項目を効率的に処理できるツールを用意しています
  44. serverspec単体では機能が足りないので拡張したコマンドツールを使っています このように実行するserverspecファイルパスと対象ホストを指定したシナリオファイルを用意しまして 実行するとこのようにserverspecコード内でdescribeで指定した項目ごとに結果が表示されます このようにして大量のサーバとテスト項目を効率的に処理できるツールを用意しています
  45. まとめになりますが
  46. 少人数で早く正確なインフラを回すには?という冒頭の問いの答えの1つになりますが
  47. 早さは Chefによるプロビジョニング自動化と serverspecによるテスト自動化 そして正確さは PDCAサイクルに沿った品質管理が失敗のないインフラにつながると思います
  48. 品質管理の一般的な手法にPDCAサイクルというものがありますがこれに準じたものになっていまして Plan がChef,serverspecのコードレビュー Do がChef,Rundeckによる実行 Checkがserverspec ActionがChef,serverspecコード修正 という形で進めるのが確実かと思います
  49. 最後にその他所感になりますが
  50. Chef-Serverを有効に活用できている事例を知らないので、 あったらこっそり教えて下さい Capistranoのタスク管理や履歴に残せないところが駄目で変えたんですが、大量のサーバをオペレーションするのが便利すぎるのに全く活用されている情報がないので 他社さんがどうやっているか気になります サーバースペックはコマンドを抽象化して、テストの振る舞いをコードに掛けるだけなんですが、色々な所に活用できるのでこれなしにはもういられないですね