I’m developing a android/ios app for a client and the client has insisted on cheap hosting.
The app is a small social media. I.E -photos, real time chat, for a group of roughly 50-60 people.
Possibly up to 20 people using the app at the same time.
Will the 5$/10$ month or payment plan over at Digital Ocean be sufficient enough for this?
This is my first production app using meteor so it’s fair to say, I’m green on the subject.
$5 droplets will be absolutely fine, I think. The mongo files with be in something like compose.io right? Or will you be installing Mongo o the droplet?
I think yo will be fine with running mongo and meteor in a 5$ droplet. You can always increase your droplet size later and move your db to compose.io or to a new droplet.
20 people at a time for a chat-ish app? Beyond backup I don’t see much that you’d usually have to take care of in running your own MongoDB instance. It’s not like it needs careful tuning before it can handle that kind of load, or constant supervision or something
1GB RAM is probably advisable, though, not sure how much memory Meteor and Mongo consume by default. But you should be fine if you keep an eye out on memory usage every once in a while (using something like Kadira) and upgrade the droplet should you notice things getting close to the 512MB. One small-ish production app of mine uses 250MB memory in idle (Meteor + MongoDB), so 512MB might work?
You’ll have a hard time finding much specific info on this, because, frankly, what would you even search for?
MongoDB is a proven system, so it handles many kinds of common workloads without an issue, and so noone would be writing about that on the internet. And noone will, or can, tell you what exactly the resouce requirements will be for your specific app/service.
Just get started and keep an eye on things, and if you encounter specific issues then you’re likely to find answers. And if you see your app growing beyond the resource constraints you have set you of course either optimize or increase resource allocation, or a mix of both.
What you feel is probably mostly the uncertainty and slight discomfort of doing something for the first time – deploying a production app, in this case. No cure for that but actually doing it, moving ahead, experiencing it. At least that’s the vibe I’m getting from what you’re sharing (And absolutely nothing wrong with that, of course!)
Not much, no – at least not that I would expect that. Again, it depends on your specific app and on how your users use it, but in general it’s just more of the same. You’ll just monitor resource usage and bump up the capacity from a 1GB droplet up to 2GB/4GB/8GB. That’s very likely still easily within what a single DO instance can handle.
Could you elaborate, i.e. explain the details of why this would relieve the server load? Would CF buffer the complete upload or most of it and only then pass it on to one’s backend server? nodejs (and thus Meteor) is quite good at handling I/O (including uploads, I should assume), do you have it from experience that using CF in front of Meteor/nodejs brings such a big benefit?
EDIT: alright, never mind – you were referring to CloudFlare in front of an app that simply has lots of static content, like for example user-generated/-uploaded images etc. That one is clear, and I hope there’s very few people trying to expose a Meteor app directly without anything like nginx or CloudFlare in front of it for handling static content and more.
I thought if you upload something you’ll eventually serve that file as a static content. Meteor isn’t best for serving static content but that is not my point. Whatever you use on your server it’s still wise to reduce traffic to your server as much as you can and using cloudflare is pretty easy so it’s a good choice in my opinion.
EDIT: Meteor isnt best for serving static content because you’re putting unnecessary pressure to your realtime server with serving static content. If you still have to use meteor for that i think it’s best to write another meteor application just for serving static content or configure a caching system around it and that’s what cloudflare provides for you without any effort.