Masaaki Hirotsu

Masaaki Hirotsu

Vice President of Technology (VPoT)

エムシーデジタルが取り組む Platform Engineering - Tachyon Platform

エムシーデジタルが取り組む Platform Engineering - Tachyon Platform

はじめに

VPoT の廣津です。

エムシーデジタルでは、顧客のデータを分析するプロジェクト、機械学習や数理最適化の技術を活用した業務アプリケーション開発、「Tachyon 生成AI」をはじめとした SaaS プロダクトの開発など、さまざまな事業に取り組んでいます。

顧客の本質的な課題解決を通じたビジネス変革を実現するためには、 AI 技術をはじめとする最新の技術を常にキャッチアップし、積極的に活用していくことが不可欠です。 しかし、このような不確実性の高い技術を実際のビジネスに適用するには、 PoC (Proof of Concept) の迅速な実施、実現性の見極め、実用的な業務アプリケーションの開発など、多くのステップが存在します。これらを効率的に進めるためには、本質的な課題の解決に集中できるような、効率的な開発プロセスと環境が求められます。

こうした課題を背景に、近年注目されているのが Platform Engineering というアプローチです。これは、開発者向けに最適化されたプラットフォームを構築することで、開発プロセス全体の効率化や開発生産性の向上を図るものです。 たとえば、Gartner 社は Platform Engineering について、以下のように定義しています。

プラットフォーム・エンジニアリングは、セルフサービス機能とインフラストラクチャ・オペレーションの自動化により、開発者のエクスペリエンスと生産性を向上させます。開発者のエクスペリエンスを最適化し、プロダクト・チームによる顧客価値のデリバリを加速させることが期待できるため、大きく注目されています。

引用元: Gartner「プラットフォーム・エンジニアリングとは何か?」

エムシーデジタルでは、 Platform Engineering の考えをもとに、高品質なソフトウェアをより早く、効率的に開発するためのプラットフォームとして、 「Tachyon Platform」 と呼ばれるプラットフォームを開発しています。 このプラットフォームは、顧客が保有するデータに対して AI や数理最適化技術の活用を容易にするための機能を提供し、 PoC から実運用までのプロセスを大幅に効率化することを目標としています。

本記事では、Tachyon Platform の概要と、どのように Platform Engineering を実現しているのかについて紹介します。

Tachyon Platform の全体像

Tachyon Platform は、社内のさまざまな事業やプロジェクトに対して適用することを想定して開発されています。 これらの事業が解くべき課題は多岐に渡っており、対象とする産業によって特有の要件があることは珍しくありませんが、共通して求められるのは以下のような要件です。

  • 顧客が保有するデータをセキュアに連携したい
  • データの前処理や加工を効率的に行いたい
  • 機械学習や数理最適化の処理を効率的に実行したい
  • 分析や機械学習の結果を分かりやすく簡単に可視化したい
  • 一連の処理をアプリケーションとして提供したい

これらの要件を実現するため、 Tachyon Platform は以下のようなアーキテクチャで構築されています。

Tachyon Platform Architecture

弊社では Google Cloud を利用して開発や分析を行うことが多かったことから、 Tachyon Platform も Google Cloud をベースに構築しています。 各構成要素については、以下でそれぞれ詳しく説明していきます。

Workspace とユーザの管理

Tachyon Platform では、開発者がデータやアプリケーションを統合的に管理するために、 Workspace という単位で環境を分離しています。 Workspace を新規作成すると、 Google Cloud のプロジェクトを払い出し、必要な各種リソースを Terraform を使ってプロビジョニングします。 これらの処理は Cloud Build ですべて自動化されているため、開発者は環境構築にかかる手間を最小限に抑えることができます。

プロジェクトを分離することで、異なるプロジェクト間での意図せぬリソースの共有やクォータへの影響を防ぐことができる他、クラウドの利用料金の管理が容易になるというメリットもあります。 また、エムシーデジタルでは複数の案件を掛け持ちで作業するメンバーも一定存在するため、論理的に環境を分離することで、異なるプロジェクト間での権限管理や顧客固有の要件にも柔軟に対応することができます。

Workspace のユーザ管理には Auth0 Organizations を利用しており、 Workspace ごとに organization を払い出すことで、プロジェクト単位でユーザのログイン方法やアクセス権限の設定を可能にしています。 Auth0 は Actions を利用することでログイン処理などを自由にカスタマイズすることができるため、 Workspace ごとに MFA (Multi-Factor Authentication) の設定を変更したり、 顧客の認証基盤との SAML 連携を行うことも可能になります。 このような拡張性の高い認証基盤を全社的に整備することで、セキュリティの向上やユーザの管理の効率化を実現しています。

Workspace

データ管理

データの蓄積・管理には BigQuery を利用しています。 BigQuery の凄さについては改めて語るまでもないですが、ペタバイト規模のデータに対しても高速なクエリを実行できるスケーラビリティを持ち、データセットやテーブルのアクセス権限の管理も容易に行うことができることにメリットを感じて採用しています。 顧客のデータをアップロードする際には Cloud Storage の Signed URL を利用することで、データ受領をセキュアに行いつつ、 BigQuery へのデータロードを効率化しています。定期的にデータを自動で連携したいという要望も多くあるため、セキュアにデータのアップロードを行うための API も提供しています。

また、 BigQuery 上のデータの前処理や加工を行うためのツールとしては、社内標準として dbt を採用しています。 Workspace ごとに独立した Cloud Run Jobs で dbt ジョブの実行を管理しているため、異なる Workspace での dbt の実行が互いに影響を受けることはありません。 独自に dbt の実行基盤を構築したことで、dbt-utils などの利用頻度の高いプラグインをプリインストールして提供可能にしている他、スケジュール実行や Slack 通知、 dbt Docs の自動生成などの機能も追加し、本質的なデータ加工に集中できる環境を提供しています。

パイプライン

学習や予測、数理最適化の処理の実行基盤としては、 Vertex AI Pipelines を採用しています。 Vertex AI Pipelines は、Kubeflow Pipelines SDK やTFX SDK を使ってパイプライン処理を DAG として定義し、 Google Cloud 上のマネージドな k8s 基盤上で処理を実行できます。

dbt と同様のスケジュール実行や Slack 通知、パイプラインのバージョン管理などの機能を提供することで、開発者がパイプラインを効率的に開発するためのサポートを行っています。 また、 Vertex AI Pipelines (Kubeflow) は、 Input や Output を Artifact という形式で GCS に保存する機能を持っていますが、 パイプラインの実行時に Workspace ごとに自動で構築済みの Google Cloud のバケットを RuntimeConfig として渡すことで、ユーザがデータの保存先を意識することなくパイプラインを実行できるようにしています。実行結果を自動で BigQuery に連携する機能も提供しているため、パイプラインの実行から結果の可視化までを一貫してサポートしています。

一方で、 Kubeflow は PrefectKestra のような簡単にパイプラインを定義・実行できるツールと比べると、学習コストが高くローカルでのデバッグ実行にも手間がかかるという課題があります。このような問題を解決するため、テンプレートリポジトリを用意して導入コストを下げたり、カスタムコンポーネントを提供してより簡単にパイプラインを構築できるようにサポートも行っています。

BI ツール

生データや予測結果の可視化には、 OSS の BI ツールである Apache Superset を利用しています。 Superset はデータソースとして BigQuery を利用することができるため、 BigQuery 上のデータを直接可視化することが可能です。

Tachyon Platform では、 Workspace の作成時に Cloud Run を使って Superset を自動でデプロイし、 Load Balancer と紐づけてサブドメインを割り当てることで、 Workspace ごとに独立した BI 環境を提供しています。 Auth0 との連携によってログイン制限をかけることで、自分が所属する Workspace のデータにのみアクセスできるようにしています。

Superset

アプリケーション管理

分析や予測の結果をアプリケーションとして提供する場合、簡易なものであれば、 StreamlitMesop などのツールを利用することが多いと思います。 Tachyon Platform では、 App Container と呼ばれる Cloud Run ベースのコンテナアプリケーションを管理するための基盤を提供しており、 Workspace ごとに独立した環境でアプリケーションを実行できるようにしています。

Google Cloud を使われている方であれば、 Cloud Run を直接使ってアプリケーションをデプロイすればいいのでは?と思われるかもしれません。 しかし、 Cloud Run を直接利用する場合、外部ユーザのログイン認証を実装しようとすると非常に手間がかかりますし、サービスアカウントの払い出しや権限設定、データの永続化の設計など、本質的ではない部分に多くの時間がかかってしまいます。 App Container 機能は、 Envoy のサイドカーコンテナを自動で注入することで Auth0 を使った Workspace ごとのログイン認証を自動で適用する他、 Workspace 用に作成された各種 GCS バケットを自動でマウントすることにより、他の機能で連携・作成されたデータの読み書きを容易にしています。

その他機能

書ききれないので詳細は割愛しますが、上記以外にも以下のような機能を提供しています。

  • Pub/Sub によるジョブ間の連携を容易にするための機能
  • 非構造化データを管理する機能
  • 機密情報を安全に管理するための機能
  • アプリケーションやジョブの RBAC を可能にする Service Principal 機能

スケーラビリティと効率的な運用

ここまで Tachyon Platform の機能について紹介してきましたが、これらの機能を効果的に提供するためには、スケーラビリティや運用コストの最適化が不可欠です。 エムシーデジタルは成長段階の企業であり、プラットフォームの開発や運用に大きなリソースをかけることは難しいですし、利用料金が高額になってしまうとプロジェクトの収益を圧迫してしまう可能性もあります。 そこで、 Tachyon Platform の開発では以下のような戦略を採用し、これらの課題に対応しています。

マネージドサービスの積極活用

開発の大前提として、マネージドサービスを積極的に活用する方針を採用しています。Google Cloud が提供するBigQuery、Vertex AI、Cloud Run などのサービスを中心にプラットフォームを構築することで、インフラストラクチャの管理負担を大幅に軽減しています。これにより、少人数のチームでも高度な機能を持つプラットフォームの運用が可能となっています。

サーバレスアーキテクチャと自動スケーリングの採用

サーバレスリソースの活用と自動スケーリングも、効率的な運用を実現する上で重要な要素です。Cloud Run や Cloud Run Functions を活用することで、常時稼働するワークロードを最小限に抑え、必要な時にのみリソースを消費する効率的な設計を実現しています。 具体例として、前述の Superset の運用方法が挙げられます。Cloud Run 上で Superset を実行していることは前述のとおりですが、データの永続化は行いつつも、アクセスがないときはインスタンスを停止し、アクセスがあったときに自動で起動するように設定しています。これにはコールドスタートの問題が伴いますが、コスト削減の観点からは非常に効果が大きいです。

柔軟性とコスト効率の両立

これらの施策により、Tachyon Platform は高いスケーラビリティと効率的なコスト管理を両立しています。プロジェクトの規模や要件に応じて柔軟に対応できる環境を提供しつつ、運用コストを最小限に抑えることで、顧客により大きな価値を提供することを目指しています。 今後も新たな技術やサービスの動向を注視し、常に最適なアーキテクチャとコスト構造を追求していきたいと考えています。

Developer Experience の向上に向けて

プラットフォーム開発において、開発者体験 (Developer Experience) の向上は極めて重要です。しかし、プラットフォーム開発のよくある悩みとして、以下のようなものがあると思います。

  • プラットフォームを使いこなすための学習コストが高い
  • 社内で認知されていないため、使ってもらえない
  • 新しい機能を作っても使ってもらえない

Tachyon Platform では、これらの課題に対応するために、以下の取り組みを行っています。

多様なインターフェースの提供

開発者の好みや作業スタイルは多様です。そのため、Tachyon Platform では GUI だけでなく、CLI ツールや Terraform Provider など、複数のインターフェースを提供しています。

CLI ツール: tachyon

tachyon という CLI ツールを開発して提供しています。 このツールを使用することで、開発者はコマンドラインから迅速にリソースを操作できるようになる他、スクリプトや GitHub Actions への組み込みも容易になります。(別途、 CLI 用の認証機能も提供しています)

例えば、パイプラインの一覧を確認したい場合、以下のようにコマンドを実行することで簡単に情報を取得できるようにしています。

$ tachyon pipelines list
+--------+------------------+-------------+
|   ID   |       NAME       |   STATUS    |
+--------+------------------+-------------+
| xxxxxx | sample           | READY       |
+--------+------------------+-------------+

Terraform Provider

Infrastructure as Code (IaC) の実践を支援するため、Tachyon Platform 用の Terraform Provider も提供しています。 複数の Workspace で同じような分析やアプリケーション構築を行いたい場合、 Terraform を使って一連のリソースを管理することで、効率的に環境を構築することが可能になります。

エムシーデジタルは Terraform Cloud を全社的に利用しているため、 Provider は Terraform Cloud 上に公開し、全社員が簡単に利用できるようにしています。

Terraform Provider

Terraform を使用したパイプラインの作成例を以下に示します。

resource "tachyon_pipeline" "sample" {
  name        = "sample"
  description = "sample pipeline managed by terraform"
  schedule    = "0 0 * * *"
}

ドキュメントの充実

開発した機能を有効活用してもらうためには、わかりやすいドキュメントが不可欠です。 Tachyon Platform では、各機能に対して詳細なドキュメントを提供することで、開発者がプラットフォームを効果的に活用できるようにしています。 ドキュメントの陳腐化を防ぐため、チーム内でドキュメントの見直しを定期的に行う取り組みも行っており、ユーザに最新の情報を提供するよう心がけています。

新規機能の共有会や体験会の実施

リリースノートを共有するだけでなく、リリース内容を毎月の「ENジョイ技術の日」で共有し、新機能の紹介や各種アップデートのデモなどを行っています。 また、ハンズオンワークショップも定期的に開催しており、社内の開発者が Tachyon Platform への理解を深める機会を提供しています。

フィードバックループの確立

Slack を利用してユーザからのフィードバックを積極的に収集し、プラットフォームの改善に活かしています。 定期的なユーザヒアリングやディスカッションを通じて、開発者のニーズを常に把握し、プラットフォームの改善に反映しています。

将来の展望

Tachyon Platform は、エムシーデジタルの事業を支える重要なプラットフォームとして、今後もさらなる機能の拡充や運用の最適化を進めていく予定です。 現在進んでいる具体的な取り組みとしては、生成AI を活用した新機能の開発や、 SOC2 Type2 認証の取得によるセキュリティの向上、組織外の Google Cloud リソースとの連携などが挙げられます。

今後も、最新の技術やサービスを積極的に取り入れ、開発者体験の向上やプラットフォームの効率的な運用を実現するための取り組みを継続していきたいと思います。




エムシーデジタルでは、技術力向上のためのイベントや勉強会なども定期的に実施しています。 もしエムシーデジタルで働くことに興味を持っていただいた方がいらっしゃいましたら、カジュアル面談も受け付けておりますので、お気軽にお声掛けください!

採用情報や面談申込みはこちらから

RSS

Tags

Previous

Konatsu Seki

Konatsu Seki

AI界の巨匠 アンドリュー・ング氏、エムシーデジタルを訪問

みなさん、こんにちは! エムシーデジタルの広報担当です。 2024年7月31日(水)、世界的なAI研究者として知られるアンドリュー・ング(Andrew Ng)氏がエムシーデジタルを訪問さ

  • #TechBlog
  • #AI

Next

Satoshi Warita

Satoshi Warita

Cloud Run + Envoy + Auth0 で実現する JWT 認証付き API

はじめに はじめまして。エムシーデジタルでソフトウェアエンジニアをしている割田です。この記事では、Cloud Run + Envoy + Auth0 による JWT 認証付き API の実装方法について説明します。 背景 広く利用され

  • #TechBlog
  • #CloudRun
  • #Envoy
  • #Auth0