Home » Архитектура переполнения стека – доктор Милан Миланович

Архитектура переполнения стека – доктор Милан Миланович

В этом выпуске мы говорим о:

Итак, начнем.

в недавнее интервью с Скотт Хансельман, Роберта Арковердеруководитель технического отдела в Stack Overflow, раскрыл историю об архитектуре Stack Overflow. Они обрабатывают более 6000 запросов в секунду, 2 миллиарда просмотров страниц в месяц, а рендеринг страницы занимает примерно 12 миллисекунд. Мы предполагаем, что они используют микросервисное решение, работающее в облаке с Kubernetes.

Но история немного другая. Их решению 15 лет, это гигант монолитное приложение, работающее локально. Это одно приложение на IIS, на котором работает 200 сайтов. Это единственное приложение работает на девяти веб-серверах и одном SQL-сервере (с добавлением одного горячего резерва).

Они также используют два уровня кэша, один на SQL Server с большим объемом оперативной памяти (1,5 ТБ), где у них есть 30% доступа к БД в оперативной памяти, и два сервера Redis (главный и реплика). Кроме того, у них есть три сервера тегов и 3 поисковых сервера Elastic, которые используются для 34 миллионов ежедневных поисков.

Всем этим занимается команда из 50 инженеров, которым удается внедрение в производство за 4 минуты несколько раз в день.

Их полный технологический стек является:

  • С# + АСП.НЕТ MVC

  • щеголеватый ОРМ

  • StackExchange Redis

  • Мини-профилировщик

  • Джил Джейсон Дезельазие

  • Исключительный регистратор для SQL

  • Sigil, помощник по созданию .Net CIL (для случаев, когда C# недостаточно быстр)

  • NetGain, высокопроизводительный сервер веб-сокетов

  • наблюдательмониторинг информационной панели, опрос большинства систем и подача данных из Orion, Bosun или WMI.

  • Bosun, серверная система мониторинга, написанная на Go

Архитектура переполнения стека

Если вы хотите узнать больше об их архитектуре, есть серия статей от Ника Крейвера, одного из инженеров 2016 года. Это немного устарело, но архитектура должна быть той же.

Во время Черной пятницы в прошлом году Shopify удалось обслужить 1,27 миллиона запросов в секунду. И вы, наверное, думаете, что такое большое количество запросов могут обработать только какие-то навороченные микросервисы. Правда немного другая.

Shopify использует модульный монолитный подход, сохраняя весь свой код в одной кодовой базе, но модульной. Монолитная архитектура является самой простой для понимания и реализации. Поскольку монолитная конструкция проста в разработке и позволяет командам быстро действовать на начальном этапе, она может распространить приложение на большие расстояния, чтобы продукт был представлен клиентам раньше.

Централизация развертывания приложений и обслуживания кодовой базы дает множество преимуществ. Весь функционал будет доступен в одной папке; вам нужно управлять только одним репозиторием. Кроме того, это означает, что необходимо поддерживать один конвейер тестирования и развертывания, что может сэкономить много работы. Возможность вызывать различные компоненты вместо того, чтобы полагаться на API веб-сервисов, является одной из наиболее привлекательных. преимущество монолитной архитектуры над несколькими другими сервисами.

Shopify реализовал одну версию модульного монолита с компонентизация в Ruby on Rails. Они организуют базу кода вокруг реальных концепций (таких как заказы, доставка, запасы и выставление счетов), что упрощает маркировку кода и людей, которые его понимают. Каждый компонент представляет собой мини-приложение Rails (модуль), которое изолирует бизнес-домены друг от друга. Каждый компонент претендует на единоличное владение связанными данными и определяет простой выделенный интерфейс с границами домена, передаваемыми через общедоступный API.

Проверьте ссылки [1], [2].

Это история о Уровни.к вашему сведению, которому удалось масштабироваться до миллионов пользователей всего лишь Google Таблицы как серверная часть. Это карьерный сайт для профессионалов, который ежемесячно посещают 1–2 миллиона уникальных пользователей.

Они хотели двигаться быстро и сосредоточиться на важных вещах, когда начинали, поэтому им нужен был бэкэнд. Они использовал подход без кода с Google Forms + Google Sheets (с добавлением AWS Lambda и API Gateway). Это также позволило им сэкономить время разработчиков, снизить сложность и сократить затраты на инфраструктуру.

Тем не менее, их архитектура работала хорошо в течение 24 месяцев, но база пользователей выросла, и у них начались проблемы, поэтому они решили перейти на новый бэкэнд с базой данных и API-сервером. Они продублировали запрос на запись в свою новую базу данных и прочитали данные из нового API по мере того, как тот был готов, поэтому Google Таблицы были удалены.

Проверять полная история.

диаграмма

Архитектура Levels.fyi

Чтобы узнать больше о модульных монолитах, проверьте здесь:

Почему вам следует сначала построить (модульный) монолит?

В последние годы мы наблюдаем значительный рост количества приложений, созданных с использованием архитектуры микросервисов. Основная причина, по которой мы выбираем этот подход, заключается в том, что небольшие команды работают изолированно, не заставляя их спотыкаться друг о друга. Но это организационная проблема, а не техническая. Мы также можем создавать каждую услугу с использованием различных технологий и масштабировать ее…

Читать далее

4 месяца назад · 26 лайков · 2 комментария · Доктор Милан Миланович

🎁 Если вы заинтересованы в спонсировании одного из следующих выпусков и поддержке моей работы, одновременно делая этот информационный бюллетень доступным для читателей, посетите Спонсорство Tech World с информационным бюллетенем Milan возможность Мир технологий с информационным бюллетенем Милана.


2023-09-22 09:01:40


1695429061
#Архитектура #переполнения #стека #доктор #Милан #Миланович

Read more:  Доктор Ненков пострадал из-за дыры в тротуаре в центре Софии (ФОТО) - Происшествия - Болгария - NOVA News

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.