Upload
cloudconductor
View
3.365
Download
1
Embed Size (px)
Citation preview
2
松井暢之(まつい のぶゆき)
TIS株式会社コーポレート本部 戦略技術センター
~2003
2003~2008
2009
2010~2012
2013~
現場PJでアーキテクト兼モデラー兼プログラマ兼…を歴任
基盤技術センター(現戦略技術センター)で不芳PJの火消しに奔走
全社生産性向上の企画策定に従事
オープンでエッジな技術を活用した事業企画に従事
Cloud Orchestrator “CloudConductor®” の企画開発とOSS化開始
http://cloudconductor.org
nbyk.matsui
nmatsui
nbyk.matsui
@n_matsui
3
TIS株式会社 (TIS Inc.) 昭和46年(1971年)4月28日
231億円
6,077人 (2014年4月1日現在)
代表取締役会長 兼 社長 桑野 徹
1,483億円 (2013年3月期単体)
社 名 設 立
資 本 金
従 業 員
代 表 者
売 上 高
TISの会社概要
経済産業省情報セキュリティ監査企業台帳登録
経済産業省システム監査企業台帳登録
届出電気通信事業者
情報通信ネットワーク安全・信頼性対策実施登録
プライバシーマーク使用許諾事業者
ISO9001
ISO/IEC27001
ISO/IEC20000
ISO14001
東京都一般建設業 ( 電気通信工事 )
CMM (Capability Maturity model ) レベル3評定
拠 点 認定資格
ITホールディングスグループのTISは、SI・受託開発に加え、データセンターやクラウドなどサービス型のITソリューションを多数用意しています。同時に、中国・ASEAN地域を中心としたグローバルサポート体制も整え、金融、製造、流通/サービス、公共、通信など様々な業界で3,000社以上のビジネスパートナーとして、お客様の事業の成長に貢献しています。
九州支社
名古屋アーバンネットオフィス
浜松オフィス
松本オフィス
長野オフィス
北京駐在員事務所
ホーチミン駐在員事務所
ジャカルタ駐在員事務所
バンコク駐在員事務所
東京第1センター
東京第2センター
東京第3センター
名古屋センター
師勝センター
大阪センター
心斎橋gDC
天津IDC 心斎橋gDC-EX GDC御殿山
2013年度のクラウド市場は6,257億円、2018年度には2.9倍の1兆8,000億円まで拡大†
プライベートクラウドの比率は2013年度で70.1%を占めるが、2018年度には73.0%と緩やかにシェアを高める†
5
クラウド市場の拡大
† MM総研, "国内クラウドサービス需要動向(2014年版)“, 2014-11, http://www.m2ri.jp/newsreleases/main.php?id=010120141104500
単一のクラウドに閉じたアーキテクチャを取る企業は少なく、74%の企業はマルチクラウド戦略を指向†
6
マルチクラウド・ハイブリッドクラウドへの推移
† RightScale, "Cloud Computing Trends: 2014 State of the Cloud Survey“,2014-04, http://assets.rightscale.com/uploads/pdfs/RightScale-2014-State-of-the-Cloud-Report.pdf
Public CloudのシェアはAWS 27% Azure 10% SoftLayer 7%、売上成長率はAzureが136%でダントツのトップ†
2年以内にIaaSプロバイダが提供するサービスの75%が再設計、再ブランド、あるいは廃止‡
7
クラウド事業者の栄枯盛衰
‡ IDC, “IDC Reveals Cloud Predictions for 2015“, 2014-12, http://www.idc.com/getdoc.jsp?containerId=prUS25350114
† Synergy Research Group, "Microsoft Cloud Revenues Leap; Amazon is Still Way Out in Front“,2014-10, https://www.srgresearch.com/articles/microsoft-cloud-revenues-leap-amazon-still-way-out-front
クラウド間の差異によるクラウドロックイン
提供されるマネージドサービスの差異
ネットワーク的には、いわゆるセキュリティグループやロードバランシング等
ネットワークアーキテクチャの差異
IPアドレス持ち込みや、multicast/broadcastの扱い等
8
クラウド間の差異による課題
AWS
Availability ZoneAvailability Zone
subnet subnet subnet
・サブネットアドレスやIPアドレスが指定可能・セキュリティグループが設定可能・broadcast/multicastは通らない
Private IPのみ
Public IPをNAT
private subnet
public subnetDC DC
SoftLayer
・broadcast/multicastが通る・サブネットアドレスやIPアドレスは指定不可能・セキュリティグループは設定不可能
Public IPとPrivate IP
security group
SoftLayerのネットワーク上へ、仮想ネットワークをオーバーレイ
東京DCとサンノゼDCを利用
仮想ネットワークは OpenVNet で敷設
オーバーレイした仮想ネットワークにDockerコンテナを所属させ、コンテナ間をフツウのL2(のように見えるナニカ)で接続
仮想ネットワークにいわゆるセキュリティグループを追加し、ネットワークレイヤでコンテナ間の接続性を制御
OpenVNet にがんばってもらう
9
今回の検証の目的
Docker社が開発しているOSSのコンテナ型仮想化ツール
Linuxのコンテナ技術を活用してプロセスの実行環境(ユーザ空間)を他のコンテナから隔離し、一つの仮想サーバのように見せかける技術
cgroups
networkやpid等のnamespace
11
コンテナ:docker
あくしゅ社が開発しているOSSの仮想ネットワークツール
OpenFlow1.3を利用してエッジオーバーレイ
L2/L3のネットワーク上に任意の仮想L2/L3ネットワークをオンデマンドにオーバーレイ
既存の物理ネットワークを仮想ネットワークへ延伸
12
仮想オーバーレイネットワーク:OpenVNet
今回の検証では2.3.0を使っています
OpenVNetの主要コンポーネント
13
仮想オーバーレイネットワーク:OpenVNet
エージェント
その他コンポーネント
vna (Virtual Network Agent)
– Open vSwitchの設定を変更する
– Trema-edgeによるOpenFlow 1.3のコントローラを内蔵する
vnmgr (Virtual Network Manager)
– 全体のネットワーク構成を把握し、vnaへの司令塔となる
– フロー制御ルールの永続化サービスを提供する
vnapi (Virtual Network API)
– Web APIのエンドポイントを提供する
– 外部からvnmgrへ指示を引き渡す連携窓口となる
vnctl (Virtual Network Controller)
– コマンドラインインターフェイスを提供する
– vnapiと対話する
Ansible社が開発しているOSSの構成管理ツール
対象サーバにクライアントツールを導入する必要が無い
Python 2.4以降が動作しSSH接続できればOK
パッケージインストールや設定ファイルの書き換えといった一般的な手順はYAMLで記述
少し面倒な処理は、python等でmoduleを作成
14
コンフィグレーション管理:ansible
東京DCに2台の仮想サーバ + サンノゼDCに1台の仮想サーバ
最小構成(1Core 1GB RAM)のPublic Cloud Instance
OSはCentOS 6.6(OpenVNetが公式サポートするOSがRHEL 6.4のため)
VLAN Spanningを設定し、別DCのVLANとの通信を許可
15
今回検証する構成
Public Primary Subnet
Private Primary Subnet
ansibleが動作
東京DC サンノゼDC
OpenVNetの導入は、ちょっと手間がかかります
OpenVNet自身のインストール
OSとOVS、及びOpenVNetを適切に設定
vnaの管理用サブネットとオーバーレイ用サブネットを設定
open vSwitchとkmod open vSwitch を2.3.0へバージョンアップ
CentOS 6.5以降+open vSwitch 1.1.0だと、なぜかOVS上にGREトンネルが作成できない
OpenStack IcehouseのRDOを使いiprouteをバージョンアップ
centos 6系のiprouteではnetwork namespaceが使えない
等々
16
OpenVNetの導入
ansible playbook作ったよ!
以下のような環境を自動構築します(詳細はコードを参照)
17
OpenVNetの導入
東京DC サンノゼDC
eth0
br0
eth1
vna
OVSeth0
br0
eth1
vna
OVSeth0
br0
eth1
vna
OVS
vnmgr
vnapi
vnctl
A.B.C.D/29.X .Y
E.F.G.H/29.Z
10.b.c.d/26 10.f.g.h/26
.x .y .z
mysql
redis
manager agent01 agent02
ansibleが動作
Docker + OpenVNetでDCを跨って仮想ネットワークをオーバーレイする設定を行うのは、ちょっと手間がかかります
Dockerコンテナの起動
network namespaceを用いてvethペアをovsとコンテナに設定
OpenVNetの設定
OpenVNet用ネットワークと、オーバーレイする仮想ネットワークをOpenVNetに教える
OpenVNetに接続するホストのNICとコンテナのNICをOpenVNetに教える
ホスト側ネットワークと仮想ネットワーク間のルーティングを適切に設定する
セキュリティグループを設定する
・・・
ホストOSとコンテナにスタティックルートを設定する
18
Docker + OpenVNetの設定
ansible playbook作ったよ!
以下のような環境を自動構築します(詳細はコードを参照)
19
Docker + OpenVNetの設定
東京DC サンノゼDC
eth0
br0
eth1
vna
OVSeth0
br0
eth1
vna
OVSeth0
br0
eth1
vna
OVS
vnmgr
vnapi
vnctl
A.B.C.D/29.X .Y
E.F.G.H/29.Z
10.b.c.d/26 10.f.g.h/26
.x .y .z
mysql
redis
manager agent01 agent02
veth11b
コンテナ11
veth11c
veth12b
コンテナ12
veth12c
veth13b
コンテナ13
veth13c
veth21b
コンテナ21
veth21c
veth22b
コンテナ22
veth22c
veth23b
コンテナ23
veth23c
veth31b
コンテナ31
veth31c
veth32b
コンテナ32
veth32c
veth33b
コンテナ33
veth33c
ansibleが動作
GREトンネル
GREトンネル
フローテーブル フローテーブル フローテーブル
オーバーレイされたネットワークは、論理的にはこう見えます
20
Docker + OpenVNetの設定
コンテナ11
veth11c
コンテナ12
veth12c
コンテナ13
veth13c
コンテナ21
veth21c
コンテナ22
veth22c
コンテナ23
veth23c
コンテナ31
veth31c
コンテナ32
veth32c
コンテナ33
veth33c
10.b.c.d/26 10.f.g.h/26
仮想ルータ
.x .y
OpenVNetの現在の仕様上、ホストネットワークから他サーバ上のコンテナへの経路は、仮想ルータでDROPされる
東京DC
.z
manager agent01 agent02
サンノゼDC
192.168.99.0/24
.α .β
.1
.11
.12
.13
.21
.22
.23
.31
.32
.33
Security Group 1
・ICMPを許可・SSHを許可・SG内は全て許可・それ以外は拒否
Security Group 2
・ICMPを許可・SG1からのSSHは許可・SG内は全て許可・それ以外は拒否
Security Group 3
・ICMPを許可・SG内は全て許可・それ以外は拒否
オーバーレイされた仮想ネットワーク
1. ansible playbookを用いたDocker + OpenVNetの設定
2. managerから自身上にあるコンテナへの疎通とセキュリティグループの確認(現在のOpenVNetの仕様上、他サーバのコンテナへの経路は仮想ルータでDROPされる)
1. 仮想ネットワーク上のコンテナにpingが通る
2. コンテナ11へはSSHできるが、セキュリティグループで禁じているコンテナ12や13へはSSHできない
3. 仮想ネットワーク上の疎通とセキュリティグループの確認
1. 全てのコンテナにpingが通り、arpテーブルも適切に学習されている
2. コンテナ11から同一セキュリティグループのコンテナ21やコンテナ31へはSSHできる
3. コンテナ11からセキュリティグループで許可しているコンテナ12や22へはSSHできる
4. コンテナ11からセキュリティグループで禁じている、コンテナ13や33へはSSHできない
21
デモ
デザイン指向クラウドオーケストレータ CloudConductor(Apache License version 2)
インフラ・運用のノウハウを込めたパターンを中心に、いつでも誰でもどのクラウドにでも、その時点で最適な非機能要件を持ったシステムを簡単に構築するOSSのツール
25
CloudConductorとは
今回はSoftLayer上で仮想オーバーレイネットワークの構築を検証した
解決すべき課題は、まだまだたくさんあるけれども
仮想オーバーレイネットワークの性能と安定性の検証
オーバーレイネットワークのパターン記述言語の開発
・・・26
仮想オーバーレイネットワークのパターン化
CloudConductorが扱うパターンとして、クラウドに依存しない仮想オーバーレイネットワークも形式知化が可能(なはず)
複雑なネットワークトポロジを持ったシステムであってもクラウド透過的にCloudConductorからプロビジョニングが可能(なはず)
27
CloudConductorの情報公開
公式サイト http://cloudconductor.org
ソーシャルhttps://twitter.com/ccndctr
https://www.facebook.com/cloudconductorhttps://github.com/cloudconductorhttp://www.slideshare.net/cloudconductor