linotice

linotice

2021.05.26

ヤフーの開発者たちを支える重要なクラウドサービス「Private PaaS」チームでインターン生が学んだこと

画像
ヤフーの2020年度新卒予定者向けインターンシップは、エンジニア志望者向けのものだけで33のコースを用意。今年はコロナ禍の状況を鑑みて、すべてのインターンシップを完全オンラインで実施しました。今回は「Private PaaS(Platform as a Service)コース」の開発チームでメンターを担当した3名に、オンラインならではの工夫やインターン生たちの成長、活躍の様子について語ってもらいました。

プロフィール


水落 啓太(みずおち けいた)
システム統括本部クラウドプラットフォーム本部技術2部
2015年新卒入社。広告サービスの開発を経て、2017年よりPrivate PaaSの開発・運用を担当。インターンシップの企画およびメンターを担当。
吉田 幸平(よしだ こうへい)
システム統括本部クラウドプラットフォーム本部技術2部
2013年新卒入社。Yahoo!地図、Yahoo!求人などのサービス開発・運用を経て、2017年からPrivate PaaSの開発・運用を担当。2020年よりPrivate PaaSチームリーダー。インターンシップの企画およびメンターを担当。
團 皆人(だん みなと)
システム統括本部クラウドプラットフォーム本部技術2部
2020年に新卒入社。Private PaaS の開発・運用を担当。2020年夏インターンシップでは、OJTとしてインターンシップ参加者と同じチームで働いた。
干場未来子
ピープル・デベロップメント統括本部 コーポレートPD本部
マーケティングソリューション事業で営業、エデュケーション、プロダクトマーケティング担当などを経て、2016年に人事へ異動し、採用ブランディングを担当。

10万のコンテナが常に稼働。ヤフーのサービスを支えるプラットフォームの開発、運用に必要な技術とは

本日は「Private PaaS(Platform as a Service)」のインターンシップについて、現場で運営を担当いただいたお三方にいろいろとお話を聞かせていただければと思います!  ヤフーのサービス基盤を作るクラウドプラットフォーム本部のなかでも、Private PaaSチームは3名のインターン生を受け入れました。まずは、ヤフーのPrivate PaaSの役割について教えてください。

ヤフーでは、社内のエンジニアが効率的にヤフーのサービスを開発するためにプライベートクラウド環境を構築・運用しています。
Private PaaSはヤフーのプライベートクラウド環境を支えるプラットフォームの一つで、特に、エンジニアが実装したアプリケーションを素早く公開することに特化したプラットフォームです。多くのヤフーサービスは、多数のアプリケーションが協調して動いていますが、Private PaaSはこれらのアプリケーションの稼働を支えています。
現在では稼働コンテナ数が10万を超え、プライベートなPaaS環境としては世界有数の規模となっています。

みなさんはこのPaaSを構築するエンジニアですが、Private PaaSを構築するうえで重要な技術や知識やツール、あるいはその経験とはどのようなものですか。

技術知見としては、SRE(Site Reliability Engineering)が挙げられます。もしプラットフォームに障害が発生すると、それがたちどころにサービスに影響します。プラットフォームを便利にかつ安定して使えるようにするため、信頼性と利便性の二つの観点で必要な技術がいろいろあります。
まず必要なのが、信頼性・安定性を向上させるためのモニタリングですね。プラットフォーム上のユーザー(社内エンジニア)が作ったアプリケーションが動かなくなってしまったとき、まずわれわれがそれに気づき、すぐに対応をしなくてはならない。
さらに、運用状態の可視化や、リソースの拡張を自動的に行う技術も重要になります。

Private PaaSを構築・運用するときに大切なのは、いかに限られた人員で、拡大し続けるトラフィックやシステム規模を安定して支え続けるかです。
例えば、現状ではコンテナ数が10万ですが、将来的に倍の20万コンテナに増えたからといって倍の人員がアサインされるとは限りません。
したがって、自動化を中心に、人が必要な作業を減らし続けていくことが欠かせません。自動化には開発作業が必要なので、社内では「運用チーム」と呼ばれることが多いですが、実は「開発チーム」の要素も強いといえます。

▲システム統括本部クラウドプラットフォーム本部技術2部 水落啓太

たくさんアプリケーションを立ち上げ、コンテナを自動的に作ってシステムを運用するためには、われわれの運用作業自体を自動化する必要があります。簡単にいうと、ユーザーも運用しているわれわれもともに働きやすくするために、ツールを開発するということですね。

モニタリングや監視というと、万一障害が発生すると夜中でも対処しなければならない大変なイメージがありますが、そのあたりはいかがですか?

多くの軽微な障害は、システムに実装している自動回復機能によって修復されるため深夜帯での対応頻度はそれほど高くありません。
また自動回復が無効となるような重大な障害はソフトウエアアップデート作業によって生じることが多いのですが、これを営業時間帯のみに実施することによって深夜帯での障害発生確率を軽減させています。
しかし、それでも対応が必要となる障害は、当番となったチームメンバーが対応していますね。

本番環境で動いているサービスに障害が発生した場合は、もちろんすみやかに対応しなければなりません。しかし、それ以外の環境での障害、つまり比較的影響が小さい障害については日中の対応とするなど、方針をしっかりと決めてできるだけ担当者の負荷が低くなるようにしています。

選考で重視したポイントはずばり、「どれだけ○○を持っているか」

まさに縁の下でヤフーのサービス開発を支え続けているみなさんの担当部門には、毎年たくさんの新卒が配属になります。そこで、学生にリアルな仕事を体験してもらうため、2020年の夏もインターンシップを実施しましたが、インターンシップの選考で重視したポイントについて聞かせてください。

一つは、ご本人が将来的にどう成長したいと考えているか。もう一つは、私たちのチームはクラウドを使うため、クラウドサービスを支える技術にどれだけ興味を持っているかという観点で選考させていただきました。具体的には、監視・可視化などのネットワーク周りの技術や、自動化などの開発技術への関心ですね。

▲システム統括本部クラウドプラットフォーム本部技術2部 吉田幸平

スマホアプリの分野やウェブアプリケーション分野に比べると、クラウド分野は掴みどころがないところがあり、志望者数はそれほど多くはないかもしれません。しかし、クラウド分野は、仮想化技術やネットワーク技術など低レイヤー寄りな技術に支えられていて、好きな人はすごく好きだと思います。仮想化技術などに関心を持つ方は一定数いて、このような方はハイスキルな傾向がある印象です。
インターンシップの募集では「Docker/Kubenetes等コンテナ技術の利用経験」「Prometheus/Grafana等を用いたデータ可視化の経験」というように、使っている技術用語を含め、応募を検討している方が自分に向いているかどうか分かりやすいように工夫しました。

PaaSは、インフラとアプリケーションのちょうど中間のような立ち位置なので、両方に興味がある人にとっては面白い技術領域だと思います。プラットフォーム分野のインターンシップに応募いただく方は、インターネット技術への興味が広いという傾向がありますね。

スキルの習熟度はインターンシップの応募者により異なっていました。昨年のインターン生のなかでも、アルバイト先で業務としてKubernetesを使いこなしているといった方も、まだ学びはじめたばかりという方もいました。
ただし、選考で重視したのはスキルレベルというよりも、それらの技術やヤフーでの応用にどれだけ興味を持っているかということでした。
参加いただいたインターン生からも「クラウド技術の知識はあるけど、ヤフーのような企業でそれが日々どのように使われているのかを見てみたい」という声がありました。

いきなりアジャイルチームに放り込まれ、スプリントをこなした

2020年夏のインターン参加者3名は、3チームに一人ずつ配属され、日常の業務とほぼ同じ仕事を任されたと聞いています。

2019年度もインターンシップを実施しましたが、このときはインターン生にテーマを提示し、参加者の方同士で集合してその課題を解いてもらうスタイルでした。2020年度は、そうした「箱庭的」な内容よりも、実際の業務案件を経験していただこうと考えました。
泥臭い部分もあるのですが、実戦的な業務にこそ、インターン生にとって得られるものが多いと考えました。またPrivate PaaSチームの業務に当事者として関わることでヤフーでの仕事のイメージをより鮮明に持ってもらえると思ったのです。
業務内容は、私たち社員が行う予定のタスクリストからインターンシップ生の適性に合ったものを選択していますが、簡単ではなかったはずです。

私がまさにその2019年度のインターンシップに参加してヤフーに入社した一人です。2020年夏インターンシップの期間、自分はOJTとして同じチームで働いていたのですが、インターン生に体験してもらったコース内容が、社員が行っている業務と変わらない内容だったのでちょっと驚きでしたね。

2日目まではPaaSチームで働くための基礎知識を共有し、3日目からはスクラムチームに合流し、二つのスプリントを体験していただきました。それぞれのスプリントの最終日には成果発表会を行ったのですが、これはインターン生のためだけの発表ではなく、いわゆるスプリントレビューと呼ばれる成果物のレビュー会として、社員による成果物発表と並んで発表いただきました。

いきなりスクラムに放り込まれて、アジャイル開発の洗礼を受けたというわけですね(笑)。

そうですね(汗)、もちろんメンターによるサポートはあるのですが。
インターンシップ生はどの方にも頑張っていただき、軽々と余裕でこなしていた人、自分のスキルとちょうどバランスが取れていた人、苦労していた人、と三者三様に見えました。 ただし、スクラム開発の良いところは、成果物の目標量を柔軟に変えられることなので、特に2スプリント目には、余裕のあるインターン生には仕事量を増やす、そうでない人は減らすというように適切な業務負荷になるように調整しました。

インターン生のタイムスケジュールのなかに、「全社朝礼に参加する」というプログラムもありましたね。

たまたまインターシップ期間中に、全社朝礼(※月に1度、事業を推進するうえで重要な情報を全社員で共有することを目的に、役員陣が登壇する社内イベント)があったので、社長である川邊さんの話などをみんなで一緒に聞きました。これも社員全員オンラインでの参加ですね。
ただ、いきなり役員の話を聞いても内容を掴みづらいと思うので「ヤフーはこうやって収益を上げようとしているんだよ」「いま社長が話していることは、PaaSと関わりがあるよ」など適宜補足を加えていました。

「メンターがみんな優しかった」って本当?

團さんは前回(2019年度)のインターンシップに参加したことが、ヤフー入社の強い動機になったそうですが、いまPrivate PaaSチームで仕事をしていて、入社前後でヤフーのイメージが変わったことはありますか。

私がヤフー入社を志した理由は、インターンシップを通して、Private PaaSという分野と、ヤフーの働き方に魅かれたからです。インターンシップ中はあくまでも仮想的なアジャイル開発での体験だったものの、スクラムを組んで仕事をすることの面白さを感じました。 実際、その働き方はオフラインとオンラインという違いはあるものの、想像通りでしたね。インターンのときとのギャップは特にありませんでした。ただ、PaaSの運用開発については、当時よりPaaSチームもどんどん進化していて、チームの成熟度も上がっていると聞いています。よりSREっぽくなっているというか、モダンになっているというか。いずれにしても、インターンシップからのイメージと変わりなく、とても楽しく働いています。

▲システム統括本部クラウドプラットフォーム本部技術2部 團皆人

團さんが2019年に感じたことを、2020年度のインターン生たちも感じることができていたらうれしいですね。

インターンシップ終了後にアンケートに回答いただいたのですが、幸いにも好評だったようです。「インターンシップを通して、ヤフーへの志望度が増した」という声もたくさんいただきました。

「チームのみなさんが優しかった」「メンターの技術力が高かった」「1on1ミーティングで悩みを親身に聞いてもらえた」というような回答が並んでいますね。ちなみに、どんな悩みを聞いたのですか?

私が担当したインターン生とは、技術の話が中心でしたが、それに限らず「人が仕事をするってどういうことだろう」など大きな話や、ヤフーの裏話などざっくばらんに話していました。

「メンターが優しかった」という感想がありましたが、実際、このチームは優しい人が多いんですよ。どこのチームでもそうですけど、例えば声を荒らげる人なんて当然いません(笑)。「みんなで協力していこう」という雰囲気です。逆に優しすぎるのではないかというぐらいです(笑)。

オンライン前提のワークスタイルをインターンシップで先取り!

2020年夏のインターンシップはすべてオンラインで実施しましたが、オンライン化するにあたって何か工夫したことはありますか。

SlackとZoomでチャンネルを作って、インターン生やメンターたちが気軽にコミュニケーションできる環境を作ったり、なるべくインターン生にこまめに声をかけたりするようにしていましたね。
ほかにも、Zoom画面を社員と共有してのペアワークも積極的に実施しました。作業ミス防止はもちろん、開発に関する知識をインターン生にリアルタイムに伝えられるので、やって良かったと思います。

Zoomではなるべくビデオをオンにして、顔を出すようにしましたね。通常の業務ではビデオを切って音声だけでやりとりすることもあるのですが、顔を出すことでインターン生に「この人はこういう人なんだ」と安心してもらえると思ったので。

とはいえ、最終日ではオンライン懇親会でしたが、オフィスを見学したかったという声が多かったです。私は普段オフィスに出社していないのですが、たまたま懇親会の日に社用で出社していたので、ほんの少しですがZoomでオフィスを紹介することができました。

次回のインターンシップのテーマは、「他部署とのコラボ」!?

さて、本年度(2021年度)も各部署でさまざまなインターンシップを実施する予定ですが、新たに考えていることがあれば聞かせてください。

2020年のインターン生から要望があったことでもありますが、PaaSチーム以外のエンジニア、例えば、Private PaaSのようなプラットフォームでなくヤフー利用者向けのサービスの開発者との交流の機会を作りたいですね。
例えば、ヤフオク!を開発するエンジニアたちは、ヤフー利用者向けサービスの開発者であるだけでなく、Private PaaSの利用者でもあります。
インターン生がもし彼らと接することができれば、PaaSチームの仕事を利用者の視点からも理解できますし、またPaaSチームとは異なるエンジニアチームの文化を知ることもできるでしょう。

運用側の仕事だけを見ていても、なかなかイメージがつきにくいこともありますからね。利用者側の人と話すことで、インターン生にとっても成長のきっかけになると思います。

私も同じことを考えていました。ぜひ他チームとのコラボレーションを通じて、「実際のサービスでこんな風に生かされているんだ」と感じてほしいですね。

最後に、ヤフーのエンジニアとしてPrivate PaaSに関わる醍醐味を教えてください。

ソフトウエアエンジニアの仕事には、大きく開発と運用がありますが、Private PaaSチームではその両方に深く関わることができます。
両方の素養をバランス良く身につけつつ、PaaS本体やPaaS利用者の抱える課題を解決していくという難しさがあります。
しかし、だからこそ面白く、エンジニアとしてのスキルと課題解決力を養える環境だと思います。

膨大なトラフィック量を扱うための技術に携われる点でしょうか。困難な課題ばかりですが、個々人の技術力やチームワークで解決していくことが楽しいです。

ヤフーのPrivate PaaSはまだ完成形ではなく、まさにいまもアップデートをしている最中のプラットフォームなので、開発・運用の両面でいろいろな経験ができます。これが最大の醍醐味だと思います。ヤフーを支える意義の大きい仕事ですので、興味がある人はぜひ応募してもらえるとうれしいですね。

本日は貴重なお話をありがとうございました。これを参考に、今夏もより良いインターンシップを企画したいと思います!

この記事を読んでヤフーのインターンシップに興味を持っていただいた方は、ぜひ下記より詳細をご確認ください。


採用情報 公式SNSアカウント

このページの先頭へ