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