Kota Tsuyuzaki
nttlabs
Published in
8 min readNov 22, 2018

--

Berliner Dom

OpenStack Summit Berlinレポート

こんにちはNTTの露崎です.

11月13日から11月15日、ドイツのベルリンでオープンソースのクラウド基盤ソフトウェア, OpenStackのカンファレンスであるOpenStack Summitが開催されました。今日はそのOpenStack Summitで発表されたOpenStackの動向について紹介したいと思います.

OpenStack Summit Berlinの会場 City Cube

OpenStackをOpen Infrastructureへ:

Open Infrastructureを強調したカンファレンス広告

キーノートの中でエグゼクティブディレクターのJonathan Bryce氏はオープンソースソフトウェア(OSS)に期待されているのは柔軟性だ, ということを強調しました. OpenStackはパブリッククラウド事業者の75のデータセンターで運用されつつ、多くのプライベートクラウドでも活用されているクラウド基盤ソフトウェアです. OpenStackは特に「OpenStackベースであれば同じように扱うことができる」といった相互運用性(Interoperability)を重要視して開発されています. このため、ユーザはOpenStackを使ったシステム開発の際に「パブリッククラウドの利用」、「ベンダ製品の利用」, 「自分自身で構築する」といった, いくつかのオプションから, ニーズに合わせて自由に選択することができます. こうした選択肢を持てることが, OpenStackの利点だと話し, こうした取り組みがベンダロックインを防ぐ重要な鍵だと強調しました.

OpenStackの最新動向を語るJonathan Bryce氏のKeynote

一方で「OpenStackはOSSの一つである, 一つのOSSで全てのビジネスに対応できるわけではない」とし, 重要なのはOpen Infrastructureであると話しました. Open Infrastructureはコンテナ技術のようなクラウドネイティブフレームワークの環境を用意するための基盤だと定義し, コンピュート, ストレージ, ネットワークといった基本的な基盤技術で構成されます. こうした基盤技術をユーザが自分で定義し柔軟に扱えるようにすることが重要であり, これを支えるために, OpenStackの様々なプロジェクトがあります. また新たなビジネスエリアに向けては, OpenStack Foundationが立ち上げる新プロジェクトで力を入れていくという方向性を示しました. Zuul, Kata Container, Airship, StaringXといったこれらのプロジェクトはPilotプロジェクトと呼ばれ, 今後IoT、Edge、AIなどのビジネスエリアに活用される予定です. また, 今回のOpenStack SummitではKubernetesなどOpenStack上で実行可能なフレームワークなどを扱ったプレゼンテーションが多く取り上げられ, 盛り上がりを見せていました. このことから主催者であるOpenStack FoundationはOpenStackそのものだけでなくOpenStackを使ったInfrastructureを他のOSSと連携し, どのようにユーザの望むシステムを構築をしていくか, という点に力を入れており, ユーザからの注目度も高いということが感じられました.

こうしたビジネス的な, 「フォーカスエリアを明確化する」といった背景から, 2010年から開催してきたOpenStack Summitは次回 2019年4月からOpen Infrastructure Summitに生まれ変わります. また二年前からProject Team Gatheringとして別の日程で行われてきた開発者会議についても同日程で実施されることが発表されました.

OpenStackのInfrastructure:

OpenStack Summitの動向や発表については, おそらく勉強会や他のWeb記事等でも紹介されると思いますので, ここでは私がインフラ屋的な観点の独断と偏見で面白かったと思う発表を一つだけ紹介します.

私が面白いと思ったのはTristan Cacqueray氏とDirk Muller氏の紹介する「Reduce your log noise using machine learning」という発表です.(発表資料はこちら

Tristan Cacqueray氏とDirk Muller氏の発表

OSSやある程度の規模のプロダクトを開発した経験のある方ならCI/CDの大切さがわかると思います. CI/CDは新しく開発したコードがソフトウェアやシステムが壊れないようにテストを自動的に実施し, 本番環境への継続的なリリースの仕組みを作ることです. OpenStackでも多くのユーザの環境とコードを守るためにgerrit code reviewというレビューシステムとそれに紐づけられたZuulプロジェクトが, 開発者のコードが投稿される度にテストを行い, ソフトウェアが安全であることを確認しています. しかし, こうしたテストコードや自動化の仕組みは多くの前処理(OSの必要なソフトウェアのインストールなど)や後処理(実行ログの対比やVMのシャットダウンなど)が必要であり、開発コードの規模やCI/CDのインフラが大きくなるほど, それらの処理によって生成されるログが増えてきます. この発表ではそうした自動実行によって生成されるログの中から, 例えばテスト失敗時の失敗の原因となる実行ログを素早く見つけるために機械学習を利用する仕組みを紹介しています.

実際のシステムはscikit-learnというpythonの機械学習ライブラリにlogreduceというプログラムを組み合わせています. logreduceではログのフォーマットを意味のある単位に区切りハッシュをかけたベクトルとして扱います. そして、テストをパスした通常時のログをベクトル化したものを学習させます. OpenStackはこの一年で70,000個の変更を導入していますので, 投稿までにパッチをアップデートする回数が平均5回だとしておよそ350,000個のサンプルログがあることになります. このログを学習し, 生成した学習モデルに対して, 新たに投稿され, 不幸にもテストが失敗してしまった際のログを付き合わせることで, 失敗の原因となるログを抽出する, といったものです. プレゼンテーションでは実際にlogreduceを使った場合に97.98%のログが削減され, テスト失敗の直接の原因となった「利用可能ホストがなかった(リトライ回数上限到達)」というログだけを抽出することができた, と紹介されています. また, 提案手法ではログは単に自動的に学習されるだけでなく, CI上からユーザが分類することが可能です. 人手でログの分類を補助することで, より正確に例外的なログを抽出することができるようになります. 発表によると、既にOpenStackのCIを使っている場合にはいくつかのステップですぐに実行できるようになるようなので, 私の関わるプロジェクトでもセットアップしてみようかと考えています.

まとめ:

KeynoteでJonathan Bryce氏が語ったように, OpenStackはインフラ構築基盤として様々なIT分野で既に活用されてると共に新たなビジネス向けのソフトウェアインフラとして活動を広げようとしています. また, そうした基盤技術の支えとしてOpenStackコミュニティがいかに効率的に開発しようと努力しているかの例としてTristan Cacqueray氏らの発表を紹介しました. カンファレンスの名前はOpen Infrastracture Summitに変わりますが, 今後もSummitが良い議論の場になるよう, 期待したいと思います.

OpenStack Summit Sponsors

なお, OpenStack Summitの他の発表についてはOpenStackのVideoサービスサイトで閲覧可能です. 他にも面白い発表が多数ありましたので, 是非, ご覧になってみて下さい.

おわりに:

私たちNTTは,オープンソースコミュニティで共に活動する仲間を募集しています.ぜひ弊社 ソフトウェアイノベーションセンタ紹介ページ及び,採用情報ページをご覧ください.

--

--

Kota Tsuyuzaki
nttlabs
Writer for

Research Engineer at Nippon Telegraph and Telephone Corporation (NTT). OpenStack Swift core team member, OpenStack Storlets Project Team Lead.