現在、Ruby on Rails SaaS Webアプリケーションのホスティングソリューションを検討しています。最大の問題は、Amazon EC2のようなものを使用する場合でも、独自のサーバーを構成して必要なものをインストールする必要があることです(例:データベース、プログラミングフレームワーク、アプリケーションサーバーなど)。これらのそれぞれは、何かがうまくいかない機会です。また、データがどのようにバックアップされているか、どのくらいの頻度であるか、その他の「低レベル」の詳細についても心配する必要があります。スタートアップである私はシステム管理者のためのリソースを持っていないので、自分でプレイする必要があります。私は現在スタートアップのためにいくつかの仕事をしていますが、EC2は「ハードウェアビジネスから抜け出す」ことができるので、上司は常にEC2の素晴らしさについて話し合っていますが、実際には、まだセットアップが必要なため、そのようには感じていません。サーバーインスタンス、それでもソフトウェアをインストールする必要があり、ソフトウェアを適切に構成する必要があります。使用しているサーバーを実際に所有していないというだけで、私たちはまだハードウェアビジネスに従事しているように感じます。
対照的に、Heroku(実際にはEC2を使用していると思います)のようなサービスですが、基本的にすべての低レベルの詳細を処理します。彼らは私のために自動バックアップを行います、私はただ頻度を指定します。サーバー構成はすでに設定されています。彼らはそれを管理し、それを実行し続ける方法を持っているので、私はトラフィックを監視する必要はありません。アプリケーションに集中してコードをデプロイするだけで、管理について心配し、データベースがWebサーバーで適切に構成され、適切なフォルダーにアクセス許可があることを確認できます。
Herokuの問題は、変更したい場合にこれらを制御できないことです。HerokuはWebサーバーとしてnginxを使用します。ApacheでPhusionPassengerを使用して、RoR開発の「最先端」を維持したい場合、私はSOLです。本番環境で簡単なパッチを作成する必要がある場合(すべての悪の根源、私は知っていますが、時々発生します)、HerokuのサーバーへのSSHアクセスがありません。他の誰かがリモートでデータにアクセスできるようにするために新しいデータベースユーザーを設定する必要がある場合、これはできないと思います。そして最悪の場合、サーバーで何かが起こった場合、Herokuがそれを修正するのを待つ以外に何もする方法がありません。
基本的に、開発者がコードとアプリケーションに集中し、サーバー構成でsysadminを実行する必要がない場合、どの時点で実行できますか?リソースが限られており、サーバーの構成に関する知識が限られている(十分に理解できる)スタートアップとして、他の誰かにハードウェア/ソフトウェアの終わりを心配させる機能のために、構成可能性を犠牲にするほうがよいでしょうか?