5 ms·
I run Minimal Reader [1] (which has about 5k users) and I can say that running a web app like this takes a lot of time and energy keeping everything running smo
by jsherer 12y ago
I run Minimal Reader [1] (which has about 5k users) and I can say that running a web app like this takes a lot of time and energy keeping everything running smoothly.
My service has a lot of moving parts, all of which are distributed among a couple dozen different servers. Keeping the technical infrastructure running smoothly requires a lot of data visualization of server stats, database stats, web request stats, worker stats, user stats, etc. I have everything piped into a nice dashboard so we can see if there is anything odd happening at a glance. When things break (and they will) you need to know where to look first.
Having 5k users also requires time to help them with support issues. Users generate a lot of bug reports, questions, and suggestions. To keep paying users happy, I offer a 1-day response time on support issues, which requires me to spend quite a bit of time sending emails.
Then, of course, if you want to grow the app, you need to spend time marketing it. We could talk for hours about this.
The list goes on and on. Feel free to shoot me an email (email in my profile) if you want to talk specifics about anything.
[1]: https://minimalreader.com/ https://minimalreader.com/
- inchforward 12y ago24 servers? Can you elaborate on your architecture a little more? What tools do you use to help you manage them?
- ashark 12y agoOne server to serve an RSS reader to the 5k users, 23 others to host 23 different stats and monitoring applications to make sure that one server is working OK?
- ShinyCyril 12y agoI can't speak for him, but the RSS reader I am working on at the moment is similarly split into multiple parts: * Crawler - retrieves RSS feeds and parses articles * Database server * Analyser - performs semantic analysis and various other statistical processing on posts * Propagator - pushes new posts to everyone's feed * Cacher - serves a cached copy of the user's feed * Web server Based on loads I would just add more nodes depending on what was needed.
- jsherer 12y agoPretty close :)
- thebiglebrewski 12y agoOne server (machine), 23 servers (waiters) to cater to that one servers' (machine) every needs?
- jsherer 12y agoCloser to 50/50. 50% of the servers do actual tedious work. 50% cater to users' needs.
- jsherer 12y agoMost of the servers are workers which fetch feeds. Parallel downloads across a number of low-level commodity servers. Additionally, there's a master and slave Postgres database, a small Cassandra cluster, 2 redis boxes, an elasticsearch cluster, front-end servers, caching servers, etc. Shoot me an email if you want to talk in more detail.
- NYCounihan 12y agoand one server to rule them all...
- ShinyCyril 12y agoThis looks like a really slick app - congratulations! I'm actually working on an RSS reader at the moment with a few similar philosophies (respecting privacy, lightweight design etc.). There's a lot of competition in the RSS reader space since the sad demise of Google Reader - how did you market the site and get your first users?
- jsherer 12y agoThanks. Selling a web service to consumers in a market where the previous leader was free is tough. But, it's doable. Shoot me an email (email in profile) if you want to talk specifics.
- martin_ 12y agoStackExchange does 590million monthly views with around half that [1] and it includes redundancy. Do you think 24 could be overkill? [1] http://stackexchange.com/performance# http://stackexchange.com/performance#
- jsherer 12y agoNot overkill as servers are not equal and different apps require different infrastructure. The bulk of my servers are small worker servers that go out and fetch feeds. Parallel downloads, high network throughput, low CPU/memory.
- deleted 12y ago[deleted]
- syllogism 12y agoHey that "queue for free account" thing is brilliant. Good presentation too!
- Abundnce10 12y agoI agree, I haven't seen the "Wait in line for a free account" before. Can you describe this feature in more detail? For example, how long does a user have to wait, does it allow in more users as the size of the queue grows, etc.?
- jsherer 12y agoIt is usually set to a fixed number of users per hour with a minimum wait time. Keeps the server happy when I get HN'd/Reddit'd/etc. (Does anybody get Slashdotted anymore?)
- jsherer 12y agoThanks. I've signed up for a couple of services that do that. It seems to work out even though some people get a little annoyed that they have to wait.
- bw00d 12y agoThanks, I will.