CloudNative Days Tokyo 2019:K8sコントリビューターになるために必要なことは?
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はエコシステムを非常に重視する組織で、ソースコードを書くデベロッパーだけが尊重されるわけでもなく、ドキュメントを書く人もコミュニティのイベントを実施する人も同様に重要なコミュニティの一員であるという。しかしやはり実際にコードやパッチをコントリビュートして、レビューを回し、実際のリリースを作り上げていることによってエコシステムも拡がるわけだ。
今回のアップストリームトレーニングのように、慣れないエンジニアを支援する仕組みが他のオープンソースプロジェクトにも拡がって欲しいと切に願う。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Cloud Native Community Japanキックオフミートアップ レポート
- EdgeX Foundryを推すNECの担当者に訊いた「忍者」的なシステムとは?
- Open Infrastructure Summitで日本人コントリビュータ座談会を実施。今回のカンファレンスの見どころは?
- OpenStackのエコシステムを拡げるUpstream Trainingとは? CAのインフラエンジニアに訊いた
- オープンソース開発プロジェクトの参加者になるワークショップ「OSS Gate」
- LinuxCon ChinaでMicrosoftのエンジニアが説くオープンソースプロジェクト成功のポイントとは?
- JOSUG、OpenStack開発コミュニティ貢献を学ぶ「Upstream Training」「クラウドインテグレーション体験ラウンジ」を実施
- 日立のOSSコントリビュータに訊いた組織のあり方と失敗談
- KubeCon+CloudNativeCon EU 2022、3日間のキーノートを総括
- 今からでも遅くない! Kubernetesを最速で学ぶための学習法とは