💻

Современные технологии бэкэнда

Jul 13, 2024

Современные технологии бэкэнда

Введение

  • Лектор: Влад, разработчик.
  • Тема: Технологии бэкэнда, примеры использования Kafka и Redis.
  • Цель: Рассмотрение архитектуры приложений от простейшего уровня до уровня приложений с миллионной нагрузкой.

Основные понятия

Frontend

  • Взаимодействует с пользователями
  • Основные виды: веб-интерфейсы и мобильные приложения
  • Разработка:
    • Веб-интерфейсы: JavaScript, React
    • Мобильные приложения: Swift (iOS), Java/Kotlin (Android)

Backend

  • Обработка сложных операций, требующих много ресурсов
  • Сервер: мощный компьютер для выполнения запросов пользователей
  • Замыкание на сервере мощных программ (Java, Spring, Golang, C#, Python)

Коммуникация между фронтендом и бэкэндом

Протокол HTTP

  • Стандартизированный формат передачи данных
  • Запрос-ответ
  • REST: Стиль описания взаимодействия с конечными точками (эндпоинтами)

База данных

  • Необходимость хранения данных
  • SQL базы данных (PostgreSQL, MySQL, Oracle DB, Microsoft SQL Server)
  • Взаимодействие с базой данных через SQL-запросы

Проблемы высокой нагрузки

Кэширование

  • Подробнее о Redis и Memcached
  • Использование кэша для хранения популярных данных в оперативной памяти

Масштабирование приложений

  • Разделение монолитного приложения на микросервисы
  • Индивидуальное масштабирование микросервисов

Репликация и балансировка нагрузки

Репликация

  • Запуск приложения на нескольких серверах для повышения надежности
  • Применение к базам данных и кэшированию
  • Мастер-реплики и слейв-реплики

Балансировка нагрузки

  • Использование программ-балансировщиков (например, Nginx)
  • Равномерное распределение запросов между серверами

Брокеры сообщений

  • Kafka как пример брокера сообщений
  • Разделение обработки сообщений от публикации их в очередь

Облачные вычисления

  • AWS и другие облачные сервисы (Google Cloud, Azure, Heroku)
  • Аренда серверов для динамического масштабирования

Логи и мониторинг

Логи

  • Запись действий и ошибок приложения в текстовые файлы
  • ElasticSearch + Kibana для поиска логов

Мониторинг метрик

  • Сбор метрик с помощью Prometheus
  • Визуализация данных с помощью Grafana

Заключение

  • Влад предлагает курсы по углубленному изучению технологий (Spring, Kafka, Redis и т.д.)
  • Приглашение на буткемп по Java для разработчиков