Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
自律分散 JVMマイクロサービス・クラウド     矢野 勉                1
モチベーション• ひとりでも保守できるようにしたい• アプリケーションとは本質的にステー トフル• クラウドを生かすためにはステートレ スであるべき                      2
ひとりでも保守できるようにしたい   サーバというものは落ちるのが普通落ちるたびにメール通知→即対応とかマジでウザイ     落ち着いて酒も飲めやしない                          3
ひとりでも保守できるようにしたい   サーバというものは落ちるのが普通•落ちたサーバにリクエストが飛んで欲しくない→ 死ぬならちゃんと死んでくれ•復旧作業とかしたくない→ 落ちたサーバはもういなかったことにしたい                ...
ひとりでも保守できるようにしたい        自律分散•サーバが死んだらサービスから自動的に切り離される•サーバを起動したらサービスに自動的に接続する                            5
Heart Beat          find  AP               Service                    Service                     ServiceServer            ...
find  AP               Service                    Service                     ServiceServer            Registrar           ...
Heart Beat          find  AP               Service                    Service                     ServiceServer            ...
アプリケーションとステートレス   アプリケーション   ユーザステートの管理                  9
アプリケーションとステートレス     アプリケーション                    きる              トレスにで       理は ステー    の処  個々ユーザステートの管理でも                  ...
Heart Beat          find  AP               Service                    Service                     ServiceServer            ...
Heart Beat          find  AP               Service                    Service                        この部分は全部               ...
ステートレス分散できる         11
全部自分でつくるのがめんどくさい    時間もないし…                   12
Jini       13
JINI• 大昔のJava用分散サービス仕様• もともとは組み込み用途を想定       ランプの精 リトル・ジーニー• SunでBill Joyが開発してた• 現Apache River• gigaspace.com             ...
JINIで全部できる                                                   Lease &Join         Service Discovery  AP                    ...
Jini Extensible Remote Invocation                 (JERI)階層化されたプラガブルなリモート通信プロトコル               Marshaling Layer            ...
Jini Extensible Remote Invocation                 (JERI)階層化されたプラガブルなリモート通信プロトコル               Marshaling Layer       差し替え可...
Jini Extensible Remote Invocation               (JERI)                 Message Pack/Protocol Buffer/Other             Java...
マイクロサービス・クラウド                                   Amazon Web Service                               Heart Beat          find  ...
あんなのとかこんなのとか  積み上げたい…               19
めんどうなところ           20
• セキュリティマネージャ• コードベースとクラスローダ• バージョン管理                  21
コードベースと     セキュリティ・マネージャ                        リモートメソッド                              戻り値       AP            外部          ...
サービスのバージョンアップ         リモートメソッド  AP                 v1.1Server                    コードベース                     class         ...
サービスのバージョンアップ         リモートメソッド  AP                 v1.1Server                    コードベース                     class         ...
com.uzabase.service.MyService         version 1.1                Javaは同じ名前のクラスを区別できないcom.uzabase.service.MyService        ...
com.uzabase.service.v1_1.MyService            version 1.1                  名前を変えれば区別できるcom.uzabase.service.v1_2.MyService ...
Q&A      26
Upcoming SlideShare
Loading in …5
×

分散JVMマイクロサーバの構築

Jini (Apache River) を使った、サーバーサイドでの分散システムについての解説です。

  • Login to see the comments

分散JVMマイクロサーバの構築

  1. 1. 自律分散 JVMマイクロサービス・クラウド 矢野 勉 1
  2. 2. モチベーション• ひとりでも保守できるようにしたい• アプリケーションとは本質的にステー トフル• クラウドを生かすためにはステートレ スであるべき 2
  3. 3. ひとりでも保守できるようにしたい サーバというものは落ちるのが普通落ちるたびにメール通知→即対応とかマジでウザイ 落ち着いて酒も飲めやしない 3
  4. 4. ひとりでも保守できるようにしたい サーバというものは落ちるのが普通•落ちたサーバにリクエストが飛んで欲しくない→ 死ぬならちゃんと死んでくれ•復旧作業とかしたくない→ 落ちたサーバはもういなかったことにしたい 4
  5. 5. ひとりでも保守できるようにしたい 自律分散•サーバが死んだらサービスから自動的に切り離される•サーバを起動したらサービスに自動的に接続する 5
  6. 6. Heart Beat find AP Service Service ServiceServer Registrar Registrar Registrar return 6
  7. 7. find AP Service Service ServiceServer Registrar Registrar return Registrar 7
  8. 8. Heart Beat find AP Service Service ServiceServer Registrar Registrar Registrar return 8
  9. 9. アプリケーションとステートレス アプリケーション ユーザステートの管理 9
  10. 10. アプリケーションとステートレス アプリケーション きる トレスにで 理は ステー の処 個々ユーザステートの管理でも 9
  11. 11. Heart Beat find AP Service Service ServiceServer Registrar Registrar Registrar return 10
  12. 12. Heart Beat find AP Service Service この部分は全部 ServiceServer Registrar Registrar Registrar「処理」 return なのでステートレス 10
  13. 13. ステートレス分散できる 11
  14. 14. 全部自分でつくるのがめんどくさい 時間もないし… 12
  15. 15. Jini 13
  16. 16. JINI• 大昔のJava用分散サービス仕様• もともとは組み込み用途を想定 ランプの精 リトル・ジーニー• SunでBill Joyが開発してた• 現Apache River• gigaspace.com 14
  17. 17. JINIで全部できる Lease &Join Service Discovery AP Lookup Service ServiceServer Service Registrar Registrar notification Jini Extensible Remote Invocation 15
  18. 18. Jini Extensible Remote Invocation (JERI)階層化されたプラガブルなリモート通信プロトコル Marshaling Layer Object Invocation Layer Transport Layer 16
  19. 19. Jini Extensible Remote Invocation (JERI)階層化されたプラガブルなリモート通信プロトコル Marshaling Layer 差し替え可能 Object Invocation Layer 変更不可 Transport Layer 差し替え可能 16
  20. 20. Jini Extensible Remote Invocation (JERI) Message Pack/Protocol Buffer/Other Java Serialization Object Invocation Layer TCP-IP/SSL 17
  21. 21. マイクロサービス・クラウド Amazon Web Service Heart Beat find AP Service Service ServiceServer Registrar Registrar Registrar return さくら 自宅サーバ 自社 18
  22. 22. あんなのとかこんなのとか 積み上げたい… 19
  23. 23. めんどうなところ 20
  24. 24. • セキュリティマネージャ• コードベースとクラスローダ• バージョン管理 21
  25. 25. コードベースと セキュリティ・マネージャ リモートメソッド 戻り値 AP 外部 からク ラス コードベース Server をロー ド classコードベースからのダウンロードを許可する設定が必要コードベースのURLを書く必要があるセキュリティ・マネージャ 22
  26. 26. サービスのバージョンアップ リモートメソッド AP v1.1Server コードベース class 23
  27. 27. サービスのバージョンアップ リモートメソッド AP v1.1Server コードベース class どうやって変える? AP v1.2Server 23
  28. 28. com.uzabase.service.MyService version 1.1 Javaは同じ名前のクラスを区別できないcom.uzabase.service.MyService version 1.2 24
  29. 29. com.uzabase.service.v1_1.MyService version 1.1 名前を変えれば区別できるcom.uzabase.service.v1_2.MyService version 1.2 25
  30. 30. Q&A 26

×