Your SlideShare is downloading. ×
  • Like
  • Save
クックパッドのスケーリング
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

クックパッドのスケーリング

  • 3,665 views
Published

 

Published in Business , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,665
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n
  • \n \n

Transcript

  • 1. クックパッドのスケーリング クックパッド株式会社 高田悟史
  • 2. 自己紹介 ■ 高田悟史(たかださとし) ■ 787万人を支えるインフラチーム ■ スケール関連を担当中
  • 3. 目次 ■ キャパシティプランニング ■ サーバ増設のスピードアップ
  • 4. キャパシティプランニング
  • 5. キャパシティプランニングとは ユーザがいつまでも快適に 使い続けるためにやるべき こと
  • 6. キャパシティプランニング ■ 分析 ■ 予測 ■ 配置
  • 7. キャパシティプランニング - 分析 ■ 現在のキャパシティを知る ■ 長期に渡るデータの記録 ■ サーバ特性に合わせて、キャパシティ を計る指標を決める
  • 8. キャパシティプランニング - 予測 ■ キャパシティを越える日を予測する ■ 指標と計測データの結びつけ ■ 上限を特定して対策をする時期を確定
  • 9. キャパシティプランニング - 配置 ■ 迅速にサービスインできるようになる ■ 自動インストール ■ 自動設定
  • 10. キャパシティプランニング ■ 分析 ■ 予測 ■ 配置
  • 11. サーバ増設のスピードアップ
  • 12. クックパッドのサーバー増設の流れ サーバ管理ツール Rails boot用サーバ (2-1)kickstart.cfgの取得 DHCP (1)PXE Boot tftp New(3)puppetd Apache (2-2)パッケージ取得 puppetmasterd
  • 13. OSインストール時の問題■ 手間がかかる ■ 電源をOn ■ OSのCDROMからインストール ■ 次へ次へ
  • 14. OSインストールまでの流れを改善■ 自作のサーバ管理ツールにサーバ情報を登録■ 電源をOn■ PXE Bootでネットブート■ 動的生成されたkickstart.cfgを使ってKickstart ■ インストール終了まで待つだけ
  • 15. サーバ情報を登録
  • 16. kickstart.cfgを自動生成■ http://ブートサーバ/deployment/kickstart ■ ホスト名 network --device eth0 --bootproto dhcp --hostname test1 ■ %post に出力される # eth0 cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet IPADDR=192.168.0.1 NETMASK=255.255.255.0 EOF
  • 17. PXE BootとKickstartとPuppet サーバ管理ツール Rails boot用サーバ (2-1)kickstart.cfgの取得 DHCP (1)PXE Boot tftp New(3)puppetd Apache (2-2)パッケージ取得 puppetmasterd
  • 18. OSインストール後の問題■ ソフトウェアインストール/設定用スクリプトの メンテナンスコスト■ パッケージの統一■ サーバー毎に異なる設定の反映 ■ database.yml ■ my.cnf
  • 19. Puppetを導入した ■ Puppetとは ■ サーバの状態管理ツール ■ Manifestに状態を記述することで反映 ■ サーバ / クライアント構成
  • 20. Puppetの構成 puppetmasterd (1)Manifestを取得 puppetd puppetd (2)Manifestを実行
  • 21. パッケージの統一(Passengerの例) package { passenger: provider => gem, notify => Service[httpd], ensure => 2.2.5; }
  • 22. サーバごとに異なる設定(/etc/my.cnfの例) ■ Manifest $mysql_server_id = $hostname ? { db1 => 10001, db2 => 10002, db3 => 10003, db4 => 10004, default => error } ■ Template server-id = <%= mysql_server_id %>
  • 23. PXE BootとKickstartとPuppet サーバ管理ツール Rails boot用サーバ (2-1)kickstart.cfgの取得 DHCP (1)PXE Boot tftp New(3)puppetd Apache (2-2)パッケージ取得 puppetmasterd
  • 24. Puppet導入の副作用 ■ 学習コスト ■ インストール/設定の手間を0にするまでには それなりに時間がかかる ■ manifestにもリファクタリングが必要
  • 25. まとめ
  • 26. まとめ ■ サーバ増設のスピードは重要 ■ OSのインストールにかかる時間は変わらな いが、手間がかからなくなった ■ Puppetを導入して、ソフトウェアのインス トール/設定の手間がほぼ0になった
  • 27. ご清聴ありがとう ございました