CloudNative Days Tokyo 2019:K8sコントリビューターになるために必要なことは?

2019年10月15日(火)
松下 康之 - Yasuyuki Matsushita
Kubernetesのアップストリームトレーニングのメンター6名にインタビュー。オンボーディングを支援する仕組みとは?

CloudNative Days Tokyo 2019では、セッション以外にKubernetesのコントリビューターになるためのアップストリームトレーニングが開催された。これはNECと日立のエンジニアがメンター役としてKubeConで行われているアップストリームトレーニングのマテリアルを使って行われたもので、Kubernetesコミュニティの一員としてソフトウェア開発に参加するための一通りのプロセスを体験するというものだ。

オープンソースソフトウェアのコミュニティは、LinuxやKubernetes以外にも膨大な数のコミュニティが存在するが、各コミュニティ独自の作法やプロセス、ルールなどが存在する。特に大規模なオープンソースソフトウェアになればなるほどコミュニティも大きく、その中でどうやってバグを直すパッチや仕様のリクエストを送れば良いのかは、実際にカラダで覚えるしかないというのが当たり前だった。しかし、OpenStack FoundationがOpenStackのアップストリームトレーニングを始めたことで、より体系的にコミュニティへの参加が可能になった。そしてそれをKubernetesにも応用したのが、Kubernetesのアップストリームトレーニングだ。

2019年7月24日の午後一杯を使って行われたトレーニングには、満席の24名の参加者に対して6名のメンターが対応し、イントロダクションからハンズオンまで、Kubernetesでのコミュニティ活動を網羅するものとなった。今回はそのメンター役を務めた6名のエンジニアに、座談会方式でインタビューを行った。参加していただいたのは、木村将希氏(日立製作所)、伊藤慎吾氏、豊田康平氏、武藤周氏、稲生章人氏(4名はNECソリューションイノベータ所属)、大道憲一氏(NEC Enterprise Communication Technologies)の6名だ。それぞれパーシステントストレージ、テスティング、ダッシュボードなどのSIGにおいて、コントリビューションを行っているエンジニアである。

左から木村氏、伊藤氏、大道氏

左から木村氏、伊藤氏、大道氏

皆さんはKubernetesのコントリビューターということで今回のトレーニングを企画し、実施したわけですが、どんな感じでしたか?

大道:まず驚いたのが、参加者さんたちのレベルが想定よりも高かったことですよね。なので、ハンズオンでもどんどんと進んでいって、あまりトラブルはありませんでした。

木村:そうですね。特にハンズオンは皆さんとっても順調で、質問も来ないので、思ったよりもメンターがラクだったと。講師2名とメンター4名でそれぞれが6名担当という想定だったのですが、何もすることがないっていう。

豊田:それよりもトレーニング当日の朝に「このパートを担当して」って大道さんに振られたのがちょっと(笑)。

え?講師が大道さんと木村さんだったのに、他の皆さんも「このパートは喋って」と振られちゃったということですか?それも当日の朝に?それはなぜ?

大道:いや、皆さんは使う資料にも目を通してもらっていますし、お願いしたらできるかなと思いまして。それにKubernetesはスケールすることがウリのプラットフォームなので、講師役もスケールしたほうが良いかなと(笑)。

当日の朝に(笑)

大道:そうですね。せっかくなのでやってもらおうと。トレーニングのマテリアルは、KubeConのコントリビューターワークショップのものを使っているので、KubeConでワークショップに参加するのと同じ体験を日本語でできるというのが良かったと思います。

稲生:実際にリポジトリに対してPull Requestを送るというのを体験してもらえたのが良かったと思いますね。それってなかなか体験できないので。

木村:今回は別のディレクトリーを用意して、そこに対してPull Requestを送るってことにしたんですけど、ハンズオンのPull Requestを受けた参加者の中から「ここで実際にやっていいんですか?」という質問があったというのが印象的でしたね。Kubernetesの本体に対して操作するみたいに思えたということでしょうから。

武藤:もう一つは参加者がみな若いエンジニアと言う感じで、GitHubのアカウントも持っているし、Gitの操作も知っている、Linuxのコマンドも普段から使っているという人が多かったからかなと思いましたね。

左から豊田氏、武藤氏、稲生氏

左から豊田氏、武藤氏、稲生氏

今回のマテリアルはどなたが作ったものですか?

大道:これはKubernetesにContributor Experience、略称SIG-ContribXというSIGがありまして。これはコントリビューターがより生産的になるためのサポートをするSIGなのですが、そこで作っています。そのSIGに今回のカンファレンスでアップストリームトレーニングをやりたいんだけどって持ちかけたら、「ぜひトレーニングをやってくれ。日本からのコントリビューターを増やしたいんだ」ということで始まったのです。

Kubernetes自体のコントリビューターの中で、日本のエンジニアというのはどのくらいいるんですかね? それをもっと増やしたいということなんだと思いますけど。

稲生:一つ前のリリースの時に調べた感じだと、GitHubにPull Requestを送っているエンジニアで、Japanと明記している人は37名くらいでしたね。

CNCFは、KubernetesのLinuxに次ぐコミュニティの大きさと活動の活発さを常にアピールしていますけど、日本からももっとコントリビューターが出てきて欲しいと思っているということですね。

大道:今回はNECがメインで講師役を勤めましたけど、実際にこういう形で複数の企業からメンターが出てきてくれると良いと思うんですよね。私は北米にいるので、なかなか日本国内のイベントやMeetupには参加できないので。次回は他のメンバーの参加をお待ちしています。

そういう意味では、こういう大きなカンファレンスではなく、草の根のMeetupなどでこのアップストリームトレーニングのエッセンスだけでもやるというのが良いのかもしれませんね。

稲生:実際に私は、国内でDocker MeetupとかKubernetes Meetupにも参加したことがあるんですが、あそこに来る人達って、まずは使う人、なんですよね。KubernetesにしろDockerにしろ、まずは自分たちが使う側となって、それから必要に迫られてソースコードを読んでみたり、バグの原因調査をしたりする、みたいな。

武藤:実際に他のもっと規模の小さなオープンソースソフトウェアにコントリビューターとして関わってきた経験からすると、使うだけでもやっぱり何かあればソース読んじゃいますよね、そして必要であればパッチ書いちゃいますよね、なのでそれをそことで止めないで、Pull Requestとして送るだけで良いんですけどね。

実際にGitHubなどでそういうことをやろうとする時に、英語っていうのは大きなハードルなのでしょうか?

豊田:そうだと思います。私も1年くらい前からコントリビューションしてますけど、Pull Request送ってコメントをもらいますが、そのコメントの意味が半分くらい分からないなんてこともありました(笑)。なんかやたらとItとかThatとかが多くて(苦笑)。

木村:そうですよね。あと意味不明な略語、例えばLGTMなんて書かれても分からない(笑)。これはLooking Good To Me(これで良いよ)の意味なんですけど。まあ分かってくると、自分でもつい使っちゃいますけど。

大道:これはちょっと気を付けていることなんですけど、たとえ社内のエンジニアとGitHub上でコミュニケーションする場合でも、それを外部の人と同じやり方で会話する、というのが重要なのかなと。というか、逆に社内の時と同じようにコミュニケーションしたら危ないです。社内とか社外とかの垣根なしに、同じように会話するというのが大事ですよね。

武藤:会話に関して言えば、英語でコメントとかを書く時に丁寧に書いたほうが良いのか、フランクに書いたりしても良いのか、分からないんですよね。なので、そういうのはフィードバックがあれば良いのかもしれない。

伊藤:そういうのはAIでやってくれると良いかもですね。

今回のトレーニングをやってみての総評を聞かせてください。

豊田:私は最初にPull Request送る時にもうドキドキで、「ホントにここで良いのかな? コレをクリックしたら良いのかな?」なんて感じで、手探り状態でやってきたという経験があります。だから、今回のようなトレーニングがあったらそんなドキドキは必要なくなるし、本当に助かると思うんですよね。なので、やって良かったと思います。

大道:やってみた結果、これで多くのエンジニアがニューコントリビューターとして参加してくれると良いなと思います。あと、これは実質的に困ったという話がありまして、日立の木村さんってコミュニティの中では信頼されていて実績もあるのに、ずっとニューコントリビューターっていうレベルのままだったんですよ。実際にはその上に、メンバー、レビューワー、アプルーバー、オーナーというようにレベル分けがされているんですけど、ニューコントリビューターのままだとレビューとかのアサインができないんです。木村さんにこれは見てもらいたいのに、ニューコントリビューターだとそれができない。そこで、お願いしてメンバーになってもらいました。

木村:そうですね。私も別にこのままニューコントリビューターでも良いかなと思っていましたけど、大道さんにそう言われて、メンバーに昇格しました。

大道:で、豊田さんが最初のPull Requestでドキドキだったっていう話にも通じるんですけど、メンバーになるためには社外の人2名から推薦をもらわないといけないんですよ。そのお願いをするメッセージを送る時に私は最高にドキドキしましたね。そういうのを誰かにお願いするっていうのが、謙虚な日本人には不得意っていうか。

そういうのも含めていろいろな場面で経験を共有してくれれば後から続く人がやりやすくなる、という意味ですね。今日はどうもありがとうございました。

CNCFはエコシステムを非常に重視する組織で、ソースコードを書くデベロッパーだけが尊重されるわけでもなく、ドキュメントを書く人もコミュニティのイベントを実施する人も同様に重要なコミュニティの一員であるという。しかしやはり実際にコードやパッチをコントリビュートして、レビューを回し、実際のリリースを作り上げていることによってエコシステムも拡がるわけだ。

今回のアップストリームトレーニングのように、慣れないエンジニアを支援する仕組みが他のオープンソースプロジェクトにも拡がって欲しいと切に願う。

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

連載バックナンバー

クラウドイベント
第6回

写真で見るCloudNative Days Tokyo 2019

2019/10/28
CloudNative DaysTokyo2019の展示ブースと初日のパーティを紹介。活気に満ちた雰囲気を感じて欲しい。
クラウドイベント
第5回

CloudNative Days Tokyo 2019:あえてK8sを選ばなかったSoftBankペイメント

2019/10/21
CNDT2019でSoftBankペイメントが事例を公開。Kubernetesではなく、あえてPaaSを選んだ理由とは?
クラウドイベント
第4回

CloudNative Days Tokyo 2019:K8sコントリビューターになるために必要なことは?

2019/10/15
Kubernetesのアップストリームトレーニングのメンター6名にインタビュー。オンボーディングを支援する仕組みとは?

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

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

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

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