最適化されたサーバーレス環境で
ビジネスロジックに集中
CI/CD 標準装備のスキーマ駆動 Scaffold (自動生成) による開発効率の最大化
より少ない管理コストでグローバル規模のスケールを実現
Ruby サーバーレスフレームワーク "SOULs"
SOULs はビジネスの要求を満たす開発スピードを保ちながらも高い変更耐久度や柔軟なスケーリング、耐障害性を手に入れるクラウド時代の Ruby サーバーレスフレームワークです。
SOULs プロジェクトはソフトウェアの開発・運用・保守に関するコストを下げることを目的に立ち上げられました。このプロジェクトはオランダ政府より先端研究開発として認定(WBSO)されています。
高速な開発体験
Ruby on Rails の高速な開発体験をそのままに安全性や変更容易性を高め、サーバー管理の心配も減らすことに注力しました。益々変化の速度が上がっているビジネスに対応していくためです。
私達は Ruby on Rails を手にした時の感動を忘れられません。クラウドネイティブな環境でも同様の開発体験を実現したいためActive Recordを採用し、分散システム用にスキーマ駆動 Scaffold を再構築しました。
型定義ファイルからテストファイルまで必要なファイルはすべてModelを元に生成され、ルーティングも自動で行われるため、面倒な繰り返し作業なくビジネスロジックに集中できます。
安全な運用体験
テストはすぐにフィードバックを返してくれるため、変更がシステムのほかの部分に悪影響を及ぼしてもすぐ発見できるようにしてくれます。RSpecでユニットテストを書きコード単体ごとに独立した検証を行い、バグが入り込むのを防ぎます。
Ruby 3.0 よりRBSによる静的タイプチェックが可能になりました。SteepによるIDEサポートと組み合わせることにより、コーディングしながらでもバグを見つけることができるようになり、バグを生んだ瞬間に対応できることが増え、コードベースにバグが入り込むのを防ぎます。型安全な開発環境の提供は不要なミスを減らし、かつ大規模なアプリケーションの構築をより安全にし、チームのアジリティも高く保ちます。
Linter、FormatterにRuboCopを使用することでチーム内のコーディングスタイルを統一し、コードベースに秩序と透明性をもたらします。開発意図の一致を図り、運用保守の負担を減らします。
安心な保守体験
GitHub Actionsを使用してコミットごとに小さく自動デプロイしていくことでコード統合による問題を最小限に抑えます。
テストが失敗すればエラーを本番環境に持ち込むことはないため、結果を確認し落ち着いて修正を行うこともできます。
また、分散システムを構築していてもログを一箇所で管理できるため、起きている問題をすぐに特定することもできます。
SOULs を支える技術
Active Record と Scaffold
私達は Ruby on Rails を手にした時の感動を忘れられません。クラウドネイティブな環境でも同様の開発体験を実現したいためActive Recordを採用し、分散システム用にスキーマ駆動 Scaffold を再構築しました。
Ruby v3 と RBSの型チェック
3倍速くなったRubyはクラウドにおいてさらに輝きを増します。RBSによる型安全な開発環境の提供は不要なミスを減らし、かつ大規模なアプリケーションの構築をより安全にし、チームのアジリティも高く保ちます。
RuboCop Linter/Formatter
歴史的に私達はまるで石版のような難解なコードに悩まされてきました。コーディングスタイルの統一はコードベースに秩序と透明性をもたらします。シンプルに読みやすいコードは管理しやすいコードです。
RSpecを使ったテスト
テストはすぐにフィードバックを返してくれるため、変更がシステムのほかの部分に悪影響を及ぼしてもすぐ発見できるようにしてくれます。コード単体ごとに独立した検証を行い、バグが入り込むのを防ぎます。
GitHub Actions (CI/CD)
コミット毎に小さく自動デプロイしていくことでコード統合による問題を最小限に抑えます。テストが失敗すればエラーを本番環境に持ち込むことはないため、結果を確認し落ち着いて修正を行うこともできます。
GraphQL API
速度、柔軟性、開発者にとっての使いやすさを向上させるために設計されており、実行を確認できる統合開発環境(IDE)も提供します。複数のデータソースから取得するリクエストを1つの API 呼び出しで構成できます。
固定IP制限に対応
複数のインスタンスにスケールしてリクエストを処理する分散システムでは固定IP制限に対応するのが難しい経緯がありました。SOULsではこの問題をCloud NATを使用することで解決しています。
Effortless Routing
ルーティングの作業は単純ですが広範囲に渡り、ミスも多くなりがちです。SOULsではGraphQLのQueryやMutationはもちろん、Pub/Subワーカーのトピック含め極力ルーティングに関する作業は自動化しています。
Docker コンテナ
インフラをコード化しファイル共有することでどこでも同じ環境を作れるようにします。ローカルの開発環境やクラウド上の本番環境等の環境差異に悩まされることなく再現可能なインフラ上で開発を続けることができます。
SOULs サーバーレスアーキテクチャ
SOULs は GCP (Google Cloud Platform) 上で動作するサーバーレスアーキテクチャです。FaaS (Function as a Service) ではなく、 Docker File単位でアプリを切り分けることで、馴染みやすい管理を可能にし、コールドスタート等の実用化を考える上で厄介な問題を解消しています。
Cloud Run
Cloud SQL
Cloud Pub/Sub
Cloud Storage
Cloud NAT
Cloud Scheduler
Firebase Authentication
Container Registry
GitHub Actions
Virtual Private Cloud (VPC)
IAM
Cloud Logging
パートナー
無料クレジット $200 分をプレゼント中 🎉
はじめての方はもちろん、既に GCP (Google Cloud Platform) を使用中の方も以下のリンクから $200 分の無料クレジットを獲得することができます。
SOULs は現場から生まれたフレームワークです
素早くビジネスを立ち上げ、継続的に改善を続けられるように設計しました