Как вы будете проектировать веб-сайт Stack Overflow?
Справочно:
Stack Overflow — система вопросов и ответов о программировании, разработанная Джоэлем Спольски и Джеффом Этвудом (англ.) в 2008 году. Является частью Stack Exchange Network. Как и в других системах подобного рода, Stack Overflow предоставляет возможность оценивать вопросы и ответы, что поднимает или понижает репутацию зарегистрированных пользователей (вариант игрофикации). Проект создан на C# с использованием ASP.NET 4 и ASP.NET MVC.
Посещаемость: более 100 млн. пользователей/месяц.
Если ваш ответ - локальные серверы и монолит (в нижней части изображения), вы, скорее всего, провалите собеседование, но так оно построено на самом деле!
Как люди думают это должно выглядеть
Интервьюер, вероятно, ожидает чего-то с верхней части изображения.
1. Микросервисы используются для разложения системы на мелкие компоненты.
2. Каждый сервис имеет свою собственную базу данных. Усиленное использование кэширования.
3. Обеспечивается шардинг на уровне сервисов.
4. Сервисы взаимодействуют друг с другом асинхронно через очереди сообщений.
5. Сервисы реализованы с использованием Event Sourcing с CQRS.
6. Демонстрация знаний в распределенных источниках, таких как конечная согласованность, CAP-теорема и т.д.
Что на самом деле?
Stack Overflow обслуживает весь трафик только с 9 локальными веб-серверами и реализован в виде монолита! Функционирует на собственных серверах и не работает в облаке.
Это противоречит всем популярным убеждениям наших дней.
Post #172
200

- 👍 4