Scalability

System Design. Подготовка к сложному интервью - Глава 2 - Приблизительные оценки

System Design. Подготовка к сложному интервью - Глава 2 - Приблизительные оценки

Переводы: EN

Очень короткая глава 2 посвящена тому, как делать приблизительные оценки, чтобы начать с самых важных моментов при разработке программного обеспечения.

Концепции, которые должен знать КАЖДЫЙ разработчик программного обеспечения:

  • “Сила двух”
  • Стандартные цифры задержки! Насколько быстрой является память, насколько медленным является диск и т.д.
  • Показатели доступности
  • Про какие ключевые метрики стоит думать

Эти понятия и числа раскрыты во второй главе книги:

“System Design. Подготовка к сложному интервью” Алекса Сюй. Оригинал: “System Design Interview – An insider’s guide” by Alex Xu

System Design. Подготовка к сложному интервью - Глава 1 - Масштабирование от нуля до миллионов пользователей

System Design. Подготовка к сложному интервью - Глава 1 - Масштабирование от нуля до миллионов пользователей

Переводы: EN

Отличный общий план для масштабирования любого приложения с нуля до миллионов пользователей.

  • Настройка одного сервера
  • Выбор и использование базы данных
  • Вертикальное масштабирование против горизонтального масштабирования подходов. И почему вы должны предпочесть горизонтальный
  • Добавлен балансировщик нагрузки для горизонтального масштабирования
  • Добавление репликации базы данных для горизонтального масштабирования
  • Добавление кеша
  • Добавление CDN
  • Архитектура без сохранения состояния и с сохранением состояния и использование внешнего хранилища состояния
  • Добавление дополнительных центров обработки данных
  • Добавление очереди сообщений
  • Добавление ведения журнала, метрик и автоматизации
  • Масштабирование базы данных
  • и дальнейшие шаги…

Все это тщательно, но кратко раскрыто в Главе 1 книги:

Создание событийно-управляемых микросервисов - Глава 2 - Основы событийно-управляемых микросервисов

Создание событийно-управляемых микросервисов - Глава 2 - Основы событийно-управляемых микросервисов

Переводы: EN

Введение в архитектуру микросервисов, управляемых событиями (EDM), состоит из следующих тем:

  • две топологии
  • содержание событий
  • три типа событий
  • двойственность таблица-поток
  • схемы для определения данных внутри событий
  • принцип одного писателя
  • функциональные возможности брокера событий
  • брокер событий против брокера сообщений
  • принцип единого источника истины
  • масштабирование с помощью контейнеров и виртуальных машин
  • налог на микросервисы, который мы должны платить

Эти темы раскрыты в главе 2 книги, которую мы сейчас изучаем:

“Создание событийно-управляемых микросервисов” Адама Беллемара. Оригинал: “Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Высоконагруженные приложения - Глава 1 - Надежные, масштабируемые и удобные в сопровождении приложения

Высоконагруженные приложения - Глава 1 - Надежные, масштабируемые и удобные в сопровождении приложения

Переводы: EN

Ранее в этом году книжный клуб нашей компании изучил отличную книгу:

Martin Kleppmann - Designing Data-Intensive Applications

Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка

Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪

Как обычно (чтобы лучше усвоить) я подготовил краткий обзор и майнд-мапу.

Глава 1:

  • Строительные блоки приложений
  • Что такое надежность, масштабируемость и ремонтопригодность. Примеры и определения.
    • Неисправности и отказы
    • Производительность, нагрузка, задержка и время отклика
    • Работоспособность, простота, эволюционируемость
  • Почему вы должны убивать свои сервера случайным образом 😅
  • Как Twitter доставляет 12 000 твитов в секунду до 300 000 пользователей в секунду. (Очень интересно!)
  • Сколько денег Amazon теряет за каждые 100мс задержки ответа
  • Как быстро рассчитать персентили для мониторинга времени отклика в PROD

Скачать всю майнд-мапу в PDF