エンドユーザーが直接触れる機会こそありませんが、インフラ・サーバーサイドの技術はプロダクトの根幹を支えています。特に、多くのユーザーが利用するプロダクトの場合、その影響度は大変大きいものです。
フラーで急成長中の『スマホビジネス共創事業部』。この共創事業部が扱うプロダクトにおいて、インフラ・サーバーサイド開発・管理のほぼすべてを担当する一野瀬さん。
彼のインフラ周りの技術力はフラー内で随一。事業部長や多くのエンジニアから信頼が厚く、共創事業部とフラーのプロダクトを支える中心人物です。
今回は、普段はなかなか聞けないインフラ・サーバーサイド周りの開発業務や技術について彼に話を伺いました。
一野瀬 翔吾(いちのせ しょうご)
プロフィール:1988年10月生まれ、新潟県長岡市出身。長岡工業高等専門学校から長岡技術科学大学へ進学。同大学大学院卒業後の2013年に面白法人カヤックに入社し、サーバーサイドエンジニアとしてソーシャルゲームの運営に携わる。2016年フラー株式会社に入社。現在は共創事業部のインフラ管理を担当。
━━お仕事の内容を教えてください。
フラー共創事業部が開発したプロダクトの、インフラ周りとサーバーサイドの開発・保守運用を行っています。インフラとサーバーサイドではそれぞれ別のエンジニアが開発を行うのが一般的かと思いますが、フラーの共創事業部の場合は、どちらも私が担当しています。
もう少しだけ具体的に説明をすると、インフラ周りであれば、サーバーの調達やミドルウェアの導入などです。どれぐらいの能力・性能で環境を構築するか、設計して実装しています。
また、あるウェブ開発のプロジェクトでは、クラウドサーバーの利用が適さないコンテンツ管理システム(CMS)に対して、クラウドでも動作しやすくなるような基盤システムを開発したりもしました。
サーバーサイドでは、主にAPI開発やフラーのサーバーで保有するデータベースの管理などを行います。細かいところですと、アプリのプッシュ通知を送信するための情報をクライアント側から取得したりもします。
━━フラー入社前からインフラ・サーバーサイドエンジニアとして働かれていた?
そうですね。大学院を卒業した後に新卒として入社した企業で、ゲームアプリの開発に携わっていました。
初めは、開発業務をメインとしながら、お客様からのお問い合わせの二次対応も行なっていました。ご相談内容について、サーバーのログを調査してお客様が不利益を被っていないか事実確認をするという仕事です。
その後は、ゲームアプリ開発に集中して業務にあたっていました。ゲームはプレイした後に記録を残すわけですが、その記録内容が正しいか、サーバーサイド側で確認する仕事なんかです。ゲームキャラクターのパラメータデータやクエストの内容をディレクターから受け取り、サーバーからクライアント側にデータを整形して渡すこともしていました。また、ゲームの結果についてサーバー側でも計算を行い、クライアント側とすり合わせを行ったりもしていましたね。
━━フラーに入社された経緯や理由は?
フラーの創業者である同級生2名が何度も温かく声をかけてくれていたので、最終的にそれが理由で入社を決めましたね。
私は長岡工業高等専門学校(長岡高専)に通っていました。そのときの同級生が、フラーのCEO渋谷とCCO櫻井だったんです。高専卒業後に進学した大学院に在学していた頃からずっと、二人にはフラーで一緒に働きたいと誘ってもらっていました。二度、三度、いやそれ以上、声をかけてもらっていたと思います。しかし、なかなか「Yes」と答えることができませんでした。
転機は、大学院を卒業し、社会人として働いていたあるときに、高専カンファレンスに参加したことです。高専カンファレンスとは、高等専門学校(高専)および高専生をテーマとする、勉強会をはじめとした各種コミュニティ活動のことです。
私が参加したそのイベントにフラーCTOの藤原が登壇していたように記憶しています。藤原以外にも櫻井や、フラーへジョインしていた他の高専時代の同級生も参加していました。
そのときに、改めてみんなにフラーへ誘ってもらって……。こんなに声をかけてくれる、なんてありがたいんだろう━━そう感じたときに、自然と転職しようかなと思いました。
実は、他にも転職を決めた理由はあります。渋谷と櫻井から、「イッチー(私の高専時代のニックネーム)のプログラミング技術が凄すぎるからエンジニアを諦めたんだよ」と告げられたことです。
私からしてみれば彼らは豊かな才能に恵まれた人たちなので、そのように悲観する必要はまったくないと思うのですが、なんだか非常に申し訳ないなと感じて……。これも転職を考えた理由の一つです。
━━冒頭で「あるCMSがクラウドサーバーでも稼働しやすくなるように基盤を開発した」と伺いました。詳しくお話を聞かせてください。
フラーはアプリに関する事業を中心に展開していますが、ウェブサイトの開発を手がけることもあります。
あるウェブサイト開発案件で、ウェブフロントエンジニアがCMSを使って開発することを決めたプロジェクトがありました。そのウェブサイトは多くのトラフィックが見込まれ、インフラの安定稼働とコスト最適化を求められていたんです。
フラーでは通常、AWSを用いてインフラ周りの環境を構築します。クラウドサーバーを用いればサーバーリソースを最適に確保できるため、その分コストメリットの恩恵を受けることができます。
今回もAWSを利用しようと考えていましたが、大きな問題がありました。それは利用する予定のCMSが、クラウドサーバーに適さないサービスであったことです。
ウェブサイトの安定稼働を優先してクラウドサーバーの利用を諦め、あらかじめインフラリソースを大量に確保するという選択肢もありました。でも、これではコストが余計に掛かってしまう。
世の中に我々が求めるサービスがないか調査もしました。しかし、CMSを立ち上げるだけのサービスはたくさんありましたが、インフラリソースの最適化に対応しているものはありませんでした。
なら、「ないならもう作ってしまおう」と考え、基盤を開発することにしました。
具体的に行ったことは、プラグインとAWSのサービス選定です。クラウドサーバーに適さないというそのCMSの欠点を補うため、色々な組み合わせを考え、開発を進めていきました。
━━開発した基盤を利用したプロダクトはリリースされましたか?うまく稼働しましたか?
2019年3月にリリースされました。今現在、無事に稼働しています。
リリース数日後の比較的大きなトラフィックに問題なく対応できた時は一安心しました。
実はその安堵も束の間のもので、リリース数週間後にいわゆるYahoo!砲による膨大なアクセスが発生したんです。一時はどうなることかと心配しましたが、これにも無事耐え抜いてくれました。事前に負荷の検証を徹底的に行なっていたこともあり、安定稼働してくれてホッとしています。
━━サーバーサイドエンジニアとして感じる、フラーの良いところを教えてください。
3点あります。
1点目は集中して働きやすい点です。
フラーではフレックスタイム制を取り入れています。コアタイム以外は好きな場所で働けますし、自由に自分の好きなスケジュールを組めるので、業務に集中する時間を確保しやすいと感じます。
2点目は、サーバーサイドとインフラの両方に触れる機会があることです。どちらも見られる人だと、開発の選択肢やできることが広がります。
3点目は、サーバーサイドエンジニアに限ったことではありませんが、エンドユーザーの顔を見る機会がある点です。
━━「エンドユーザーの顔を見る機会」について具体的に教えてください。
フラーでは長岡花火財団さんのご依頼の元、長岡花火公式アプリの開発を行っています。私もプロジェクトメンバーの一員です。
長岡花火は、私の地元・新潟県長岡市を代表する花火大会。8月2日と3日に開催され、2日間合計で約100万人が訪れる非常に大きなイベントです。
このプロジェクトの特徴は、イベントの当日対応がある点です。花火大会当日、花火会場内にある運営警備本部内に席をご用意いただき、アプリのメンテナンス対応やプッシュ通知対応を行います。
運営大会本部内で大会運営をされている方々の緊張感、花火大会を観覧されている大勢のお客様の熱気、近距離で打ち上がる花火の振動……それらを肌で強烈に感じながら、アプリの保守対応を行うわけです。
しかも、長岡花火は私の地元の一大イベント。
この状況の中、自分たちの開発したアプリが使われる様子を直接目の当たりにすると、非常に感慨深いものがありました。
これまで私は、自分が携わったプロダクトを利用しているエンドユーザーを目にする経験がありませんでした。例えばゲームアプリを作っていても、なかなかそのゲームを利用しているユーザーと会う機会ってないものなんです。
しかし長岡花火アプリの場合、そのアプリを使うイベント先に出向くわけなので、当然多くのエンドユーザーに出会うことができます。
地元の一大イベントに関わりながら、かつ自分のプロダクトを利用するユーザーの顔を見ることができる、こんな経験ができるのはフラーの大きな特徴だと思います。
左上:長岡花火警備本部で警備に当たる皆様 右上:長岡花火観覧会場の様子
左下:早朝のごみ掃除に参加するフラーメンバー(右が一野瀬) 右下:警備本部でアプリのプッシュ通知対応を行うフラーメンバー(手前の2名)
━━サーバーサイドエンジニアとして働くにあたり、フラーに感じた課題があれば教えてください。
サーバーサイドエンジニアの人数が十分とは言えない点です。
例えばもっとプロダクトが増えたときに、今の体制のままプロダクトを支えられるかというと不安に感じることがあります。
また、私が所属するスマホビジネス共創事業部は、エンジニアであってもクライアントワークが多くなります。特に最近は私が参加するプロジェクトが増え、コミュニケーションにかける時間が多くなり、開発の時間を確保することが難しくなりました。私自身、コミュニケーションが得意な方ではないため、打ち合わせが続くと緊張して疲れを感じてしまっているなと思うこともありました。
━━課題に対して改善したことや、改善する予定のあることはありますか?
開発人数の不足、開発時間の確保、クライアントワークの集中負荷に関しては、新たなサーバーサイドエンジニアのメンバーが加入してくれたことで大きく改善されました。また、サーバーサイド以外のエンジニアが積極的にクライアントワーク部分を巻き取ってくれているので、私としてはとても助かっています。
他にも、今年度も新たにサーバーサイドエンジニアの採用計画があると聞いているので、人事に期待しています。
━━サーバーサイドエンジニアとして、働く上で心がけていることを教えてください。
不具合なく安定稼働させることを、常に意識して業務にあたっています。
具体的には、サーバー管理・監視サービスを積極的に導入し、インフラの監視の仕組みを整え、不具合の予兆を自動で検知してすぐに対応できるようにしています。
現在の私が所属してる事業部は成長フェーズです。その成長を阻害しないように、インフラ側では豊富で十分な環境を用意したいと思っています。
CMSに対応した基盤システムを開発したように、できる範囲でコスト削減にもコミットしますが、まずは「安定稼働」が最優先です。
━━最後にメッセージをください!
フラーでは、サーバーサイドとインフラでエンジニアの所属が厳密に分かれているわけではありません。そうやって両者に境界を設けていないからこそ、色々な選択肢が取れ、プロダクトにとって最適な環境・仕組みを作れていると感じています。また、二つの技術分野の知識をつけることができるので、今後のキャリアの幅も広がるかと。
私は「安定稼働」を信念に働いています。同じような想いを持っていただける方と一緒に働けたら嬉しいです!
今回は、スマホビジネス共創事業本部・サーバーサイドエンジニアの一野瀬さんにお話を伺いました。
安定稼働を最優先にしながらも、同時にコストメリットにも気を配り、独自基盤を開発した一野瀬さん。その働き方からは、強い信念と高い技術力を感じました。
フラーは一緒に働く仲間を募集しております。もしご興味がありましたら、お気軽にご連絡ください!