SHOEISHA iD

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

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

【デブサミ2020】セッションレポート (AD)

これからのマイクロサービスに必要な最新技術が凝縮した「Helidon」を徹底解説【デブサミ2020】

【14-C-5】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!

  • このエントリーをはてなブックマークに追加

 アプリケーション開発でマイクロサービス化を進めるなら、それに適したフレームワークが必要になる。オラクルではマイクロサービスの要件に合うフレームワークHelidonを提供しており、最新技術との親和性も高い。Oracle CloudやJavaを使うなら必見だ。日本オラクル 古手川忠久氏が解説する。

  • このエントリーをはてなブックマークに追加

日本オラクル株式会社 クラウドソリューション推進本部長 古手川忠久氏
日本オラクル株式会社 クラウドソリューション推進本部長 古手川忠久氏

オラクルが開発するマイクロサービスを開発するためのフレームワーク「Helidon」

 クラウドサービスプロバイダにはトップ3が君臨しているが、いまここにオラクルが猛追している。2月3日にはOracle Cloud大阪リージョン開設を発表し、日本では2つのリージョンを展開することになった。後発ゆえに、これまでの課題を分析し、最新鋭技術をインフラに導入しているところが強みだ。またオラクルはエンジニア向け勉強会にも積極的だ。クラウド・ネイティブ技術に関しては「Oracle Cloud Hangout Cafe」、通称「おちゃかふぇ(#ochacafe)」を開催している。

 今回のテーマはマイクロサービス・フレームワーク「Helidon」。まずはマイクロサービスそのものを理解するために、古手川氏が「古典」と称する記事「Microservices」(James Lewis、Martin Fowler)を挙げた。マイクロサービスのアーキテクチャには「小さなサービス群の組み合わせ」などの特徴があり、そこからマイクロサービスを構築するためのフレームワークには「小さなサービスをデプロイするための軽量フットプリント」「単独プロセスとしてサービスを稼働させるための基板技術(Docker、Kubernetes等)との親和性」などが必要になる。

マイクロサービス・フレームワークの要件を考える
マイクロサービス・フレームワークの要件を考える

 こうしたマイクロサービス構築における要件を満たそうとしているのがHelidonだ。実体はマイクロサービス開発のためのJavaライブラリ集合体で、オープンソースとしてGitHubで公開されている。アプリケーションをHelidonのライブラリと一緒にビルドして、デプロイする。できあがるものはJava SE VMで動作するアプリケーションと考えていい。通常のJava SEアプリケーション同様、そのままOSで動かしてもいいし、Dockerイメージにしたり、Kubernetesに載せたりすることもできる。

 このHelidonには、大きく分けてHelidon SEとHelidon MPの2つのエディションがある。SEは軽量でフットプリント重視、MPはSEをベースにして機能性と互換性(MicroProfile準拠)重視となっている。

 詳しくは、WebサイトStack OverflowSlackGitHubから情報を得ることができる。またオラクルからはWebLogic Serverライセンス保有のユーザーにはHelidonのサポートが提供されており、将来的にはHelidon単独のサポートが提供される予定だ。

Helidon SE:軽量なマイクロフレームワークとなる理由

 Helidon SEはリアクティブスタイルで開発された軽量なマイクロフレームワークだ。中心となるのは「Reactive Web Server」「Config」「Security」の3つ。ベースとなるサーバー機能はNettyフレームワークに「Reactive Streams API」を使い、シンプルな関数型のルーティングモデルを構築する。このアーキテクチャにより、少ないスレッドで多くのコネクションを制御できたり、メモリ管理やコンテキストスイッチなどのオーバーヘッドを減らしたりすることができる。

 またHelidon SEはGraalVMのネイティブイメージを作成できることも特徴となる。GraalVMとはオラクルが開発しているランタイムエンジンで、Javaアプリを安定・高速実行、Javaアプリをネイティブイメージ化、Java以外にも複数プログラミング言語を実行可能であることが特徴だ。なおGraalVMはCommunity EditionとEnterprise Editionがあり、Oracle Cloudユーザーは無償でEnterprise Editionを使うことができる。

GraalVM:多言語の単一かつ高速なランタイムエンジン
GraalVM:多言語の単一かつ高速なランタイムエンジン

 GraalVMのネイティブイメージが作成可能であるのは、短時間で起動できることやKubernetesで高速にスケールするなどマイクロサービスで求められる要件に適している点で有利になる。

次のページ
Helidon MP:MicroProfile仕様を駆使して効率的に

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

  • このエントリーをはてなブックマークに追加
【デブサミ2020】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12054 2020/04/01 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング