開発の動機と目的

ソフトウェア開発現場では多くの人々が日々血と汗を流し大変な思いをして頑張っているにも関わらず、ソフトウェアのレガシー(理由はなんであれ修正、拡張、作業が非常に難しいコードのこと)化など頭を抱えさせられるような難問は増え続けており、そのような難問は人々の心を蝕み続けています。

もともと失敗しやすい性質のあるソフトウェア開発プロジェクトは毎年世界中で多額の損失を生み出しているのが現状です。

SOULs プロジェクトの目的

SOULs プロジェクトはソフトウェアの開発・運用・保守に関するコストを下げることを目的に立ち上げられました。

ソフトウェア開発の内製化が進む現代において、あらゆる業界での DX(デジタルトランスフォーメーション)実現シナリオを支援するためにも、今後も SOULs はオープンソースとして開発を続け、ソフトウェア開発全般の課題解決に貢献したいと考えています。

サーバー管理という骨の折れる作業

歴史的にサーバー管理は私達にとって常に骨の折れる作業であり、ときには眠れぬ夜を幾度となく経験してきました。

サーバー設定は一つ一つがかなり重要な割に効率的な可視化は難しく、全体を把握することがとても困難なものです。

開発環境と本番環境との差異に悩まされることも少なくない中、たった一つのタイピングミスがあるだけでもサーバーはダウンし、エラーの特定には時間がかかります。

また、多くの場合は事前にサーバーリソースを用意しておくため、そのサービス毎のピーク時アクセス負荷を予測する必要があります。そしてその予測がハズレた場合、サーバーはダウンするか大幅なレスポンス遅延が生じます。

このように多くの問題がサーバー管理周りで発生するため、これらにかける時間はかなり大きいものになります。

クラウド、そしてサーバーレスの時代

今日ではクラウド技術が発展し、サーバーレスという発想が生まれ、実用化されるほどになりました。

サーバーレスアーキテクチャは、パブリッククラウドのマネージド環境を使用することにより、サーバー管理コストを極限まで削りつつも拡張性が高くスケーラブルなアプリを構築することができます。

SOULs のアーキテクチャについて

SOULs アーキテクチャ

SOULs はビジネスの要求を満たす開発スピードを保ちながらも高い変更耐久度や柔軟なスケーリング、耐障害性を手に入れるクラウド時代の Ruby サーバーレスフレームワークです。

私達は Ruby on Rails の高速な開発体験をそのままに安全性や変更容易性を高め、サーバー管理の心配も減らすことに注力しました。益々変化の速度が上がっているビジネスに対応していくためです。

進化し続ける Ruby の開発周辺ツールを活用し、開発体験・スピード及びコード品質の向上を担保しています。RSpec テスト含めこれらのコードはすべて Scaffold によりデータモデル Schema から自動で生成されるため、高速に開発でき保守のしやすいコードベースを保持することに貢献します。

サーバーレスアーキテクチャの実現により開発環境と本番環境の差異や煩雑な cron など、可視化しづらいサーバーの設定や状態の管理に悩まされる時代は終わりつつあります。サービスの規模拡大に合わせてサーバー規模をスケールしていくことも、セール時のスパイク的なアクセス集中に耐えることも、Web アプリケーションによくあるインフラに関する課題が殆どの場合自動で解決されます。

GitHub によるコードベースのバージョン管理と、GitHub Actions による自動テスト&自動デプロイもデフォルトで組み込みました。チームでの効率的な開発作業と変更の迅速なリリースを可能にし、エラーコードが本番環境へ入り込むことを防ぎます。