30
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DevOpsを推進する社内運用ツール【マルチテナントSaaSにおけるエンジニアリング大全 Day20】

30
Last updated at Posted at 2025-12-19

Day20.jpg

はじめに

本記事は any Advent Calendar #2 「マルチテナントSaaSにおけるエンジニアリング大全」 Day20 の記事です。 弊社anyのアドベントカレンダーをひとつ丸ごと占有して、ひとりアドベントカレンダーとして、筆者の「マルチテナントSaaSのエンジニアリング」への経験をすべてアウトプットしていくカレンダーです。

今回はDevOps観点でマルチテナント特有の運用業務について、Qastの事例を中心に紹介していきたいと思います🍵

DevOpsとマルチテナント

DevOpsとは開発と運用をシームレスに紐づけるために必要なプロセスのことを指します。言葉そのものは抽象的でマルチテナントSaaSの領域においても、答えのない領域ではないでしょうか。AWS環境における、マルチテナントSaaSにおけるDevOpsについては、AWS re:Invent 2023においてのセッションがオススメです。

Qastにおけるツールといえば、下記のようなものを利用しています。基本的にはGitHub、Terraform、JIRAなど標準的なツールを選定していますが、この記事では特別な工夫をしているツールについて、いくつかの事例とともに紹介します。

Qast_Infra_simply_v2.png

テナント管理の社内画面

Day 7のテナントのオンボーディングでも紹介しましたが、社内向けの管理ツールが存在しています。これにより各テナントの情報を参照、また機能を有効化/無効化することが可能になっています。実際にオペレーション観点では開発者が作業する場でもあり、ビジネスサイド側の人たちがプラン変更などを単独で実行できるようになっています🎉

顧客情報の管理 機能の有効化/無効化
7f871028-0bec-45f0-9838-031e0634f1b4.png CleanShot 2025-12-15 at 21.01.07@2x.png

社内運用ツールによる効率化

多くの企業では、社内のプロダクト特有の運用スクリプトなどは用意されているのではないでしょうか。Qastでは社内の運用ツールをStreamlitを用いて、いくつかの定型業務を自動化しています。

c8e98479-f3e1-4969-9cdb-186f78b87a3c.png

社内運用ツールとしてStreamlitを選定した理由は、以下の通りです。

  • One Shotのスクリプトにおいては、Pythonの取り回しが楽である
  • UIはほしいが、リッチなフレームワークで開発することは 可能な限り避けたい

またデータベースへの参照として、Redashを運用ツールとして稼働させています。

33e6fc6f-fdb9-42d7-863d-69822c0dbd42.png

RedashはもともとBIツールの側面が強く、その用途でも利用していますが、下記のようなメリットがあります。

  • 高頻度で利用するクエリに対して、社内データベースの直接的な参照を避けるため
  • 調査タスクにおいてもテナントまたぎが発生するため、Pythonスクリプトを実行できる環境を用意するため

このようにマルチテナントにおいて発生する諸問題を社内ツールで肩代わりできるようにしています。

さいごに

Qast開発におけるDevOpsにおける開発ツールについて紹介してきました。マルチテナントにおいてはデータ分離戦略などが複合的なため、社内ツールを構築することで、運用を楽にできるのでぜひ参考にしてみてください🍵

30
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?