ホスティング事業部シニアエンジニアリングリードの @linyows です。最近は、Netflixジャンキーをお休みして、子供のために買ったマイクラにハマっています。モンスターたちに村人をゼロにされたので泣きながらブランチマイニングしています。🧟♂️⛏
本記事は、GMOペパボの採用目的でホスティング事業部をご紹介します。これまでの採用目的に関する記事は、#採用目的 に関する記事一覧 から見ることができます。
インターネットを支える
さて、ホスティング事業部は、いわゆるレンタルサーバサービスやドメインのサービスを展開していて、サービス名で言うとロリポップやヘテムル、ムームードメイン、おさいぽを運営しています。今やGMOペパボ(以後、ペパボ)のサービスというと、minneやSUZURIのほうを連想されるかもしれませんが、ロリポップやムームードメインは古く、ペパボ初期に提供し始めたサービスになります。
私たちが運営するサービスは、インターネットの根幹である、ドメインだったりお客様のコンテンツ(Webやメール)だったり、をホストするという業務を行っています。ですので、広大なインターネットではほんの一部ではありますがその一部を支えているという高尚な気持ちで日々お仕事をしています。GMOグループ全体でドメインは国内のシェアが84%がありますし、ホスティングにおいても57%あるので(2021年3月実績)、あながち間違いではないでしょう。
ホスティングのインフラ
私たちは、物理的または仮想的なコンピューティングリソースを、お客様で共有する形で提供しています。さらに、それらのリソース管理やセキュリティの担保などの諸々の運用をお客様に代わって行っています。コンピューティングリソースの仕様や維持を、ホームページやメールのため前提とするならば、お客様は自前でサーバを用意するより、パブリッククラウドを利用するより、安価に利用することができます。お客様のユースケースを限定することで、自由度を引き換えに手軽さと安さを提供できるわけです。このようなシンプルな説明にすると簡単に聞こえますが、ホスティングサービスを実現するためにたくさんの技術が使われています。お客様に提供するホスティングサービスならではのサーバは以下のようなものが挙げられます。
- DNSサーバ
- データベースサーバ
- SSHプロキシ/サーバ
- FTPプロキシ/サーバ
- SMTP/MXサーバ
- POP/IMAPサーバ
- ACMEサーバ
- PHP/Python/Ruby/Perl/Nodejsなどのランタイム
それぞれ、既存のミドルウェアを使う場合もありますが、要求する仕様を満たせない場合はミドルウェアを自作しています。これらのミドルウェア開発や継続的運用をするには、使用するプロトコルに対して深い知識を要します。もちろん、Linuxカーネルやネットワーク、ハードウェアへの理解も必須です。そして、単純に管理するサーバの台数が多いこと(1800台以上)、既出の各サーバなどロールが多岐にわたることはPuppetやChef、Ansibleなどの構成管理ツールなくては運用できません。ネットワーク問題やメモリ問題やパフォーマンス改善など、tcpdump, perf, strace, gdb諸々のツールを駆使して解決します。物理サーバを扱うので、時にはデータセンターでの作業がありますし、監視に関しては、GMOインターネットグループの別なチームが一次受けをしていて、私たちと日々二人三脚で課題と向き合っています。
ホスティングのフロントエンドとバックエンド
私たち事業部の提供するコアなサービスは、先述の通りインフラストラクチャーではありますが、それらをお客様が操作できるようなコンソールサイトであったり、サービス申込みや決済機能であったり、インフラに限らずフロントエンドとバックエンドエンジニアが取り組むべき重要な課題はたくさんあります。
さらに、ホスティングのフロントエンドとバックエンドエンジニアは、利用するお客様に対してコンピューティングリソースの使い方をリードしていく必要があると考えています。例えば、「今モダンなWebサイトはこう作る」「サイトのパフォーマンスを高めるにはこうする」的な提案です。もはや、ホスティングサービスはコモディティ化していて、様々な機能があって当たり前、トラフィックもある程度捌いて当たり前となってきてます。私たちは常にサービスの品質を高める努力を行っていますが、どんなに素晴らしいサービスがあっても、お客様のユースケースを含めて提供しなければ、「このサービスを使いたい!」「使って〇〇を実現したい!」にはなりにくいのです。新たな価値提案というのは、ある意味エンジニアリングとして業界を引っ張っていくようなものです。そのためには、たくさんのアンテナを張り巡らし、最新技術を継続的にキャッチアップしなければなりません。
一例として、過去に以下のような記事で提案しております。
高い専門性をビジネス競争力に
次に、事業部のステータスについてお話ししましょう。私たちが運営するサービスは、提供開始してからとても長い年月が経過しており、正直、システムの半分以上がレガシー環境かもしれません。当然、レガシー環境は継続的に改善してきましたし、レガシー環境を安全にモダンにしていくノウハウはそれなりに蓄積していると思います。しかしながら、ソフトウェア技術が進歩すれば書かれたコードが相対的にレガシー化していくので、要件によっては部分的な改修ではなくアプリケーションをフルスクラッチで開発するなど、いわゆる式年遷宮を実践していたりします。特に今年はロリポップがサービス提供開始20周年を迎えますので、私たちは次の20年を見据え、大きな大きなプロジェクトを開始しています。
実はそのプロジェクト、2019年冬に事業部の組織構造を大きく変えるところからきています。オライリーの「ユニコーン企業のひみつ」で説明される「Spotifyモデル」を私たちを取り巻く環境にうまく適合させ、大胆な意思決定とメンバーの専門性を高める環境を構築しています。新たなチームには、SRE(Site Reliabirty Engineering)文化をメール分野受け継ぐMRE(Messaging Reliabirity Engineering)チームや、会計処理やバッチ処理など内部向けシステムを専門領域としたISR(Internal System Reliability Engineering)チームなどを創設し、事業部や全社、ひいては業界レベルに専門性がスケールできるような構成の組織構造を作っています。
領域ごとのエンジニアリング品質は、Chapterによって担保できるようにしています。Chapterは、関心のある技術トピックを持ち寄って議論したり、技術的に困っていることを相談する場としてWeeklyで開催しています。ある種の社内技術コミュニティなので、コミット量の多い少ないはありますが、キャッチしてない技術情報が自然と集まって相互理解を高められているので、社内で提言している「いるだけで成長できる環境」というコンセプトを実現する一部を担っています。
ホスティングの既成概念を変える
最後は、事業部のこれからの話になります。既に私たちは次の20年のために大きな挑戦をしているとお伝えしました。古くなったシステムを、新しいデザイン、新しいアーキテクチャに置き換えます。また、サービスデザインにおいてゼロベースでどう設計するとお客様の体験を良くできるか、これまでにない新しい価値を創造できるか、を事業部の職種を超えて議論しながら進めています。当然、仮説だけで進めるのはリスクが高いため、ユーザーアンケート、ユーザーインタビュー、ユーザーテストといった検証を行なっています。そうすることで、世の中にはないプロダクトを生み出すことができると私たちは信じています。
一方で、ユーザ目線の大胆なプロダクト設計は、多くの技術的チャレンジをしなければなりません。冒頭に私たちのビジネスは、コンピューティングリソースをうまくシェアすることだと書きました。重要な技術的ポイントは、権限分離やリソースコントロールと運用自動化です。越えるべきハードルが高いからこそ、めちゃくちゃエキサイティングだと私は思っています。ペパボには研究所があり、実際ホスティング領域の課題を九州大学と共同研究していたりします。自分たちのエンジニアリングが学問としても成果になるのは、文明社会においてとても意義のあることではないでしょうか?
このように、私たちの事業部において技術的な学びがなくなるというのは、無いといっても過言ではないでしょう。常に技術をキャッチアップし続け、課題に対して持ち得る技術で改善していく、というのが仲間のエンジニアに求めることです。技術的好奇心が強い人は、すごくマッチするでしょう。
とは言え、あれもこれもは実現不可能です。やるべきことにフォーカスするために、以下の技術方針や原則を定めています。
- 開発言語はフロントエンドはTypeScript、バックエンドやミドルウェアはGoを使う
- 設計はテスト容易性重視しニュージャージー・スタイル
- キャリアはスペシャリストエンジニアとフルサイクルデベロッパー
これらの詳細については、カジュアル面談でご説明します。ホスティング事業部に興味を持っていただけたなら気軽におしゃべりしましょう。TwitterのDMでお気軽にお声がけ下さい!一緒に新しいホスティングを作っていく仲間を待っています!
募集している職種
ホスティング事業部では以下の職種を募集しております! 💁♀️
他の事業部などは、全募集一覧をご覧ください。