I've been playing with Heroku for the last few weeks trying to get an idea of whether I want to launch my next site on Heroku. I have a couple of questions for Oren (or anyone else at Heroku that can answer them).
1) How often do problems like apps not being able to spin up like what happened today happen? In other words, I'd like to see real uptime statistics for Heroku. 2) In the event that a new app can't be brought online (like what happened on Heroku today) what systems/processes are in place at Heroku for the administrators to become aware of the problem? In other words, is there an automated system, or is it reliant on users like myself posting support requests? (Note: Todays outing had nothing to do with my code, but was an internal Heroku error). 3) The Heroku status page http://status.heroku.com/ said the following: [QUOTE] App Spinup Interruption MAR 14, 2010 – 2:19 UTC New and idled apps can not be spun up. We are working on resolving the problem immediately, and expect a fix in the next 30 minutes. All running apps are currently fully operational. [/QUOTE] and a subsequent post said: [QUOTE] All Systems Go MAR 14, 2010 – 3:30 UTC No known issues at this time. [/QUOTE] However, my app would still not start at Mar 14, 2010 - 4:25 UTC. So, what exactly is the definition of "New and idled apps". My understanding is that as long as I'm paying for dynos that my app will not go idle, but if I increase the dynos from say 4 to 10 are the 6 new dynos considered 'new' and won't start in such a situation? What about workers? What about accidentally pushing a 'new' version of code during such an outage? I assume this would effectively bring my running app offline. 4) If I have a running app that is being concurrently hit by say 100 users. What is the exact process the server takes when I push a new version of code? In other words, do those 100 users immediately get disconnected, or does Heroku spin up the new app, redirecting all new requests to the new version once it is online, and then terminate the 'old' version dynos after all existing requests to those dynos have been satisfied? Basically, what is the user experience for someone who is in the middle of submitting their credit card info at the precise time that I push a new version of code? 5) I'm a little concerned about recent posts dealing with getting large datasets in and out of the database on Heroku. I've read plenty of creative ideas on how to get the data in and out, but nothing that would really be considered acceptable for a high traffic site that needs virtually zero downtime (especially with the posts saying that Taps gets really slow after about 500 MB). Does Heroku have any plans of making it easier to get large datasets in and out of the database? What about scaling the database? It's easy to spin up app dynos, but what about moving from a Fugu database to a Zilla? What kind of downtime are we looking at for such a transition? (How about from Ronin -> Fugu?) The faqs state: "Switching to/from a dedicated database usually takes one business day as our support staff processes the requests, and verifies that data migrations completed successfully." I assume this is for switching between say Koi and Ronin, but is it also true for Ronin->Fugu->Zilla? 6) I assume I would be looking to move away from Heroku long before I reached 2TB of data limit on the database (since at that point I would be looking for redundant systems that can have read/write traffic separated, etc which Heroku doesn't appear to support), but how would I get this data off Heroku? 7) What systems are used to store the database data? In other words, how safe is my data in the event of system failure (hard disk, etc)? Single disk, Raid 1, Raid 5, Raid 10, etc? 8) In the event of system failure, what kind of support can I expect from Heroku to get the database back online? (Meaning that a hard disk failure with a response of "restore from your backup bundle" would not be considered acceptable. Transaction logs would need to be replayed, etc.) 9) DNS related: Is it possible to have say 2 set subdomains for a given domain (ex: forums.mydomain.com, chat.mydomain.com) that point to separate apps, and then have a catchall domain point to a 3rd app? Ex: subdomainXYZ.mydomain.com points to a given app for any value of XYZ. The docs seem to indicate that I need to use the heroku console to add any subdomains, so what I'm looking for is how I would add a catchall domain in Heroku. Basically I'm debating using Heroku vs. Amazon EC2 directly vs. running my own servers and want to understand all the variables involved with Heroku. Thanks in advance. -Chris -- You received this message because you are subscribed to the Google Groups "Heroku" group. To post to this group, send email to her...@googlegroups.com. To unsubscribe from this group, send email to heroku+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/heroku?hl=en.