ApacheCon North America 2017:API互換に関する渋いセッションを聴講

2017年6月22日(木)
松下 康之 - Yasuyuki Matsushita
マイアミで開催されたApacheCon North America 2017における、NECアメリカやNetflixなどによるブレークアウトセッションを紹介。

2017年5月16日から18日までマイアミで開催されたApacheCon North America 2017では、興味深い内容のセッションが多数開催された。ビッグデータやCloudStackなど領域を絞ったセッションがある一方で、自社の事例を紹介するものなども見受けられた。今回はそのなかから2点、NetflixによるCassandraクラスターの監視の事例と、NECアメリカによるOpenStackの互換性に関するセッションを簡単に紹介する。

「なければ自分たちで作る」Netflixのシステム

Netflixは、クラウドネイティブでリアクティブなシステムを構築した先進的な事例として有名だ。同社は複数のデータセンターを活用して動画をストリーミングで配信しているビジネスを展開しているが、セッションの内容はそのビジネスを支える監視システムに関するものだ。NetflixのバックエンドはインフラストラクチャーがAWS、分散データベースにはCassandraが使われているという。さらにCassandraのバックアップツールであるPriam、各サーバーやプロセスの監視ツールとしてMantisというソフトウェアがNetflix社内で開発され、Apacheライセンスのオープンソースソフトウェアとして公開されている。

NetflixにおけるCassandraの利用例

NetflixにおけるCassandraの利用例

このセッションはそれらを使って、「大規模なCassandraクラスターをいかに監視運用するのか?」についての解説であった。Jenkinsで中央集権的に監視を行うと、Jenkinsサーバーがボトルネックとなる。それを多段のMantisのエージェントからのストリームデータとして処理することで、クラスターに負荷をかけずに素早く不具合の検知と対応が可能になるという。

Mantisによるヘルスチェックモニタリング

Mantisによるヘルスチェックモニタリング

ここで注目すべきはマルチリージョン、マルチデータセンターでユーザーが望む動画をスムーズに再生するというNetflixのビジネス上の命題に対して、すでに世の中に存在するもので対応できないのであれば積極的に自社で開発し、それを公開するという姿勢だろう。この辺りからも、大規模なクラウド環境を実現するソフトウェアは、もはやその環境を持つエンドユーザーからしか出てこないのではないかという筆者の思いを強くしたセッションであった。

AWS上にCassandraのプロセスが分散されて冗長化されている

AWS上にCassandraのプロセスが分散されて冗長化されている

またNetflixはNDBench(Netflix Data Benchmark)というソフトウェアを開発して、システムの性能評価や統合テスト、実装時の検証などに使っているという。NDBenchによって、どのようなデータストレージであってもAPI経由でデータの収集を行い、永続的なモニタリングが可能になったという。

NetflixにおけるCassandraと周辺のモジュール概要

NetflixにおけるCassandraと周辺のモジュール概要

ここからわかることは、100%パブリッククラウド(Netflixのシステムは100%AWS上で稼働)、100%オープンソースで、一秒間に数百万アクセスを捌く商用サービスのシステムが作れるというだけではなく、すでにあるもの(ソフトウェア)は積極的に利用し、なければ自分たちで作り、そして公開するという攻めの姿勢だ。

Mantisに関しては以下のNetflixのブログ記事を参照されたい。

Stream-processing with Mantis

APIの互換性についてのコンセンサスが必要

次に紹介するのは、日本人によるセッションだ。登壇者はNECアメリカに所属する大道憲一氏で「Fragility of API Interoperability:Keep Open Source Interoperable」と題された、OpenStackを例にとって相互運用性を維持するための努力の重要性について語ったものだ。

大道氏には、かつてOpenStackのインフラ部分のテストに関して2015年12月にインタビューを行っている。ここでも複雑なOpenStackをテストする苦労が滲み出ていると言える。

OpenStackの土台を支えるインフラとQAが抱える深刻な悩みとは

プレゼンテーションを行う大道氏

プレゼンテーションを行う大道氏

ここで大道氏は、最近のオープンソースソフトウェアがAPIを通じてシステムが稼働していることをベースにして、プライベートクラウドのインフラストラクチャーであるOpenStackにおいて、ベンダーごとのディストリビューションが少なからずカスタマイズされることと、バージョンごとの機能拡張に応じて過去のバージョンとの後方互換がとれなくなってきていることを説明した。

例に挙げられたのは、先日行われたOpenStack SummitでのCockroachDBのKubernetesによるインターオペラビリティーのデモだ(デモの詳細は、下記のレポート「イベント2日目:デモ連発で会場を沸かせたマーク・コリアー氏」も参照してほしい)。様々なクラウドプロバイダー上で、同じKubernetesで実装されたアプリケーションが稼働することの重要性を訴求。ただしそれを実現するために、OpenStackではCertificated(OpenStack Poweredのロゴを取得するための試験に合格しなければならない)されるための仕組みを解説した。

イベント2日目:デモ連発で会場を沸かせたマーク・コリアー氏

OpenStack Summitでの相互運用性のデモを紹介

OpenStack Summitでの相互運用性のデモを紹介

そしてさらに、業界全体としてAPIの互換性を保つためのOpenAPI Initiativeを紹介した上で、OpenStackが進むべき方向を説明した。すでにKubernetes、Google、IBMなどが利用しているがOpenStackではこれからだという。ただしその実装にはかなり工数のかかる作業が必要ということもあり、業界全体でのコンセンサス作りが必要というのが大道氏の結論であった。

OpenAPI Initiativeの紹介

OpenAPI Initiativeの紹介

講演後の質疑応答においても、実際にOpenStackのサービスを展開しているベンダーによって互換性に対する意見が異なっており、調整に時間がかかっているという現状を説明してくれた。この辺りは、ベンダーがサービスに利用しているインフラストラクチャーがかなり関係しているのではないだろうか。

オープンソースソフトウェアは、常に新しいバージョンに更新をし続けるというのがセキュリティ的な観点からも重要であるが、OpenStackのように全体として複数のコンポーネントで構成される場合に、誰がどのように後方互換性を維持するのかは、頭の痛い問題だろう。OpenStackのバージョンアップやローリングアップデートが常に話題になるのは、現実問題としてそれが困難であるということの現れだろう。

全体を通じてApacheConのブレークアウトセッションは、ユースケースからトラブルシューティング、問題提起まで様々だった。しかし海外でオープンソースソフトウェアに関する発表にチャレンジするのであれば、Foundationもサポートしてくれるし、変な話だが観客が多くて緊張し過ぎることもないので、これから海外のカンファレンスでのスピーカーにチャレンジしたいエンジニアには、ぜひApacheConでのデビューをお勧めしたい。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

仮想化/コンテナイベント

KubeCon報告からKubernetes対応版Dockerまで、Docker Meetup Tokyo #20開催

2018/1/30
コンテナーに関する勉強会「Docker Meetup Tokyo #20」が、2017年12月14日に開催された。11月に開催された「Docker Meetup Tokyo #19」に続く回となった。
仮想化/コンテナ

Red Hatが示したOpenShiftの将来とは

2018/1/24
Red Hatが推進するコンテナープラットフォームであるOpenShiftの1dayカンファレンスが開催された。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています