MOBILUS TECH BLOG

モビルスのプロダクト開発を支えるメンバーが 日々の開発現場の情報を発信します。

SaaSサービス提供開始8年目!インフラ環境の再構築を目指します!

こんにちは。RecruiterのH.Onoです。

 

モビルスは2016年に自社SaaSプロダクト「MOBI AGENT」の提供を開始させ、今では7つのプロダクトを提供するまでに成長しました。

 

「これからのモビルスが目指すこと」を実現するために、プロダクトの屋台骨となるインフラ全体の環境も再構築予定。

 

今回はインフラSectionMgrのC.Junに協力してもらい、インフラが現在抱えている課題や目指す組織の形をまとめました!

 

\こんな方におススメ/

・SaaSサービスの刷新に興味がある方

・インフラ環境の標準化に関心のある方

・新しいチャレンジをしたいSREエンジニアの方

・当社のインフラエンジニアの仕事内容に興味を持った方

・当社のインフラ部門の課題/取り組みを知りたい方

 

お読みいただけると嬉しいです。

現状のインフラ体制

     現在モビルスの全プロダクトはクラウドサーバー(AWSをメインに、MicrosoftAzureやGCPも一部使用)上で運用しています。

     開発者が構成や手順をAWS CloudFormation上で作成して、プロダクトごとのインフラ担当者がリソースの作成、運用レベルでのリリースやモニタリング、バックアップの設定を行っています。

課題

  現在インフラ部門ではサービス運用当時からアーキテクチャの見直しがない状態でインフラの運用だけに集中していました。新しいサービスや機能が追加される時にリソースを追加する形で運用を続けました。そのため、アーキテクチャはレガシーの構成から最新のアーキテクチャまで混在している状況です。一方でサービスインフラ毎にアーキテクチャの標準構成がなく、プロダクトごとに異なるインフラ構成やパイプラインが使用されています。その結果、自身が担当するプロダクト以外のインフラ環境を理解するのが難しく、リソース管理や運用に非効率が生じています。

これから目指すインフラ環境

    これからの3年間で「異なるプロダクトであってもインフラ環境は標準化されている」という状況を目指したいです。そのために3つの事に集中して取り組む予定です。

  1. CI/CDの標準化
  2. インフラアーキテクチャの標準化
  3. IaCの推進

1.CI/CDの標準化 
 現在、開発側から管理しているパイプラインの管理をインフラ部門へ移行して技術スタックの統一と標準パイプライン(GitHub Actions)を準備して既存サービスや新規サービスのCI/CDをインフラメンバー全員が共通認識の上で理解出来るように構成します。

開発側はレポジトリにソースをPush/Mergeだけでパイプラインが適切な承認ラインで自動的にインフラへ反映される形を目指します。

2.インフラアーキテクチャの標準化 
 アーキテクチャ毎に標準テンプレートを準備して、新規プロダクトをローンチする際や既存の環境変更の際に適用していきたいです。標準アーキテクチの導入の理由は一つのアーキテクチャを理解すれば全ての同じアーキテクチャも理解出来ますし、インフラメンバーはサービスを横断して管理が出来ます。加えて、アーキテクチャの改善が発生した場合も一括で対応が出来ます。これは結果としてインフラ管理リソースの効率を上げることにつながります。

3.IaCの推進 
 インフラ構築を全てIaCコード(Terraform)を使用して自動的に行えるようにしたいです。コードで標準テンプレートを準備することで、コードを見ればアーキテクチャの理解が直ぐ出来ますし、コードの共通化でインフラ構築効率をあげることが出来ます。またコード化を推進することで、ドキュメントも常に最新へと更新されるので、ドキュメント管理の手間を省くこともできます。

組織体制

    目指す姿を実現するために、今後は運用を担当する部門とSRE(Site Reliability Engineering)部門に分け、それぞれの役割を明確にする予定です。SRE部門がインフラのアーキテクチャ設計や標準テンプレートの作成を行い、運用チームはそのテンプレートを使用して実際の運用を行う形に変更します。

 SRE部門ではインフラだけではなく、フロントやバックエンド、データベース、ネットワークを総合的に理解して最適な形を開発側に提供できる状態を目指します。SREのメンバーは全員IaCを行う上で、DevSecOpsやネットワークやセキュリティなど、それぞれの専門分野での強みを持って推進する組織にしたいです。

 一方で現在、モビルスが持っているサービスは特定の環境を共有していたり、アーキテクチャ的に分離されてない状況で様々な改善すべき課題を持っています。

 こうした背景があるので新しいアカウント戦略の基盤であるOrganization全般を新たに設計してセキュリティーや効率化を実現していきますし、今後の拡張時期に対応出来るような将来を見越した準備を行っていきます。

現在の進捗状況

 現在は既存の環境を維持しながら、新しい環境への移行準備を進めています。既存のアーキテクチャにレガシーな要素があるので、それを最新化しつつ、全体をコンテナベースに変更する計画です。特にプロダクション、ステージング、デベロップメントなどの各アカウントを分離して、セキュリティや費用の管理を強化させる方向で進めています。

 インフラの再構築は組織にとって大切なことですが、エンジニアにとっても問題解決能力や成長ができる重要な成長機会です。インフラ部門では現在一緒に働く方を探しています。興味がある方は採用ページを御確認ください!

 

最後までお読みいただき、ありがとうございました。