OutgrowingMadScience - noahgibbs/madscience GitHub Wiki
The MadScience stack is a thin, convenient layer over deep, powerful tools. If you find yourself deploying large clusters of hosts, you won't outgrow the underlying tools... But you may outgrow the thin layer over top of them.
In order to make this as painless as possible, MadScience includes nearly everything directly in your deploy repo. The code for parsing the JSON configuration file, the Vagrantfile hooks to use that configuration, the custom Chef code to provision your server and the Capistrano code to deploy your application are all wholly contained in the deploy repository, except for those standard open-source tools themselves (Chef, Capistrano, Librarian, etc.)
When you find yourself reaching for tools that MadScience doesn't make easy, you can directly edit the Vagrantfile, the Capfile, the config/deploy.rb file and so on by yourself. The more you edit those files, the more you diverge from MadScience as a starting point. But at some point you'll have customized your setup until MadScience isn't helping you much.
Every framework or library has a point like that. MadScience tries hard to be honest about that fact and not to lock you in.
If you find yourself replacing one of the core tools in the MadScience stack, such as Chef, Capistrano or RVM, you're also wandering outside the scope of the tool. That's fine, and isn't necessarily all that hard.
You'll just find that, increasingly, it's not work it to keep using MadScience as you diverge farther and farther.
When you're ready to spend many hours customizing your deploy for your specific use case, you'll spread your wings and fly.
Does This Mean I Shouldn't Use MadScience...?
MadScience is a tool for developers and small businesses, and it's a transition tool for businesses growing bigger. But it isn't designed to replace a team of full-time DevOps engineers. There is a point in your growth where you may need a team of full-time DevOps engineers.
By the time you're the size of Facebook, your core software will have outgrown us. And that's okay. It's uncommon for companies that size to use any off-the-shelf deployment tools.
If you grow to a tenth the size of Facebook using MadScience before transitioning to the full glory and horror of low-level deployment tools, MadScience will save you a lot of pain and money.
It's like asking, "if I'm someday going to want full-service professional hosting and a CDN, shouldn't I start paying $900 a month for it right now?"
No. No, you should not.