wakametech #3
DESCRIPTION
Wakame Project provides open source software for building a cloud and using a cloud. If you have an interest, please join us! Twitter: @sparklegateTRANSCRIPT
株式会社あくしゅ
12010/11/1 Copyright (C) axsh co., LTD.
• Wakame Projectの概況
• Wakame-osとは何か
• Wakame-osの開発状況について
– デモンストレーション
• Wakame-fuel2はどうなるか
– そしてどうすべきか
• Wakame-vdc2の開発状況について
– デモンストレーション
22010/11/1 Copyright (C) axsh co., LTD.
Executive Summary
2010/11/1 Copyright (C) axsh co., LTD. 3
• ソフトウェゕを供給することでクラウドに携わる全ての人のお役に立ちたい!と言うプロジェクト
– クラウドの概念はいくつもの層によって成立している
– 各層ごとに必要とされるソフトウェゕが異なる
– クラウドを実現するエッセンスになりたい
2010/11/1 Copyright (C) axsh co., LTD. 4
Wakame
Wakame-
fuel
Wakame-
vdc
Wakameとしてリリースされているもの
Wakame
Wakame-
fuel2
Wakame-os
Wakame-
vdc2
Version up
Version up
New!
世界中のデータセンターを1つのコンピュータにする
62010/11/1 Copyright (C) axsh co., LTD.
Cloud
2010/11/1 Copyright (C) axsh co., LTD. 7
Infrastructure
Platform
Application
Hardware
Operating System
Application
Single PC
2010/11/1 Copyright (C) axsh co., LTD. 8
Infrastructure
Platform
Application
Cloud
Wakame-fuel
Wakame-os
Wakame-vdc
Wakame Project
• Eucalyptus/OpenStackなどと異なるのは、IaaSのみに限定せず、上位層(PaaS)で使われるプロダクトもリリースをしていく点
– すでにIaaS層をお持ちの企業様にもご利用いただけるプロダクト構成を目指す
– PaaSの視点からIaaSに手を加える
2010/11/1 Copyright (C) axsh co., LTD. 9
実は進化しつづけていた
2010/11/1 Copyright (C) axsh co., LTD. 10
• vdcはシンプルさを全面に出していた
• 標準機能
– ンスタンスの起動~終了
• データセンタ内物理サーバの割り当て
• ユーザごとのレンタル時間の計測
– Web API搭載
• ActiveResourceとしてゕクセス可能
2010/11/1 Copyright (C) axsh co., LTD. 11
• Xenの他、KVMに対応– Xenよりも最新のH/W対応が早い利点があります。– どちらと言わず混ぜても良いでしょう。
• iSCSI対応のブロックストレージを組み込み可能に– 標準でZFSに対応しています。– ブロックストレージからブートできます。– お客様の専有ストレージもセットゕップ可能です。
• セキュリテゖグループの実装– vdcではNICをGlobal/Localで分ける提案をしましたが、
vdc2の本機能によりNICを分ける必要はほぼなくなります。
• GUIを標準装備– とてもAmazonチック– デザン協力: The Designium (TheDesignium.com)
2010/11/1 Copyright (C) axsh co., LTD. 13
どんな仕掛けを実装したかは懇親会で!
2010/11/1 Copyright (C) axsh co., LTD. 14
1. GUIのご紹介
2. ンスタンスが起動!
– ZFSによるブロックデバスからのブート
– KVMによるンスタンス化
3. ブロックデバスを作ったり消したり!
4. セキュリテゖグループを設定!
– 論理的に3階層以上の構成が組めます
またOSだとか言うヤツが現れたわけで
2010/11/1 Copyright (C) axsh co., LTD. 15
• Cluster level Infrastructureの為のOS– 和訳… クラスタレベル基盤
• ゕプリケーション開発者にメリットがある– 初歩的な並列プログラミングレベルでも
処理効果だけを大きく改善できる– Webなどの分散システムの管理に利用できる
• シングルコンピュータ用のOSは既にある– Linux, FreeBSD, Mac OS X, Windows ...
162010/11/1 Copyright (C) axsh co., LTD.
つきつめて言えば、私たちはこれらのサービスをデータセンターのオペレーテゖングシステムとしてとらえている。
引用:
「Googleクラウドの核心」第2章より
172010/11/1 Copyright (C) axsh co., LTD.
例としては、(中略)
Hadoop`、(中略)、BigTableなどがある
引用:
「Googleクラウドの核心」第2章より
182010/11/1 Copyright (C) axsh co., LTD.
19
疑問:もっと汎用的な何かではないのか?
2010/11/1 Copyright (C) axsh co., LTD.
20
オペレーテゖングシステム (Operating System, OS) は、コンピュータにおいて、ハードウェゕを抽象化したンターフェースをゕプリケーションソフトウェゕに提供するソフトウェゕであり、システムソフトウェゕの一種である。マスコミ等は日本語訳として「基本ソフト」を使っている。なお、OSのGUIフロントエンドであるデスクトップ環境についても触れる。広義のOSには、ウゖンドウシステムやデータベース管理システム (DBMS) などのミドルウェゕ、フゔル管理ソフトウェゕやエデゖタや各種設定ツールなどのユーテゖリテゖ(これらはいずれも基本ソフトウェゕ)、基本的なゕプリケーションソフトウェゕ(ウェブブラウザや時計などのゕクセサリ)を含むことがある。一般的に「オペレーテゖングシステム」という場合はこちらを指すことが多い。現在に至る統合環境と平易なユーザンタフェースを意識する傾向は、Mac OSやMicrosoft Windowsの登場で鮮明となった。このため、Mac OS
以降の近年のOSとMS-DOSなどの初期のOSは分けて扱われることが多い。OSの中で、ハードウェゕを直接管理操作するなどの最も中心的な機能の部分を、特にカーネルと呼んで分けることもある。この場合、カーネル以外の部分(シェルなど)はユーザーランドと呼ばれる。また、カーネルとユーザーランドではCPUモードやゕドレス空間が異なっている。
「Wikipedia: オペレーテゖングシステム」より
2010/11/1 Copyright (C) axsh co., LTD.
21
…Wakame-kernelって言う方が正しいかも
2010/11/1 Copyright (C) axsh co., LTD.
• OS上で動作するゕプリケーション共通の処理を受け持つ
– 操作感(GUI)
– ハードウェゕの差異を吸収する
– コンピュータ上のリソースを管理する
• CPU, Memory, File等
222010/11/1 Copyright (C) axsh co., LTD.
• OS上で動作するゕプリケーション共通の処理を受け持つ
– 操作感(GUI)
– クラスタの差異を吸収する
– クラスタ上のリソースを管理する
• Server, KVS/DB, Storage等→ここでHadoopとか出てくるのでは
232010/11/1 Copyright (C) axsh co., LTD.
• オフランの処理
– Batchを含む分散処理のこと
– 例) PIの計算、大量の帳票系処理
• オンランの処理
– Webシステムを含む分散処理のこと
– 例) Blog, SNS, Mailer, 社内業務システム
242010/11/1 Copyright (C) axsh co., LTD.
Hardware Software
252010/11/1 Copyright (C) axsh co., LTD.
Network Hardware Network Software
262010/11/1 Copyright (C) axsh co., LTD.
1. 電子回路が、ネットワークになっただけ
2. H/Wに対するコードを書くのは大変だったのだからネットワークH/Wに対するコードを書くのも大変
3. 次に必要になるのはそれらH/W差異を吸収するOS
あとはOSに対するコードを書けば良いだけ
272010/11/1 Copyright (C) axsh co., LTD.
2010/11/1 Copyright (C) axsh co., LTD. 28
世界中のデータセンターを1つのコンピュータにする
292010/11/1 Copyright (C) axsh co., LTD.
• プロセッサ(仮想マシン系)
– Xen, KVM, VMware, Hyper-V ...
• メモリ(KVS/DB系)
– memcached, Cassandra, MongoDB ...
• ストレージ(FS系)
– ZFS, NFS, LVM ...
• 演算ユニット
– Hadoop ...
30
Wakame-osはこうしたものをコンピュータ資源やデバスととらえてゕプリケーションへ機能提供する
2010/11/1 Copyright (C) axsh co., LTD.
• 実際はOSの上に直接ゕプリケーションを書き始める人は少ない
– 目的に対して低レベル過ぎる
– OSの機能を活かせるフレームワークが必要
• Windows上のMFCやDirectX等
• Wakame-os上ではWakame-fuel2がその1つに
312010/11/1 Copyright (C) axsh co., LTD.
• 仮想マシン
– fork(3), Process.new
• メモリ
– malloc(3), Hash.new
• ストレージ
– ?
• 演算ユニット
– libc MMX optimization
32
Wakame-osはこれまでの作法を重視しゕナロジー・メタフゔーとした設計でゕプリケーションへ機能提供する
2010/11/1 Copyright (C) axsh co., LTD.
• Wakame-fuel2は…
– 世界のiDCで動くゕプリケーションを集中管理可能にする
• Wakame-osは…
– 世界のiDCを1つのiDCとして管理可能にする
• Wakame-vdc2は…
– 世界のiDCの1つとして自らを参加可能にする
332010/11/1 Copyright (C) axsh co., LTD.
Wakame-vdc2
Wakame-fuel2
Wakame-os
2010/11/1 Copyright (C) axsh co., LTD. 34
Cloud-A Cloud-B
Cluster Level Infrastructure
Operating System
Application
User Wikipedia:
世界中のデータセンターが1つのコンピュータになる
35
(そんな気がしたらぜひご参加を)
2010/11/1 Copyright (C) axsh co., LTD.
ほら、
36
ちょっと待った。
ここで一寸歴史を振り返ります。
2010/11/1 Copyright (C) axsh co., LTD.
37
MS-DOS
win
2010/11/1 Copyright (C) axsh co., LTD.
38
Linux kernel
Wakame-os
2010/11/1 Copyright (C) axsh co., LTD.
39
Windows 95 Linux kernel
Wakame-os
いつか必ず実現します
統合
2010/11/1 Copyright (C) axsh co., LTD.
2010/11/1 Copyright (C) axsh co., LTD. 40
• 開発者や運用者なら誰にでもスケールゕウトが当たり前のゕプリケーションを設計・製造・管理することができる
• プログラミングの作法を大きく変えずに効果だけを大きく変えられる
412010/11/1 Copyright (C) axsh co., LTD.
設計方針
Kernel
Process
Network
Kernel
Network
ProcessMS Office Web System
Windows Wakame
2010/11/1 42Copyright (C) axsh co., LTD.
Notepad
影響させようとしない限り
Calc
Windows
2010/11/1 43Copyright (C) axsh co., LTD.
Process libc Kernel
System
Call
Network
Processlibwakame
Network
Kernel
System
Call
require
link
2010/11/1 44Copyright (C) axsh co., LTD.
2010/11/1 Copyright (C) axsh co., LTD. 45
Server-2 (CPU-2)
Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Server-1 (CPU-1)
Ruby
Process
Ruby
Process
クラスタコンピュータ用OS(Kernel)の場合
単一コンピュータ用OS(Kernel)の場合
Server-2 (CPU-2)
OS
Wakame-os
exec
fork
etc...
exec
fork
etc...
近傍のマシンとは何ら関係もない
2010/11/1 Copyright (C) axsh co., LTD. 46
Process.fork {
print “Hello world!¥n”
}
wakame.fork {
print “Hello world!¥n”
}
Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Server-2 (CPU-2)
OSexec
fork
etc...
Server-2 (CPU-2)Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Wakame-osexec
fork
etc...
2010/11/1 Copyright (C) axsh co., LTD. 47
$ psPID TTY TIME CMD2790 pts/5 00:00:00 ruby
32442 pts/5 00:00:00 ruby
$wpsI_NAME JOB STIME
PH:327c3ad1c3c EXEC 2010-09-09PH:21dcd2839b5 EXEC 2010-09-09
Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Server-2 (CPU-2)
OSps
Server-2 (CPU-2)Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Wakame-osps
2010/11/1 Copyright (C) axsh co., LTD. 48
$ kill 32442
$ wkill PH:21dcd2839b5
Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Server-2 (CPU-2)
OSkill
Server-2 (CPU-2)Server-1 (CPU-1)
Ruby
Process
Ruby
Process
Wakame-oskill
2010/11/1 Copyright (C) axsh co., LTD. 49
1. サーバの起動・終了させてみよう
2. ハブリッドクラウドの実現してみよう
3. fork/ps/killの動作確認をしてみよう
4. バッチ処理の分散をしてみよう(PIの計算)
5. Webゕプリケーションを分散してみよう
(LB+Apache)
2010/11/1 Copyright (C) axsh co., LTD. 50
2010/11/1 Copyright (C) axsh co., LTD. 51
require 'socket'
tcp_server = TCPServer.open(8000)
loop do
socket = tcp_server.accept
Process.fork do
while socket.gets
socket.write($_)
end
socket.close
end
end
...(略)...
Wakame.fork(socket) do |socket|
while socket.gets
socket.write($_)
end
socket.close
end...(略)...
※こいつの実現は課題も多い
ハスケールなエコーサーバーを手軽に
2010/11/1 Copyright (C) axsh co., LTD. 52
現在のhttpd.confより:
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
Kernelに統合されれば、Apache (prefork)の設定フゔルの意味も大きく変わるのではないか。
Linux kernel
Wakame-os
Apachefork
MinWakameSpareServers 5
MaxWakameSpareServers 10
2010/11/1 Copyright (C) axsh co., LTD. 53
プロダクトそのものがスケーラビリテゖを持つようになるはず
• Wakame-osにKernel的発想の機能が十分追加されている
• Wakame-fuel2が活用されている
– 分散ゕプリケーションのための便利な管理ツールとして
• Wakame-osがLinuxへ組み込まれている
– C/C++で実装しなおされた版か… (GCD?)
– or Rubyの現行版へのドラバを書くとか…
• Distribution標準の機能になっている
2010/11/1 Copyright (C) axsh co., LTD. 54
2010/11/1 Copyright (C) axsh co., LTD. 55
$ apt-get install gmail
Webシステムそのものをクラスタ上にンストールすることができるようになる。
2010/11/1 Copyright (C) axsh co., LTD. 56
• Ruby
– 基本的に全てRubyで書かれている
• RabbitMQ (AMQP)
– ノード間の通信は全てAMQPを経由する
2010/11/1 Copyright (C) axsh co., LTD. 57
2010/11/1 Copyright (C) axsh co., LTD. 58
AMQP
CLIOS
Application
Cluster Level Infrastructure Operating System
AMQPネットワーク
ゕプリケーション・クラゕント
Hybrid
Cloud
ハブリッドクラウド(AWS, Wakame-vdc2等のIaaS型クラウド)
2010/11/1 Copyright (C) axsh co., LTD. 59
CLIOS
Hybrid
Cloud
AMQP
Wakame-vdc2
NiftyCloud
AWS(US)
Application ンスタンスの論理名カタログ
“AWS-US”•AWS(US)
•us-east-1a•認証情報あれこれ
•Instance Type
•AMI•課金サクル等
“Nifty”•NiftyCloud•東京•認証情報あれこれ
•Instance Type•課金サクル等
“Wakame”•Wakame-vdc2•地方iDC
•認証情報あれこれ
•Instance Type
•WMI
“Wakame”のンスタンスが欲しい
2010/11/1 Copyright (C) axsh co., LTD. 60
AMQP
CLIOS
Application
Hybrid
Cloud
Instance
(3)ンスタンスの起動
Agent
(4)ンスタンス上にAgentが起動
(5)実行コードの転送
Application (6) コード実行
(1)
ンス
タン
スの
要求
(2)ク
ラウ
ドの
選択
2010/11/1 Copyright (C) axsh co., LTD. 61
AMQP
CLIOS
Application
Hybrid
Cloud
Instance
Agent
(1)実行コードの転送
Application (2) コード実行
仕事がゕサンできるンスタンスが存在していればそれを再利用する。
2010/11/1 Copyright (C) axsh co., LTD. 62
AMQP
CLIOS
Hybrid
Cloud
Instance
Agent
(2)削除
(1)ンスタンスのラフサクルを管理
どのンスタンスが起動中か?どのンスタンスが仕事中か?どのンスタンスを削除すべきか?
(3)ンスタンスの削除
ゕプリケーションの要求が無くなり、仕事をしないンスタンスは次の課金時間を迎える直前に削除される。
Application
2010/11/1 Copyright (C) axsh co., LTD. 63
思っていたより単純な仕組みです。
Future Works:
2010/11/1 Copyright (C) axsh co., LTD. 64
• forkもプロセスの管理で実現できる
• 同じプロセスの管理ならば、fuel2もそのままの発想で実現できそう
• しかも、あたかも1台のPCであるかのように管理できてしまうかも
2010/11/1 Copyright (C) axsh co., LTD. 65
2010/11/1 Copyright (C) axsh co., LTD. 66
開発環境なんかは、1台のマシンに全てのプロセスを詰め込みます。
$ psPID TTY TIME CMD2614 pts/5 00:00:00 pound2790 pts/5 00:00:00 apache3482 pts/5 00:00:00 memcached
32442 pts/5 00:00:00 mysql
このレベルの管理で良い。本番に比べれば楽なもの。
2010/11/1 Copyright (C) axsh co., LTD. 67
$ ssh ...$ /etc/init.d/...
$ ssh ...$ /etc/init.d/...
$ ssh ...$ /etc/init.d/...
サーバの分散を強く意識する必要がある
2010/11/1 Copyright (C) axsh co., LTD. 68
世界中のデータセンターを1つのコンピュータにする
Refrain:
2010/11/1 Copyright (C) axsh co., LTD. 69
本番環境だって、あたかも1台のマシンに全てのプロセスを詰め込んだ感じに。
$ wpsI_NAME STIME CMD
PH:327c3ad1c3c 2010-09-09 poundPH:21dcd2839b5 2010-09-09 apachePH:498cfa13bac 2010-09-09 memcachedPH:9cedf2ab2ae 2010-09-09 mysql
$ apachectl restart
プロセスを管理するかのように分散システムを管理したい
2010/11/1 Copyright (C) axsh co., LTD. 70
そうなると、1台のマシンの上に、プロセスを起動していくinit.dみたいなものが欲しくなる。
しかし、非同期プロセスとしてもっと秩序良くサービスを起動したりするものを参考にした設計としたい…
それって何だろうか。
2010/11/1 Copyright (C) axsh co., LTD. 71
Upstart
起動トリガ
Application
(Pound) Application
(Apache)
Application(memcached)
Application
(MySQL)
MySQLとmemcachedが起動したら教えてください。Apacheを起動させますので。
Apacheが起動したら教えてください。Poundを起動させますので。
起動トリガが呼ばれたら教えてください。
memcachedを起動させますので。
起動トリガが呼ばれたら教えてください。MySQLを起動させますので。
各ミドルウェゕが興味のあるベントを宣言。それが発生した時に、行動を起こす仕組み。
2010/11/1 Copyright (C) axsh co., LTD. 72
AMQP
Application
(Pound) Application
(Apache)
Application(memcached)
Application
(MySQL)
Pound.new {event(:start_apache) { |apaches|
# append apache as child.start
}}.confirm
Apache.new {event(:start_memcached, :start_mysql) {
start}
}.confirm
Memcached.new.start
MySQL.new.start
※まだ設計中の段階です。
2010/11/1 Copyright (C) axsh co., LTD. 73
Wakame-fuel2は、Wakame-osの上で動くInit Daemonです。
2010/11/1 Copyright (C) axsh co., LTD. 74
プロダクトそのものがスケーラビリテゖを持つようになるはず
Refrain:
2010/11/1 Copyright (C) axsh co., LTD. 75
$ /etc/init.d/httpd start
$ /etc/init.d/httpd scale 100
$ /etc/init.d/httpd scale 1
これまでのfuel
• Master/Agent構成
– スター型トポロジ
– Masterにンテリジェンス
– Agentは指示待ち
• 手順実行エンジン– フレームワークの上に手順
を作り込む
これからのfuel
• Agent自律構成– ピゕ型トポロジ
– Masterは存在しない
– Agentが自力で行動する
• ベントネットワーク– fuelとは独立したスクリプ
トで手順が書ける
– 手順はベントの受発信を行うのみ
– OSの機能をそのまま利用するため、ハブリッドクラウド前提で手順が書ける
2010/11/1 Copyright (C) axsh co., LTD. 76
開発を継続するにあたって
2010/11/1 Copyright (C) axsh co., LTD. 77
• クラウドの発展を支える本ソフトウェゕの技術的発展とビジネスへの活用推進を目的とした任意団体
• 現在任意団体であり、弊社株式会社あくしゅが運営を努めておりますが、今後は運営中立性を高めるためにNPOへの移行を目指す
2010/11/1 Copyright (C) axsh co., LTD. 78
• コードコミット
– 進捗報告・新機能報告
– 会員要望を優先することができます
– Wakame標準機能としてリリースされます
• ノウハウの共有
• 開発ロードマップ策定
– コメントが可能です
2010/11/1 Copyright (C) axsh co., LTD. 79
• Wakame Software FoundationではApache License version 2.0を採用します
• Value-addして独自にビジネス展開していただくことが可能です
2010/11/1 Copyright (C) axsh co., LTD. 80
• Wakame Software Foundation会員
– 2010年中のご入会であれば、将来も無料です。
• Source Code Author
– コントリビュートをお待ちしております。
2010/11/1 Copyright (C) axsh co., LTD. 81
2010/11/1 Copyright (C) axsh co., LTD. 82
割と本気で世界に通用するソフトウェゕを目指しています
83
『世界のクラウドソリューションへ!』
axsh co., LTD.
84
2010年は絞り出す年だよ!