SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

Spring 5.0は来春リリース! クラウドネイティブ開発、マイクロサービス化など最新技術・事例にあふれた4日間

世界最大規模のSpring Frameworkイベント「SpringOne Platform 2016」参加レポート


基調講演以外のセッションも魅力たっぷり!

SpringOneでは基調講演以外にも、次のようなテーマで聞きどころたっぷりのセッションが多数行われました。ここからは基調講演以外で注目度の高かったセッションをいくつか紹介したいと思います。

  • クラウドネイティブなSpringアプリケーション開発の事例や具体的な実装方法
  • Springの中でも特に新しい領域(Reactiveプログラミング、マイクロサービスでのバッチ処理)
  • マイクロサービス開発のデリバリを効率化するための仕組み

セッション「Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future」

このセッションではDISH Networkから3名が登壇し、レガシーなシステムをいかにマイクロサービス化して改善したかについて話しました。

DISH Networkは衛星放送サービスの大手企業です。同社では1990年中盤から2000年代前半にかけ、システムをSOA(Service Oriented Architecture)で構築していました。 しかし、このシステムはJavaコードすら5%しかないレガシーなシステムで、 とても変更に弱い構造になっていたそうです。 そこで、DISH Networkはこの状況を改善するために、システムをマイクロサービスアーキテクチャに書き換えるという大きな方針転換を決断しました。

レガシーシステムからマイクロサービスへの移行は、次のように複数の段階(Stage)に分けて行われました。

Stage 1
レガシーなSOAPサービスのAPI仕様や挙動を変更することなく、Spring WS(@Endpoint)を使用したアプリケーションに作り直し、Pivotal Cloud Foundry上にデプロイできるようにした。
Stage 2
Stage 1のJavaコードを活用しつつ、SOAPサービスをSpring MVCベースのREST APIアプリケーション(@RestController)に作り直し、完全なマイクロサービスへ移行した。

Stage 1、2ともにSpring Bootを採用したことで、 環境ごとの設定の切り替えが簡易になり、セットアップ作業が大幅に削減されました。開発や運用にかかっていた負担も減ったとのことです。 このような段階的な移行は、現在も100を超えるレガシーなSOAPサービスに対して続けられており、7つのサービスをマイクロサービスへ移植できたそうです。

最後に彼らは、システムのマイクロサービス化を行う際の重要な点として、 「事前に移行対象のサービスのカテゴライズ」「スケープ決めや優先度付け」「適切な技術の選択を適切に行うこと」を挙げ、 ゆえにマネージャー層の理解や支援が不可欠であると強調しました。

DISH NetworkはStage 1とStage 2の2段階でシステムをマイクロサービス化していった
DISH NetworkはStage 1とStage 2の2段階でシステムをマイクロサービス化していった

セッション「Spring Boot @ PayPal」

PayPal上級ソフトウェアエンジニアのFabio Carvalhoさん(以下、Fabioさん)と同MTSソフトウェアエンジニアのEduardo Solisさんは、Spring Bootベースの新しい社内フレームワークについて講演しました。

PayPalでは2008年までC++を使って開発していましたが、それ以降はプレゼンテーション層にSpring MVCを利用した独自Javaフレームワークを導入。現在では250個ほどのサービスでJavaを使用しているそうです。

2014年、それまでのフレームワークを廃して新しく「Raptor」というフレームワークを作成しましたが、 「Raptorの設計思想はSpring Bootと類似点が多く、マイクロサービス化を目指すPayPalの目的にも合致することから、 RaptorをSpring Bootベースのフレームワーク(Raptor on Spring Boot)に作り変えることを決めた」(Fabioさん)とのこと。 ただし、Spring Bootをそのまま使うだけでは満たせない要件が複数あり、決して平坦な道ではなかったようです。

講演の後半では、2016年4月にRaptor on Spring Bootをリリースするまでに解決してきた課題について説明されました。 例えば、PayPalではRESTful Webサービスの実装にRESTEasyを採用しているため、Spring BootでRESTEasyを使うためのプロジェクトを立ち上げる必要があったそうです。 このプロジェクトはOSSとしてGitHub上で公開されています。

その他にも自社向けにいろいろカスタマイズしているそうですが、 「今後は独自の実装部分を削減し、Spring Bootの機能を活用する方向で改善を続けていく」と、意気込みを語っていました。 Spring Bootの機能を上手に使えば、独自の作り込みはほとんど不要だと感じているのかもしれません。

Raptorフレームワークの今後の予定
Raptorフレームワークの今後の予定

次のページ
セッション「Cloud Native Java」

この記事は参考になりましたか?

イベントレポート連載記事一覧

もっと読む

この記事の著者

SpringOne Platform 2016参加チーム(SpringOne Platform 2016サンカチーム)

【NTTデータ】池谷智行、川崎真弘、倉元貴一、佐々木啓祐、本橋賢二 【NTT】岩塚卓弥 【Pivotalジャパン】槙 俊明

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

本橋 賢二(NTTデータ)(モトハシ ケンジ)

米国駐在時に、OpenStackやOpen Compute、Open Networking Foundationなど、クラウド(IaaS)に関するオープンイノベーションに取り組む。特に、OpenStackは創設メンバーの一人として設立当初より深く関わり、Austinで開催されたOpenStack初回...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9631 2020/02/20 16:33

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー