「『Makuake Night 』エンジニア登壇!マイクロサービスへの挑戦を語る」 イベント開催レポート
こんにちは!株式会社マクアケ採用担当です。
マクアケの事業や仕事について現場のマネージャーがざっくばらんにお話しするイベント「Makuake Night」。2022年5月に行われた第2回目は、開発本部のマネージャーがアタラシイものや体験の応援購入サービス「Makuake」の開発現場についてお話ししました。当日の様子をまとめておりますので、是非ご覧ください!
登壇者プロフィール
・三浦はるか
人事本部 組織開発/採用チーム エンジニア採用担当
文系出身ながら大学卒業後、独立系SIerへ入社し、Androidアプリの開発に携わる。2015年以降は機械系メーカーにて、社内SE・総務・新卒採用と幅広く担当したのち、2022年にマクアケ人事初のエンジニア採用担当としてジョイン。国家資格キャリアコンサルタント。
・渡久山 拓也
開発本部 Operation Engineeringチーム マネージャー 兼 CTO室 Field CTO
新卒1社目からサイバーエージェントグループにてエンジニアとしてのキャリアを歩み始め、マクアケには2020年6月にジョイン。現在は実行者やキュレーターのためのシステム開発を行うOperation Engineeringチームにてマネージャーを務める。2022年4月からはCTO室創設と同時にField CTOも兼務。認定スクラムマスター。
マクアケについて
三浦:人事の三浦です。本日はマクアケについて、是非いろいろ知っていただく機会にしていただければと思っておりますのでよろしくお願い致します!
<会社紹介資料>
マクアケは「生まれるべきものが生まれ 広がるべきものが広がり 残るべきものが残る世界の実現」をビジョンに掲げ、日本や世界で新しいアイデアを持っている人たちが新商品を開発するチャレンジを後押ししています。プロジェクト実行者様がアタラシイ商品を公開し、サポーターが応援購入をするプラットフォーマーとしてサービスを展開しています。
企業様が「Makuake」に掲載するためには以下のステップを踏む流れになっており、開発本部では消費者側の目に見える部分だけでなく、プロジェクト掲載前のステップや、掲載中のフォローから応援購入後のフローを支えるシステムも開発しています。
また、関連事業として複数のサービスを提供しており、それぞれサービス改善のための開発も進めています。
オペレーションエンジニアリングチーム(OEチーム)について
渡久山:改めまして、OEチームマネージャーの渡久山です。開発本部に所属するOEチームはマクアケのサービス内で発生するオペレーションフローをエンジニアリング側面から改善することをミッションとしています。
「Makuake」の掲載プロジェクトを進めるためのステークホルダーは「実行者」「サポーター」「マクアケ社内」の3者間の関わりとなるのですが、具体的なオペレーションが発生するのは実行者様とマクアケの間(図のピンク色部分)となります。
実行者様がプロジェクトを掲載するまでの運用や、応援購入をされたサポーター様への商品配送などアフターケアの運用など、フェーズごとに様々なオペレーションが発生します。実行者様がスムーズにプロジェクトを進められるように、我々OEチームがシステム面のサポートを行っています。
※OEチームの紹介はこちらの記事もご覧ください
MPMSについて
MPMSとは、「Makuake」のプロジェクト進行のために実行者様側や社内で使う管理画面開発プロジェクトのことです。
「Makuake」はサービス立ち上げから10年程経っており、システムの積み上げによる複雑性や、マクアケが実現したい事を現在のアプリケーション構成で実現することが難しい点など、今後に向けていくつかの課題が出てきていました。マクアケがミッションに掲げた世界を実現するためのスピード感をより高めていくために、開発の基盤部分と運用フロー全体の改善を目的としてMPMS開発プロジェクトが始まりました。アーキテクチャとしてマイクロサービス・マイクロフロントエンドを採用し、新しい技術基盤を作ることに着手しています。モノリス構造で設計されていたシステムから、小さなかたまりを一つ一つ切り離していく流れです。
MPMSの構造としては、まず開発基盤を土台に作り、その上にステークホルダー向けの管理画面を載せていく構造を取っています。その中でバックエンドとフロントエンドで実装分離しており、以下のような構成でアプリケーション構築を行っています。
バックエンドでは機能群を適切なサイズにマイクロサービス化しています。マイクロフロントエンドは一般的に採用されるケースがまだ少ないかと思うのですが、マイクロサービスのメリットをフロントエンド領域でも享受するために導入しました。小さなフロントエンド用のアプリケーションを束ねて、1つのWebサービスのように見える構成の基盤構築を進めているところです。
以下の例では、左半分がフロントエンド、右半分がバックエンドを表しています。実行者様向けの管理画面と社内向けの管理画面があり、それぞれの中身を見ていくと、審査やプロジェクトの編集など、業務ドメインに沿って分割したアプリケーションを束ねた構造になっています。
各フロントエンドが自分の業務ドメインに適したバックエンドロジックを参照する形をとっているので、実行者様向けと社内向けそれぞれのゲートウェイにあたるサーバーを立て、裏側でマイクロサービスを新しく作って移行する取り組みを行っています。現段階ではゲートウェイにあたるサービスから従来のモノリスサービスに参照しているものも多く残っているのですが、切り離しやすいものから分割している状況です。最終的には複数のチームが平行で開発したり機能追加しやすい仕組みにできたらと考えています。
取り組み始めのフェーズなので、知見がたまってきた領域と、まだまだ試行錯誤の領域が存在していて、日々挑戦を続けている状況ではあるのですが、そこに楽しみを持って進めていけるのがこのプロジェクトの醍醐味かなと思っています。
マイクロサービス、マイクロフロントエンドのメリット&デメリット
・メリット
現在15~16個のマイクロフロントエンド、マイクロサービスを作っていますが、それぞれのアプリケーションがまだ小さいので、並列して機能改修やデプロイしやすいのが良い点ですね。今は1つのチームで複数のサービスを持っていますが、将来的にはそれぞれ担当のチームを作っていく予定です。
また、実装調査をする際に変更を加えた影響範囲がわかりやすいのも便利です。一般的なメリットはしっかり感じていると思っています。
独立したデプロイフロー
実装調査、影響範囲検討時のスコープが小さい
アプリケーションの並列開発時の考慮事項が少ない
型ベースの自動生成部分を利用した開発体験の向上
・デメリット
構成の複雑さ、アプリケーション数の多さによる設計/実装の難化はつらさの一つですね。モノリス構造では考える必要がなかったことを考慮する必要が出てきます。マイクロサービス、マイクロフロントエンドの構成になると、いわゆるサービス同士が会話をするという概念が発生します。この処理はいったいどのリクエストから発生したのか追跡したり、循環参照がネットワーク内で起きていないかなど検討していく必要があります。テレメトリー/計測するための仕組み構築が必要となってくるので、我々も絶賛挑戦中の段階です。
また、マイクロフロントエンドに関しては、工夫をしないとビルドファイルのサイズが簡単に肥大化してしまうのも課題です。開発のしやすさと引き換えにパフォーマンスチューニングの難易度が上がる印象があり、現在も試行錯誤をしながら改善を進めています。
サービス間通信におけるトレーサビリティや回復性の担
横展開作業の手間
フロントエンドの通信量増加
1チームで扱うアプリケーション数が増えたことによる管理の煩雑さ
・工夫したこと
デメリットの解消のために工夫したこともご紹介します。まず、出来るだけ定義ファーストの開発ができるように自動生成処理ができるようにしました。また、デザイン実装を楽にするためにライブラリを自作し、機能開発に注力できるようにしました。
MPMSプロジェクトはまだ始まったばかりです。これからさらにブラッシュアップしてゆき、ユーザー(実行者様や社内メンバー)と積極的にコミュニケーションを取りながら改善してゆくフェーズに入っていきます。一緒に議論してものを作っていくことが楽しいと思う方は楽しい環境だと思います。
質問タイム
Q:マイクロサービス化に対してのビジネスサイドの反応はどうでしたか?
A:マクアケの場合は、開発が重複したり、スケジュールがうまく進まなかったり、影響範囲を調査するコストがかかったりなど、現状の運用に対する技術的な課題が何回も発生していた背景があります。現状の課題感がビジネスサイドにも伝わっており、課題解消のためにはマイクロサービス化が必要というメッセージを全社ミーティングなどを通じて社内で伝えていたので、スムーズに受け止められた印象です。
また、マクアケはビジョンドリブンな会社なので、目指すビジョンの実現のために問題解決をしていこうという意識が社内に浸透しています。ものづくりや技術に関してリスペクトする人が多いので、技術開発に対する理解は高いと思っています。
Q:マクアケで働いているエンジニアのバックグラウンドを教えてください。
A:面白い経歴の人がたくさんいるのですが、一番経歴が面白いのはCTOの生内だと思います。いろいろな会社のCTOを経験してきた豊富な経験値や、もともとバンドマンだったところとか、山を買った謎の話とか、髪型がちょんまげだとか、いろいろ面白いエピソードを持っています。気になった方は是非Meetyで話して突っ込んでみてください(笑)。エンジニアリングに関してとても真摯な方で、CTOとエンジニアの距離がとても近く話しやすいので、仕事としてもとてもやりやすいと感じています。
※CTO生内(いくない)紹介記事
他は、業種問わずSIer、SES、スタートアップ、メガベンチャーなどの経験者、コンサル業界からエンジニアへのジョブチェンジをした人など、マクアケに来るまでの経歴は幅広いです。共通点としては、サービスへの愛が強く自分事にできる人だと思います。どういったサービスに育てていけば、自分たちも楽しいしユーザーもうれしいのか、と考えるのが好きな人がとても多いですね。
マクアケのサービスやエンジニアの業務内容など、この場では語り切れない部分もありますので、気になった方は是非Meetyでも話しましょう!
採用に関して
マクアケの仕事内容や魅力が伝わりましたでしょうか?マクアケではエンジニアを絶賛募集中です。詳しくは是非以下のリンクをご覧ください!
◉選考エントリーをご希望の方
◉カジュアル面談をご希望の方
◉マクアケの中の人を知りたい方
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?