2017年1月27日、NTT Tech Conference #1が開催。DockerのコアメンテナやOpenStackのコアコミッターなどがオープンソースソフトウェアに関するさまざまなトピックを語った。
2017年1月27日、NTTグループに所属する若手ソフトウェアエンジニアが主体となって「NTT Tech Conference #1」が開催された。
東日本に西日本、NTTコミュニケーションズ、NTTデータ、それに研究所など、NTTグループに所属する社員(非エンジニア含む)は約25万人に達するという。企画や運営に携わり、冒頭、ゆるいあいさつで場を温めたNTTコミュニケーションズ 技術開発部の小倉真人氏は、「せっかく面白いエンジニアがいるのに、集まって話す機会がなかなかないのはもったいない。あまり堅苦しくない形で、会社や年次にとらわれず自由に交流できればと企画した」と述べた。
ただ、オープニングキーノートに登場したNTTコミュニケーションズの技術開発部長、山下達也氏によると、グループ内のエンジニアがざっくばらんに知見を交換する場は、これが初めてではない。主にネットワークオペレーターとしての立場から運用やサービスに関する議論を行う場が2007年から定期的に設けられ、IPv6やBGPを用いたネットワークの異常検知、ボットネット対策をはじめとするセキュリティ、それにOpenFlow、SDNといったトピックが取り上げられてきたという。
「2010年ごろからオープンソースソフトウェア(OSS)に注目したトピックが含まれるようになり、オペレーションの世界とソフトウェアの世界が近付いてきた。特にOpenFlowの盛り上がりによって、『ネットワークをソフトウェアで制御しよう』という動きがいよいよ本格化した」(山下氏)
今回のイベントは、こうしたトレンドを踏まえ、OSSを中心に、どちらかというとソフトウェア寄りの発表を中心としたものだ。会場では、コミュニティーに参加し、さまざまな形で貢献しているエンジニアを中心に、DockerやHadoop、PostgreSQLといったOSSをテーマとした講演が行われた他、「シェル芸で学ぶDevOps実践入門」などDevOpsに関するセッションもあった。
また展示会場では、BGPのフルルート(52万経路)を検索しつつ、100Gbps超のスループットをPCで実現するソフトウェアルーター「Kamuee Zero」のデモンストレーションも行われ、ネットワークオペレーターとしての面目躍如といったところだった。
本稿では、その中からOSSとの付き合い方に関するセッションの内容を紹介しよう。
NTTグループには、広く利用されているOSSの開発で重要な役割を果たすコアメンテナやコミッターが複数いる。2016年11月にOSSのコンテナエンジン「Docker」のコアメンテナに就任した須田瑛大氏(NTT ソフトウェアイノベーションセンタ)も、その1人だ。
須田氏は「Docker コミュニティー近況」と題するセッションで、先日リリースされたばかりの「Docker 1.13」の特徴として、「Docker Compose」の設定ファイルの直接取り込みや、クラスタ環境を構築する「Swarm」モードの強化、秘密鍵など重要な情報を安全に管理する「Secret機能」の追加といった機能強化が行われたことを紹介。そして「これからもDockerをより便利なものにしていくので、ぜひバグ報告やパッチ投稿を行ってほしい」と呼び掛けた。
同じくNTTのソフトウェアイノベーションセンタに所属し、OpenStackのコアコミッターとして活動している市原裕史氏は「OSSコミッターの生活とその必要性」と題するセッションを行い、OSSのコミュニティー活動への参加に当たって多くの企業人が抱く疑問に答える形で、普段の業務を紹介した。
ご存じの方も多いだろうが、OpenStackはオープンソースのクラウド基盤構築ソフトウェアだ。最新リリースの「Newton」に関しては、全世界で2386人がレビューを行い、2715件に上るパッチが投稿されるなど、コミュニティー活動が活発なOSSの1つである。「OpenStackは最も成功しているOSSの1つであり、開けたコミュニティーの中でいろいろなデベロッパやオペレーターが関わっている」と話す市原氏は、その中でNeutronのコアレビューアとして活動している。
OpenStackも含む主要なOSSの活動は、初期のころはテクノロジに興味を持つ一個人として参加するエンジニアが支えてきた。しかし近年、多くの企業もコミュニティーをサポートし、人やリソース、さまざまな側面で支援を行っている。一見すると単なるボランティアのように思えるこうした活動に、営利企業が取り組む理由は何なのだろうか。市原氏は、こうした疑問を解き明かしつつ、自身のOSSコミッターとしての生活と、コミュニティー活動の意義を説明した。
現在NTTでは、当初進めてきたOSSをベースにした独自改良版の開発から、コミュニティー版へのシフトを進めている。「NTTでも以前は、OSSに独自パッチを当てた改良版を用いていた。しかしパッチの数が少ないうちはいいが、数が増えてくるとバージョンアップのたびに当て直さねばならず、非常に大変になる。そこで、独自パッチをコミュニティーに還元し、コミュニティー版のソースコードを活用する方向へシフトしてきた」(市原氏)。既に、複数NIC(Network Interface Card)のサポートをはじめ、40以上の新機能、1700件近いバグ修正といった貢献をOpenStackプロジェクト全体に還元しており、どうしても独自に必要なものは外部機能として実装する形だ。
市原氏は、この動きを「プロプライエタリなプロダクトファーストから、コミュニティーファーストへ」と表現し、「貢献活動を増やし、コミュニティーの一員となることを目指している」と説明した。
「コミュニティーファースト」という姿勢の裏には、実利的な理由もある。それはプロジェクト過疎化の防止だ。OSSでよくある例として、開発者がいつの間にかいなくなったり、パッチを投げても返信がなかったりで、誰もいなくなってしまうケースがある。
「OpenStackも無縁ではない。Neutronに含まれるファイアウォールとVPN、ロードバランサの機能のうち、ファイアウォールとOctavia(ロードバランサ)は羽ばたいたが、VPNaaSはコアメンバーが誰もいない状態になり、終わってしまった。VPNという大事な機能ですら、消滅の危機にひんしてしまうことがある」(市原氏)
逆に、ある日、誰も知らない人がいきなりパッチを投げてきても、プロジェクトの方向性やコア機能への影響を考慮しない内容だと、コミュニティー側が戸惑うことになる。
継続的にコミュニティーに参加し、活動することで「コミュニティーの信頼を得て、提案やパッチを通しやすくすることも大事。そして何より、プロジェクト自体の成長を止めないために、コミットしていかないといけない」と市原氏は述べた。
Copyright © ITmedia, Inc. All Rights Reserved.