WakameTech #3

1,568 views

Published on

Wakame Project provides open source software for building a cloud and using a cloud. If you have an interest, please join us! Twitter: @sparklegate

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,568
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

WakameTech #3

  1. 1. 株式会社あくしゅ 2010/11/1 Copyright (C) axsh co., LTD. 1
  2. 2. • Wakame Projectの概況 • Wakame-osとは何か • Wakame-osの開発状況について – デモンストレーション • Wakame-fuel2はどうなるか – そしてどうすべきか • Wakame-vdc2の開発状況について – デモンストレーション 2010/11/1 Copyright (C) axsh co., LTD. 2
  3. 3. Executive Summary 2010/11/1 Copyright (C) axsh co., LTD. 3
  4. 4. • ソフトウェゕを供給することで クラウドに携わる全ての人の お役に立ちたい!と言うプロジェクト – クラウドの概念は いくつもの層によって成立している – 各層ごとに 必要とされるソフトウェゕが異なる – クラウドを実現するエッセンスになりたい 2010/11/1 Copyright (C) axsh co., LTD. 4
  5. 5. Wakameとして リリースされているもの Wakame Wakame Wakame- Version up Wakame- fuel fuel2 New! Wakame-os Wakame- Version up Wakame- vdc vdc2
  6. 6. 世界中のデータセンターを 1つのコンピュータにする 2010/11/1 Copyright (C) axsh co., LTD. 6
  7. 7. Single PC Cloud Application Application Operating System Platform Hardware Infrastructure 2010/11/1 Copyright (C) axsh co., LTD. 7
  8. 8. Wakame Project Cloud Wakame-fuel Application Wakame-os Platform Wakame-vdc Infrastructure 2010/11/1 Copyright (C) axsh co., LTD. 8
  9. 9. • Eucalyptus/OpenStackなどと異なるのは、 IaaSのみに限定せず、 上位層(PaaS)で使われるプロダクトも リリースをしていく点 – すでにIaaS層をお持ちの企業様にも ご利用いただけるプロダクト構成を目指す – PaaSの視点からIaaSに手を加える 2010/11/1 Copyright (C) axsh co., LTD. 9
  10. 10. 実は進化しつづけていた 2010/11/1 Copyright (C) axsh co., LTD. 10
  11. 11. • vdcはシンプルさを全面に出していた • 標準機能 – ゗ンスタンスの起動~終了 • データセンタ内物理サーバの割り当て • ユーザごとのレンタル時間の計測 – Web API搭載 • ActiveResourceとしてゕクセス可能 2010/11/1 Copyright (C) axsh co., LTD. 11
  12. 12. • Xenの他、KVMに対応 – Xenよりも最新のH/W対応が早い利点があります。 – どちらと言わず混ぜても良いでしょう。 • iSCSI対応のブロックストレージを組み込み可能に – 標準でZFSに対応しています。 – ブロックストレージからブートできます。 – お客様の専有ストレージもセットゕップ可能です。 • セキュリテゖグループの実装 – vdcではNICをGlobal/Localで分ける提案をしましたが、 vdc2の本機能によりNICを分ける必要はほぼなくなります。 • GUIを標準装備 – とてもAmazonチック – デザ゗ン協力: The Designium (TheDesignium.com)
  13. 13. どんな仕掛けを実装したかは 懇親会で! 2010/11/1 Copyright (C) axsh co., LTD. 13
  14. 14. 1. GUIのご紹介 2. ゗ンスタンスが起動! – ZFSによるブロックデバ゗スからのブート – KVMによる゗ンスタンス化 3. ブロックデバ゗スを作ったり消したり! 4. セキュリテゖグループを設定! – 論理的に3階層以上の構成が組めます 2010/11/1 Copyright (C) axsh co., LTD. 14
  15. 15. またOSだとか言うヤツが現れたわけで 2010/11/1 Copyright (C) axsh co., LTD. 15
  16. 16. • Cluster level Infrastructureの為のOS – 和訳… クラスタレベル基盤 • ゕプリケーション開発者にメリットがある – 初歩的な並列プログラミングレベルでも 処理効果だけを大きく改善できる – Webなどの分散システムの管理に利用できる • シングルコンピュータ用のOSは既にある – Linux, FreeBSD, Mac OS X, Windows ... 2010/11/1 Copyright (C) axsh co., LTD. 16
  17. 17. 引用: つきつめて言えば、 私たちはこれらのサービスを データセンターのオペレーテゖングシステムとして とらえている。 「Googleクラウドの核心」第2章より 2010/11/1 Copyright (C) axsh co., LTD. 17
  18. 18. 引用: 例としては、(中略) Hadoop`、(中略)、BigTableなどがある 「Googleクラウドの核心」第2章より 2010/11/1 Copyright (C) axsh co., LTD. 18
  19. 19. 疑問: もっと汎用的な何かではないのか? 2010/11/1 Copyright (C) axsh co., LTD. 19
  20. 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
  21. 21. …Wakame-kernelって言う方が正しいかも 2010/11/1 Copyright (C) axsh co., LTD. 21
  22. 22. • OS上で動作するゕプリケーション共通の 処理を受け持つ – 操作感(GUI) – ハードウェゕの差異を吸収する – コンピュータ上のリソースを管理する • CPU, Memory, File等 2010/11/1 Copyright (C) axsh co., LTD. 22
  23. 23. • OS上で動作するゕプリケーション共通の 処理を受け持つ – 操作感(GUI) – クラスタの差異を吸収する – クラスタ上のリソースを管理する • Server, KVS/DB, Storage等 →ここでHadoopとか出てくるのでは 2010/11/1 Copyright (C) axsh co., LTD. 23
  24. 24. • オフラ゗ンの処理 – Batchを含む分散処理のこと – 例) PIの計算、大量の帳票系処理 • オンラ゗ンの処理 – Webシステムを含む分散処理のこと – 例) Blog, SNS, Mailer, 社内業務システム 2010/11/1 Copyright (C) axsh co., LTD. 24
  25. 25. Hardware Software 2010/11/1 Copyright (C) axsh co., LTD. 25
  26. 26. Network Hardware Network Software 2010/11/1 Copyright (C) axsh co., LTD. 26
  27. 27. 1. 電子回路が、ネットワークになっただけ 2. H/Wに対するコードを書くのは大変だったのだから ネットワークH/Wに対するコードを書くのも大変 3. 次に必要になるのはそれらH/W差異を吸収するOS あとはOSに対するコードを書けば良いだけ 2010/11/1 Copyright (C) axsh co., LTD. 27
  28. 28. 2010/11/1 Copyright (C) axsh co., LTD. 28
  29. 29. 世界中のデータセンターを 1つのコンピュータにする 2010/11/1 Copyright (C) axsh co., LTD. 29
  30. 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. 31. • 実際はOSの上に直接ゕプリケーションを 書き始める人は少ない – 目的に対して低レベル過ぎる – OSの機能を活かせるフレームワークが必要 • Windows上のMFCやDirectX等 • Wakame-os上ではWakame-fuel2がその1つに 2010/11/1 Copyright (C) axsh co., LTD. 31
  32. 32. • 仮想マシン – fork(3), Process.new • メモリ – malloc(3), Hash.new • ストレージ –? • 演算ユニット – libc MMX optimization Wakame-osはこれまでの作法を重視し ゕナロジー・メタフゔーとした設計で ゕプリケーションへ機能提供する 2010/11/1 Copyright (C) axsh co., LTD. 32
  33. 33. • Wakame-fuel2は… – 世界のiDCで動くゕプリケーションを 集中管理可能にする • Wakame-osは… – 世界のiDCを1つのiDCとして管理可能にする • Wakame-vdc2は… – 世界のiDCの1つとして自らを参加可能にする 2010/11/1 Copyright (C) axsh co., LTD. 33
  34. 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. 35. ほら、 世界中のデータセンターが 1つのコンピュータになる (そんな気がしたらぜひご参加を) 2010/11/1 Copyright (C) axsh co., LTD. 35
  36. 36. ちょっと待った。 ここで一寸歴史を振り返ります。 2010/11/1 Copyright (C) axsh co., LTD. 36
  37. 37. win MS-DOS 2010/11/1 Copyright (C) axsh co., LTD. 37
  38. 38. Wakame-os Linux kernel 2010/11/1 Copyright (C) axsh co., LTD. 38
  39. 39. 統合 Wakame-os Windows 95 Linux kernel いつか必ず実現します 2010/11/1 Copyright (C) axsh co., LTD. 39
  40. 40. 2010/11/1 Copyright (C) axsh co., LTD. 40
  41. 41. 設計方針 • 開発者や運用者なら誰にでも スケールゕウトが当たり前の ゕプリケーションを 設計・製造・管理することができる • プログラミングの作法を大きく変えずに 効果だけを大きく変えられる 2010/11/1 Copyright (C) axsh co., LTD. 41
  42. 42. Network Process MS Office Process Web System Network Kernel Windows Kernel Wakame 2010/11/1 Copyright (C) axsh co., LTD. 42
  43. 43. 影響させようとしない限り Notepad Calc Windows 2010/11/1 Copyright (C) axsh co., LTD. 43
  44. 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. 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. 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. 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. 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. 49. 1. サーバの起動・終了させてみよう 2. ハ゗ブリッドクラウドの実現してみよう 3. fork/ps/killの動作確認をしてみよう 4. バッチ処理の分散をしてみよう (PIの計算) 5. Webゕプリケーションを分散してみよう (LB+Apache) 2010/11/1 Copyright (C) axsh co., LTD. 49
  50. 50. 2010/11/1 Copyright (C) axsh co., LTD. 50
  51. 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. 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. 53. プロダクトそのものが スケーラビリテゖを持つようになるはず 2010/11/1 Copyright (C) axsh co., LTD. 53
  54. 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. 55. $ apt-get install gmail Webシステムそのものを クラスタ上に゗ンストールすることが できるようになる。 2010/11/1 Copyright (C) axsh co., LTD. 55
  56. 56. 2010/11/1 Copyright (C) axsh co., LTD. 56
  57. 57. • Ruby – 基本的に全てRubyで書かれている • RabbitMQ (AMQP) – ノード間の通信は全てAMQPを経由する 2010/11/1 Copyright (C) axsh co., LTD. 57
  58. 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. 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. 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. 61. 仕事がゕサ゗ンできる゗ンスタンスが Application 存在していればそれを再利用する。 (1)実行コードの転送 Instance AMQP Application (2) コード実行 Agent CLIOS Hybrid Cloud 2010/11/1 Copyright (C) axsh co., LTD. 61
  62. 62. ゕプリケーションの要求が無くなり、 Application 仕事をしない゗ンスタンスは 次の課金時間を迎える直前に削除される。 Instance AMQP Agent (1)゗ンスタンスの ラ゗フサ゗クルを管理 CLIOS どの゗ンスタンスが起動中か? どの゗ンスタンスが仕事中か? (2)削除 どの゗ンスタンスを削除すべきか? Hybrid Cloud (3)゗ンスタンスの削除 2010/11/1 Copyright (C) axsh co., LTD. 62
  63. 63. 思っていたより 単純な仕組みです。 2010/11/1 Copyright (C) axsh co., LTD. 63
  64. 64. Future Works: 2010/11/1 Copyright (C) axsh co., LTD. 64
  65. 65. • forkもプロセスの管理で実現できる • 同じプロセスの管理ならば、 fuel2もそのままの発想で実現できそう • しかも、 あたかも1台のPCであるかのように 管理できてしまうかも 2010/11/1 Copyright (C) axsh co., LTD. 65
  66. 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. 67. $ ssh ... $ /etc/init.d/... $ ssh ... $ /etc/init.d/... $ ssh ... $ /etc/init.d/... サーバの分散を 強く意識する必要がある 2010/11/1 Copyright (C) axsh co., LTD. 67
  68. 68. Refrain: 世界中のデータセンターを 1つのコンピュータにする 2010/11/1 Copyright (C) axsh co., LTD. 68
  69. 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. 70. そうなると、1台のマシンの上に、 プロセスを起動していくinit.dみたいなものが欲しくなる。 しかし、非同期プロセスとしてもっと秩序良くサービスを 起動したりするものを参考にした設計としたい… それって何だろうか。 2010/11/1 Copyright (C) axsh co., LTD. 70
  71. 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. 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
  73. 73. Wakame-fuel2は、 Wakame-osの上で動くInit Daemonです。 2010/11/1 Copyright (C) axsh co., LTD. 73
  74. 74. Refrain: プロダクトそのものが スケーラビリテゖを持つようになるはず 2010/11/1 Copyright (C) axsh co., LTD. 74
  75. 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. 76. これまでのfuel これからのfuel • Master/Agent構成 • Agent自律構成 – スター型トポロジ – ピゕ型トポロジ – Masterに゗ンテリジェンス – Masterは存在しない – Agentは指示待ち – Agentが自力で行動する • ゗ベントネットワーク • 手順実行エンジン – fuelとは独立したスクリプ – フレームワークの上に手順 トで手順が書ける を作り込む – 手順は゗ベントの受発信を 行うのみ – OSの機能をそのまま利用す るため、ハ゗ブリッドクラ ウド前提で手順が書ける 2010/11/1 Copyright (C) axsh co., LTD. 76
  77. 77. 開発を継続するにあたって 2010/11/1 Copyright (C) axsh co., LTD. 77
  78. 78. • クラウドの発展を支える本ソフトウェゕ の技術的発展とビジネスへの活用推進を 目的とした任意団体 • 現在任意団体であり、 弊社株式会社あくしゅが運営を努めてお りますが、今後は運営中立性を高めるた めにNPOへの移行を目指す 2010/11/1 Copyright (C) axsh co., LTD. 78
  79. 79. • コードコミット – 進捗報告・新機能報告 – 会員要望を優先することができます – Wakame標準機能としてリリースされます • ノウハウの共有 • 開発ロードマップ策定 – コメントが可能です 2010/11/1 Copyright (C) axsh co., LTD. 79
  80. 80. • Wakame Software Foundationでは Apache License version 2.0を採用します • Value-addして 独自にビジネス展開していただくことが 可能です 2010/11/1 Copyright (C) axsh co., LTD. 80
  81. 81. • Wakame Software Foundation会員 – 2010年中のご入会であれば、 将来も無料です。 • Source Code Author – コントリビュートをお待ちしております。 2010/11/1 Copyright (C) axsh co., LTD. 81
  82. 82. 割と本気で世界に通用する ソフトウェゕを目指しています 2010/11/1 Copyright (C) axsh co., LTD. 82
  83. 83. 『世界のクラウドソリューションへ!』 83
  84. 84. 2010年は絞り出す年だよ! axsh co., LTD. 84

×