ApacheCon North America 2017:API互換に関する渋いセッションを聴講
![](https://thinkit.co.jp/sites/default/files/styles/main_image_730x/public/main_images/12068_main.jpg?itok=4NRnvhJI)
2017年5月16日から18日までマイアミで開催されたApacheCon North America 2017では、興味深い内容のセッションが多数開催された。ビッグデータやCloudStackなど領域を絞ったセッションがある一方で、自社の事例を紹介するものなども見受けられた。今回はそのなかから2点、NetflixによるCassandraクラスターの監視の事例と、NECアメリカによるOpenStackの互換性に関するセッションを簡単に紹介する。
「なければ自分たちで作る」Netflixのシステム
Netflixは、クラウドネイティブでリアクティブなシステムを構築した先進的な事例として有名だ。同社は複数のデータセンターを活用して動画をストリーミングで配信しているビジネスを展開しているが、セッションの内容はそのビジネスを支える監視システムに関するものだ。NetflixのバックエンドはインフラストラクチャーがAWS、分散データベースにはCassandraが使われているという。さらにCassandraのバックアップツールであるPriam、各サーバーやプロセスの監視ツールとしてMantisというソフトウェアがNetflix社内で開発され、Apacheライセンスのオープンソースソフトウェアとして公開されている。
このセッションはそれらを使って、「大規模なCassandraクラスターをいかに監視運用するのか?」についての解説であった。Jenkinsで中央集権的に監視を行うと、Jenkinsサーバーがボトルネックとなる。それを多段のMantisのエージェントからのストリームデータとして処理することで、クラスターに負荷をかけずに素早く不具合の検知と対応が可能になるという。
ここで注目すべきはマルチリージョン、マルチデータセンターでユーザーが望む動画をスムーズに再生するというNetflixのビジネス上の命題に対して、すでに世の中に存在するもので対応できないのであれば積極的に自社で開発し、それを公開するという姿勢だろう。この辺りからも、大規模なクラウド環境を実現するソフトウェアは、もはやその環境を持つエンドユーザーからしか出てこないのではないかという筆者の思いを強くしたセッションであった。
またNetflixはNDBench(Netflix Data Benchmark)というソフトウェアを開発して、システムの性能評価や統合テスト、実装時の検証などに使っているという。NDBenchによって、どのようなデータストレージであってもAPI経由でデータの収集を行い、永続的なモニタリングが可能になったという。
ここからわかることは、100%パブリッククラウド(Netflixのシステムは100%AWS上で稼働)、100%オープンソースで、一秒間に数百万アクセスを捌く商用サービスのシステムが作れるというだけではなく、すでにあるもの(ソフトウェア)は積極的に利用し、なければ自分たちで作り、そして公開するという攻めの姿勢だ。
Mantisに関しては以下のNetflixのブログ記事を参照されたい。
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のロゴを取得するための試験に合格しなければならない)されるための仕組みを解説した。
そしてさらに、業界全体としてAPIの互換性を保つためのOpenAPI Initiativeを紹介した上で、OpenStackが進むべき方向を説明した。すでにKubernetes、Google、IBMなどが利用しているがOpenStackではこれからだという。ただしその実装にはかなり工数のかかる作業が必要ということもあり、業界全体でのコンセンサス作りが必要というのが大道氏の結論であった。
講演後の質疑応答においても、実際にOpenStackのサービスを展開しているベンダーによって互換性に対する意見が異なっており、調整に時間がかかっているという現状を説明してくれた。この辺りは、ベンダーがサービスに利用しているインフラストラクチャーがかなり関係しているのではないだろうか。
オープンソースソフトウェアは、常に新しいバージョンに更新をし続けるというのがセキュリティ的な観点からも重要であるが、OpenStackのように全体として複数のコンポーネントで構成される場合に、誰がどのように後方互換性を維持するのかは、頭の痛い問題だろう。OpenStackのバージョンアップやローリングアップデートが常に話題になるのは、現実問題としてそれが困難であるということの現れだろう。
全体を通じてApacheConのブレークアウトセッションは、ユースケースからトラブルシューティング、問題提起まで様々だった。しかし海外でオープンソースソフトウェアに関する発表にチャレンジするのであれば、Foundationもサポートしてくれるし、変な話だが観客が多くて緊張し過ぎることもないので、これから海外のカンファレンスでのスピーカーにチャレンジしたいエンジニアには、ぜひApacheConでのデビューをお勧めしたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OpenStackDays Tokyo 2017、コンテナへの応用が目立つOpenStackの現状
- イベント2日目:デモ連発で会場を沸かせたマーク・コリアー氏
- CNDT2020シリーズ:オススメのGitOpsツールをCAのインフラエンジニアが解説
- OpenStack Summit 2018 インフラの次はCI/CDに注目
- eBay自社製のコンテナオーケストレーションツール、TessMaster登場!
- OpenStack Summit 2018、Yahoo!ジャパンが共同開発するGimbalとは?
- OpenStack Summit 2018 Vancouver開催 リアルな情報交換の場となったイベント
- OpenShift Commonsで知る継続的デリバリーのSpinnaker最新情報
- 中国人のためのイベント、Open Infrastructure Summit上海開催
- Open Infrastructure Summit上海、LINEに聞いた大規模なOpenStackクラスター運用のポイントとは?