Galaxy deploy vs Digital ocean

I have a set of tiny apps ( single app is a game ) written in meteor, currently i have them deployed on DO bu i would prefer to go with galaxy as it is dedicated solution. I started thinking about galaxy but it seems to be more expensive than DO, far more. On DO 5$ droplet is nough for my needs while on galaxy tine container on professional plan is 18$ with 256 memory ( 5$ on Digital ocean is 1GB ). Tell if im wrong but with set of 10 apps if want to have also staging server for each i will have to pay at least 180 USD monthly right? Or there is a way to somehow share container between the apps and autoscale when needed?

Hi, I’m glad that you asked this question.

Digital Ocean offers just a server (droplet) for you to run your Node.js app.

Meteor Cloud (Galaxy) offers you many custom features built from scratch thinking in Meteor apps.

You can see the whole list of features here.

You don’t need to configure anything to start running with Meteor Cloud, and your staging servers could run in our free plan (assuming that your app can run in a Tiny container). Meteor Cloud also offers auto-scaling, so you need to run more containers only when your app needs them. The rest of the time, you can run just one container (or three if you want to have high availability enabled all the time).

Now, putting that aside, if you compare having everything ready for you and with Meteor experts to support you along the way with running a server somewhere else, yes, Meteor Cloud costs more money.

I think the question is: how much money and time are you going to spend to achieve production quality doing everything from scratch in an environment not tailored for Meteor apps?

Cost is different than value, and Meteor Cloud offers you a solution with everything included so you can focus on building your app.

Both options are valid, but you need to analyze the tradeoffs and choose what is better for you at the moment.

If you have more questions, please ask here or in the support channel support@meteor.com.

4 Likes

Currently I used to DO to deploy App & DB on the same droplet.
I would like to try Meteor Cloud.
For example, I have One App (POS) and then I would like to share container for more than one customers with difference DB. Could I do this?
Now I deploy my App many time on many difference DO container for many customers (The Same App).
If I use Meteor Cloud, I need to use other Mongo Cloud?
Could you explain?

Hi @theara, sure. I can explain both cases.

No, we don’t support multiple apps in the same container, and we believe this is not a good practice in general. It will be hard to optimize different apps in the same container. By different apps, I mean different codebases and not different domains. More about that later.

Yes, you can use the same app and container for multiple clients. In Galaxy, we support unlimited numbers of domains per-app even to have Whitelabel versions of your app running just one container (and one app).

Yes, for production usage, you need to host your MongoDB somewhere else. We are not a DB Hosting company. We offer a free shared MongoDB instance for hobby projects.

Please let me know if something isn’t clear enough in my answers.

1 Like

Thx for reply @filipenevola

No, we don’t support multiple apps in the same container, and we believe this is not a good practice in general

I agree but on lets say digital ocean you can run multiple containers in one droplet while on galaxy you pay oper container so which makes my case of 10 really small but separated apps even worse suited for galaxy. Am i right?

Yes, if you can put a bunch of apps to run in a small server, it would cost you less money, but I believe most apps can afford a cost of $9/month, especially if you are making money with these apps. And you have the benefit of isolation between apps, easy to scale, expert support, and everything else included on Galaxy.

@filipenevola Very thanks for your reply :blush:
(Excuse me, my English not good)

It mean that, I could deploy only one app on Galaxy, but with difference domains (IP/PORT) and difference DB???
OR the same MongoDB. And this case we must prepare DB for multi company registration support???

Yes, you can configure only one app for multiple clients/companies. You wouldn’t need to change IP or PORT you could have different domains or subdomains for each one of them.

In your app code, you can detect from which domain the request came from and then apply the necessary logic, for example, to use a company ID to filter the data.

1 Like

For multi-tenanted SaaS projects I always use mizzao:partitioner (which is now part of the community packages repo), although for a while now I’ve been using my own, optimised fork wildhart:partitioner.

With this package all tenants share the same database, but you assign each user to a groupId, and ‘partition’ each collection. Then, at a low level using mongo hooks, any query/update you write automatically gets the user’s groupId added so only documents belonging to the user’s groups are returned. Any new users or documents created by the user are automatically assigned to the group.

This means that once the collections are partitioned, you can pretty much forget about writing multi-tenanted code and have no risk of exposing a user’s data to other tenants.

This doesn’t need the hassle of multiple deploys or subdomains (although subdomains can be useful if you want to white-label the login page for the users of each tenant).

2 Likes

Thanks for all reply, I will try :blush: