バージョン1.5のリリースから2ヶ月半を経て、PivotalがSpring Cloud Data Flow(SCDF)のバージョン1.6をリリースした。Pivotal Cloud Foundry(PCF)やKubernetes、Apache Mesosなどのランタイム上で、リアルタイムデータ処理パイプラインの構築とオーケストレーションを行うためのプロジェクトだ。新バージョンには次のような新機能がある。
- PCF用の新タスクスケジューラ
- ダッシュボードの改善
- Kubernetesサポートの拡張
- 新たなアプリケーションホスティングツールとローカルリポジトリ
ここでは、新機能のいくつかについて説明する。
入門
以前のバージョンと同じく、このクイックスタートガイドでは、docker-compose
ユーティリティを使ってこの新バージョンを起動する方法が紹介されている。
DATAFLOW_VERSION=1.6.1.RELEASE docker-compose up
起動が完了すれば、http://localhost:9393/dashboard/
からSCDFダッシュボードにアクセスできる。
タスクスケジューリング
ネイティブなPCF Schedulerとの統合がSCDF for Cloud Foundryに導入されたことで、SCDFでcron式によるタスク定義のスケジュール設定と解除ができるようになった。PCF Schedulerは、データベースのマイグレーションやHTTPコールといったタスクを処理するサービスで、ジョブの生成や実行、スケジュールの他、履歴を見ることができる。スケジューラには、SCDFダッシュボードのTasksメニューからアクセス可能だ。
SCDF App Hosting Tool
同じくバージョン1.6の新機能で、Spring Shellで開発されているSCDF App Hosting Toolは、ファイアウォール内でSCDFを運用していてSpring Maven Repositoryにアクセスできない開発者のために、スタンドアロンのSCDF App Repositoryをローカルネットワーク上に構築および維持できるように設計されている。App Hosting Tool(scdf-app-tool
コマンド)は、ソースから構築するか、あるいはバイナリをダウンロードすることで入手可能だ。
起動されたApp Hosting Toolは、binder-undefined:>
という初期プロンプトでREPLをローンチして、ストリームアプリの定義が必要であることを指示する。以下に示すのは、 help
コマンドを実行した時の使用可能なコマンドである。
注意が必要なのは、この時点ではget stream-apps
コマンドとlist stream-apps
コマンドが使用できないことだ。この2つのコマンドは、以下に示すようなbinder
コマンドを使って、ストリームアプリが定義された後に使えるようになる。サポートされているバインダはkafka
、kafka-10
、rabbit
だが、bunder
コマンドのkafka
パラメータはkafka-10
のエイリアスであることにも注意すべき点だ。
プロンプトが kafka-10:>
に変わっていることに注目してほしい。この時点で、get stream-apps
とlist stream-apps
が呼び出し可能になる。
SCDF App Repository
SCDF App RepositoryはSpring Bootアプリケーションであり、ストリームおよびタスクアプリケーションの構築時に、外部のMavenリポジトリを使用せずにアプリケーションの登録とデプロイを行うために使用される、Webベースのリポジトリである。以下の操作を実行すると、scdf-app-tool
のconfig
ディレクトリ下に、scdf-app-repo
というApp Registoryが構築される。
$ cd config/scdf-app-repo
$ ./mvnw clean package
App Registoryはクラウドプラットフォームにデプロイすることも、ローカルで実行することも可能だ。
$ java -jar target/scdf-app-repo-0.0.1-SNAPSHOT.jar
実行後は、リポジトリにホストされているアーティファクトに、http://localhost:8080/repo/
からアクセスすることができる。
PivitalのシニアスタッフエンジニアであるMark Pollack氏が、最新リリースについて説明してくれた。
InfoQ: 他のリアルタイムデータ処理パイプラインと比較した時、Spring Cloud Data Flowはどのような点がユニークですか?
Mark Pollack: Spring Cloud Data Flowは、Spring Cloud Stream (SCSt)とSpring Cloud Task (SCT)のマイクロサービスアプリケーションを、コヒーレントなリアルタイムストリーミングとデータパイプラインとにそれぞれオーケストレーションするためのデータ統合ツールキットを提供する、ライトウェイトなSpring Bootアプリケーションです。リアルタイムストリーミングのアプリケーションでは、Kafka KStreams、RabbitMQ、Google Pub-Subなど、幅広いミドルウェア製品を使用することができます。これらすべてに共通する分母がSpring Bootです。プログラミングモデルから始まって、テスト、CI / CD、Cloud FoundryやKubernetesなどクラウドプラットフォーム上での運用に至るまで、すべて一貫しています。
市場には数多くのストリーミングプラットフォームやリアルタイムアナリティクスソリューションがありますが、アーキテクチャ的に当社がユニークな点は、ストリーミングパイプラインでCI/CDを重要視するという、データ処理ワークロードにおけるクラウドネイティブなアプローチにあります。これにより、データ処理ロジック(すなわちSpring Bootアプリ)では、自動スケーリングによるリアルタイムなトラフィックパターンへの対応や、あるいはアップストリームおよびダウンストリームのデータ処理を中断することのないロールアップグレードが可能になっています。
InfoQ: Spring Cloud Data Flowの今後について教えてください。
Pollack: Spring Cloud Data Flowはエコシステム内の複数のプロジェクトにまたがっており、それぞれのプロジェクトが独立したバックログやリリース周期を持っています。
最も重要視しているのは、リアルタイムストリーミングやバッチデータパイプラインの開発において、開発者の生産性を向上することです。ストリーミングやバッチプログラミングモデルの新機能による強化が最優先事項ですが、同時に、Cloud FoundryやKubernetesといったクラウドプラットフォーム個々における運用改善も忘れてはいません。
注目すべき点として、
- State StorageとInteractive Queryを促進するため、KafkaおよびKafka Streamsエコシステムへの継続的に投資する一方で、クラウドネイティブなプラクティスも従来通り維持します。
- バッチおよびタスクのワークロードが、定期的なカデンツまたはcronジョブに基づいてスケジュールされるようになりました。Cloud Foundry(PCF Schedulerによる)とKubernetes(CronJob仕様による)での実装は、現在開発中です。
- ユーザビリティは大きな課題ですが、オーケストレーション機構からインタラクティブ性、ルックアンドフィール全体に至るまで、ダッシュボードが多くの点で改善されました。
- セキュリティは依然として、多くのユーザにとって最優先事項であると同時に、当社のチームとしても重要な課題です。ストリーム起動タスクにセキュリティ機能を追加したことに加えて、今後のリリースでは、Composed Task機能のサポートを目標としています。“誰がいつ、何をしたのか?”という質問に答えるため、次期バージョンでは監査証跡機能もリリースされる予定です。
- さらに当社は、次世代のデータ処理ワークロードの設計にも、積極的に取り組んでいます。現在はSpring Bootのuber-jarをベースとしていますが、今後は一般的な機能jarに転換する予定です。Spring Cloud Stream、Spring Cloud Function、Spring Cloud Stream App Startersはすべて、全体的な目標、設計、アーキテクチャの観点から再評価を行います。
- PCF用のSpring Cloud Data Flowでは特に、エンドツーエンドSSOの重要なセキュリティモデルと合わせて、Cloud Foundryをプロビジョニングの面で自動化します。開発者と運用担当者のSCDFとのインタラクションをさらに強化するため、タイルの最適化に対しても引き続き注意を払っていきます。
InfoQ: あなたの現在の役職は何ですか、つまり、毎日どのようなことをしているのでしょうか?
Pollack: チームリーダとして、雑多な作業を担当しています。ロードマップの定義や機能開発、メンテナンス、受け入れテスト、リリース管理、ユーザサポートなどを支援しています。また、Robotronでの自身のハイスコア更新にも挑戦しています。
リソース
この記事を評価
- 編集者評
- 編集長アクション