Архив за Ноябрь 2022

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 книги:

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

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

Переводы: EN

Принципы развертывания микросервисов Различия между непрерывной интеграцией (CI), непрерывной доставкой и непрерывным развертыванием. Шаблоны развертывания:

  • Базовый шаблон полного развертывания
  • Шаблон непрерывного обновления
  • Паттерн изменения схемы прерывания: здесь два варианта - окончательная миграция и синхронизированная миграция.
  • Сине-зеленый шаблон развертывания

Все это раскрыто в главе 16 книги:

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

Делюсь своей ментальной картой со всеми подробностями, как обычно:

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

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

Переводы: EN

Тестирование событийно-ориентированных решений — сложная задача. Это включает в себя:

  • Общие принципы
  • Модульное тестирование: без сохранения состояния и с сохранением состояния
  • Тестирование топологии (держу пари, вы этого не делали! ;)
  • Тестирование эволюции схемы и совместимости
  • Интеграционное тестирование: локальное, удаленное и гибридное - набор соображений здравого смысла, о которых нельзя забывать.
  • Выбор стратегии тестирования

Все это раскрыто в главе 15 книги:

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