2016年5月11日,Pivotalは,同社のSpring Cloudの最新リリースがGA(General Availability)に到達したことを発表した。2016年3月のRC1(Release Candidate 1),同年4月のRC2(Release Candidate 2)に続いて公開される,フォローアップリリースとしての位置付けだ。
今回のリリースを特徴付けるものとして,Pivotalは次のような点を強調している。
- Spring Boot 1.3.xとSpring Framework 4.2.xのサポート
- サービス登録とディスカバリ,コンフィギュレーションの手段として,Spring Cloud ConsulによるHashicorp Consulのサポート
- サービス登録とディスカバリ,コンフィギュレーションの手段として,Spring Cloud ZookeeperによるApache Zookeeperのサポート,およびSpring Cloud Clusterのリーダ選出(leader election)
- Spring Cloud Sleuthによる抽象化を通じて分散トレースをサポートする2つの実装 – ログ(ログ収集処理の最適化とLogstashあるいはLoggregatorのようなマルチプレクサ),およびTwitterのZipkinのサポート – を提供
- 次世代Spectator MetricsライブラリであるNetflix Atlas Telemetry Systemと,Eureka,Ribbon,Hystrix,Feignの最新バージョンがSpring Cloud Netflixで利用可能
- Spring Cloud BusにSpring Cloud Streamの最新リリースを採用
- Spring Cloud Clusterによるクラスタのリーダ選出とロック
- Spring BootメトリクスのAmazon Cloudwatchへのエクスポート,およびAmazon RDSのサポート
InfoQは先日,Pivotalでプロダクトマーケティングマネージャを務めるPieter Humphrey氏と対談する機会を得て,今回のリリースと同社のプラットフォームの現状に関する洞察を深めることができた。氏は次のような話をしてくれた。
InfoQ: Spring Bootは毎月400万回近くダウンロードされていますが,これほど急激に普及したのはなぜでしょう?
Pieter Humphrey: NetflixではRubyやNode.jsなどを試験した結果として,同社の急増するトラフィックにサービスするアプリケーションにはJVMのパフォーマンスと安定性,並列性が不可欠だという結論に至りました。現在ではSpringコミュニティの約30%がBootを使用しています。Spring Framework 3.xやそれ以前のバージョンを使用している企業も,毎日のようにアップグレードしています。個人的な意見としては安全性に加えて,Springコミュニティ,あるいはより広範なJavaコミュニティの提供するライブラリが作り上げたエコシステム,そしてもちろん可搬性といったものも,Javaが広く選ばれている理由だと思います。Netflixでの例以外でも,マイクロサービス移行との親和性,企業での開発効率の高さ,より新しいクラウドネイティブプラットフォームで開発することの必要性などから,これほど急激に普及したのだと思います。垂直スケールの技術は,この10年で大きく様変わりしました。
InfoQ: Javaは生き返りますか?
Pieter Humphrey: 生き残るか,という議論ならば可能だと思います。TIOBEでの順位が実証しています。Java SEは今も顕在ですし,Java 8の普及率の高さはその確かな証明です。
InfoQ: Springのサービスは本当にたくさんありますが,開発者はどうやってサービスディスカバリやルーティングライブラリを選択すればよいのでしょう?
Pieter Humphrey: 自分のニーズに対して最適なマイクロサービススタックを選ぶ上で,手軽な方法というものはありません。Netflix,HashCorp,Apacheなどはすべて,それぞれが長所と短所を持った,独自のコンポーネントを用意しています。例えばConsulはセキュリティが充実していますし,シンプルなREST APIを備えた軽量なサイドカーであることから,多言語環境に特に適しています。ツールとして,サービスディスカバリとコンフィギュレーションの両方を提供してもいます。Spring + CloudFoundryのユーザには,現時点でサポートの充実したNetflixOSSを勧めたいと思いますが,将来的にはこの状況も変わるでしょう。
InfoQ: Spring BootとSpring Cloudはアプリ構築に独自手法を導入していますが,抽象化が支障となるのはどのような点なのでしょう?特に,低レベルの問題に対するトラブルシュートとして,抽象化することは不可能なのでしょうか?
Pieter Humphrey: 抽象化は,それが価値のあるものでなくてはなりません。そうでなければ不要な存在です。フレームワークのためのフレームワークでは意味がありません。BootやCloudでは,単なる抽象化ではなく,規約+明示的設定というアプローチを採用しています。従ってその規約が何であるかを学ぶことは必要です。Spring BootのActuatorのレポートはとても役に立ちます。さらに私たちは,エラーの品質改善にも取り組んでいるところです。分散コンピューティングには断片化やビジー,ノイズといった難しい部分がたくさんありますが,Maven Centralからのダウンロード数を見る限りでは,Springユーザの多くが抽象化に対して,プログラム全体の単純化や高レベルAPI,単一技術に縛られない点などに価値を見出しているようです。より詳細に理解するには,Spencer Gibb氏のSpring.io Barcelonaでの講演が参考になると思います。
InfoQ: 今回のリリースのおもなアップデート(上述)の中で,どの機能が最もエキサイティングだと思われますか? その理由も教えてください。
Pieter Humphrey: 難しい質問ですが,まずはSpring Cloud Sleuth/分散トレーシングをあげたいですね。
InfoQ: 今後のリリーストレインでは,どのようなシナリオないしテクノロジに注力していきたいと思いますか?
Pieter Humphrey: ほとんどを現行のテクノロジと,開発者のエクスペリエンスの改善に費やしています - (ローカル開発の)入門資料やトラブルシュート,テスト,ドキュメントなどです。
回答者について
Pieter Humphreyはコンピュータ業界で17年のキャリアを持つ。深い技術的バックグラウンドを持つ一方,技術だけでなく,人と協力し合うことを楽しみ,スタートアップ企業から時価総額数百万ドルの大企業まで,セールスとマーケティング部門を主体に共同作業を行なっている。ここ 4年間は,Pivotalでコンサルティングプロダクトマーケティングマネージャの職にある。Pivotalに来る前は,Oracleでプリンシパルプロダクトディレクタを務めていた。
この記事を評価
- 編集者評
- 編集長アクション