SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
大規模化するピグライフを支えるインフラ
    〜MongoDBとChefについて〜 (後編)




              ここからは
            サーバ増設・管理を
           効率化する話をします
                                                         (株)サイバーエージェント
                                                         並河 祐貴 (@namikawa, id:rx7)

http://www.flickr.com/photos/jonathanbeard/3307862620/
自己紹介
並河 祐貴 (a.k.a. id:rx7)

(株)サイバーエージェント所属
主にインフラエンジニア
Blog: http://d.hatena.ne.jp/rx7/
Twitter: @namikawa
                                   New!


著書・寄稿多数
最近、割とよくある光景
○△の負荷がパないので、
サーバを30台増設するしかない。
来週までに。
(((( ;゚Д゚)))ガクガクブルブル
アメーバピグ・ピグライフの規模感
アメーバピグ
 サーバ台数: 約220台         (⇒ 150台まで削減予定)
  Web/APサーバ40台
  Socketサーバ75台
  DB(MySQL+FIO)サーバ6台 x 2(スタンバイ)
  API, Hadoop Cluster, Mobile, Smart Phone...
  etc...


ピグライフ
 サーバ台数: 約240台
  Socket(node.js)サーバ60台、
  DB(MongoDB)サーバ150台
  Statサーバ20台
  etc...
ピグのサーバ増設・運⽤管理
サービス・システム規模、共に右肩上がり

急な増設を求められることもあります
 ビッグイベントにあわせて30台入れちゃうとか
 想定を超えるスピードでサービスが成⻑するとか


そこで「Chef」を使ってみました
それ、
クラウド使ったら
でk(ry
   クラウドも、運⽤を効率化する1要素

ミドルウェアの設定管理や、プロセスの状態管理も
 含めて今回は「Chef」で自動化する話をします
1. Chefの概要


http://www.flickr.com/photos/jonathanbeard/3307862620/
「Chef」とは
       Chef」とは
           サーバの構築作業やシステム管理のツール
                  システムのあるべき状態を設定する
           オープンソース、Ruby製

           利⽤実績
                  37signals
                  Engine Yard
                  Rackspace hosting
                  etc…



http://www.flickr.com/photos/jonathanbeard/3307862620/
サーバ構築・システム管理自動化の必要性

            手作業では、そもそも時間がかかる
                   数十台、数百台のレベルになると・・・
                   同じ役割のサーバごとに環境差異が発⽣したりとか
                        サーバ投入までのリードタイムが⻑くなることで
                           機会損失を発⽣させることは避けたい


            人為的なミスを抑えたい
                   作業漏れ、ルーチン作業でのオペミス
                   作業者によって、スキルにバラつき
                     運⽤中のサーバでのミスは特に無くしたい
                  設定に間違いがあっても自動化しておく事で即修正可能


http://www.flickr.com/photos/jonathanbeard/3307862620/
それ、シェルスクリプトでよくね?
           Chefでは内部DSLを採⽤
                  管理タスクの品質をできるだけ揃えつつ、Rubyでの柔
                  軟な記述ができる


           プラットフォームの差異が吸収できる
                  ディストリビューションによってコマンドに差異
                  yumとaptとか


           サーバの状態が記述できるフレームワーク



http://www.flickr.com/photos/photomequickbooth/4062072718/
Chefのシステムアーキテクチャ
      Chefのシステムアーキテクチャ

                                                                                 Ruby
                        CouchDB                            Solr                  Merb(Rack)
                                                                                 CouchDB
                                                         Chef-Solr
                                                          Indexer
                                                                                 Solr
                                                                                 RabbitMQ
                      Chef-Server
                                                         RabbitMQ                (Java)
                         API
                                                                                 (Erlang)
      Chef-Server
                                                                                 HTTP(REST)
        WebUI                                                                    JSON
                                        Chef-Client
                                        Chef-Client                  Knife
                                         Chef-Client
                                                                             Client


http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefでの”主な”
      Chefでの”主な”登場人物
           Node
           Role
           Cookbook
                  Recipe
                  Template
                  Attribute



                                時間の都合上、基本を簡単にご紹介します




http://www.flickr.com/photos/jonathanbeard/3307862620/
Node, Role,
      Node, Role, Cookbook の関連(例)
                            関連(

                                                                  nginxのCookbook

             サーバA
                                                         APサーバの
                                                                    Passengerの
                                                           Role
                                                                     Cookbook

             サーバB
                                                                  RubyのCookbook



             サーバC                                                  gitのCookbook

        Node                                             Role      Cookbook

          管理対象の                                          管理対象の    システムのあるべき形を
           サーバ                                           グルーピング      定義する設定

http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefのリポジトリ構造
      Chefのリポジトリ構造 (Cookbook)
      cookbooks/                                         設定したいパラメータ(各サーバ
                                                         固有のものやデフォルト値など)
        |-- attributes
                                                             を記述したもの
        |-- definitions
        |-- files
        |-- libraries                                      システムのあるべき姿、
        |-- providers                                      つまり設定内容を実際に
                                                           記載したRubyスクリプト
        |-- recipes
        |-- resources
        `-- templates                                     サーバへ配置する設定ファイルの
                                                         テンプレートで、eRubyで記述する




http://www.flickr.com/photos/jonathanbeard/3307862620/
Recipe、Templateの⼀例
      Recipe、Templateの⼀例
      ./recipe/default.rb                                ./templates/default/ports.conf.erb
       package "apache2" do                               Listen <%= port %>
        action :install                                   NameVirtualHost *:<%=port %>
       end

       template "/etc/apache2/ports.conf" do
        source "ports.conf.erb"                          ./attributes/default.rb
        owner "root"
                                                          default[:port] = “8080"
        group "root"
        mode 0644
        variables(
          :port => node[:port]
        )
       end
                                                             “port”:”80”     “node A”の情報を保持
                                                                              [Node Attribute],
       service "apache2" do
                                                                                [Run List] 等
        action [ :enable, :start ]                        実⾏するrecipeの設定
       end



                                                                       chef-client
                                                           node A         実⾏         Chef-Server


http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefで利⽤できるResource
      Chefで利⽤できるResource
              Cookbook File                              Mount
              Cron                                       Ohai
              Deploy                                     Package
              Directory                                  PowerShell Script
              Erlang Call                                Remote Directory
              Execute                                    Remote File
              File                                       Route
              Git                                        Ruby Block
              Group                                      SCM
              HTTP Request                               Script
              Ifconfig                                   Service
              Link                                       Subversion
              Log                                        Template
              Mdadm                                      User

http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefのちょっとイケて
      Chefのちょっとイケていないところ
           サーバのセットアップが面倒くさい
                  必要なのは最初だけなので、許容できる
                  クライアントは簡単


           名前がSEO的に致命的
                  Chef, Cookbook, Recipe, knife...
                  リアルに調べ物をする時に困ります


           dry-runができない
                  テスト環境が必須 (クラウド・仮想化が最適)


http://www.flickr.com/photos/photomequickbooth/4062072718/
2. Chefの運⽤


http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefを活⽤したサーバ増設
      Chefを活⽤したサーバ増設
           PXE + kickstart + Chef
             1.      事前に chef-server 側でNodeの設定が必要
             2.      サーバに線を繋ぎ電源ON、PXEブート開始
             3.      Label No.とNode名を入⼒し、OSインストール開始
             4.      同時に chef-client のインストールと設定
             5.      kickstart の %post でchef-clientを実⾏
                kickstartのcfgファイル

                               通常のOS
                             インストールタスク                                  通信
                                                           client            PXE+ksサーバ
                         chef-clientのインストール

                                                         OSインストール後                通信
                              chef-clientの設定
                                                           は直接通信
                              chef-clientの実⾏
                                                                    Chef-Server

http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefを活⽤したサーバ増設
      Chefを活⽤したサーバ増設
           今はオンプレミスな物理環境を想定

           クラウド環境でも応⽤可能
                  EC2だと、事前にAMIを作成しておいて、user-dataに
                  Node名を指定して...
                  (弊社のOpenStackクラウド基盤を活⽤したい)




http://www.flickr.com/photos/jonathanbeard/3307862620/
Cookbookの使い方
      Cookbookの使い方
           Cookbookの例
                  ネットワーク設定 (拠点毎)
                  H/Wに必要な設定
                         主にH/W固有で必要なドライバやRAIDチェックスクリプト等
                  各サーバ共通で必要な設定
                         DNS, NTP, LDAP, 監視ライブラリ, 鍵交換等
                  各Roleで必要な設定
             NodeへのCookbook設定例                           RoleへのCookbook設定例
            {                                            {
                "run_list": [                                "run_list": [
                  "recipe[network::xxxxx]",                    "recipe[common::default]",
                  "recipe[hw::dell_r310]",                     "recipe[service-common::pigglife]",
                  “role[pigglife-mongodb]"                     "recipe[pigglife-mongodb::default]"
                ]                                            ]
            }                                            }

http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefを使う上でやっていること
      Chefを使う上でやっていること
           Script Resource は基本的に使わない
                  何度でも実⾏される
                  chef-client実⾏時のチェック・運⽤が面倒
                  何度実⾏しても問題ないものしか使わない

                                                         こんな感じで書いていました
                    script “script_name" do
                     interpreter "bash"
                     user “username"
                     creates comp_dir + “script_name.done"
                     code <<-EOH
                       command
                       ......
                       ......
                     EOH
                    end




http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefを使う上でやっていること
      Chefを使う上でやっていること
           各nodeのChef適⽤は、chef-clientを実⾏
                  tomahawk: 複数のサーバで同じコマンドを実⾏
                  “knife ssh”, “knife ssh_cheto” を使いたい


           NodeのAttributeの登録
                  JSONファイルを自動⽣成して登録


           アンインストール・削除等の処理も忘れずに

           Environment(0.10〜)の活⽤
                  development, staging, productionの分別

http://www.flickr.com/photos/jonathanbeard/3307862620/
まとめと今後の展望
           Chefを活⽤することで多くのサーバの増設・管理
           にかかる負担を軽減
                  あるべき状態に自動で設定・維持できる
                  ルールを少し覚えれば、誰でも簡単に設定が書ける
                  内部DSLなので、Rubyを覚えれば処理も柔軟に書ける


           クラウド等の基盤サービスと連携して、インフラ
           構築/運⽤の完全オートメーションができる仕組
           みにしたい



http://www.flickr.com/photos/jonathanbeard/3307862620/
最後に宣伝です
サイバーエージェントでは、ただいまエンジニア
を大絶賛募集中です!

 大規模サービスに取り組みたい方

 新しい技術を実戦で試していきたい方

 新規事業・サービスで腕を試したい方

Contenu connexe

Tendances

sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)Takanori Sejima
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなしOonishi Takaaki
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編Takanori Sejima
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group CommitTakanori Sejima
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例知教 本間
 
NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)Takanori Sejima
 
アメーバピグにおける自作サーバ運用
アメーバピグにおける自作サーバ運用アメーバピグにおける自作サーバ運用
アメーバピグにおける自作サーバ運用Akihiro Kuwano
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごとYugo Shimizu
 
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing5.6 以前の InnoDB Flushing
5.6 以前の InnoDB FlushingTakanori Sejima
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualYasuhiro Matsuo
 
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!h2so5
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
Jvm operation casual talks
Jvm operation casual talksJvm operation casual talks
Jvm operation casual talksoranie Narut
 
MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編gree_tech
 
InnoDB Table Compression
InnoDB Table CompressionInnoDB Table Compression
InnoDB Table CompressionTakanori Sejima
 
MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後Takanori Sejima
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話Takanori Sejima
 
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTMasahiro Nagano
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
 

Tendances (20)

sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group Commit
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
 
NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)
 
アメーバピグにおける自作サーバ運用
アメーバピグにおける自作サーバ運用アメーバピグにおける自作サーバ運用
アメーバピグにおける自作サーバ運用
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごと
 
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
 
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
Jvm operation casual talks
Jvm operation casual talksJvm operation casual talks
Jvm operation casual talks
 
MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編
 
InnoDB Table Compression
InnoDB Table CompressionInnoDB Table Compression
InnoDB Table Compression
 
MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 

En vedette

Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
Startup groovysession1
Startup groovysession1Startup groovysession1
Startup groovysession1kyon mm
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
 
Project Facilitation From Hiranabe
Project Facilitation From HiranabeProject Facilitation From Hiranabe
Project Facilitation From HiranabeYasui Tsutomu
 
鼻メガネの会 Rush 3 hits combo
鼻メガネの会 Rush 3 hits combo鼻メガネの会 Rush 3 hits combo
鼻メガネの会 Rush 3 hits comboriskrisk
 
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)hyoromo
 
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)hyoromo
 
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
横浜道場紹介 第2版
横浜道場紹介 第2版横浜道場紹介 第2版
横浜道場紹介 第2版Takao Kimura
 
20120216 デブサミ 座談会
20120216 デブサミ 座談会20120216 デブサミ 座談会
20120216 デブサミ 座談会akihiro uehara
 
Developers Summit 2012 16-E-1
Developers Summit 2012 16-E-1Developers Summit 2012 16-E-1
Developers Summit 2012 16-E-1Kohei Kumazawa
 
2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料Toshihiro Hirota
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
Agile Samurai Dojo Gathering
Agile Samurai Dojo GatheringAgile Samurai Dojo Gathering
Agile Samurai Dojo Gatheringirasally omuko
 
【16-C-4】次期Internet Explorer、IE10とHTML5 API
【16-C-4】次期Internet Explorer、IE10とHTML5 API【16-C-4】次期Internet Explorer、IE10とHTML5 API
【16-C-4】次期Internet Explorer、IE10とHTML5 APIMicrosoft
 
Startup groovy op
Startup groovy opStartup groovy op
Startup groovy opkyon mm
 
CouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTCouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTKoji Kawamura
 
デブサミ2012 kintoneの表と裏 - 表編
デブサミ2012 kintoneの表と裏 - 表編デブサミ2012 kintoneの表と裏 - 表編
デブサミ2012 kintoneの表と裏 - 表編yo_waka
 

En vedette (20)

Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
 
Startup groovysession1
Startup groovysession1Startup groovysession1
Startup groovysession1
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
鼻メガネv2
鼻メガネv2鼻メガネv2
鼻メガネv2
 
Project Facilitation From Hiranabe
Project Facilitation From HiranabeProject Facilitation From Hiranabe
Project Facilitation From Hiranabe
 
鼻メガネの会 Rush 3 hits combo
鼻メガネの会 Rush 3 hits combo鼻メガネの会 Rush 3 hits combo
鼻メガネの会 Rush 3 hits combo
 
埼玉道場
埼玉道場埼玉道場
埼玉道場
 
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)
 
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)
デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(前半)
 
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
 
横浜道場紹介 第2版
横浜道場紹介 第2版横浜道場紹介 第2版
横浜道場紹介 第2版
 
20120216 デブサミ 座談会
20120216 デブサミ 座談会20120216 デブサミ 座談会
20120216 デブサミ 座談会
 
Developers Summit 2012 16-E-1
Developers Summit 2012 16-E-1Developers Summit 2012 16-E-1
Developers Summit 2012 16-E-1
 
2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
Agile Samurai Dojo Gathering
Agile Samurai Dojo GatheringAgile Samurai Dojo Gathering
Agile Samurai Dojo Gathering
 
【16-C-4】次期Internet Explorer、IE10とHTML5 API
【16-C-4】次期Internet Explorer、IE10とHTML5 API【16-C-4】次期Internet Explorer、IE10とHTML5 API
【16-C-4】次期Internet Explorer、IE10とHTML5 API
 
Startup groovy op
Startup groovy opStartup groovy op
Startup groovy op
 
CouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTCouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LT
 
デブサミ2012 kintoneの表と裏 - 表編
デブサミ2012 kintoneの表と裏 - 表編デブサミ2012 kintoneの表と裏 - 表編
デブサミ2012 kintoneの表と裏 - 表編
 

Similaire à 大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)

Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba PiggUsing Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba PiggYuuki Namikawa
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてYuuki Namikawa
 
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)Yuuki Namikawa
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
RoRとAWSで100,000Req/Minを処理する
RoRとAWSで100,000Req/Minを処理するRoRとAWSで100,000Req/Minを処理する
RoRとAWSで100,000Req/Minを処理するaktsk
 
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Makoto Haruyama
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発emasaka
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Yoshinori Nakanishi
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Taku Unno
 
Chefで作る開発環境
Chefで作る開発環境Chefで作る開発環境
Chefで作る開発環境regret raym
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみたngi group.
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )ロフト くん
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門辰徳 斎藤
 
入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalkBIGLOBE Tech Talk
 
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議Matthew Romaine
 
ニフティ社内の Chef 利用について
ニフティ社内の Chef 利用についてニフティ社内の Chef 利用について
ニフティ社内の Chef 利用についてtidnlyam
 

Similaire à 大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編) (20)

Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba PiggUsing Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba Pigg
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
 
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
RoRとAWSで100,000Req/Minを処理する
RoRとAWSで100,000Req/Minを処理するRoRとAWSで100,000Req/Minを処理する
RoRとAWSで100,000Req/Minを処理する
 
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
Chefで作る開発環境
Chefで作る開発環境Chefで作る開発環境
Chefで作る開発環境
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )
 
Fluentd meetup #2
Fluentd meetup #2Fluentd meetup #2
Fluentd meetup #2
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk
 
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議
 
ニフティ社内の Chef 利用について
ニフティ社内の Chef 利用についてニフティ社内の Chef 利用について
ニフティ社内の Chef 利用について
 

Plus de Yuuki Namikawa

bash(set)コマンドのオプション3選
bash(set)コマンドのオプション3選bash(set)コマンドのオプション3選
bash(set)コマンドのオプション3選Yuuki Namikawa
 
3分でわかる(気になれる) AWS OpsWorks
3分でわかる(気になれる) AWS OpsWorks3分でわかる(気になれる) AWS OpsWorks
3分でわかる(気になれる) AWS OpsWorksYuuki Namikawa
 
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)Yuuki Namikawa
 
#kuwacon Lightning Talks
#kuwacon Lightning Talks#kuwacon Lightning Talks
#kuwacon Lightning TalksYuuki Namikawa
 
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)Yuuki Namikawa
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)Yuuki Namikawa
 
JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料Yuuki Namikawa
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用についてYuuki Namikawa
 
Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)Yuuki Namikawa
 
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例Yuuki Namikawa
 
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)Yuuki Namikawa
 
Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例Yuuki Namikawa
 

Plus de Yuuki Namikawa (12)

bash(set)コマンドのオプション3選
bash(set)コマンドのオプション3選bash(set)コマンドのオプション3選
bash(set)コマンドのオプション3選
 
3分でわかる(気になれる) AWS OpsWorks
3分でわかる(気になれる) AWS OpsWorks3分でわかる(気になれる) AWS OpsWorks
3分でわかる(気になれる) AWS OpsWorks
 
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
 
#kuwacon Lightning Talks
#kuwacon Lightning Talks#kuwacon Lightning Talks
#kuwacon Lightning Talks
 
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
 
JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
 
Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)
 
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例
 
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
 
Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例
 

Dernier

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介: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
 
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
 
論文紹介: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
 
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
 
論文紹介: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
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Dernier (9)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介: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
 
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
 
論文紹介: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
 
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」の紹介
 
論文紹介: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...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)

  • 1. 大規模化するピグライフを支えるインフラ 〜MongoDBとChefについて〜 (後編) ここからは サーバ増設・管理を 効率化する話をします (株)サイバーエージェント 並河 祐貴 (@namikawa, id:rx7) http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 2. 自己紹介 並河 祐貴 (a.k.a. id:rx7) (株)サイバーエージェント所属 主にインフラエンジニア Blog: http://d.hatena.ne.jp/rx7/ Twitter: @namikawa New! 著書・寄稿多数
  • 8. アメーバピグ・ピグライフの規模感 アメーバピグ サーバ台数: 約220台 (⇒ 150台まで削減予定) Web/APサーバ40台 Socketサーバ75台 DB(MySQL+FIO)サーバ6台 x 2(スタンバイ) API, Hadoop Cluster, Mobile, Smart Phone... etc... ピグライフ サーバ台数: 約240台 Socket(node.js)サーバ60台、 DB(MongoDB)サーバ150台 Statサーバ20台 etc...
  • 10. それ、 クラウド使ったら でk(ry クラウドも、運⽤を効率化する1要素 ミドルウェアの設定管理や、プロセスの状態管理も 含めて今回は「Chef」で自動化する話をします
  • 12. 「Chef」とは Chef」とは サーバの構築作業やシステム管理のツール システムのあるべき状態を設定する オープンソース、Ruby製 利⽤実績 37signals Engine Yard Rackspace hosting etc… http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 13. サーバ構築・システム管理自動化の必要性 手作業では、そもそも時間がかかる 数十台、数百台のレベルになると・・・ 同じ役割のサーバごとに環境差異が発⽣したりとか サーバ投入までのリードタイムが⻑くなることで 機会損失を発⽣させることは避けたい 人為的なミスを抑えたい 作業漏れ、ルーチン作業でのオペミス 作業者によって、スキルにバラつき 運⽤中のサーバでのミスは特に無くしたい 設定に間違いがあっても自動化しておく事で即修正可能 http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 14. それ、シェルスクリプトでよくね? Chefでは内部DSLを採⽤ 管理タスクの品質をできるだけ揃えつつ、Rubyでの柔 軟な記述ができる プラットフォームの差異が吸収できる ディストリビューションによってコマンドに差異 yumとaptとか サーバの状態が記述できるフレームワーク http://www.flickr.com/photos/photomequickbooth/4062072718/
  • 15. Chefのシステムアーキテクチャ Chefのシステムアーキテクチャ Ruby CouchDB Solr Merb(Rack) CouchDB Chef-Solr Indexer Solr RabbitMQ Chef-Server RabbitMQ (Java) API (Erlang) Chef-Server HTTP(REST) WebUI JSON Chef-Client Chef-Client Knife Chef-Client Client http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 16. Chefでの”主な” Chefでの”主な”登場人物 Node Role Cookbook Recipe Template Attribute 時間の都合上、基本を簡単にご紹介します http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 17. Node, Role, Node, Role, Cookbook の関連(例) 関連( nginxのCookbook サーバA APサーバの Passengerの Role Cookbook サーバB RubyのCookbook サーバC gitのCookbook Node Role Cookbook 管理対象の 管理対象の システムのあるべき形を サーバ グルーピング 定義する設定 http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 18. Chefのリポジトリ構造 Chefのリポジトリ構造 (Cookbook) cookbooks/ 設定したいパラメータ(各サーバ 固有のものやデフォルト値など) |-- attributes を記述したもの |-- definitions |-- files |-- libraries システムのあるべき姿、 |-- providers つまり設定内容を実際に 記載したRubyスクリプト |-- recipes |-- resources `-- templates サーバへ配置する設定ファイルの テンプレートで、eRubyで記述する http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 19. Recipe、Templateの⼀例 Recipe、Templateの⼀例 ./recipe/default.rb ./templates/default/ports.conf.erb package "apache2" do Listen <%= port %> action :install NameVirtualHost *:<%=port %> end template "/etc/apache2/ports.conf" do source "ports.conf.erb" ./attributes/default.rb owner "root" default[:port] = “8080" group "root" mode 0644 variables( :port => node[:port] ) end “port”:”80” “node A”の情報を保持 [Node Attribute], service "apache2" do [Run List] 等 action [ :enable, :start ] 実⾏するrecipeの設定 end chef-client node A 実⾏ Chef-Server http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 20. Chefで利⽤できるResource Chefで利⽤できるResource Cookbook File Mount Cron Ohai Deploy Package Directory PowerShell Script Erlang Call Remote Directory Execute Remote File File Route Git Ruby Block Group SCM HTTP Request Script Ifconfig Service Link Subversion Log Template Mdadm User http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 21. Chefのちょっとイケて Chefのちょっとイケていないところ サーバのセットアップが面倒くさい 必要なのは最初だけなので、許容できる クライアントは簡単 名前がSEO的に致命的 Chef, Cookbook, Recipe, knife... リアルに調べ物をする時に困ります dry-runができない テスト環境が必須 (クラウド・仮想化が最適) http://www.flickr.com/photos/photomequickbooth/4062072718/
  • 23. Chefを活⽤したサーバ増設 Chefを活⽤したサーバ増設 PXE + kickstart + Chef 1. 事前に chef-server 側でNodeの設定が必要 2. サーバに線を繋ぎ電源ON、PXEブート開始 3. Label No.とNode名を入⼒し、OSインストール開始 4. 同時に chef-client のインストールと設定 5. kickstart の %post でchef-clientを実⾏ kickstartのcfgファイル 通常のOS インストールタスク 通信 client PXE+ksサーバ chef-clientのインストール OSインストール後 通信 chef-clientの設定 は直接通信 chef-clientの実⾏ Chef-Server http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 24. Chefを活⽤したサーバ増設 Chefを活⽤したサーバ増設 今はオンプレミスな物理環境を想定 クラウド環境でも応⽤可能 EC2だと、事前にAMIを作成しておいて、user-dataに Node名を指定して... (弊社のOpenStackクラウド基盤を活⽤したい) http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 25. Cookbookの使い方 Cookbookの使い方 Cookbookの例 ネットワーク設定 (拠点毎) H/Wに必要な設定 主にH/W固有で必要なドライバやRAIDチェックスクリプト等 各サーバ共通で必要な設定 DNS, NTP, LDAP, 監視ライブラリ, 鍵交換等 各Roleで必要な設定 NodeへのCookbook設定例 RoleへのCookbook設定例 { { "run_list": [ "run_list": [ "recipe[network::xxxxx]", "recipe[common::default]", "recipe[hw::dell_r310]", "recipe[service-common::pigglife]", “role[pigglife-mongodb]" "recipe[pigglife-mongodb::default]" ] ] } } http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 26. Chefを使う上でやっていること Chefを使う上でやっていること Script Resource は基本的に使わない 何度でも実⾏される chef-client実⾏時のチェック・運⽤が面倒 何度実⾏しても問題ないものしか使わない こんな感じで書いていました script “script_name" do interpreter "bash" user “username" creates comp_dir + “script_name.done" code <<-EOH command ...... ...... EOH end http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 27. Chefを使う上でやっていること Chefを使う上でやっていること 各nodeのChef適⽤は、chef-clientを実⾏ tomahawk: 複数のサーバで同じコマンドを実⾏ “knife ssh”, “knife ssh_cheto” を使いたい NodeのAttributeの登録 JSONファイルを自動⽣成して登録 アンインストール・削除等の処理も忘れずに Environment(0.10〜)の活⽤ development, staging, productionの分別 http://www.flickr.com/photos/jonathanbeard/3307862620/
  • 28. まとめと今後の展望 Chefを活⽤することで多くのサーバの増設・管理 にかかる負担を軽減 あるべき状態に自動で設定・維持できる ルールを少し覚えれば、誰でも簡単に設定が書ける 内部DSLなので、Rubyを覚えれば処理も柔軟に書ける クラウド等の基盤サービスと連携して、インフラ 構築/運⽤の完全オートメーションができる仕組 みにしたい http://www.flickr.com/photos/jonathanbeard/3307862620/