BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring Bootリリース

Spring Bootリリース

原文(投稿日:2014/04/10)へのリンク

Pivotalは先週、Spring Bootの一般提供を開始した。18ヶ月の開発を経てのリリースだ。このフレームワークはSpring IOプラットフォームをシンプルにし開発者の生産性を向上させる。

Bootは最初は昨年のSpringOne 2GXに向けてJava開発コミュニティ用に開発された。その後、Spring SecurityチームのリーダーであるRob Winch氏Spring Framework 4.0への適用をツイートしたことで人気になった。Bootは元々、Spring FrameworkのJIRAの課題が媒介となって広まった。これはコンテナレスのSpringウェブアプリケーションの設計についての課題だった。

Spring IOプラットフォームのメンバとして、Bootは"IO Execution"レイヤに位置する。のこのレイヤはプラットフォーム全体を活用するドメイン特化のランタイムに割り当てられている。Bootの目的は"コードを全く生成することなく、XML構成ファイルなし"で"スタンドアロンでプロダクション環境で利用できるSpringベースのアプリケーションを作り、'すぐに実行'"できるようにすることだ。これを実現するためにBootはSpring Framework 4.0上で動作し、設定より規約の方針でアプリの実行時コンテキストをブートストラップする。これによって、Spring Frameworkは組み込みのランタイムコンテナを提供できるようになり、コントローラーをマッピングするための構成が、従来のweb.xmlファイルなしで手に入る。また、コンテナレスのウェブアプリケーションのための仕組みも提供する。また、MavenとGradleのプラグインを提供する。このプラグインは組み込みの実行可能なJARファイルを作成できる。Spring Bootを使ったウェブアプリケーションの開発については、参照モデルで確認できる。

InfoQはこのフレームワークの最新のリリースについてSpring Bootのチームに話を聞いた。まずは、最も基本的な点、つまり、コンテナレスのウェブアプリケーションを追求する理由を聞いた。

- コーディングを始めるのに構成がほとんどいらない。
- 機能ごとの配置単位。BootはJARファイルに組み込めるtomcat/jettyをビルドする。
- java -jarで実行できる自己コンテナ形式の実行可能ファイル。
- クラウド、PaaS、仮想化フレンドリ。

チームはさらに詳しく説明してくれた。

一般的に、コンテナレスウェブアプリはSpringの思想と相性が良いです。現在のPaaS環境は管理可能でスケールアウト可能で、信頼性の高い環境を提供しています。Bootは開発者の幸せにフォーカスし、軽量なメトリクス、レポーティング、超軽量なコンテナを提供します。クラウドへのアプリケーションやサービスの配置に対して利点を提供します。PaaSでは、BYOC (Bring your own container)は自然です。HerokuCloudFoundryはこの流れに乗っています。

コンテナレスな配置はフレームワークの厳密な要件ではありません。アプリケーションはBootの設定より規約のアプローチのメリットを享受できますが、配置するアプリケーションサーバも選べます。チームとしては次のように宣言することでこの点に言及したいと思います。"コンテナが欲しい?問題ありません。BootのwarファイルはServlet 3.0に従うコンテナならどんなものにでも配置できます。Tomcat 7+、Jetty 8、Glassfish 3.x、JBoss AS 6.x/7.x、Websphere 8.0などのコンテナです。"

新参の開発者にとってSpring Bootの最も素晴らしい点はなんだと思うか、という質問には、"Spring IOプラットフォームの残りのコンポーネントを通じてBootが提供する機能によって開発生産性が劇的に向上することです。Spring Bootは機能を削ぎ落としたSpringではありません。プロダクション環境でそのまま使えるSpringなのです。Groovy/Grailsとも統合できます。" チームはフレームワークのプロダクション環境での動作について自信を強めているようだ。"私たちは私たちのウェブサイトをこのフレームワークを使って動かしています。世界中の開発者に向けてドキュメントを提供しているのです。"Spring.ioのウェブサイトはSpring Bootの参照プロジェクトであり、先月、"Project Sagan"というコードネームでオープンソースになった。

BootがSpringの普及にどのような影響を与えるか、という質問に対しては、"生粋のRuby/RailsプログラマからJVMのユーザまで"さまざまなひとから多くのフィードバックを受け取っていると答えた。特に"Bootを発表して以来最大の反響"を得ている、という。"ウェブのトラフィック、mavenのダウンロード、StackOverflowの質問、Google検索、indeed.comの仕事などの反響は大きいです。とくに、YouTubeチャンネルの視聴はJava YouTubeチャンネルの視聴を上回るペースです"。

企業向けのJavaのエコシステムでは、Spring Bootはどうなると思うか、という質問は、"企業向けのJavaのエコシステムの将来はどうなっているか?"という質問のほうがふさわしいと返され、次のように答えた。

新しいPaaSの時代が到来し、アプリサーバ市場は急激に降下するでしょう。Bootは80%のケースで、Javaのコードの繰り返し部分を排除し、小さく、クラウド/PaaS環境への配置にふさわしいサービスの構築を促します。Bootはそのままプロダクション環境で使えます。コードを正しく書くということだけが開発者が気にしなければならない責任になるのです。

また、彼らは次のようにも言う。"Java 8が現れたことで、Bootは他の言語やフレームワークで見聞きした課題に簡単に対処したいと思っているJVM開発者にうってつけです。" 企業向け開発の分野では"多くの企業が小さくてとてもシンプルなサービスを開発し、クラウド/PaaSへの配置に準備しています。Boot/Springは完全なBYOC(bring-your-own-container)戦略を採用しています。"しかし、彼らが言うには、Bootは"既存のインフラや複雑なエンタプライズJavaとの橋渡しもできる"とのことだ。

Spring Bootによれば、Bootは次のような思想で設計されたアプリケーションにとって理想的だ。

- CloudFoundryのようなPaaSへアプリケーションを配置するためのビルドパック
- マイクロサービス/RESTサービス開発プラットフォーム
- モバイルアプリケーションサービス向けのリッチで統合されたバックエンド
- 他のJVM言語やフレームワーク(Groovy/Grails)向けのランタイム

Spring Bootアプリケーションとして小さなサービスを構築することについては詳細はExploring Micro-frameworks: Spring Bootという記事で確認できる。この記事は先月InfoQで公開された。さらなる開発者向けリソースはSpring.ioのガイドセクションで見つかる

この記事に星をつける

おすすめ度
スタイル

BT