Earlier quoted context omitted.
The Stack Overflow Q&A dev team has 2 people in New York, out of a team of 10 team. The Careers dev team is more New York heavy, 3 remote and 5 in New York. The sysadmin team is also quite remote, though I don't know the breakdown offhand. I believe at this point most new technical hires are remote. Our offices are mostly sales, Denver and London exclusively so.
I saw that Jason went remote recently. Any particular reason so many devs are going remote? Is it people making individual decisions or the company providing new incentives to do so? My impression when you were at 55 was that most devs worked at the office (I've been at Fog Creek since a little before you guys moved. Hi!).
The architecture of Stack Overflow [video]
41–49 of 49 posts
Re: The architecture of Stack Overflow [video]
#42Dear any Stack Overflow Developers, Can you describe the network infrastructure in finer detail? Specifically what type of load balancer are you running? And what's peak RPS? Where are your network peaks? (I'm guessing major peak US Pacific and minor US Atlantic?)
But nowadays, from what I've read here on HN by SE devs in other threads, they're using lots and lots and lots of Linux: HAProxy, Redis, Nagios, etc.
I just double-checked the slide and although I didn't notice it at first, you can see that 'HA Proxy' and 'Redis' are mentioned.
The core Q&A is in C#/MS-SQL so that's probably not going to move to Linux anytime soon.
Re: The architecture of Stack Overflow [video]
#43Earlier quoted context omitted.
Having a great Ops staff also helps ;) Of note is Thomas Limoncelli who wrote "The Practice of System and Network Administration" [1] and "Time Management for System Administrators" [2] works for Stack Exchange (formerly at Google). The Practice of System and Network Administration is basically the bible for most sysadmins, myself included. ps. I only singled Thomas Limoncelli out as an example just to highlight the…
Violently agree.
Re: The architecture of Stack Overflow [video]
#44Earlier quoted context omitted.
I would like to know more about this as well. It sounds like they are all SQL Server instances. However, he made it seem like they are reproducing the schema once per site? I.e., a separate database per site rather than sharding the shared data to multiple hosts per site. Did I hear this right in the question/answer portion?
Stack Exchange has one database per-site, so Stack Overflow gets on, Super User gets one, Server Fault gets one, and so on. The schema for these is the same. There are a few wrinkles. There is one "network wide" database which has things like login credentials, and aggregated data (mostly exposed through stackexchange.com user profiles, or APIs). Careers Stack Overflow, stackexchange.com, and Area 51 all have their o…
Re: The architecture of Stack Overflow [video]
#45Re: The architecture of Stack Overflow [video]
#46Earlier quoted context omitted.
Stack Exchange has one database per-site, so Stack Overflow gets on, Super User gets one, Server Fault gets one, and so on. The schema for these is the same. There are a few wrinkles. There is one "network wide" database which has things like login credentials, and aggregated data (mostly exposed through stackexchange.com user profiles, or APIs). Careers Stack Overflow, stackexchange.com, and Area 51 all have their o…
How do you manage schema changes with release deployments across across all of the databases that are meant to be standard?
Re: The architecture of Stack Overflow [video]
#47He mentioned that they use the servicestack.text library. I've looked into servicestack recently (using the nuget packages), but then found the library to be pay-to-play. There's an older version (v3) that is BSD licensed that is being maintained. Do any of you have experience with it? I have grown tired of Microsoft pushing new solutions to the same problem (REST service with WCF and then Asp.net web api).
Re: The architecture of Stack Overflow [video]
#48Earlier quoted context omitted.
How do you manage schema changes with release deployments across across all of the databases that are meant to be standard?
All the schema changes are applied to all site databases at the same time. They need to be backwards compatible so, for example, if you need to rename a column - a worst case scenario - it's a multiple steps process: add a new column, add code which works with both columns, back fill the new column, change code so it works with the new column only, remove the old column.
- Do you use any tools for orchestrating the rollout of those schema changes or do you just have some homegrown scripts?
- Do you separate your schema versioning and deployment process from your application versioning and deployment process?
- How do you handle cases where backwards-compatibility is not possible? For example, a new application feature that depends on a brand new table.