SlideShare a Scribd company logo
プライベートクラウド
作ってみました
  株式会社サイバーエージェント
長谷部  光治

1
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
Chefが社内で浸透するまで
+今後の目標
  株式会社サイバーエージェント
長谷部  光治

2
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
と昨日まで思っていましたが・

3
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
Chefはお腹いっぱいですよね?

ごくごく普通に使っているだけで、面白い発表ができそうもありませんでした。。

4
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
改めまして・・・

5
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド
作ってみました
  株式会社サイバーエージェント
長谷部  光治

6
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
自己紹介
名前:長谷部  光治(インフラエンジニア)
・2012年2月  サイバーエージェント入社
・今まで:一貫してクラウドシステム構築
 2012年2月  〜  6月  OpenStack検証、導入
 2012年7月  〜  現在  プライベートクラウド開発
・現在:インフラ3割、開発7割
7
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
サイバーエージェント?
アメブロ

8
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
サイバーエージェント?
アメブロ
ピグ

9
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
サイバーエージェント?
ガールフレンド(仮)

10
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
サイバーエージェント?
ガールフレンド(仮)

GIRL’S TALK!
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved

11
サイバーエージェント?
ガールフレンド(仮)

ゲーム、コミュニティ
いろいろやっています
GIRL’S TALK!
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved

12
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
13
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
14
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
■  課題  ■
 ・DCが点在していた
 ・物理サーバの提供リードタイム
 ・物理作業で工数を取られる

15
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
■  課題  ■
 ・DCが点在していた
 ・物理サーバの提供リードタイム
 ・物理作業で工数を取られる
解 決 策
  ・DCを統一する
  ・プライベートクラウドを作る
16
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
■  スケジュール
PJ発足
2012/4

2012/6

設計

自社開発決断
2012/10

並行検証
開発

・OpenStack
・OpenStack前提
・自作ツール

リリース
2013/2

開発

・自作ツール
17

copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
■  リリース後、利用推移

リリース

18
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
■  リリース後、利用推移

順調に推移

リリース

19
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
■  リリース後、利用推移
現在5,000VM超!
順調に推移

リリース

20
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景

「Clover」って聞いたことありますか?

21
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
雑誌で紹介したことがあります

22
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
プライベートクラウド開発の背景
雑誌で紹介したことがあります

プライベートクラウド管理システム
「Clover」
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved

23
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
24
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
特徴
・シンプル
・デフォルトIPv6
・毎回OSをインストール(kickstart)
・物理サーバ、仮想サーバ統一管理

25
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
特徴:シンプル
・libvirtで各ComputeNodeを管理
・エージェントレス(libvirtdを除く)
・必要な機能のみ実装

26
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
特徴:デフォルトIPv6
・1VLAN内のIPアドレス数制限撤廃
・RA(Router  Advertisement)で
 アドレス自動配布
・ミドルウェア、HWともIPv6対応が
 進んできた

27
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
特徴:デフォルトIPv6
・1VLAN内のIPアドレス数制限撤廃
・RA(Router  Advertisement)で
 アドレス自動配布
・ミドルウェア、HWともIPv6対応が
 進んできた
 ※後々IPv6を活かした機能が出てきます
28
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
特徴:毎回OSインストール
・統合イメージ置き場を必要としない
 (サーバのローカルディスクのみ)
・物理、仮想サーバ共通の手順で
 構築できる

29
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
特徴:物理、仮想サーバ統一管理
・kickstartを利用することで同様の
 手順で構築できる

30
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
31
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アーキテクチャ:使用技術、その他
・開発言語:Python
・主要フレームワーク:Django
・使用ミドルウェア:
     libvirt,  PostgreSQL,  bind,  dhcpd
     tftpd,  memcached,  RabbitMQ
・ハイパーバイザ:KVM
・インターフェース:Web,  REST  API
32
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アーキテクチャ:コンポーネント図
  AWS
設定
Route53

物理サーバ

The  Internet

OSインストール
・・・

ComputeNode

Clover
VM操作
(libvirt)

・・・

内部DNS

・・・
仮想サーバ

設定

CA-DC
33

copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アーキテクチャ:コンポーネント図
  AWS

至ってシンプル!

設定
Route53

物理サーバ

The  Internet

OSインストール
・・・

ComputeNode

Clover
VM操作
(libvirt)

・・・

内部DNS

・・・
仮想サーバ

設定

CA-DC
34

copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
35
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:DNS管理
・Public,  Private両方のDNSを管理
 ・Public:Route53を利用(API経由)
 ・Private:bindに登録
・サーバ構築と同時にレコードを自動登録

36
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:物理サーバ管理1
物理サーバサービスインまで
 1.  ラッキング、配線
 2.  電源ON
 3.  pxe経由でSystemRescueCd
  (ruby導入済み)起動
 4.  ohai実行、結果をCloverにpush
 5.  Cloverからサーバが見えるようになる
37
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:物理サーバ管理1
物理サーバサービスインまで
 1.  ラッキング、配線
 2.  電源ON
工夫しました!
 3.  pxe経由でSystemRescueCd
  (ruby導入済み)起動
 4.  ohai実行、結果をCloverにpush
 5.  Cloverからサーバが見えるようになる
38
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:物理サーバ管理2
物理サーバサービスインまで
 ※以下CloverのWebUIから
 6.  インストールOSを選択
 7.  物理サーバ再起動(IPMI経由)
 8.  OSインストール開始
 9.  OSインストール完了

39
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:物理サーバ管理3
詳細:Cloverに情報が登録されるまで
ルータ

③
①
ラック
スイッチ

②
⑤

⑥
⑨
④
⑦

⑧

物理サーバ
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved

Clover

①  ラックスイッチにVLAN設定
②  サーバ結線、IPMIポートRS送信
③  ルータRA送信
 ここでIPMIポートにv6アドレス付与
④  サーバ電源ON
⑤  eth0ポートRS送信
⑥  ルータRA送信
 ここでeth0ポートにv6アドレス付与
⑦  SystemRescueCD起動
⑧  ohai実行、CloverにPush
⑨  ohai情報を解析、登録
 下記情報を判断
  ・UUID ・MACアドレス
  ・IPアドレス ・SerialNo
  ・ホスト名

40
実装済み機能、詳細:仮想サーバ管理
仮想サーバサービスインまで
 ※以下CloverのWebUIから
 1.  サーバ情報を入力
 2.  作成
 3.  起動
 4.  OSインストール開始
 5.  OSインストール完了
41
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:スイッチ管理
・システムでラックスイッチ情報を管理
・ラックスイッチから配下の物理サーバ
 ラッキング位置を取得、管理

42
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
実装済み機能、詳細:スイッチ管理
・システムでラックスイッチ情報を管理
・ラックスイッチから配下の物理サーバ
 ラッキング位置を取得、管理
スイッチのポート、サーバ搭載Uの
対応表を作ることで実現
43
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
44
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
課題
・機能が少ない
 よく言うとシンプル、悪く言うと
 機能が少ないです
 未実現機能
  ・セキュリティグループ
  ・仮想サーバリソース制限
    (Disk  I/O,  Network)
45
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
課題
・コンポーネント分けがされていない
 サーバ1台で全機能を提供しており
 密結合となっています
 e.g.
  ・WebUI,  APIが同居(Django頼み)
  ・bindのゾーンファイルをローカル
   に生成、rndc  reloadを実行
46
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
課題
・UIがイケていない
 DjangoのAdmin画面をテンプレート
 のみ替え、そのまま使っています

管理画面Top

仮想マシン一覧画面
47

copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
課題:こぼれ話
・開発力に差がある
 AWSを始めOpenStack,  CloudStackなど
 開発スピード早すぎ!
  今でもOpenStackにしたほうが良かったかと悩みます・・

・コスト面
 DCをフロア単位、期間契約で借りて
 いるのでちゃんと使わないともったい
 ない。。 
48
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
アジェンダ
・プライベートクラウド開発の背景
・特徴
・アーキテクチャ
・実装済み機能、詳細
・課題
・今後
49
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
今後
見てきて頂いたとおり、まだIaaS
基本機能を実装したに過ぎません。
サービスの品質、開発速度向上に向け
IaaS機能の開発からPaaS/SaaSの機能
開発にシフトしていきます。
インフラエンジニアっていなくなってもいいよね。。

50
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
今後
■  キーワード(AWS関連多すぎ・・・)
SQS,  SNS
OpsWorks

RDS

統合監視
Region機能

Dynamo
統合認証基盤
LVS

Chef
CI

Docker(LXC)
51

copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
まとめ
・プライベートクラウド自作は難しくない
 インフラエンジニアでも作れました
・プライベートクラウド自作は面白い
 作る過程で色々なことを学べました
・皆様もいかがですか?
 クラウド提供業者の方々、すみません。。

52
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
最後に・・・

CloverはOpenSourceで公開する予定です!
※  現在社内調整中です
 
  

53
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
最後に・・・
サイバーエージェントでは、プライベート
クラウドを作る仲間を募集です!
インフラエンジニアに限りません。
特に下記に当てはまる方、お待ちしています!
 ・インフラだけど開発大好き!
 ・UIなら負けない!
 ・手動で設定?ありえないでしょ?
 ・技術のトレンド、常に気にしています
54
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
質疑応答
55
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved
ご清聴ありがとう
ございました
56
copyright(C)  1998-2013  CyberAgent,  Inc.  All  rights  reserved

More Related Content

プライベートクラウド作ってみました