大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に
Googleは、同社がクラウドサービスとして提供しているCloud SpannerをRailsのActive Recordに対応させるアダプタ「activerecord-spanner-adapter」が正式版となったことを発表しました。
Cloud Spannerは、Googleの多数のデータセンターにまたがる地球規模で大規模分散処理を行うリレーショナルデータベースです。事実上無制限とされる高いスケーラビリティと99.999%の高可用性を備えつつ、強い一貫性とトランザクション処理、SQLによるクエリなどを実装しています。
メルカリの決済サービスであるメルペイがバックエンドデータベースにCloud Spannerを採用し、数百万ユーザーの処理を行っているとされています。
このCloud SpannerをRailsのActive Recordのバックエンドデータベースとして使えるようにするアダプタ「activerecord-spanner-adapter」がRuby Gemとして公開されており、12月7日付けでバージョン1.0に到達しました。
RailsのActive Recordは、SQLを意識することなくRubyでデータベースの検索や更新などを行えるライブラリです(単体やほかのフレームワークで利用することもできます)。
このActive RecordでCloud Spannerをバックエンドデータベースにすることにより、Rubyで高い可用性とスケーラビリティを持つアプリケーションの開発が容易になったといえます。
対応するActive RecordとRubyのバージョンは以下の通りです。
- ActiveRecord 6.0.x with Ruby 2.6 and 2.7.
- ActiveRecord 6.1.x with Ruby 2.6 and higher.
PythonからもORMで利用可能に
同時に、Cloud SpannerがPythonのORM(Object Relational Mapper)としてよく使われているSQLAclhemyの方言として実装した「sqlalchemy-spanner 1.0.0」もバージョン1.0に到達したことが発表されました。
Google Cloud Spanner Dialect for SQLAlchemy #googlecloud https://t.co/DoKNW3uXlU
— GCP Weekly (@gcpweekly) December 10, 2021
Active Recordでの例と同様に、SQLを意識することなくPythonのオブジェクト操作によってCloud Spannerデータベースの操作を行うことができるため、Pythonで容易にスケーラブルなアプリケーション開発が可能になります。