---
title: Monolithic Infrastructure
description: Today I learned that Stack Overflow only uses 21 servers.
slug: monolithic-infrastructure
tags: [sysadmin, infrastructure, software, web]
image: https://davidawindham.com/wp-content/themes/daw/img/opengraph_image.jpg
hide_table_of_contents: false
---
Today I learned that Stack Exchange only uses 23 servers 1. An essay entitled _Death By A Thousand Microservices_ 2 came through my reader from Hacker News where I picked up the link to the Stack Exchange setup.
I found that stat pretty amazing given the vast network of Stack Exchange sites, users, and activity. Only 23 servers serving 1.3 Billion page views a month with 600,000 sustained connections!!
- 9 web servers
- 4 SQL servers
- 2 Redis servers
- 3 tag engine servers
- 3 ElasticSearch servers
- 2 HAProxy servers
And the servers are running near the very bottom of their memory limits. Impressive evidence that the monolithic infrastructure is the way to go. The author of the essay criticizing microservices is right in line with my thinking and I was particularly fond of this quote:
>On more than one occasion I received an email from management, asking everyone to be in the office, tidy up their desks and look busy, as a clouder of Patagonia vests was about to be paraded through the office. Investors needed to see explosive growth, but not in profitability, no. They just needed to see how quickly the company could hire ultra-expensive software engineers to do … something.
I strongly agree with the approach that there is nothing wrong with a monolith. Simple is better. A small team with a simple code base can scale. It's only when you start throwing money around that it ends up being a maze of infrastructure. Even though I'm not on a team serving billions of page views, I try to apply it to the smallest of projects insisting the X or Y business does not need to have five different services for emails, fundraising, and payments. Half the time, it's someone on staff who has experience with some platform they want to throw into the mix. If they don't listen, I let em go merrily down that rabbit hole.
I've been doing it long enough now to see the long term outcomes of some of those complex setups and it's not usually good. They usually end up digging out with the same throw money at the problem approach and a complete overhaul. I prefer to use the quote as keep it stupid simple 3.
---
1. Stack Exchange _Performance_ -
2. _Death By A Thousand Microservices_ -
3. KISS principle -