読者の皆様へ: あなたのリクエストに応じて、大切な情報を見逃すことなく、ノイズを減らす機能を開発しました。お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。
Kubernetesのなどのコンテナ管理技術は、最新のビッグデータパイプラインの実装を可能にする。IguazioのビッグデータアーキテクトであるErian Bivas氏は、先日のKubeCon + CloudNativeCon North America 2017 Conferenceで、ビッグデータパイプラインとその開発におけるKubernetesのメリットについて講演した。
従来のビッグデータソリューションは主にHadoopをベースとしていたが、ここ数年は、新たなデータベースやストリーミングデータ、マシンラーニングソリューションによるエコシステムの進化に伴って、Hadoopのデプロイメントモデル(Map/Reduce、YARN 、HDFS)以上のものが求められている。これらのソリューションでは、Cassandra、Elasticsearch、クラウドベースのストレージなどのデータベースに格納されたデータを対象とした、KafkaやSpark、TensorFlowといった多種多様なワークロードをホストするためのクラスタスケジューリングレイヤも必要となる。
Bivas氏はまず、一般的にソフトウェア開発のライフサイクルに関わっているさまざまなチームと、それぞれの主な目的について話した。アプリケーションエンジニアがアジャイルソフトウェア開発を望むのに対して、データエンジニアはデータの所在場所を関心事とするが、データベースシステムの継続的稼働を望む点はどちらも同じだ。また、DevOpsチームは、すべてのシステムをより少ないメンテナンスとサービス停止時間で運用できることを望んでいる。コンテナ技術の革新によって、これらすべての目標が組織内で達成できるようになったのだ。
次に氏は、クラウドネイティブなエンドツーエンド分析アプリケーションを開発するための、共通的なフレームワークについて論じた。ビッグデータソリューションを柔軟かつ効率的なものにするためには、アプリケーションやフレームワークからデータサービスを分離する必要がある。この方法は非構造化データ、構造化データ、ストリーミングデータなど、さまざまなタイプのデータを管理するデータサービスにも有効だ。
理想的には、ソリューションはクラウドネイティブなアプリケーションとフレームワークをベースとして、Kubernetsの提供する統合オーケストレーションを利用するべきである。
Bivas氏は次に、SparkやTensorFlowなどのコンテナ化されたビッグデータ分析ツールを使って、運用データストア(リレーショナルデータベース)や外部ソース(IoT)からのデータを分析するという、データサービスを中心とした継続的分析フローモデルについて説明した
このようなソリューションには、KubelessやOpenFaaSといったサーバレスフレームワークが最適だ。YAMLやDockerfile、あるいは関連するビルドの不要なサーバレスソリューションは、導入も容易で、自動スケーリングやイベントトリガもサポートしている。
Bivas氏は、先日オープンソースになったリアルタイムサーバレスプラットフォームのNuclioについて、アーキテクチャの詳細を説明した。このアーキテクチャではYARNに代えてKubernetesを採用し、Spark ML、Presto、TensorFlow + Pythonなどのフレームワークと、ローカルとクラウドベースのストレージを組み合わせたサーバレス機能を使用する。プラグイン可能なイベントソースとデータソースもサポートする。
さらに氏は、自動車関連ユーザのユースケースとして、自動車メンテナンスのリアルタイム分析について説明した。このソリューションでは、Web APIを使ってストリームされる車両データと、データを収集するマイクロサービスが使用される。車両データには気象データや道路データがリアルタイムで付加され、天候や車両コンポーネントとの相関関係の検出が可能になっている。
プレゼンテーションでは、クラウドネイティブなアーキテクチャでビッグデータ分析を行なうメリットを示すデモも行われた。Bivas氏は、開発者がKubernetesの提供するツールを理解し、アプリケーションのログの取得とメトリクスの収集を行って、そこからアプリケーションのパフォーマンスに関する洞察を得るためのベストプラクティスをいくつか紹介して、自身のセッションを締め括った。
Nuclioフレームワークについて詳しく知りたい場合は、GitHubプロジェクト、コード例、資料などを参考にしてほしい。
この記事を評価
- 編集者評
- 編集長アクション