Here are some recommended services to host your Ruby on Rails apps.
They're ordered by alphabet and it does not mean one service is better than the others.
I listed those services, which I had experience with them.
Do remember that, each service had their own advantages, and their own disadvantages.
You need to choose it based on your project's needs.
If needed, consult with your developer before choosing one of them.
In many cases, you may need to experiment with each of them, before sticking to the one for a long time.
Amazon Web Services (AWS)
Digital Ocean (DO)
Shared Hosting Service
AWS contains many services like EC2, RDS, S3, Cloudfront, and the others.
You can host both of app and database on same EC2 instance.
Or, you can also host them on each own EC2 instance.
Or, you can host app on EC2 while put the database on RDS instance.
Most of the projects I've worked on use the last option.
One of drawbacks with AWS is you need someone who had experience with devops and able to set up, maintain and scale the infrastructure on AWS.
That guy should be familiar setting up the infrastructure on AWS, setting up the security group, and even optimize them for both performance and cost.
One of advantages with AWS is you'll pay as you go.
Beside, you'll have full control of servers ( AWS instances ) where you run the apps.
I may forget to mention this: AWS offered free tier service for your first year with them ( note: I never try this free tier service )
Unlike AWS, I consider DO fill the gap between AWS and Heroku.
DO did not provide such many services like AWS (EC2, RDS, S3, Cloudfront and others), yet it still give you full control of your own droplet ( the VPS you run on DO )
On DO, you may host both app and database in same droplet or you can host them on different one.
One of advantages of DO is their cheap price.
You can run a VPS with price starting from $5/month.
The price is even comparable for the monthly price of ordinary shared hosting plan.
One of the drawback with DO is same with AWS.
You need someone with devops capability to set up the droplet to host the Rails apps there.
He needs to be able installing required package, setting up the database, and maintain it down the road, or optimize it if needed.
This is my favorite platform.
Unlike AWS or DO, Heroku provides you a platform as a service.
Unlike AWS or DO, you have no need to worry anything about setting up and optimizing the infrastructure.
You can roll up the new update on your app only with git command.
Yes, just like you pushed your changes to Github or Bitbucket, you only need git push command to deploy on Heroku.
It's even offering you with 1000 free dyno hour per month.
You can even test your apps without paying anything with those free dyno hours.
The only drawback is you did not have full control over the infrastructure where your app runs.
It completely depends on Heroku's own infrastructure.
And as you know, Heroku's infra are running on AWS.
So, basically your apps are also running at the top of AWS infrastructure, layered by Heroku.
I rarely work on Rails project which hosted on shared hosting.
Among many of projects I've worked on, only one hosted on shared hosting.
It's using a2hosting service.
I don't remember quite well about the details, but the price is a bit more expensive compared to other shared hosting services.
Personally, I don't recommend to host your Rails apps on shared hosting plan.
Now, the choice is yours.