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

PDF
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
KEY
activerecord-turntable
PDF
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
PPT
制作を支えたツール達 (パズル戦隊デナレンジャー)
PDF
Pixel Visual Core device driver source code analysis
PDF
DeNA流cocos2d xとの付き合い方
PPTX
Unityのポストエフェクトで遊ぶ!
PDF
ガールアックス:リアルタイム通信処理の効率的な実装
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
activerecord-turntable
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
制作を支えたツール達 (パズル戦隊デナレンジャー)
Pixel Visual Core device driver source code analysis
DeNA流cocos2d xとの付き合い方
Unityのポストエフェクトで遊ぶ!
ガールアックス:リアルタイム通信処理の効率的な実装

What's hot (20)

PDF
FINAL FANTASY
 Record Keeper 演出データについて
PPTX
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
PDF
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
PPT
FINAL FANTASY Record Keeper の作り方
PDF
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
PPTX
Node-REDのノードの日本語化でOSSコミュニティへ貢献してみよう
PDF
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
PDF
ソーシャルアプリを分析してみた
PDF
[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ
PDF
Flow in VR Funhouse MOD Kit
PDF
Amplify Studioを使ってみた
PPTX
マンガボックスのiOS10プッシュ通知導入事例
PPTX
Unityネイティブプラグインマニアクス #denatechcon
PDF
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
PDF
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
PDF
【Saitama.js】Denoのすすめ
PDF
Effective web performance tuning for smartphone
PDF
FFRKを支えるWebアプリケーションフレームワークの技術
PPTX
2018/1/30 Django勉強会
PDF
AWSスポットインスタンスの真髄
FINAL FANTASY
 Record Keeper 演出データについて
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
FINAL FANTASY Record Keeper の作り方
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
Node-REDのノードの日本語化でOSSコミュニティへ貢献してみよう
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
ソーシャルアプリを分析してみた
[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ
Flow in VR Funhouse MOD Kit
Amplify Studioを使ってみた
マンガボックスのiOS10プッシュ通知導入事例
Unityネイティブプラグインマニアクス #denatechcon
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
【Saitama.js】Denoのすすめ
Effective web performance tuning for smartphone
FFRKを支えるWebアプリケーションフレームワークの技術
2018/1/30 Django勉強会
AWSスポットインスタンスの真髄
Ad

Similar to プライベートクラウド作ってみました (20)

PPTX
技術選択とアーキテクトの役割
PDF
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
PDF
「AROW」お披露目(実用編)
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
PPTX
ドリコムのInfrastructure as code
PDF
ドリコムを支える課金ライブラリを支えるJenkins
PDF
C# でブロックチェーン実装
PDF
drecomにおけるwinning the metrics battle
PDF
ドリコムのインフラCI
PDF
Airflowを広告データのワークフローエンジンとして運用してみた話
PPTX
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
PDF
Microsoft Intelligent Edge Technologies
PDF
【初心者向け】API を使ってクラウドの管理を自動化しよう
PDF
NVIDIA 入門
PDF
Karateによる UI Test Automation 革命
PDF
Deploy TypeScript Application by CodePipeline
PDF
LoRaWANとAzure IoT Hub接続ハンズオン
PDF
こんな辛いテストはいやだ
PPTX
Perl で作るメディアストリーミングサーバー
PPTX
Dangerでpull requestレビューの指摘事項を減らす
技術選択とアーキテクトの役割
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
「AROW」お披露目(実用編)
Rails on GKEで運用するWebアプリケーションの紹介
ドリコムのInfrastructure as code
ドリコムを支える課金ライブラリを支えるJenkins
C# でブロックチェーン実装
drecomにおけるwinning the metrics battle
ドリコムのインフラCI
Airflowを広告データのワークフローエンジンとして運用してみた話
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Microsoft Intelligent Edge Technologies
【初心者向け】API を使ってクラウドの管理を自動化しよう
NVIDIA 入門
Karateによる UI Test Automation 革命
Deploy TypeScript Application by CodePipeline
LoRaWANとAzure IoT Hub接続ハンズオン
こんな辛いテストはいやだ
Perl で作るメディアストリーミングサーバー
Dangerでpull requestレビューの指摘事項を減らす
Ad

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