高性能、高集約は当たり前! 楽天の技術理事が教える「Oracle Exalogicだからこそ可能なDevOpsの実践方法」

Oracle Java & Developers編集部
2015-05-21 13:00:00
  • このエントリーをはてなブックマークに追加

「Oracle Exalogicなら、速くて高集約なアプリケーション基盤を作れるのは当たり前。さらなる魅力は、DevOpsの実践環境としても優れた機能を備えていることだ」と語るのは、楽天 技術理事の仲宗根徹也氏だ。同社がOracle Exalogic上で進めるDevOpsとはどのようなものなのだろうか?

Oracle Exalogicならではの機能を活用して運用体制を構築

楽天 技術理事の仲宗根徹也氏
楽天 技術理事の仲宗根徹也氏

 日本最大のECサイト「楽天市場」を運営する楽天は、同市場の安定稼働を支えるアプリケーション基盤として、オラクルのEngineered Systemsである「Oracle Exalogic」を利用している。Oracle Exalogicが、大規模ECサイトに求められる高いパフォーマンスと信頼性、アプリケーション集約率を実現する基盤としての要件を満たしていることが採用の理由だ。ただし、同社がOracle Exalogicに見出す価値はそれだけではない。実際に利用する中で、同アプリケーション基盤に備わる機能が、「DevOps」を念頭に置いた「開発/運用における生産性向上とコスト削減」にも威力を発揮することを確信したのだという。日本オラクルが2015年4月に開催した「Oracle CloudWorld Tokyo 2015」では、楽天で技術理事を務める仲宗根徹也氏により、同社がOracle Exalogic上で実践するDevOpsへの取り組みの内容が明かされた。

 楽天市場のシステムは、多くのAPIが複雑に連携しながら構成されている。コアサービスの実装にはJavaを使用しており、アプリケーション・サーバとして「Oracle WebLogic Server」を利用。現在、約60のWebLogicドメインと800を超えるWebLogicインスタンスが稼働するが、従来はそれらを数百台の物理サーバ上で動作させていた。

 オラクルのEngineered Systemsは、ハードウェアとOS、ミドルウェアを緊密に融合することで、高いパフォーマンスを実現したシステム基盤製品だ。そのラインアップの1つであるOracle Exalogicは、アプリケーション・サーバとしてOracle WebLogic Serverを搭載し、同アプリケーション・サーバの性能を最大限に引き出すことを目的に構成されている。仲宗根氏らは当初、「大量のWebLogicインスタンスを、理論上は1台のOracle Exalogic上に集約できる」、「アプリケーションごとに異なるピークタイムの負荷偏差を吸収し、リソースを有効活用できる」といった理由からOracle Exalogicの採用を考えていた。

 「しかし、実際に実機を触ってみたところ、それ以外にも活用法があると気づきました。Oracle Exalogicが持つ機能をフルに使えば、これまでの運用を効率化して、さらには開発と運用が互いに協力するようなDevOpsを実現できると考えたのです」(仲宗根氏)

 サービス提供事業者である楽天において、技術陣が何よりも優先するのは「サービスの維持」、つまりシステムを安定的に稼働させる「運用」である。楽天市場のシステムに関する開発(保守)と運用は、「コーディング」や「テスト」、「サービス・オペレーション」などに分かれたチームが個別に行っている。当然、それぞれのチームでは運用業務が最優先され、そこで生じる作業負担の重さから、新技術の検証や技術的負債の解消などの取り組みに割ける時間は限られていた。仲宗根氏らは、この状況の改善にOracle Exalogicが有効だと考えたのである。

 Oracle Exalogicの導入を決めると、楽天は運用に関する業務をOracle Exalogicを担当するチーム(Exalogicチーム)が集約して行う体制の構築を検討する。それにより、開発チームが開発業務に専念できるようにしようというわけだ。また、Exalogicチームと開発チームの共同作業が必要な部分については、可能な限り運用プロセスを標準化/自動化することを念頭に導入作業を進めた。さらに、Exalogicチームのメンバーは4名とし、少人数での運用を目指したという。


※クリックすると拡大画像が見られます

 Oracle Exalogicの導入による効果は絶大であった。WebLogicインスタンスの数は各ドメインで3分の1から7分の1程度に減り、新たなWebLogicドメインの構築にかかる時間は従来の「1~2週間」から「約5分」へ、無停止でのサービス・リリースにかかる時間は従来の「約6時間」から「約20秒」へと劇的に短縮されたという。ただし、これらの効果はOracle Exalogicなら当たり前のものだったと仲宗根氏は話す。

 「インスタンス集約とパフォーマンス向上の効果は確かに素晴らしいものですが、Oracle Exalogicというハイエンドのシステムを導入したことで当然、得られる成果だと思っています。それよりも、エンジニアの皆さんに注目していただきたいのが、Oracle Exalogicはミドルウェア・エンジニアが自在にコントロール可能なインフラでもあるということです。その機能をフル活用することで、運用効率を大幅に高めることができるのです」(仲宗根氏)

DevOpsで威力を発揮するOracle Exalogicの3つの機能

 仲宗根氏が強調する「運用効率の向上に寄与するOracle Exalogicの機能」の中でも、特に効果的なのは「ZFS Storage Appliance(ZFSSA)」、「フローティングIP」、「Oracle Traffic Director(OTD)」の3つだという。以下、これらがDevOpsでどのように威力を発揮するのかを見ていこう。

 楽天が導入したOracle Exalogicは2台のX3-2 Half Rackであり、その上で次のミドルウェアを使用している。

  • Oracle WebLogic Server 10.3.6.0.6、12.1.3.0.0
  • Oracle Coherence 12.1.2.0.0
  • Oracle Traffic Director 11.1.1.7

 基本的に2台のOracle Exalogicは同じかたちで利用しており、それらにストレージとしてZFSSAを接続し、NASのような共有ストレージとして使用している。ZFSSAの使い勝手について、仲宗根氏は「ローカル・ストレージと同様の感覚で利用でき、実用上も問題のないパフォーマンスが出ています」と評価する。ZFSSAを使うと、WebLogicドメインを単一のディレクトリとして管理できるようになる点が大きなポイントの1つだという。

 「このWebLogicドメイン・ディレクトリは、管理サーバとしても、また管理対象サーバとしても動作させられます。インスタンス専用のディレクトリをセットアップする必要がなくなり、適当なコンピュータ・ノードにIPアドレスを割り当てて起動するだけでインスタンスが立ち上がります。これにより、構成管理やインスタンスのコントロールが劇的に楽になるのです。この構成とフローティングIPを組み合わせることで、物理サーバ上で動かしているのにもかかわらず、仮想化環境のように柔軟な構成管理が行えるようになります」(仲宗根氏)

 フローティングIPは、Oracle Exalogic特有の機能というわけではなく、ネットワーク仮想化の分野では一般的な技術だが、Oracle Exalogicの他の機能と組み合わせることにより、「IPアドレスとポート番号を固定したWebLogicインスタンスを別のノードに移動させる」といったことが容易に行えるようになる。


※クリックすると拡大画像が見られます

 「例えば、ハードウェアに不具合が起きた際、IPアドレスを別のコンピュート・ノードに移動させ、起動するだけで復旧が可能です。ネットワーク・エンジニアでなくても、ミドルウェア・エンジニアがそうした変更を容易に行えるうえ、Oracle Exalogicを構成するネットワークに影響が及ぶこともありません。当社では、Oracle Exalogicを仮想化せずに物理環境として利用していますが、このような作業を通常の物理サーバでやるのは大変です。この扱いやすさは、全体が1つの環境として統合されているOracle Exalogicならではのメリットだと言えます」(仲宗根氏)