株式会社あくしゅ




2010/11/1    Copyright (C) axsh co., LTD.   1
• Wakame Projectの概況
     • Wakame-osとは何か
     • Wakame-osの開発状況について
            – デモンストレーション
     • Wakame-fuel2はどうなるか
    ...
Executive Summary




2010/11/1                       Copyright (C) axsh co., LTD.   3
• ソフトウェゕを供給することで
       クラウドに携わる全ての人の
       お役に立ちたい!と言うプロジェクト
            – クラウドの概念は
              いくつもの層によって成立している
     ...
Wakameとして
リリースされているもの

  Wakame                           Wakame

  Wakame-     Version up          Wakame-
    fuel      ...
世界中のデータセンターを
    1つのコンピュータにする



2010/11/1   Copyright (C) axsh co., LTD.   6
Single PC                                          Cloud


              Application                                      ...
Wakame Project                                      Cloud


       Wakame-fuel                                           A...
• Eucalyptus/OpenStackなどと異なるのは、
       IaaSのみに限定せず、
       上位層(PaaS)で使われるプロダクトも
       リリースをしていく点
            – すでにIaaS層をお...
実は進化しつづけていた




2010/11/1                 Copyright (C) axsh co., LTD.   10
• vdcはシンプルさを全面に出していた
     • 標準機能
            – ゗ンスタンスの起動~終了
              • データセンタ内物理サーバの割り当て
              • ユーザごとのレンタル時間...
• Xenの他、KVMに対応
 – Xenよりも最新のH/W対応が早い利点があります。
 – どちらと言わず混ぜても良いでしょう。
• iSCSI対応のブロックストレージを組み込み可能に
 – 標準でZFSに対応しています。
 – ブロックスト...
どんな仕掛けを実装したかは
                懇親会で!




2010/11/1       Copyright (C) axsh co., LTD.   13
1. GUIのご紹介
      2. ゗ンスタンスが起動!
            – ZFSによるブロックデバ゗スからのブート
            – KVMによる゗ンスタンス化
      3. ブロックデバ゗スを作ったり消したり!
...
またOSだとか言うヤツが現れたわけで




2010/11/1              Copyright (C) axsh co., LTD.   15
• Cluster level Infrastructureの為のOS
            – 和訳… クラスタレベル基盤

     • ゕプリケーション開発者にメリットがある
            – 初歩的な並列プログラミングレベル...
引用:
       つきつめて言えば、
       私たちはこれらのサービスを
       データセンターのオペレーテゖングシステムとして
       とらえている。
                  「Googleクラウドの核心」第...
引用:
       例としては、(中略)
       Hadoop`、(中略)、BigTableなどがある


                      「Googleクラウドの核心」第2章より




2010/11/1        ...
疑問:
    もっと汎用的な何かではないのか?




2010/11/1   Copyright (C) axsh co., LTD.   19
「Wikipedia: オペレーテゖングシステム」より
オペレーテゖングシステム (Operating System, OS) は、コンピュータに
おいて、ハードウェゕを抽象化した゗ンターフェースをゕプリケーショ
ンソフトウェゕに提供するソフト...
…Wakame-kernelって言う方が正しいかも




2010/11/1            Copyright (C) axsh co., LTD.   21
• OS上で動作するゕプリケーション共通の
       処理を受け持つ
            – 操作感(GUI)
            – ハードウェゕの差異を吸収する
            – コンピュータ上のリソースを管理する
 ...
• OS上で動作するゕプリケーション共通の
       処理を受け持つ
            – 操作感(GUI)
            – クラスタの差異を吸収する
            – クラスタ上のリソースを管理する
     ...
• オフラ゗ンの処理
            – Batchを含む分散処理のこと
            – 例) PIの計算、大量の帳票系処理
     • オンラ゗ンの処理
            – Webシステムを含む分散処理のこと
 ...
Hardware                                  Software



2010/11/1              Copyright (C) axsh co., LTD.              25
Network Hardware                   Network Software



2010/11/1               Copyright (C) axsh co., LTD.              26
1.   電子回路が、ネットワークになっただけ

            2.   H/Wに対するコードを書くのは大変だったのだから
                 ネットワークH/Wに対するコードを書くのも大変

            3...
2010/11/1   Copyright (C) axsh co., LTD.   28
世界中のデータセンターを
    1つのコンピュータにする



2010/11/1   Copyright (C) axsh co., LTD.   29
• プロセッサ(仮想マシン系)
            – Xen, KVM, VMware, Hyper-V ...
     • メモリ(KVS/DB系)
            – memcached, Cassandra, MongoD...
• 実際はOSの上に直接ゕプリケーションを
       書き始める人は少ない
            – 目的に対して低レベル過ぎる
            – OSの機能を活かせるフレームワークが必要
             • Wind...
• 仮想マシン
            – fork(3), Process.new
     • メモリ
            – malloc(3), Hash.new
     • ストレージ
            –?
     •...
• Wakame-fuel2は…
            – 世界のiDCで動くゕプリケーションを
              集中管理可能にする
    • Wakame-osは…
            – 世界のiDCを1つのiDCとして...
User                                         Wikipedia:




                  Application

                               ...
ほら、

    世界中のデータセンターが
    1つのコンピュータになる
            (そんな気がしたらぜひご参加を)




2010/11/1       Copyright (C) axsh co., LTD.   35
ちょっと待った。


            ここで一寸歴史を振り返ります。




2010/11/1       Copyright (C) axsh co., LTD.   36
win

            MS-DOS


2010/11/1       Copyright (C) axsh co., LTD.   37
Wakame-os

            Linux kernel


2010/11/1          Copyright (C) axsh co., LTD.   38
統合

                                                   Wakame-os
            Windows 95                   Linux kernel



...
2010/11/1   Copyright (C) axsh co., LTD.   40
設計方針

     • 開発者や運用者なら誰にでも
       スケールゕウトが当たり前の
       ゕプリケーションを
       設計・製造・管理することができる

     • プログラミングの作法を大きく変えずに
      ...
Network
            Process   MS Office
                                               Process    Web System


           ...
影響させようとしない限り




       Notepad    Calc

            Windows



2010/11/1             Copyright (C) axsh co., LTD.   43
System
                                                Call

            Process                  libc             Kernel
...
単一コンピュータ用OS(Kernel)の場合

           Server-1 (CPU-1)                                  Server-2 (CPU-2)
        Ruby        ...
Process.fork {
          print “Hello world!¥n”
        }
                                Server-1 (CPU-1)                ...
$ ps
    PID TTY          TIME CMD
     2790 pts/5    00:00:00 ruby
    32442 pts/5    00:00:00 ruby
                     ...
$ kill 32442
                              Server-1 (CPU-1)                       Server-2 (CPU-2)
                       ...
1. サーバの起動・終了させてみよう
     2. ハ゗ブリッドクラウドの実現してみよう
     3. fork/ps/killの動作確認をしてみよう
     4. バッチ処理の分散をしてみよう
        (PIの計算)
     ...
2010/11/1   Copyright (C) axsh co., LTD.   50
require 'socket'          ハ゗スケールなエコーサーバーを手軽に

    tcp_server = TCPServer.open(8000)

    loop do
      socket = tcp_server...
Kernelに統合されれば、
               Apache (prefork)の設定フゔ゗ルの意味も
               大きく変わるのではないか。
       現在のhttpd.confより:
           ...
プロダクトそのものが
            スケーラビリテゖを持つようになるはず




2010/11/1         Copyright (C) axsh co., LTD.   53
• Wakame-osにKernel的発想の機能が
       十分追加されている
     • Wakame-fuel2が活用されている
            – 分散ゕプリケーションのための
              便利な管理ツール...
$ apt-get install gmail

            Webシステムそのものを
            クラスタ上に゗ンストールすることが
            できるようになる。




2010/11/1       ...
2010/11/1   Copyright (C) axsh co., LTD.   56
• Ruby
            – 基本的に全てRubyで書かれている
     • RabbitMQ (AMQP)
            – ノード間の通信は全てAMQPを経由する




2010/11/1           Co...
Application    ゕプリケーション・クラ゗ゕント




            AMQP     AMQPネットワーク




            CLIOS    Cluster Level Infrastructure O...
“Wakame”の
                ゗ンスタンスが欲しい
      Application               ゗ンスタンスの論理名カタログ

                        “AWS-US”     ...
(1)゗ンスタンスの要求 (2)クラウドの選択



                            Application


                                          (5)実行コードの転送...
仕事がゕサ゗ンできる゗ンスタンスが
      Application
                            存在していればそれを再利用する。
                     (1)実行コードの転送
        ...
ゕプリケーションの要求が無くなり、
      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であるかのように
       管理できてしまう...
開発環境なんかは、
            1台のマシンに全てのプロセスを詰め込みます。

    $ ps
    PID     TTY     TIME       CMD
     2614   pts/5   00:00:00   p...
$ ssh ...
    $ /etc/init.d/...

    $ ssh ...
    $ /etc/init.d/...

    $ ssh ...
    $ /etc/init.d/...

    サーバの分散を
   ...
Refrain:

    世界中のデータセンターを
    1つのコンピュータにする



2010/11/1      Copyright (C) axsh co., LTD.   68
本番環境だって、あたかも
            1台のマシンに全てのプロセスを詰め込んだ感じに。

    $ wps
            I_NAME        STIME   CMD
    PH:327c3ad1c3c   20...
そうなると、1台のマシンの上に、
     プロセスを起動していくinit.dみたいなものが欲しくなる。

     しかし、非同期プロセスとしてもっと秩序良くサービスを
     起動したりするものを参考にした設計としたい…


      ...
Apacheが
      Application                                          起動したら教えてください。
       (Pound)                           ...
Pound.new {
      Application                        event(:start_apache) { |apaches|
       (Pound)                      ...
Wakame-fuel2は、
  Wakame-osの上で動くInit Daemonです。




2010/11/1   Copyright (C) axsh co., LTD.   73
Refrain:


            プロダクトそのものが
            スケーラビリテゖを持つようになるはず




2010/11/1         Copyright (C) axsh co., LTD.   74
$ /etc/init.d/httpd start

            $ /etc/init.d/httpd scale 100

            $ /etc/init.d/httpd scale 1




2010/11/...
これまでのfuel                           これからのfuel
     • Master/Agent構成                    • Agent自律構成
            – スター型トポロジ ...
開発を継続するにあたって




2010/11/1              Copyright (C) axsh co., LTD.   77
• クラウドの発展を支える本ソフトウェゕ
       の技術的発展とビジネスへの活用推進を
       目的とした任意団体

     • 現在任意団体であり、
       弊社株式会社あくしゅが運営を努めてお
       りますが、今...
• コードコミット
            – 進捗報告・新機能報告
            – 会員要望を優先することができます
            – Wakame標準機能としてリリースされます
     • ノウハウの共有
     ...
• Wakame Software Foundationでは
       Apache License version 2.0を採用します
     • Value-addして
       独自にビジネス展開していただくことが
      ...
• Wakame Software Foundation会員
            – 2010年中のご入会であれば、
              将来も無料です。
     • Source Code Author
            ...
割と本気で世界に通用する
  ソフトウェゕを目指しています




2010/11/1   Copyright (C) axsh co., LTD.   82
『世界のクラウドソリューションへ!』




                     83
2010年は絞り出す年だよ!



  axsh co., LTD.




                   84
Upcoming SlideShare
Loading in...5
×

WakameTech #3

1,268

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,268
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×