Подборка материалов · Senior

109 статей для Senior Backend-разработчика: большая подборка

Инженерные разборы для проектирования и развития сложных систем: распределённость, высокая нагрузка, данные, события, надёжность, безопасность и архитектурные решения.

109 статей · 10 тем · материалы на русском языке

Распределённые системы

  1. Алгоритмы консенсуса Paxos, Raft и Zab в распределённых системах

    Чтобы разделять систему и контролировать связи сервисов.

  2. Во что обойдется линеаризуемость в распределенной системе

    Чтобы разделять систему и контролировать связи сервисов.

  3. Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах

    Чтобы разделять систему и контролировать связи сервисов.

  4. Распределённая конференция о распределённых системах: анонс Hydra 2021

    Чтобы разделять систему и контролировать связи сервисов.

  5. Распределённые транзакции в микросервисах: от SAGA до Two‑Phase Commit

    Чтобы разделять систему и контролировать связи сервисов.

  6. О ключах идемпотентности

    Чтобы разделять систему и контролировать связи сервисов.

  7. Проектируем микросервисы с Reactive Manifesto: 4 принципа распределенных систем

    Чтобы разделять систему и контролировать связи сервисов.

  8. Инженерная надежность и отказоустойчивость распределенной системы

    Чтобы разделять систему и контролировать связи сервисов.

  9. Распределенный монолит: тихий убийца мечты о микросервисах

    Чтобы разделять систему и контролировать связи сервисов.

  10. Страх и ненависть в распределённых системах

    Чтобы разделять систему и контролировать связи сервисов.

  11. Смартфон как элемент эшелонированной системы обнаружения БПЛА: архитектура распределенной сенсорной сети

    Чтобы разделять систему и контролировать связи сервисов.

  12. 11 граблей распределенных систем: личный опыт backend-разработчика с практическими советами

    Чтобы разделять систему и контролировать связи сервисов.

Высокая нагрузка и масштабирование

  1. Балансировка нагрузки и масштабирование долгоживущих соединений в Kubernetes

    Чтобы выдерживать рост трафика и данных.

  2. NSX Advanced Load Balancer – умный автомасштабируемый балансировщик нагрузки. Часть 1: архитектура и особенности

    Чтобы выдерживать рост трафика и данных.

  3. Первый HighLoad Cup: как мы это пережили

    Чтобы выдерживать рост трафика и данных.

  4. Введение в современную сетевую балансировку и проксирование

    Чтобы выдерживать рост трафика и данных.

  5. Балансировка нагрузки: проблемы, решения, практические рекомендации

    Чтобы выдерживать рост трафика и данных.

  6. Сравнение алгоритмов балансировки нагрузки: Round Robin vs. Least Connections vs. IP Hash

    Чтобы выдерживать рост трафика и данных.

  7. Балансировка нагрузки: простыми словами о всей мощи двух случайных вариантов

    Чтобы выдерживать рост трафика и данных.

  8. Архитектура MRC для создания AI/ML-сетей любого масштаба: обзор технологии

    Чтобы выдерживать рост трафика и данных.

  9. Что мы расскажем на Highload++ 2017

    Чтобы выдерживать рост трафика и данных.

  10. Как Контур балансирует нагрузку в микросервисах

    Чтобы выдерживать рост трафика и данных.

  11. Балансировка нагрузки и поддержка непрерывности в режиме катастрофоустойчивости

    Чтобы выдерживать рост трафика и данных.

  12. Зачем хорошему инженеру идти на HighLoad++?

    Чтобы выдерживать рост трафика и данных.

Архитектура и эволюция баз данных

  1. Целостность данных в микросервисной архитектуре — как её обеспечить без распределенных транзакций и жёсткой связности

    Чтобы надёжно хранить данные приложения.

  2. Горизонтальное масштабирование базы данных. Репликация. Партицирование. Шардирование

    Чтобы надёжно хранить данные приложения.

  3. Как правильно выбрать базу данных для разработки: понимание моделей репликации

    Чтобы надёжно хранить данные приложения.

  4. Оптимизация реляционных баз данных без даунтайма на примере самой нагруженной БД в Badoo

    Чтобы надёжно хранить данные приложения.

  5. Репликация в PostgreSQL: Write-Ahead Logging (WAL) и Logical Replication

    Чтобы надёжно хранить данные приложения.

  6. CDC и логическая репликация для баз данных, реализованных на стеке open source-решений

    Чтобы надёжно хранить данные приложения.

  7. Путеводитель по репликации баз данных

    Чтобы надёжно хранить данные приложения.

  8. Репликация баз данных MySQL. Введение

    Чтобы надёжно хранить данные приложения.

  9. Распределенные транзакции для разнородных баз данных в MS .NET

    Чтобы надёжно хранить данные приложения.

  10. Сага распределенных транзакций

    Чтобы надёжно хранить данные приложения.

  11. Общие подходы к классическому PostgreSQL в Kubernetes

    Чтобы надёжно хранить данные приложения.

  12. Миграция с Firebird на PostgreSQL. Что может пойти не так? Часть 2

    Чтобы надёжно хранить данные приложения.

Очереди, события и надёжность

  1. Авторизация в Kafka: управление изменениями, когда у тебя тысячи клиентов и миллионы RPS

    Чтобы обрабатывать задачи асинхронно и надёжно.

  2. Как подключить Kafka UI к кластеру Kafka в DBaaS

    Чтобы обрабатывать задачи асинхронно и надёжно.

  3. Apache Kafka в гарантиях или как надежно доставить сообщение

    Чтобы обрабатывать задачи асинхронно и надёжно.

  4. Kafka для начинающих: работа с Kafka транзакциями на практике — когда они нужны, а когда только вредят?

    Чтобы обрабатывать задачи асинхронно и надёжно.

  5. Kafka для начинающих: Гарантии доставки на практике и идемпотентность

    Чтобы обрабатывать задачи асинхронно и надёжно.

  6. Микросервисы на основе событий с Kafka Streams и Spring Boot

    Чтобы обрабатывать задачи асинхронно и надёжно.

  7. Как синхронизировать сотни таблиц базы в Kafka, не написав ни одного продюсера

    Чтобы обрабатывать задачи асинхронно и надёжно.

  8. Шина данных поверх Kafka — когда каждому хочется иметь своё число консьюмеров для топика

    Чтобы обрабатывать задачи асинхронно и надёжно.

  9. Как мы четыре раза переписали Outbox

    Чтобы обрабатывать задачи асинхронно и надёжно.

  10. Очередь задач на Postgres: SKIP LOCKED + lease/heartbeat + backpressure (практический опыт)

    Чтобы обрабатывать задачи асинхронно и надёжно.

  11. Зеркалирование топиков Kafka по-бруклински

    Чтобы обрабатывать задачи асинхронно и надёжно.

  12. Транзакционный паттерн Outbox: теперь с «оптимистичной отправкой»

    Чтобы обрабатывать задачи асинхронно и надёжно.

Микросервисы, DDD и платформы

  1. Заметки теоретика. Платформенная инженерия: Как выбрать тип платформы для вашей компании?

    Чтобы разделять систему и контролировать связи сервисов.

  2. Разбираемся в проектировании микросервисов. Основные паттерны (Часть 1)

    Чтобы разделять систему и контролировать связи сервисов.

  3. Библиотека разработчика микросервисов. Полезные книги на русском языке

    Чтобы разделять систему и контролировать связи сервисов.

  4. Распутывание микросервисов или балансировка сложности в распределенных системах

    Чтобы разделять систему и контролировать связи сервисов.

  5. Как мы в ПСБ с монолита на микросервисы переходили: шаблоны, нюансы, чек-листы от команды системных аналитиков

    Чтобы разделять систему и контролировать связи сервисов.

  6. Что такое платформенная инженерия: как она связана с DevOps и SRE?

    Чтобы разделять систему и контролировать связи сервисов.

  7. Архитектурные антипаттерны в микросервисах и способы их избежания

    Чтобы разделять систему и контролировать связи сервисов.

  8. Busrpc — фреймворк для разработки микросервисов

    Чтобы разделять систему и контролировать связи сервисов.

  9. Заметки теоретика. Платформенная инженерия: ваш цифровой конструктор Lego

    Чтобы разделять систему и контролировать связи сервисов.

  10. Платформенный инжиниринг как следующий этап развития DevOps

    Чтобы разделять систему и контролировать связи сервисов.

  11. Декомпозиция микросервисов: 5 паттернов против распределённого монолита

    Чтобы разделять систему и контролировать связи сервисов.

  12. Декомпозируем систему и проектируем устойчивую микросервисную архитектуру

    Чтобы разделять систему и контролировать связи сервисов.

Наблюдаемость и эксплуатация

  1. SLO-Scout: AI для автоматического создания SLO и SLA в SRE

    Чтобы быстро находить причины сбоев.

  2. «Цель SRE — надёжная система». Обзор основных метрик SRE

    Чтобы быстро находить причины сбоев.

  3. Практические истории из наших SRE-будней. Часть 6

    Чтобы быстро находить причины сбоев.

  4. Как Лёха стал инженером по SRE: выдуманная история про невыдуманные проблемы

    Чтобы быстро находить причины сбоев.

  5. CNCF White Paper по observability: инструменты, виды, стратегии и проблемы

    Чтобы быстро находить причины сбоев.

  6. 6 практических историй из наших SRE-будней

    Чтобы быстро находить причины сбоев.

  7. Наблюдаемость сетевой инфраструктуры Kubernetes. Часть первая

    Чтобы быстро находить причины сбоев.

  8. Инцидент-менеджмент с нуля: практический гайд для растущих команд

    Чтобы быстро находить причины сбоев.

  9. OpenTelemetry с нуля до 100: пример внедрения Норвежским управлением труда и соцобеспечения

    Чтобы быстро находить причины сбоев.

  10. Как я сделал локальный RAG-сервис для SRE: ищем по документации, ранбукам и коду через Ollama

    Чтобы быстро находить причины сбоев.

  11. Мониторинг и анализ производительности бэкенда с помощью ClickHouse и Grafana. Часть 3

    Чтобы быстро находить причины сбоев.

  12. Мониторинг и анализ производительности бэкенда с помощью ClickHouse и Grafana. Часть 1

    Чтобы быстро находить причины сбоев.

Безопасность и моделирование угроз

  1. Как работает безопасность, когда никто никому не доверяет — Zero Trust на пальцах

    Чтобы снизить риски и защитить систему.

  2. От Threat Modeling до безопасности AWS: 50+ open-source инструментов для выстраивания безопасности DevOps

    Чтобы снизить риски и защитить систему.

  3. Cloud Trust vs Zero Trust: стандарты безопасности в гибридном окружении

    Чтобы снизить риски и защитить систему.

  4. Zero Trust для подрядного доступа: четыре слоя Identity, Device, Access и Monitoring

    Чтобы снизить риски и защитить систему.

  5. Актуальные угрозы безопасности в Large Language Model Applications

    Чтобы снизить риски и защитить систему.

  6. От защиты периметра к Zero Trust. Как NAC-системы обеспечивают защиту и контроль доступа в корпоративной сети

    Чтобы снизить риски и защитить систему.

  7. Что такое Zero Trust? Модель безопасности

    Чтобы снизить риски и защитить систему.

  8. Защита серверов и данных: Zero Trust и 20 фич для вашей кибербезопасности

    Чтобы снизить риски и защитить систему.

  9. Будущее архитектуры безопасности: Сетчатая архитектура кибербезопасности

    Чтобы снизить риски и защитить систему.

  10. Как мы строили безопасную микросервисную архитектуру с Service Mesh: интеграция с базами данных

    Чтобы снизить риски и защитить систему.

  11. Как мы строили безопасную микросервисную архитектуру с Service Mesh: интеграция с базами данных и масштабированиe

    Чтобы снизить риски и защитить систему.

  12. «Интегрируй, доверяй»: почему появилась концепция zero trust, и как мы объединили три ее компонента в едином продукте

    Чтобы снизить риски и защитить систему.

Инфраструктура и Kubernetes

  1. Обзор операторов PostgreSQL для Kubernetes. Часть 1: наш выбор и опыт

    Чтобы управлять контейнерами и масштабированием.

  2. Как мы тестируем Kubernetes‑операторы в MWS Cloud Platform

    Чтобы управлять контейнерами и масштабированием.

  3. Внедрение Kubernetes-операторов в корпоративных средах

    Чтобы управлять контейнерами и масштабированием.

  4. DEVops: Разрабатываем свой Kubernetes оператор с кастомными ресурсами на Go

    Чтобы управлять контейнерами и масштабированием.

  5. Разработка Kubernetes оператора с Operator Framework

    Чтобы управлять контейнерами и масштабированием.

  6. Сказ о том, как мы Tarantool Kubernetes Operator писали

    Чтобы управлять контейнерами и масштабированием.

  7. Операторы в Kubernetes

    Чтобы управлять контейнерами и масштабированием.

  8. Оператор в Kubernetes для управления кластерами БД. Владислав Клименко (Altinity, 2019)

    Чтобы управлять контейнерами и масштабированием.

  9. Как мы в Авито автоматически лечим ноды в Kubernetes

    Чтобы управлять контейнерами и масштабированием.

  10. Персонализация инфраструктуры облачных вычислений с помощью Kubernetes

    Чтобы управлять контейнерами и масштабированием.

  11. Кастомизация инфраструктуры облачных вычислений с помощью Kubernetes

    Чтобы управлять контейнерами и масштабированием.

  12. Пишем оператор Kubernetes: руководство для начинающих

    Чтобы управлять контейнерами и масштабированием.

Архитектурные решения и технический долг

  1. Итоги двадцати лет работы — технический долг и неподдерживаемый код

    Чтобы принимать устойчивые архитектурные решения.

  2. Технический долг захватил глобальную экономику

    Чтобы принимать устойчивые архитектурные решения.

  3. Как я пришел от architecture as code к живой архитектурной модели

    Чтобы принимать устойчивые архитектурные решения.

  4. Что будет, если скрестить конструирование компиляторов, DDD и Clean Architecture? Опыт HydraScript

    Чтобы принимать устойчивые архитектурные решения.

  5. Архитектура микросервисов

    Чтобы принимать устойчивые архитектурные решения.

  6. Когда технический долг и legacy-системы тянут CIO вниз

    Чтобы принимать устойчивые архитектурные решения.

  7. ADR (Architecture Decision Record) или Мы же теперь умные?

    Чтобы принимать устойчивые архитектурные решения.

  8. Архитектурные решения в backend: 5 практических приёмов, которые помогают держать баланс

    Чтобы принимать устойчивые архитектурные решения.

  9. Ловушка семантики и атрибутивных конструкций, или Почему architecture decision — это не архитектурное и не решение?

    Чтобы принимать устойчивые архитектурные решения.

  10. Технический долг как тетрис

    Чтобы принимать устойчивые архитектурные решения.

  11. Архитектурные практики в «кровавом энтерпрайзе»: данные, управление сложными системами и влияние AI

    Чтобы принимать устойчивые архитектурные решения.

  12. Эволюционная архитектура ПО: уроки теории Дарвина

    Чтобы принимать устойчивые архитектурные решения.

Техническое лидерство

  1. Что такое Загруженность команды: как использовать и для чего

    Чтобы улучшить совместную работу и развитие команды.

Все подборки для Backend-разработчика →