見出し画像

【社員紹介#5】コンピュータが好きなエンジニアからすると楽園のような職場です(クラウド開発エンジニア)

※ この記事は SDPF クラウド開発エンジニア紹介シリーズの1記事です

はじめまして!NTT コミュニケーションズに出向し、プロダクト・サービスエンジニア(具体的にはバックエンドソフトウェアエンジニア)をしております、福岡です。

SDPF クラウドで提供している IaaS である、ベアメタルサーバー / ハイパーバイザー メニューの開発業務に携わっています。

今回は、特に NTT のソフトウェア開発業務に興味があるエンジニアの方たちに向けて、 SDPF クラウド開発の部署の雰囲気や仕事内容を紹介しようと思います。

SDPF クラウドとはなんぞや、という方は先に以下の記事を読んでいただくことをおすすめします。


プロフィール

  • 2021 年入社

  • 情報理工学系研究科修士卒

学生時代はどんなことをやっていましたか?

ソフトウェア業界で「低レイヤ」と呼ばれる領域(= ハードウェアや OS に近い領域)の研究室に所属して、スーパーコンピュータの使いやすさと性能を両立するためのシステムソフトウェアの研究をしていました。

修士では、NIC(ネットワークインターフェースカード)のファームウェアの不可解な挙動をパケットキャプチャで解析して論文を執筆しました。

研究の傍ら、研究室のサーバ管理を主導したり、バイトでソフトウェアの高速化のお仕事をしたり、インターンで GPU クラスタの最適化を行ったり、コンピュータに関わる色々なことに手を出していました。

入社のきっかけ、決め手は?

懇談会で社員の方に言われた「普通のエンジニアが触れる下のレイヤーについての知見がエンジニアの大きな武器になる。これまではそれに相当するのが CPU やアセンブリの知識だったが、これからはクラウドの時代。クラウドをただ使えるエンジニアではなく、クラウドを "作れる" エンジニアになってみないか」という言葉に惹かれたためです。

どんなサービスを担当しているんですか?

SDPF クラウドで提供している IaaS の一つである、ベアメタルサーバー / ハイパーバイザーサービスを担当しています。

このサービスは、ざっくりいうと OS インストール済みの物理サーバ(ベアメタルサーバ)をオンデマンドに提供するものです。ユーザーは、物理サーバのスペック、OS の種類などの情報をポータルの画面から指定することで、数十分後に諸々の設定が完了した物理サーバにリモートでアクセスできるようになります。

クラウドサービス、特に IaaS を使ったことがある方は、仮想サーバを提供するサービス(AWS でいう Amazon EC2)に馴染みがあるかもしれないですが、より高性能なものを提供するサービスと思ってもらえれば良いと思います。

具体的な業務内容は?

ソフトウェアを専門とするエンジニアが集まった数人の開発チームに所属して、機能開発や運用改善をスクラムというフレームワークを用いて行なっています。我々のサービスの管理下の物理サーバの数は数千台にもなり、手作業で操作をするには限界があります。これらをソフトウェアの力で自動化することがミッションです。

なお、開発チームの担当する範囲はソフトウェアでなんとかできる部分であり、物理サーバの構築や故障対応等は別のチームが行なっています。開発チームはリモートで働くことが多いですが、他のチームとも密に連携しながら業務を遂行しています。

こんな感じのラックに配置された多数の物理サーバ操作を自動化している

ベアメタルサーバー / ハイパーバイザーサービスには様々な機能がありますが、その中でもメインとなる機能は、物理サーバへの OS 自動インストール機能、および、物理サーバの故障検知機能です。

特に、OS 自動インストール機能の実装は、数十ステップものパイプラインからなる複雑なものであり、各ステップは物理サーバの操作という不安定な作業を含む中、どのステップも失敗が許されません。
インストールのステップが全て成功して最終的にユーザーに価値を提供できるように、日々あれこれと知恵を絞っています。

また、これらの機能は一度作ったら終わりというわけではなく、毎年リリースされる最新の物理サーバおよび OS に追従する必要がありますので、その都度地道に検証を実施してコードの改修を行なっています。

技術スタックでいうと、Ruby(なんと数十万行ほどを全てフルスクラッチで実装!)をはじめとした、Ansible、GitHub Actions、vSphere、ElasticStack などの幅広い技術を扱っています。

ベアメタルサーバサービスの内部アーキテクチャの一部
ベアメタルのつくりかた より抜粋。より詳しい内容が知りたくなった方はスライド全体に目を通してみることをおすすめします。)

どんなところにやりがいを感じますか?

大規模で高い信頼性が求められるシステムの代表例はクラウドだと個人的には思っているのですが、それを国産で開発している企業があるなんてワクワクするし夢があるなあと思います。
我々が提供したクラウド上で、全国津々浦々の様々なシステムが動いていると思うと身が引き締まる気持ちになります。

また、ミッションクリティカルなシステムである以上、それなりの規模の改修を実施する時には、影響を可能な限り洗い出して議論をすることが必須となりますが、ああでもないこうでもないとチームで議論するのが楽しいです。

また、物理を扱うシステムであるがために、想定外の挙動に日々振り回されていますが、それの原因を特定して対処したときの快感は何にも勝るものがあります。

最近取り組んでいることは?

OS のインストールが完了した物理サーバの状態が想定通りになっているかどうかの試験を精密化かつ自動化しよう、という取り組みをしています。

ただソフトウェアが書けるだけでは不十分で、サーバやネットワークについての知識を初めとした総合力が求められるタスクで面白いです。

なかなか自動化しにくい部分もありますが、自動化によってリグレッション試験を簡略化してリリース頻度を上げることによって、最新の OS に素早く追従したり、早急な脆弱性対応を行えるようになることを目指しています。

学生への一言

泥臭い作業が多いので粘り強さが求められる仕事ではありますが、
コンピュータが好きなエンジニアからすると楽園のような職場だと思いますので、是非応募してみてください。

なお、この記事に興味を持った人は、25卒の新卒採用の「ポスト確約型WILLコース」の「27.エンタープライズ向け大規模クラウド/ネットワークサービスを支えるコントローラ開発」にてポストが出ておりますので、奮ってご応募ください。


moreドコモでは、採用チームに聞きたいことを募集しています!
以下のアンケートより気軽にご連絡ください!
▼採用チームに答えてほしい内容アンケートフォーム▼

【問い合わせ先】
NTTドコモ 新卒採用チーム
https://mypage.nttdocomo-fresh.jp/dcm_group25/
マイページのお問い合わせよりご連絡ください。

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!