Yama
2021年4月楽天グループに新卒入社
部署名…トラベル開発部(TDD)
職種…DevOpsエンジニア
出身地…愛知県
趣味…OSS活動,アニメ鑑賞
こんにちは、R-Hack編集部です。機械学習と分子動力学法の研究をされていたYamaさんは、在学中からインターンシップやアルバイトを経験し、2021年4月に新卒で入社されました。DevOpsエンジニアとして1年目にしてプロジェクトリーダーを務め、「楽天トラベル」の深夜メンテナンスなど技術的にも難易度の高い業務をこなしています。
そんなYamaさんに、DevOpsエンジニアとしての業務内容ややりがい、社内環境について伺いました。
ーー自己紹介をお願いします。
皆さん、はじめまして。トラベル開発部(TDD)のエンジニア、Yamaです。機械工学の修士課程を修了後、楽天グループに2021年4月に新卒で入社しました。趣味はOSS活動とアニメ鑑賞で、休日は自宅でゆっくりすることが多いです。
ーー大学院で機械学習と分子動力学法に関する研究をされていたYamaさんが、IT業界に興味を持ったきっかけを教えてください。
大学院で行っていた研究の中でPythonやC言語を使う機会があって、そこからIT業界への興味がわきました。楽天グループのインターンシップに参加したのが入社のきっかけです。在学中に長期のアルバイトもさせていただきました。
ーーエンジニアといっても様々な職種がありますが、DevOpsエンジニアを選択したのはなぜですか?
インフラだけではなく、アプリケーションにも強くなりたいと思いDevOpsエンジニアを選びました。また、アルバイトの際に一緒に仕事をしていた方々はアプリケーションとインフラの両方に精通していました。その方たちが私のロールモデルになりました。
現在はインフラオペレーション自動化のための社内ツール開発や、インフラ構築など、アプリケーションとインフラの両方に携われています。
ーーDevOpsエンジニアとしてどのような点にやりがいを感じますか?
幅広いレイヤーや幅広い技術スタックでの経験を活かして、大規模サービス特有の問題を解決していくことが私たちの強みであり、やりがいだと思います。
私たちの部署が担当しているサービスはどれも非常に大規模であり、楽天スーパーSALEでは通常時の数倍のトラフィックが流れます。システムを安定させたままこれらのトラフィックをさばくことは技術的な難易度が非常に高く、ロードバランサやスイッチといったハードウェアからWebサーバーやデータベースといったミドルウェアまで幅広い知識が要求されます。またサービスが大規模なので、管理しているインスタンス数は数千台規模です。これらを限られた人数で運用していくためには、プログラミング言語やインフラツール(IaC)を効果的に活用していく必要があります。
ーー在学中にアルバイトとして勤務されていたYamaさんですが、入社1年目はどのような業務を行いましたか?
インフラオペレーション自動化のための社内ツールの開発を行いました。私たちの部署は多くの大規模サービスのインフラを担当しているので日々、サーバー構築やミドルウェアのインストールといった多くのリクエストを処理する必要があります。これらを可能な限り自動で処理するために、GUIベースで必要な情報を入力した後に、その情報をもとにTerraformとAnsibleが実行され、手作業無しにインフラオペレーションが完了するという社内ツールを開発しました。
この開発を通してPythonやTypeScriptを使用したアプリケーション開発のスキルが向上し、TerraformやAnsibleといったIaCツールの内部実装にも詳しくなりました。また、このプロジェクトではリーダーを任せて頂けたこともあり、ヒューマンマネジメントのスキルや他部署のステークホルダーとのコミュニケーションスキルもアップしたと感じています。
ーー1年目ですでにプロジェクトリーダーを経験されたとのことですが、2年目ではどのような業務に携わりましたか?
ログ管理システムの構築と運用を行いました。私たちが担当しているサービスは多くのリクエストをさばいており、Webサーバーやアプリケーションから吐き出されるログの数は毎秒数万という膨大な量です。これらを一箇所に集めて一括管理するためのツールがログ管理システムであり、Elasticsearch,Kibana,Logstash Filebeat,Kafkaといったソフトウェアを使用しています。
ーー毎秒数万のログと聞くとシステムのキャパシティが追いつかないのではないかと思いますが、どのように業務を進めたのでしょうか?
私がこのプロジェクトを引き継いだ時は、キャパシティが追いついておらず大規模な刷新が必要でした。そのため、私たちはログ管理システムの再構築を決定し、既存のログ管理システムのボトルネックの洗い出し、アーキテクチャの見直し、サーバー台数とキャパシティの見積もり、費用案の作成を行いました。
様々な検証と挙動の調整を行い、仕様書に記載のない挙動を示した際には、ソースコード自体をGitHub上に見に行って確認することもありました。どこに問題があるのかを洗い出すのと、使っている技術構成を見直すためには、Elasticsearch等の各ソフトウェアの詳細を理解している必要もあります。またプロジェクトに関して、ジェネラルマネージャーからの承諾を頂くために、上長に幾度も相談させて頂きました。このことも、私には非常に貴重な経験でした。
ーー2年間ですでに様々な経験を積まれたYamaさんですが、これまで一番印象的だった業務について教えてください。
2023年1月に行われた「楽天トラベル」の深夜メンテナンスは、とても印象的でした。「楽天トラベル」のインフラ改修のためにメンテナンスが行われたのですが、そこで私はインフラのオペレーションをメインで担当しました。「楽天トラベル」はサービスが1分間止まるだけでも多くのユーザーに影響を与え、経済的な損失に繋がります。そのため、オペレーションをミスなく正確に行い、オペレーションを予定された時間通りに完了させてサービスを再開することが重要です。
また、このメンテナンスで行われるオペレーションは技術的に難易度が高いため、様々な部署の多くのエンジニアの方々と協力してリハーサルを複数回行い、起こりえる問題のリストアップ、オペレーション時間を早めるための改善案の策定などを繰り返しました。結果として予定通りに全てのオペレーションを完了させることができました。オペレーションの技術的難易度や重要性、他部署のエンジニアの方々との協働などこのメンテナンスのことは深く記憶に残っています。
ーーYamaさんのチームは外国籍の方や外国にルーツを持った方が多いとのことですが、コミュニケーションはどのように行っていますか?
コミュニケーションは基本的に英語で行っています。
また、毎日1時間程の定例ミーティングがあるので、困っていることはその時に相談して解決できます。マネージャーとの1on1ミーティングが定期的に設定されているので、キャリアに関する質問などを気軽にできます。
ーー英語でのコミュ二ケーションはすぐに慣れましたか?
配属前は英語でのコミュニケーションに不安がありましたが、実際に配属されてみると次第に慣れてきて、苦ではなくなりました。英語への苦手意識がなくなったことで、Web検索する際には英語の文献を積極的に探すようになりました。また、OSS活動で英語でディスカッションすることもできるようになったので、技術的な観点からも英語に慣れてよかったと感じています。
ーー今後、楽天グループで実現したいことをお聞かせください。
安定的に成長し続けられるサービスを実現したいです。大規模サービスであるため、インフラの規模も大きく、サービスを成長し続けるためには日々多くのオペレーションを行う必要があります。その分、リスクも大きく、仮にサービスに影響を与えるような問題が発生した場合には多くのユーザーに不便を強いることになり、経済的な損失も大きいです。そのため、オペレーションのリスクを限りなく減らし、万が一予期せぬ事態が起こってしまった場合でも短時間で検知できるような技術的・組織的な仕組みを作っていきたいと思っています。そのためには、アプリケーションとインフラの両方の知識が必要です。これらのスキルを引き続き、伸ばしていきたいです。
着実に経験を積まれ、技術力を高めているYamaさんでした。今後もご活躍を楽しみにしています。
私たちと一緒に働きませんか?
トラベル開発部(TDD)では、新たなサービス開発から日々の運用・改善まで、一緒に働く仲間を募集中!エンジニアやプロダクトマネージャーなど、幅広い職種で募集しています。ご応募をお待ちしております。
→ 採用情報はこちら