Globe-ingの技術スタック
はじめに
みなさん、はじめまして。Globe-ingのCTOを務める上田です。
この度、弊社テックブログを立ち上げることになりました。第一弾の記事では、私たちが開発中のプロダクト「オクタゴン」と「AIコンサルタント」の紹介と、それらを支える技術的な選択についてお話しします。
開発中のプロダクトについて
現在、Globe-ingでは2つのプロダクトラインを構想・開発しています。
1. 「オクタゴン」
コンサルタントが長年培ってきたノウハウを自動化・SaaS化し、幅広い企業に素早く提供することを目指したプロダクト群です。例えば、以下のプロダクトを開発しています。
-
セールススイート(ベータ版提供中)
営業チームの生産性向上に特化した機能とノウハウを詰め込んでおり、顧客データの分析に基づく顧客の優先度づけ、営業先リストの生成などの機能を提供します -
スペンドインテリジェンス(開発中)
調達コストの最適化に役立つ機能を提供し、企業の支出管理をより効率的に行うためのレポートや分析を支援します。
2. 「AIコンサルタント」
戦略立案や仮説検証など、コンサルタントの業務をAIが支援・代行するプロダクトです。以下のような機能を企画・開発中です。
-
議事録AI
コンサルタントのノウハウに基づく構造化された議事録を自動生成、会議内容の正確な把握とスムーズな情報共有を実現します。 -
AIリサーチ
Web記事や社内文書をクロールし、事例調査や示唆が得られるレポートを自動で作成することで、意思決定のスピードアップに貢献します。 -
AIパワポ生成
AIリサーチの結果などを取り込み、テンプレートと事例を組み合わせた報告書や提案資料を自動生成します。
解決したい課題
従来のコンサルティングは、どうしても人的リソースに依存しがちでした。大手企業を中心にサービスが提供される一方、中小企業やスタートアップにはあまり届かないケースも多かったのです。
そこで私たちは、コンサルタントの知見をSaaSとしてパッケージ化し、より多くの企業が手軽に使えるようにすることで、ビジネスシーン全体の生産性向上を狙っています。大企業だけでなく、中小企業やスタートアップにも利用しやすいサービスを提供し、社会全体のDX推進に寄与していきたいと考えています。
またプロダクトやAIで代替できる業務をコンサルタントが手放すことで、コンサルタントはより高度で戦略的な業務に集中できるようになり、コンサルタントが提供する価値を高めることも目指しています。
それにより我々のプロダクトやコンサルティングのサービスが、あればよいなと思われるようなものから、なくてはならない成長のインフラ/Growth Infrastureになることを目指し、我々のミッションである「Be a "Growth" Infrastructure」を実現し、今までのコンサルティングの常識を変えていきたいと考えています。
Globe-ingの技術スタック
フロントエンド
フロントエンドは基本的にVue.js / Nuxt.jsを採用しています。
最近はReact / Next.jsの注目度が高まっていますが、初期メンバーのスキルセットを考慮し、学習コストや開発効率のバランスがよいVue.jsを選択しました。Nuxt.jsによるSSRの恩恵はあまり受けていませんが、以下の機能を活かしています。
- Filesystem Routing によるページ管理の容易さ
- Layout / Plugin機能による共通処理の抽象化
- 組み込みのuseFetchなどのComposableを活用した開発効率向上
B2B向けSaaSという特性上、ログイン必須のページが多いため、SSR無しの静的ホスティング + クライアントサイドフェッチという方針をとっています。また、TypeScriptを導入し、型安全性と保守性を向上させています。
今後のフロントエンド
-
テストコードの充実
現在は十分にテストが書かれていない部分があるので、ComponentレベルのテストやStorybookの活用、E2Eテストの導入を検討中です。品質を保ちながらリリースサイクルを早める体制を整えたいと考えています。 -
デザインシステムの整備
プロダクトやページごとにUIが微妙に異なるケースがあるため、デザイナーと連携しつつコンポーネントライブラリや共通デザインシステムを構築し、よりスケーラブルな開発を実現したいと考えています。 -
複数フレームワークの使い分け
一部プロダクトではReactが利用されており、ナレッジの蓄積や技術統一の必要性が課題となっています。今後はプロダクトの特性やチーム構成を踏まえ、Vue.jsとReactをどのように使い分けるか検討する予定です。
バックエンド
「セールススイート」はデータ分析や機械学習の観点でPythonが適していたため、バックエンドの主力言語としてPythonを採用しています。PandasやNumPyなどのライブラリを活かしやすく、AI・機械学習にもスムーズに対応できるメリットがあります。
ウェブアプリケーションフレームワーク選択: FastAPI と Django
-
FastAPI
「セールススイート」では軽量かつAPI開発に特化したFastAPIを利用しています。非同期処理との親和性が高く、高速にAPIを開発できますが、ORMやマイグレーション、管理画面などは自前実装が必要で保守コストが高い面もあります。 -
Django + Django Ninja
「スペンドインテリジェンス」ではDjangoを採用し、API部分にDjango REST frameworkよりもFastAPIライクで記載が楽なDjango Ninjaを組み合わせています。これによって型付けを活かしつつ開発を進められ、Djangoが標準で提供する管理画面やORMが役立っています。
データベース: Aurora PostgreSQL
データベースには、AWSのマネージドサービスであるAurora PostgreSQLを採用しています。主な理由は以下の通りです。
- Row Level Security/RLSによるマルチテナント構成への対応
- エンタープライズでも実績のある信頼性
- AWSの各サービスとのスムーズな連携
B2B向けサービスでは、テナントごとのデータ分離がとても重要です。Aurora PostgreSQLのRLS機能を活用することで、セキュアなデータハンドリングを実現しています。
インフラとCI/CD
AWSを中心としたインフラ設計
インフラは基本的にAWSを利用し、日本での情報量や採用のしやすさなどを考慮して第一選択肢としています。CDK/TypeScriptを使用したIaC(Infrastructure as Code)により、型補完やチェックを活かして人的ミスを減らし、安定的な構築を実現しています。
CI/CD
ソースコードはGitHubで管理し、GitHub Actionsによるテスト自動実行と本番環境へのデプロイを行っています。新規プロダクト立ち上げ時も、チーム作成のテンプレートに従えばすぐにCI/CDを回せるようにし、開発のスピード感と運用効率を両立しています。
今後充実させたい部分
-
ログやモニタリングの強化
DatadogやNew Relic、Sentryなどのツール導入を検討していますが、本格的には未着手です。現状、障害発生時の原因特定に時間がかかることもあり、Observabilityの整備が急務と考えています。 -
セキュリティ体制の強化
認証・認可の仕組みやAPIキー管理など、エンタープライズでも使えるSaaSとして、セキュリティ要件をさらに高める必要があります。脆弱性診断やセキュリティ監査プロセスの導入も視野に入れています。 -
AI活用領域の拡張
AIコンサルタントでは議事録やリサーチなどがメインですが、今後は顧客企業のデータを活用したより高度な分析やレコメンドにも取り組みたいと考えています。MLOpsの体制を整え、サービス品質を高めていきます。
まとめ 〜Globe-ingで働いてみませんか?〜
ここまでご紹介したように、Globe-ingでは
- Pythonを中心とした分析・機械学習との連携
- Vue.js / Nuxt.jsやTypeScriptによるフロントエンド開発
- AWS上でのIaC(CDK)を活用したインフラ構築
- 生成AIを活かした新規プロダクト開発
を軸に、さまざまなサービスを構築しています。
スタートアップならではのスピード感とチャレンジングな環境が揃っており、一人ひとりのアウトプットがダイレクトにプロダクトへ反映される醍醐味があります。
- 「自分のアイデアでプロダクトを大きく成長させたい」
- 「新しい技術に積極的に触れ、スキルを伸ばしていきたい」
- 「成長企業で自分の力を試したい」
そんな想いをお持ちの方は、ぜひ私たちと一緒に「オクタゴン」や「AIコンサルタント」を育てていきませんか?
まだ小さなチームでの立ち上げ期ですが、それゆえに一人ひとりのアイデアや決定がプロダクトに直結するため、手応えのある開発体験を味わえるのが魅力です。
次回以降のテックブログでは、Django Ninjaの活用事例やPostgreSQLのRLS(Row Level Security)の実践的な使い方など、より技術的に踏み込んだ内容をお届けする予定です。どうぞお楽しみに!
Globe-ingの採用情報
弊社のミッションやバリュー、具体的な募集要項などは以下の会社紹介資料からご覧いただけます。少しでも興味を持っていただけましたら、ぜひお気軽にカジュアル面談へお越しください!
Discussion