Hello - I’m new to this discussion board (although not new to Rails at all)
I don’t see any discussion on this topic right now. Every time our teams have a new site to launch we do one of two things
If we’re working fast and want a staging environment we just deploy to Heroku. Sometimes teams immediately hit a gotcha in that Heroku doesn’t support sqllite (the default Rails db) and it’s moved to Posgres or MySQL. This always gets torn down in favor of Terraform and Ansible when we need a production environment.
When we’re ready to deploy to production we configure terraform and ansible to build infrastructure and deploy the application to our environments. We have a bunch of separate repos in GitHub for modules associated with those, and we end up making some level of spaghetti out of where our secrets are stored - rails credentials vs AWS parameter store (SSM) etc. This is the main area of rails where we tend to “configure” rather than follow any sort of community driven convention.
Since Rails is Convention over Configuration, is it time to start discussing whether Rails can provide reasonable defaults for Infrastructure as Code?
The main consternation I have about this idea is that infrastructure is usually a paid service (although most providers have a free tier), and favoring a provider doesn’t sound like a great idea. I do think, however, that bringing opinionated DevOps practices into Rails could be a huge value add if done right.