Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
クラウド:課題とチャンス
Oracle Coherence の機能について話す、オラクルの開発担当 Vice President、Cameron Purdy(左)とアーキテクトRob Lee。
ORACLE.COM/JAVAMAGAZINE /////////////////// SEPTEMBER/OCTOBER 2013
23
JAVA TECH
COMMUNITY
JAVA IN ACTION
ABOUT US
画像:I-HUA CHEN、写真:BOB ADLER
オラクルの開発担当 Vice President であるCameron Purdy によると、クラウド・コンピューティングの到来は、15 年前のWeb指向テクノロ
ジーの躍進や約 10 年前のビジネス・アプリケーションとJava EEプラットフォームの台頭に匹敵するほどの、ソフトウェア・イノベーションの新しい波を引き起こしています。コストの節約と生産性の向上を可能にするクラウド・コンピューティングは、Java 開発者に新たな課題とチャンスを提示します。 このような課題とチャンスに対応していくために、Java 開発者やアーキテクトは自身の考え方を変える必要があります。1996 年からJava テクノロジーに携わってきた Purdyは、このような変化に対応する重要な立場にいます。2007 年にオラクルに入社する前は、Purdy は Tangosol の CEOでした。Tangosol は、信頼できるスケーラブルなデー
クラウドを利用した開発について Cameron
Purdyに聞くTIMOTHY BENEKE
タ管理を企業全体で実現するCoherence Data Grid 製品を提供していました。Purdy は業界標準の策定に定期的に参加しており、Java Community Process(JCP)の仕様リードでもあります。JavaOneでの質の高いプレゼンテーションによってJavaOne Rock Star に 5 回選ばれており、TheServerSide の "Who’ s Who in the Enterprise Java World" においても評価されています。Java Magazineは Purdyにインタビューを行い、クラウド・コンピューティングとJava、そしてオラクルの新しいクラウド基盤製品に関する現在の考えを聞きました。Java Magazine:Java 開発者がクラウド・コンピューティングに注目すべき理由を教えてください。Purdy:はじめに、クラウド・コンピューティングという用語の意味が広範囲に及ぶことをきちんと理解することが重要です。オラクル独自のパブリック・クラウドは言う
までもなく、Amazon EC2 や Microsoft Azure などのパブリック・クラウドも含まれます。しかし、クラウド・コンピューティングは、私たちが内部データセンターを管理する方法をも変えようとしています。この手法がプライベート・クラウドと呼ばれるものです。言い換えると、パブリック・クラウドがもたらしたのとまさに同じ概念、効率、機能がデータセンター内でも使用できるようになるということです。たとえば、大量の事務手続きや人手作業を介することなく、アプリケーションの開発、ステージング、本番環境を数分で入手できる能力やセルフサービスなどの基本理念です。さらに、クラウドが持つ適応性によって万能型モデルによる制約が解消されました。 Java Magazine:クラウド・コンピューティングについて、Java 開発者はどのような点を理解する必要がありますか。Purdy:まず、アプリケーションを構築する場合は、動的にスケールアウトでき、複数サーバー間で動的にロードバランシングできるように構築する必要があります。すなわち、アプリケーションの稼働中にサーバーを追加しても、サービスが中断されないことを意味します。このようにアプリケーションを構築するための良いプログラミング習慣は、アプリケーションまたはアプリケーション・コンポーネントがスケーリングされる環境で稼働中であることを常に想定することです。つまり、これまでにあった多くの前提は
もはや当てはまりません。たとえば、ファイル・システムがローカルにあろうと共有されていようと、開発者の足をすくいかねません。また、アプリケーションをスケールアウトすると、ヒープ内のグローバルJava オブジェクトは実際には "グローバル "ではなくなります。同様に、開発者はリソースの追加によってアプリケーションの効果的なスケールアウトが本当に実現されるかどうかを理解する必要があります。言い換えると、サーバーを追加したときにアプリケーションが正しく稼働したからといって、実際により多くのトランザクションやユーザーをサポートしているとは限らないのです。つまり、できる限り線形に近いアプリケーション拡張能力を、スケールアウト・モデル内に明確に設計する必要があります。データ・キャッシングは、サーバー間で共有する必要のある情報量を最小化し、データベース・システムなどの共有リソースでの競合を最小化するため、この設計の大きな部
分を占めることははっきりしています。最後に、実際に追加リソースが必要になるのはいつなのか、リソースを除去しても問題ないのはいつなのか、というように、適応性というメトリックの観点からアプリケーションを理解する必要があります。つまり、何を監視すればよいかを把握することも含め、いつアプリケーションをスケールアウトする必要があるかを知る必要があるのです。 Java Magazine:Java EE 7
ORACLE.COM/JAVAMAGAZINE /////////////////// SEPTEMBER/OCTOBER 2013
24
JAVA TECH
COMMUNITY
JAVA IN ACTION
ABOUT US
左から:クラスタリングとクラウド・サービスについてPurdyと話すチーム・メンバーの Lee、Nilesh Junnarkar、Dhiraj Mutreja。 柔軟なクラウド
万能型モデルによる制
約は解消されました。
アプリケーションを構
築する場合は、動的に
スケールアウトでき、
複数サーバー間で動
的にロードバランシン
グできるように構築す
る必要があります。
ORACLE.COM/JAVAMAGAZINE /////////////////// SEPTEMBER/OCTOBER 2013
25
JAVA TECH
COMMUNITY
JAVA IN ACTION
ABOUT US
はどのようにして、このようなスケーリングを実現しているのでしょうか。Purdy:Java EE 7 で改善された点のいくつかが、スケーリングに関係しています。明らかに、新しいバッチ仕様 JSR 352 はとてつもなく有用であり、その対象はクラウド・コンピューティングだけにとどまりません。通常は同期実行する必要のある大量の処理を受け入れて小さい単位に分解し、非同期で実行することができます。さらに、アプリケーションを実行するPlatform as a Service(PaaS)を管理する場合と、ホストされているアプリケーション自体を管理する場合の違いなど、クラウド環境で見られるセキュリティ要件へのマッピングを改良するため、Java EE のロール定義が更新されています。 また、一定の前提条件を取り除くことで、クラウド環境でのソフトウェア性能が向上します。前提条件を取り除く方法の 1つが依存性注入です。依存性注入は Java EE 5 で導入されましたが、Java EE 7 では Javaのエンタープライズ仕様セット全体を通じて適用され、Context and Dependency Injection(CDI)と呼ばれています。必要としているものをコンポーネントとして外部から探す代わりに、必要な機能を宣言するだけで良いのです。データベースに接続する必要がある場合は、データベース接続の必要性をコンポーネントで宣言しておけば、どのような環境であっても、実行環境が環境の構成に応じてそのデータベース接続を提供してくれます。
Java Magazine:Infrastructure as a Service(IaaS)とPlatform as a Service(PaaS)を、Java EEとの関連から明確にしていただけますか。 Purdy:IaaS は必要なネットワークとサーバー・ハードウェアを管理するものであり、通常は仮想マシンをホストします。それぞれの仮想マシンはオペレーティング・システムを実行しており、すべての仮想マシンは Java EEより下位にあります。あらゆるデータセンターやプライベート・クラウド、それにパブリック・クラウドがIaaSを提供するでしょう。IaaS は、標準化された IaaS APIを介してプラットフォームやアプリケーションから利用できるインフラストラクチャ・サービスです。一般的に言えば、開発者が求めているのは PaaS の方です。開発者は、アプリケーションのホスティング環境が、アプリケーション・サーバーなのか、データベースと組み合わせることの多いアプリケーション・サーバーによるクラスタなのかを記述する必要があります。そして、アプリケーションを現実世界に公開し、ファイアウォールで保護し、ロードバランサを使用して自動的にバランシングさせる必要があります。言い換えると、開発者は、独自のファイアウォールやロードバランサ、またはデータベースを構築したりインストールしたりすることに関心はありません。必要なコンポーネントとデータベース設計を含むアプリケーションが入手でき、わかりやすくかつ安全な方法で実装できることを求めています。モバイル・プラットフォーム向けに実装しているアプリケーションについて考えてみ
開発者によるクラウド利用法Java Championであり、Netherlands JUG のリーダーであるBert Ertman 氏に、クラウドを利用する開発者としての経験についてうかがいました。 Java Magazine:どのようにクラウドを利用していますか。Ertman 氏:顧客向けの高度な Software as a Service(SaaS)サービスを実現するための開発および実装プラットフォームとしてクラウドを利用しています。Java Magazine:どのようなメリットがありますか。
Ertman 氏:クラウドは開発とテストの両方のコストに対して、また運用コストに対して、従量課金制を可能にします。ステートレス・アーキテクチャを使用し、モジュール式アプリケーション・アーキテクチャの利点を生かすことで、水平方向のスケーラビリティと自動スケーリングを実現できます。この方法では、ハードウェアとデータセンターに膨大なコストを浪費する代わりに、本当に必要なものにのみ支払いをすることができます。Java Magazine:クラウドによって仕事はどのように変わりましたか。Ertman 氏:開発者は基盤となるインフラストラクチャのメカニズムを認識しておく必要があります。この観点から見て、DevOps は興味深い動向です。また、クラウドは多くの伝統的な開発スタックに異議を唱えます。たとえば、リレーショナル・データベース対NoSQL、独自仕様インタフェース対 RESTful サービスを使用したオープンAPI、ステートフル対ステートレス、トランザクション一貫性対最終的な一貫性、サーバー側のWebフレームワーク対HTML5、MVC の JavaScript などです。クラウド・アプリケーションの構築は、Webアプリケーションを構築して仮想ハードウェアに導入するだけにとどまりません。 Java Magazine:クラウド向けアプリケーションの構築について、苦労して得た知識を共有されるご予定はありますか。Ertman 氏:もちろんです。同僚の Paul Bakkerと私はちょうど、Building Modular Cloud Applications with OSGi(O’ Reilly)という本を書き上げたばかりです。この本は、クラウド開発スタックの一部として提供されるテクノロジーやツールに対して、モジュール化の概念を適用するための実用的ガイドであり、過去数年に学んだことが活用されています。この本は現在製作中であり、JavaOne San Francisco の前には発売したいと考えています。 Bert 氏は JavaOne San Francisco やオランダで開催される J-Fall カンファレンスで講演
を行っています。また、Twitter アカウントは、@BertErtmanです。
オラクル Senior Java Community Manager、Tori Wieldt
ORACLE.COM/JAVAMAGAZINE /////////////////// SEPTEMBER/OCTOBER 2013
26
JAVA TECH
COMMUNITY
JAVA IN ACTION
ABOUT US
ましょう。このアプリケーションはおそらく、モバイル・プラットフォームに公開される多数の RESTful インタフェースで構成されるでしょう。これらの RESTful インタフェースは、ロードバランサの役割を果たすURLを介して公開されます。このロードバランサは、柔軟に拡張できるアプリケーション・サーバー・インフラストラクチャ全体にリクエストを分散させることで、高可用性と柔軟なスケーラビリティの両方を提供します。アプリケーション・サーバーはアプリケーション・ロジックを実行し、このロジックがデータベースやその他のデータ・サービスから情報を取得してRESTfulレスポンスに変換し、モバイル・アプリケーション自体に送り返します。アプリケーション・インフラストラクチャのプロビジョニング、構成、監視、スケーリ
ングといった複雑な作業はすべて、PaaS によって提供され、管理されます。Java Magazine:これがオラクルが提案するものなのですね。Purdy:そうです。オラクルでは、Java EEプラットフォーム自体への投資だけでなく、Oracle WebLogic ServerをベースとするOracle Java Cloud Service を通じても投資を行っています。このサービスを利用すると、開発者は、開発者が作成したアプリケーションで使用する環境の規模を指定したり、作成したアプリケーションをデータベースに自動的に接続してそのアプリケーション向けにデータ
ベースを定義したり、作成したアプリケーションを実装したりなど、さまざまなことを実行することができるようになります。Java Magazine:開発、品質保証、運用のステージング、本番運用などの、組織における役割と機能に対して、PaaS はどのような影響を与えますか。Purdy:PaaS はこれらの環境のプロビジョニング・コストと管理コストを大幅に削減しますが、環境の柔軟性という観点からいうと、トレードオフとして、使用できる選択肢の数を減らす傾向があります。進歩した Paas
などでも、IaaS の場合と同じ80 対 20 の法則に従う傾向があります。この法則は、IaaS サービスでインフラストラクチャ要求の 80%をカバーできれば、すべてを自動化することで、インフラストラクチャの運用コストを約 80%まで減らせる可能性があることを意味します。同様に、比較的単純な選択肢を提供するPaaS サービスの提供によって、アプリケーションのホスティング環境の複雑さを緩和できれば、おそらくアプリケーションの 80%にメリットがもたらされるでしょう。つまり、決して100%をカバーすることはありませんが、80%のアプリケーションからリソースが解放されることで、困難な 20%に集中できるようになります。制約のある環境は存在するとはいえ、重視すべき変数の数を激減させることができるのは事実です。PaaS は多くの単純なアプリケーションを大幅に簡素化し、迅速な製品化を可能にします。 Java Magazine:HTML5 は Java EE 7 の
中心になっていますが、クラウド・コンピューティングとはどのような関連がありますか。 Purdy:モバイル・クライアントやスマート・デバイス、タブレットを対象としたアプリケーションにとって Java EE 7プラットフォームが理想的な開発プラットフォームとなるように、オラクルは努力を重ねてきました。そして、言うまでもなく、その一部に含まれるのがHTML5のサポート機能です。このようなアプリケーションの多
写真撮影中に Java Magazine の編集長Caroline Kvitkaと話すPurdy。 クラウドの基盤
Oracleクラウド・アプ
リケーション・ファウ
ンデーションは、イン
テリジェントでスケー
ラブルなロードバラン
シング機能をはじめと
する、PaaS 環境に必
要なすべての構成要
素を提供します。
ORACLE.COM/JAVAMAGAZINE /////////////////// SEPTEMBER/OCTOBER 2013
27
blog
JAVA TECH
COMMUNITY
JAVA IN ACTION
ABOUT US
くにとって、製品化までの時間、つまり低コストで素早くアプリケーションを構築・導入する能力と、アプリケーションを拡張して成長に対応する能力は極めて重要です。ここまでに言及したアプリケーションの多くは、モバイル・プラットフォームを対象としており、多くの場合はRESTfulサービスを提供します。Java EE 7 の対象には、HTML5 のサポートや RESTful Web サービスからWebSocket や JSONまで、あらゆる分野が含まれています。これらのアプリケーションは通常、JSONデータを返すRESTful サービスを公開しますが、Java EE 7はJSONデータの構築と解析のサポートに優れています。また、Java EE 7 では非同期 RESTful サービスのサポートのほか、RESTful サービスの提供のサポートも大幅に改善されています。
あらゆる世代のソフトウェアが、管理不能になるまで複雑さを増大させているように思えます。 クラウドが主要なテクノロジー動向として台頭しているのは、現在のアプリケーションに内在する複雑さを管理するために、管理の自動化とインフラストラクチャおよびプラットフォームの簡素化が必要とされているためです。同じように、HTML5 が必要とされているのは、これまでは手作りが試みられてきた一定の双方向性を持つリッチなアプリケーションを提供したり、独自仕様の各種クライアント・テクノロジーをサポートする際の制約と複雑さを回避
したりするためです。Java Magazine:Oracle WebLogic Server 12.1.2 は、どのようにクラウドに対応していますか。Purdy:Oracleクラウド・アプリケーション・ファウンデーションの一部であるOracle WebLogic Server 12.1.2 には、RESTfulサービスのサポートやHTML5 のWebSocketなど、多数の魅力的な新機能が含まれています。私たちがもっとも楽しみにしている機能の 1つが、動的クラスタと呼ばれるものです。動的クラスタを利用すると、アプリケーションの実行中に
サーバーを動的に追加できます。以前は手動による事前設定が必要でしたが、今回自動化されたことで、ここまでに話してきたアプリケーションに対して非常に柔軟な環境を提供できます。また、Oracle WebCenter Sites 12.1.2 は新しいOracle Database 12cリリースをサポートしており、クラウド・アプリケーションの開発にとって重要な機能であるマルチテナント・オプションにも対応しています。Java Magazine:マルチテナントとその重要性について説明していただけますか。 Purdy:アプリケーションが Software as a Service(SaaS)を提供している場合、マルチテナントとは、このサービスを購入するそれぞれの組織が独自のセキュアなデータ・セットを所有できることを意味します。インフラストラクチャや管理の観点から見て、各テナントに独自のデータベースを提供することは通常、非常に高くつきますが、実際のマルチテナント・データベース機能はOracle Database 12c に
組み込まれています。Oracle WebLogic Server はデータベースと非常に緊密に連携して、その機能を活用します。データベースの機能には、データベース常駐接続プーリング(DRCP)と呼ばれるサーバー側の接続プーリング機能が含まれているため、アプリケーション・サーバー・クラスタとデータベース・クラスタ間に必要な物理接続の数が大幅に減少します。Java Magazine:Oracleクラウド・アプリケーション・ファウンデーションとはどのよう
仕事を終えてコーヒーとバナナを手にするPurdy。
内在する複雑さ現在のアプリケー
ションに内在する複
雑さを管理するに
は、管理の自動化と
プラットフォームお
よびインフラストラ
クチャの簡素化が必
要です。
ORACLE.COM/JAVAMAGAZINE /////////////////// SEPTEMBER/OCTOBER 2013
28
JAVA TECH
COMMUNITY
JAVA IN ACTION
ABOUT US
なものですか。Purdy:Oracleクラウド・アプリケーション・ファウンデーションは、インテリジェントでスケーラブルなロードバランシング機能(通常はネットワークのDMZ内で稼働)やセキュアなリクエスト・ルーティングからOracle WebLogic Serverとアプリケーション層まで、PaaS 環境に必要なすべての構成要素を提供します。Oracle WebLogic Server は極めて堅牢で成熟したアプリケーション・サーバーであり、Oracle Coherence データ・グリッドおよびインメモリのキャッシング・ソフトウェアと緊密に統合されています。また、Oracleクラウド・アプリケーション・ファウンデーションには、ハードウェア・アクセラレーション付きのルーティングおよびロードバランシング・ソリューションであるOracle Traffic Director も含まれています。 これらすべてのコンポーネントが、共通のインストール・モデル、構成モデル、プロビジョニング・モデル、管理モデル、ライフサイクル・モデル、および管理フレームワークを共有します。また、共通の管理フレームワークはOracle Enterprise Manager によって1つの画面に表示されます。オラクルは、Oracle JDeveloper、Oracle Application Development Framework、Oracle Enterprise Pack for Eclipse、NetBeans に基づくOracle WebLogic Server の最新バージョンと最新標準に対して、開発者をサポートします。
Java Magazine:最後に、Java 開発者に対して何かコメントがあればお聞かせください。Purdy:現在は Java 開発者にとって心躍る時期です。Java EE が当初、Web向けアプリケーションを可能にした大変革であったのと同様に、Java は新しいクラウド・アプリケーションの波から求められるバックエンド・サービスの構築に最適なプラット
フォームです。いまや、世界中で 10 億を超える人々がアプリケーション・プラットフォームをポケットに入れて持ち歩いています。この状況は、15 年前には誰も予想すらできなかったことです。15 年後がどうなっているか正確には分かりませんが、変化は急速に起きるものです。さあ、すぐに仕事に取り掛かりましょう。</article>
LEARN MORE• Oracle Cloud Services
• Oracle WebLogic Server
• Cameron Purdy のブログ
Timothy Beneke:フリーランスのライター兼編集者。幅広いテーマを扱うBeneke のインタビューは、Mother Jones、East Bay Express、Chicago Reader に掲載されています。
現在は Java 開発者にとって心躍る時期です、とPurdyは言います。「Javaは新しいクラウド・アプリケーションの波から求められるバックエンド・サービスの構築に最適なプラットフォームです」
前提の排除また、一定の前提
条件を取り除くこと
で、クラウド環境で
のソフトウェア性能
が向上します。前提
条件を取り除く方法
の 1つが依存性注
入です。