【レッドハット社員インタビューvol.7】OpenStackコントリビューター対談企画。レッドハットで働くとは・・・?社員のインタビューを通じて、様々な角度からレッドハットについてお伝えしていきます!
こんにちは、レッドハット採用担当です。今回はいつもと趣を変えて、ざっくばらんなグループインタビュー形式でお送りいたします!
題して、OpenStackコントリビューター大集合!
レッドハットはOSS(Open Source Software)の会社ということで、今回はOSSのコントリビューター と呼ばれる人たちを集めてみました!
コントリビューターとは、OSSの開発に貢献している人のことです。(問題を報告する、バグレポートを送る、コードを修正する、ドキュメントを書いたり翻訳する、開発コミュニティを企画して運営する、OSSの素晴らしさを伝える、など貢献の形は様々です)
OSS・・・?貢献・・・?という方はこちらをどうぞ https://www.redhat.com/ja/about/open-source
前置きが長くなりましたが、そんな中でも特に今回はOpenStackというOSSに関わるメンバーを集めました。内容盛りだくさんなので前編・後編の2部構成でお送りします!
まずはじめにご登場いただいたメンバーたちをご紹介しましょう。
メンバー 紹介
趣味がかなり濃いめの方がいらっしゃいます。笑
ということで最初のお題。集められたからにはもちろん最初にこれを教えて欲しい。
みなさんはOpenStackのどんな事にコントリビュートしてきましたか??
Tさん:ベアメタルデプロイの共同検証をサーバーベンダーと行った時にOpenStack InstallerのPackStackに不具合を見つけ、アップストリームにおけるIronicテンプレートの不具合修正をしました。また、OpenStackで推奨となっているスナップショット支援ツール fsfreeze コマンドを開発しました。仮想マシン上におけるGPGPU処理のために、Red Hat OpenStack Platformの製品ドキュメントに対してGPUの利用方法について追記するなど貢献しました。
※アップストリームとはOSSの開発における源流となるコミュニティのことです
Hさん:OpenStackを使ってNFVを実現するためにLinux Foundationが主催するOPNFVというプロジェクト(apex,barometer,dovetail)で拡張や修正、またコミュニティ内での議論を行なっています。またOpenStack自身のいくつかのプロジェクトについても修正の提案・レビューを行なっています(tripleo-*,puppet-*等)。
Sさん:ユーザコミュニティでの活動としては、前職時代に日本OpenStackユーザ会のボードメンバーとして、定期開催している勉強会の企画・運営・会場の手配などを主に担当していました。ファウンデーションの公式イベントとなっているOpenStackDays Tokyoでは第1回から事務局メンバーとして全てのセッションの撮影を担当しています。開発コミュニティでは、OpenStackのクライアントライブラリ(Shadeやpython-*clientなど)の不具合修正やAnsibleのOpenStackモジュールやAWXのOpenStackインベントリソースの不具合修正を少々。
Nさん:サポートエンジニアとして担当するお客様から報告のあった内容で、アップストリームでも発生する問題について、tripleo-heat-templates, horizon, puppet-nova, puppet-tripleo 等で、修正を提案しマージされました。
Iさん:これまで構築や運用に携わってきたシステムの規模が大きかった事と組織のフットワークが軽かったので、踏める落とし穴は積極的に踏んできたつもりです。そして踏んだ結果からバグ修正とナレッジの蓄積、広報を行いました。コミュニティで活動すると、出したナレッジが違う視点で意見が出たり、新たな気づきが起きますよね。そのネタを使って他社を巻き込んでいくというスタイルで活動してきました。そういった意味でOpenStackコミュニティでは自ら情報を作る事と、会社と会社の境界を越えたハブとしての両方の機能を担ってきました。
Jさん:自分もNさんと同じで、お客様から報告された不具合や機能追加要望について、アップストリームでの修正を行っています。修正の難易度が高いものは米国のエンジニアに依頼する場合もありますが、簡単な内容であれば、自分で修正を提案しています。修正するプロジェクトは、インストーラ関係(TripleO、puppet)が多くはありますが、割と幅広く対応するようにしていますね。
・・・なんかすごい!
とはいえ冒頭からかなりつっこんだ内容になってしまいました・・ライトな内容に戻しましょう・・!
皆さんの入社のきっかけや転職の動機を教えてください!
Tさん:私は2010年に入社しましたが、その当時レッドハットでLinux KVMという製品を使ったサーバー仮想化ビジネスの立ち上げをするという話がありました。前職で別の仮想化製品の立ち上げをやっていたこともあり、前職の恩師に誘われてレッドハットに入社しました。
Hさん:私は前職でネットワーク製品の会社で製品開発やサポートをやってきていたのですが、NFVなどネットワーク製品がソフト化されていくトレンドの中で、自分自身もソフトウェアエンジニアとしてより一層この領域にフォーカスしたいと思い応募して入社しました。
Sさん:前職のネットワークサービスベンダーでは16年ほど働いていて、SI、R&D、サービス開発など色々とやっていました。そこでは製品を使う一方だったので、もう少しアップストリームに貢献したい思いがありキャリアを模索をしていました。そんな時にレッドハットでAnsibleのバックエンドエンジニアのポジションがオープンしたと、知り合いに誘ってもらったのがきっかけです。当時、OpenStackのユーザーコミュニティでAnsible関連の検証や開発をしており、アップストリーム側への貢献などもしていたので、このポジションに応募しました。
Nさん:前職の先輩が先にレッドハットで先に働いており、その方の誘いでオープンポジションに応募し入社しました。レッドハット 製品は前職でのインフラ構築において広く扱っており、トラブル時にベンダーに問い合わせることなく自分でコードを確認して、おおよその見当をつけることができる OSS の良さを実感し、OSSに直接貢献できる レッドハットで働いてみたいと思っていました。また、その先輩から日常的に英語を使うという話も聞いており、外資系といえども国際的な仕事をするのが難しかった前職よりは、日々海外とコミュニケーションし物事を進めるような仕事ができることも魅力の一つと考えていました。
Iさん:私の場合は、前職までずっとユーザー企業でベンダー側はレッドハットが初めてなのですが、それまでの仕事で国内最大規模のクラウドインフラの構築運用に携わり、OpenStackについても使い込んでいました。こういった経験を活かしながら、ユーザー側からベンダー側に移り、見る視点を変えて仕事をしてみたいと思ったのが動機のひとつです。私自身はテクノロジーが好きなので、ベンダーの中でも特にテクノロジーを主軸にすることができ、色々な会社を見ていく両方の経験ができるのはレッドハットだと思い入社しました。
Jさん:私もSさんに近くて、アップストリーム側に貢献したいという思いがありました。前職のSIerで、OSSを扱う仕事をしていて、製品の検証や導入関連の仕事をやっていました。その中で感じていたのが、OSSを扱っているものの、SIerの立場だと製品を利用する側であって、ソフトウェアそのものをサポートするわけではないので、自分でコードをコミットしても直接的にはあまり嬉しくなかったり、アップストリームの開発に関わる機会が少ないということでした。
ただ、自分としてはカンファレンスに参加し、アップストリームがどういうものかを間近で見てきたので、アップストリームへの貢献も含めて自分の強みであるインフラの領域にもっとちゃんと取り組みたいと思い応募しました。
2人の方がアップストリームにもっと貢献したい!というモチベーションだったようですが、実際入ってみてどうでしたか?
Sさん:私の場合、アップストリームに貢献したいという想いはあったものの、いざ入ってみるとまだサポートチームの立ち上げの最中で、最初の1年は99%のワークロードがサポート対応の仕事だったような気がします。
今は、60%程度がお客様からあがってきたサポート対応、30%はアップストリームなどのコードコントリビュート、10%はCommunityでのレッドハットとしてのエバンジェリスト活動、くらいの配分になってきています。
現状の仕事はとても満足していますけど、今後はやっぱりもう少しアップストリームへの貢献の割合を増やしていきたいですね。そういった目的に対しても、現在のポジションはとてもやりやすい環境です。明確に困っている人がいて、バグがあって、それを直せばいいだけなので、私の場合はOSSへのコミットの7割はお客様のケースが元となっています。
お客様が抱えている問題を直接扱うテクニカルサポートの部門にいるので、エンタープライズレベルでのユースケースを元にして、Ansibleのような広く利用されているOSSを改善し続けていけるというのが、私の現在のポジションの魅力の1つだと思います。
Jさん:OpenStackなど新興のテクノロジー製品として出てきているものは、ユースケースに合わせて機能を足したくなることが多いし、OSのような成熟した製品と比較してバグも多く見つかるんです。
そんな時に自分で新しいユースケースやバグを見つけ、直せばいい箇所や直し方がわかったとしても、SIerやユーザーのような製品を購入して使う立場だと、自分で直したところで褒められたりするような事ではないので、直接的なモチベーションにはならなかったんですよね。
レッドハットに来てからは、顧客から上がってきたり自分で見つけたバグは自分で直せるし、あったらいいなと思う機能を追加することもできる。時間があれば業務の中で勉強したりコミットをしてもいいという環境も良い点でした。
レッドハットのアカウントで修正を投稿すると、アップストリームにレッドハットの開発者がたくさんいるので、すぐにレビューしてくれたり、パッチを採用してくれるチャンスも高まって、自身のモチベーションも高まるしすごく良いですね。
前職のときは同じことをしても半年くらいレビュアーがつかなくてマージされないこともありました。その点、今では組織票ではないですけど、社内のチャットなどでGlobalのプロジェクトに参画しているメンバーと話して相談とかもできるし、コントリビューター としてはかなり嬉しい環境です。
Hさん:Jさんが言っているように、レッドハットでは業務時間中にOSSの好きなプロジェクトにコントリビュートできるという点がいいですよね。
これは福利厚生として業界で主張して良いレベルだと社内で話がでたことがあるのですが(笑)、技術者としては、OSSというソースコードを見ることができる世界の中で、中身を深く調べることができる環境があったら、自分のやりたいことを実装してみたり、あわよくばアップストリームのコミュニティの中で改善等を提案したいという想いがあると思います。
通常の会社だと実際の業務や自社のビジネスに直接関係ないと歓迎されないですけど、レッドハットはそれを歓迎しているところが素晴らしいなと感じています。
ところで、レッドハットのOpenStackの提供開始は2013年です。Nさんは入社時はOpenStackはまだなかったと思うのですが、その後にOpenStackをやりたくなった理由はなんですか?
Nさん:仕事的にやらざるを得なかったというのが正直なところですね(笑)
私自身、入社3年目での新しいチャレンジとして、Technical Support Engineer(特定の製品 についてサブスクリプションを購入されたお客様の問題に対応するサポートエンジニア) からTechnical Account Manager(特別な契約をいただいているお客様専任のサポートエンジニア )に希望を出してロールチェンジしました。
自分のキャリアのステップとしてこのポジションをやりたかったので、コンポーネントはあまり気にせず、その時ポジションが空いていたOpenStackで挑戦してみたというのが実情です。
実際にやってみると、先ほどJさんが言っていたように、新しい製品だったので、とてもバグが多い状況でした。そういうバギーな状況だったけれども、同時にそこにフロンティアがあったんです。
よちよち歩きのひよこをどこに向かわせるか、みんなで寄ってたかって世話をして、自分たちでOpenStackを育てていくような雰囲気がありました。
対して、長い歴史のある製品で、例えばLinuxカーネルなどになると、仙人みたいな人がいて何でも知っているし、長い歴史の中で「こうあるべき」というものが既に出来上がっていて参加するために必要とされている前提知識などが膨大だったりもするので。
OpenStackに関しては当時、自分でコードを見て、どう変えていけるのか、あるべき姿の議論から携わることができて、やりやすい領域だったという点も魅力でした。
製品を育てていけるというのはエンジニアにとって魅力ですね・・・!製品開発エンジニアとして活躍しているHさんは今どういったプロジェクトに取り組んでいるのでしょうか?
Hさん:今、MultusというKubernetesで使うCNIというネットワークのプラグインのプロジェクトに取り組んでいます。これはもともとは自分の趣味の範囲でスタートしたんですが、それが評価されて今はプロジェクトとなって仕事として取り組ませてもらっています。
今は、Kubernetesのコミュニティでいかに広く使われる製品にしていくかという点で取り組みを進めています。アップストリームのコミュミティの中でも少しずつですが認知されてきつつあるところです。
こうして自分のやっているプロジェクトがOSSのコミュニティの中で成長しているのを見られることは技術者として大きな喜びですね。
また、このプロジェクトのミーティングでは、色々なベンダーやユーザーの人が集まって議論し、協力してプロジェクトを進めているという点がとても面白い所です。
いい意味でも悪い意味でも、色々なカルチャーが混ざりあって仕事を進めていくのは、OSSの開発コミュニティならではじゃないでしょうか。
ありがとうございました!
前編は技術的な点にフォーカスしてお送りしましたが、OSSに貢献するとはどんなことか?どんな人が中で活動しているのか?少しでもご理解いただけていれば嬉しく思います。
次回、後編は技術職の「ワークライフバランス」や「会社のカルチャー」などにも触れていきたいと思います!お楽しみに!!