こんにちは!Volare Advent Calendar 2021の9日目の記事です。
ちょうど少し前に話題になっていたRubyのサーバーレスフレームワークであるSOULsを触ってみて素晴らしかったので紹介します、、!
今後も少しづつ触っていくので補足していきます。
SOULsとは
Active RecordとScaffoldやCI/CDが標準装備された、Rubyのサーバーレスフレームワークです。
GCP (Google Cloud Platform) 上で動作します。
オランダ政府より先端研究開発として認定されており、日本人の方が開発されているためドキュメントも丁寧です。
全体アーキテクチャ
公式ドキュメントに載っているアーキテクチャはこちらになります。
SOULsを使うことのうまみ
Railsを使わないで、SOULsを使うことで何が得られるねんってことですが並べていきます。
サーバー管理が不要
SOULsはサーバーレスフレームワークであるため面倒なサーバー管理が不要です。
SOULs プロジェクトはソフトウェアの開発・運用・保守に関するコストを下げることを目的に立ち上げられました。
公式ドキュメントにこの記載があることから特に重視してることがわかります。
高速な開発体験
Railsのメリットとして開発速度が早いというものがあります。
SOULsはこれをActive RecordとScaffoldの採用とファイル生成の自動化によって引き継いでいます。
型定義ファイルからテストファイルまで必要なファイルはすべてModelを元に生成され、ルーティングも自動で行われちゃいます。
Rubyの型チェック
SOULs フレームワークでは Ruby 3.0 から登場した RBSとSteep を採用しているため型安全な開発ができます。
タイプミスやカラムの型違いなどのあるあるなミスが防げます。
自動テスト&自動デプロイ
デフォルトでGitHub Actionsが使用されるため、悩むことなくテストからデプロイを自動化できます。
また、コマンドでGitHub Actionsの実行状況を見ることができるため、わざわざGitHubに見にいく必要がありません。
最後に
また、本記事ではGCPにはデプロイしていませんがこれもGitHubActionsが用意されているので簡単にできます。
RubyにはRuby on JetsというAWSで動作するRubyのサーバーレスフレームワークがあるのですがGCPで運用するのであれば全然SOULsでよさそうな気がします。
コマンドの充実やファイル生成などの自動による高速な開発体験でかつ、Rubocop, RSpec, RBSによって生み出される安全性を兼ね備えたSOULsはサーバーのことを気にせず、ビジネスロジックに集中できます。
また、SOULsは特に本番で運用されることを想定して作られているので業務の際には選択肢の1つに入れるといいかもしれません。
別の記事でAPIを立ててみた時の手順をまとめたので気になる方は是非。