hacomono TECH BLOG

フィットネスクラブ・スクールなど施設・店舗のための会員管理・予約・決済システム「hacomono」 開発チームの技術ブログ

マルチテナント の検索結果:

RDSのDBインスタンスでMySQLアップデートを行う上で資料の充実さに救われたお話

…グルテナント環境からマルチテナント環境への移行が進んでいるものの、シングルテナント環境は残っており、一部環境ではRDSのDBインスタンスを利用しており、RDSのDBインスタンスに対してバージョンアップを行う必要があります。 私は入社1ヶ月でDSのDBインスタンスのバージョンアップ対応を行ったのですが、hacomonoの資料や作業の自動化への充実さに驚いたため、今回こちらの記事を書こうと思い立ちました。 バージョンアップを行う上で用意されていた資料 作業のチェックリスト バージ…

hacomono のマルチテナント移行。シングルテナントからの脱却

…らずっと携わっているマルチテナント移行について書いていきたいと思います。 TL;DR マルチテナントのアーキテクチャは構築できたけど既存顧客はシングルテナントに残ってるよ 2023年の1年間でたくさん移行したよ Service count = 顧客数(= VPC, RDS) Instance count = EC2 補足)マルチテナント環境で稼働中の顧客は1300社ほどあるので、全体の80%近くはマルチテナントで運用している シングルテナントは顧客毎にインフラ構成が異なるから…

プラットフォームチームの紹介

…きます。 1つ目: マルチテナント環境の開発 hacomonoアプリケーションが稼働するマルチテナント環境というインフラがあります。どういったものかはhacomonoプラットフォームチームのEM矢嶋が執筆した以下の記事をご参照ください。 techblog.hacomono.jp この環境も作られてから日が浅く、運用の自動化という観点でまだまだ改善 / リアーキテクチャの余地があります。 改善は例えば、この環境で動く非同期バッチの仕組みが最適化できていないため、それを改善するべ…

hacomonoのプラットフォームチーム 入社3ヶ月の振り返り

…勉強会での知見共有 マルチテナント環境のロギング、モニタリングにdatadogを活用しています。 僕自身はdatadog自体を使った事がなかったため、勉強しながら、datadog内のどこで何ができるのかといった知見共有を行いました。 hacomonoのプラットフォームチーム hacomonoのプラットフォームチームで具体的にどういった技術を扱っているかは、過去のテックブログも参考にしていただければと思います。 マルチテナント: モジュラーモノリス: 入社前の印象 最近プラット…

Jenkinsによるデプロイ時間を1/2に短縮した話

…を行いました。新しいマルチテナントアーキテクチャは新規環境の格納に利用しており、旧来からご利用頂いているお客様は旧来のシングルテナントアーキテクチャ上で動作しております。 今回の記事ではシングルテナントアーキテクチャのリリース作業を対象にお話します。 背景 hacomono では 2021年から Jenkins を用いた継続デリバリーを運用しており、隔週でリリースを行なっています。 Jenkinsを使用した継続デリバリーの運用は、最初はスムーズで問題がなかったものの、haco…

マルチテナントへの道 番外編: ChatGPT-4 を使ってブログを書いてもらった

…v)です。 前回、「マルチテナントへの道 Provisioning 編」と題して、マルチテナント化のプロビジョニングに関するお話をさせていただきました。その際、ChatGPT-4を全面的に用いてブログを作成しました。 この時のブログ制作過程をさらにChatGPT-4に記事にしてもらいましたので、以下に紹介します。 プロンプト 「マルチテナントへの道 Provisioning 編」を作った際のチャットにおいて、以下のプロンプトを与えてみました。 「マルチテナントへの道 Prov…

マルチテナントへの道 Provisioning編

…りました。 今回は「マルチテナントへの道 Provisioning 偏」と題しまして、マルチテナント化のプロビジョニングに関するお話をさせていただこうと思います。 TL;DR Rails のマルチテナント化は apartment gem を利用して実現 テナントグループという単位で Rails API を分割 テナント追加等の日々のオペレーションは Kickflow 経由で実行 Rails のマルチテナント化 マルチテナント環境では、複数のテナントが同じアプリケーションにアク…

マルチテナントへの道 Gateway編

…しました。 前回は「マルチテナントへの道 序章」と題して hacomono のアプリケーションアーキテクチャの刷新について触れさせていただきました。 今回は前回の中で詳しく書けなかったアーキテクチャの技術要素について深堀りさせて頂ければと思います。 TL;DR 新旧2つのアーキテクチャが同時稼働するハイブリッド環境 透過的に取り扱うための API Gateway が必要 API Gateway を支える Routing Table の仕組み アーキテクチャの変更 前回の記事で…

マルチテナントへの道 序章

…を抱えるのは辛い。 マルチテナントアーキテクチャへ移行した。 今回の記事はお触りだけで、詳細は続編へ続く。 hacomono のアーキテクチャ 2021 年当時、hacomono では 150 社ほどのお客様へサービスを提供していました。 当時のアーキテクチャはお客様毎に環境を提供しており、Provisioning は Jenkins 経由で Terraform と Ansible を実行することにより実現していました。 しかしながら上記のアーキテクチャにより、以下の述べる様…

データ分析用に BigQuery を導入してみた

…りました。 例えば、マルチテナントの場合だと、 SELECT COUNT(*) FROM users WHERE deleted_at IS NULL のような SQL を叩けば会員ユーザー数がすぐに分かりますが、 hacomono はシングルテナントなので、この SQL を全テナントで実行しないと全体のユーザー数がわかりません。 また、 CS で追うヘルススコアを算出し外部サービスに同期する要件も出てきそうだったため、データを 1 箇所にまとめて分析しやすくする必要がありま…