After years using Galaxy+Atlas for deployment, I have been offered an Ubuntu server to use to deploy a Meteor app for my university department. The app is not mission critical, does not require high availability, and there are only about 500 users (with low concurrent usage—25 concurrent users under normal usage with bursts to 75 or 100). The MongoDB database contains less than 100,000 documents, and any single user subscribes to no more than 1000 documents.
Seems like it should be easy to self-host, right?
So far, I’ve been using Docker to set up Meteor and Mongo on this new server. My in-progress documentation of this process is available here:
As you can see, I’ve just got to the point of trying to figure out oplog tailing. I’ve spent the past day or so reading on the topic, and am a little confused as a result. Lots of pages are years old, so I am not sure I have current information. I am hoping the awesome Meteor community can help me with the following questions:
(1) I have read that under certain circumstances, oplog tailing reduces performance. Would that be possible in my situation? Do I need to A/B test my performance with/without oplog tailing?
(2) I am aware of redis-oplog as a “drop-in” replacement for oplog tailing. By “drop-in”, does that mean I have to set up oplog tailing as a prerequisite to redis-oplog, or can I simply install redis-oplog and not bother to set up oplog (i.e. configure for a replica set, define the mongo oplog environment variable, etc)?
(3) Would redis-oplog be well-suited to my needs?
(4) What are the key performance indicators that I should be monitoring in order to determine that whatever choice I make is a good (or bad) one?
(5) More generally, what are people using these days for application performance management when self-hosting? I am spoiled by my years with Galaxy and its Kadira-based APM. I saw Monti APM—are people having good experiences with that? Other ideas?
I may run back to Galaxy with my tail between my legs after learning that I am terrible at DevOps, but so far I am finding this to be an interesting educational process. I will be happy to share my lessons learned with the community.