As many of you will know, Heroku will no longer be supporting a free tier. I’ve had free staging apps, and paid production apps on Heroku (Meteor and other platforms) for years now, but that won’t be possible come the end of the month. Much better to have staging and production on the same platform, so I was planning on moving my meteor apps to Galaxy.
I have just noticed that a page on the free Heroku dyno takes 2.3s to load. The same page on the free Galaxy container (pointed to the exact same database) is taking 4.3s to load. The same page on Heroku in production (but pointing to a larger database - albeit hosted by the same company in the exact same database) is slightly faster than the free one. I don’t have a paid production app in Galaxy to compare with yet - but I was planning on using a single Tiny instance, which has the same computer power I believe as the free tier. Galaxy would $9/month vs the cheapest Heroku plan at $7/month
Now, I don’t really care about performance in a staging database, but I am concerned that performance on Galaxy looks like it will be quite a lot worse (at least for query heavy pages) than performance on Heroku.
I tested a few more pages, and the ones that my users most commonly use are not actually much slower on Galaxy vs Heroku (it’s only the admin area that I use, and that is much more query heavy that seems much slower) so it’s probably not a show-stopper for me at this stage.
FWIW, my free Galaxy container and Mongo database are both in Western Europe. My heroku dyno is in the US - but even though Galaxy has the geographical advantage in not having to shunt data across the Atlantic, Heroku is still faster.
Has anyone got any experience/thoughts on this?
Galaxy is slower than running the same app on the same hardware w/o Galaxy. Always has been for some reason. You can do a lot to improve it like reducing client bundle size with dynamic imports, using a CDN, proper db indexing, efficient querying, caching responses on the server, etc.
IMO the value of Galaxy has always been the reliability, simplicity and support. Plus Meteor APM is helpful (altho some stats are just misleading or incorrect). If performance is really important I’d probably use EC2 directly with meteor-up, or ECS and Fargate.
Hello @chabekah , how are you?
We also have to compare that Heroku is
512 Ram and Galaxy Tiny is only
256 Ram .
But as an alternative to improve you can follow many of the tips that @efrancis said.
We are always looking to improve our infrastructure and make it faster, I will take your thread to our internal team to see what we can improve in this regard.
Thanks to both of you for getting back to me. I also heard back from the Galaxy support folks (Vitor) who also helpfully pointed out the difference in RAM as well CPU power. Without benchmarking, I’m not sure whether it would be the RAM or the CPU that affects my application the most. My guess is that boosting the Galaxy container to “Compact” might be comparing more similarly specc’ed machines - but Heroku’s 512MB container is about $7/month, compared to Galaxy’s one for $29/month. So, there is quite a price difference (4 x) for - I think - similar hardware, and (probably) performance. Support of course is something else, and though I have not needed it (yet!) from Heroku over the last few years, if it’s better from Galaxy, then that is a factor in the price.
There have been a few discussions on this before, mainly comparing to AWS, but the bottom line is Galaxy performance leaves a lot to be desired and defines performance in ECUs which isn’t really used by anyone anymore. See this thread.
Yes I’d like to see Galaxy stop using ECU for container specs. It was always a confusing and hard to define metric anyways, now that AWS doesn’t use ECU it basically just makes it difficult to compare Galaxy hardware to other services.