マイクロサービス・アーキテクチャと共存する Ruby on Rails のアーキテクチャ的拡張 – その事例と可能性 / Sohei Takeno

テクノロジー



https://kaigionrails.org/2021/talks/Altech_2015/

近年、コンテナ技術やクラウドサービスの発展によって、必ずしも単一のプログラミング言語のみでシステムを構成しないケースも増えてきました。私たちのサービスにおいても、機械学習技術などの導入の必要から、5年前から Ruby 以外の言語と共存していく形で、マイクロサービス・アーキテクチャを段階的に導入してきました。

この取り組みの中で、Ruby on Rails 自体のアーキテクチャも見直しが必要になりました。例えば、通信に gRPC を採用する場合、HTTP を前提とした Rack の仕組みには乗ることができず、したがってコントローラー層も再定義する必要があります。ほかにも API スキーマの導入、API レスポンスの型付きの組み立て、ActiveRecord に依存しないデータのバッチローディング機構の導入などを行っています。

今回の発表では、これらの経験を踏まえて単一の統合システムとして設計された Ruby on Rails を Polyglot なマイクロサービス・アーキテクチャに適合させていくにあたって、どういった課題が一般的にあり、それを私たちのサービスにおいてはどのように解決したのかをお話しします。同じ課題を持っている方はもちろんのこと、アーキテクチャ拡張に対して開かれているという Rails の利点を見直す機会となり、今後の発展可能性の議論につながれば幸いです。

資料 https://speakerdeck.com/altech/the-architectural-extension-of-ruby-on-rails-to-fit-to-microservices

発表者
Sohei Takeno
GitHub https://github.com/Altech
Twitter https://twitter.com/Altech_2015

Kaigi on Railsは、初学者から上級者までが楽しめるWeb系の技術カンファレンスです。
https://kaigionrails.org/

Comments

Copied title and URL