Найти тему

Как работает Backend | Архитектура приложений

Архитектура веб-приложений

  • Фронтенд - это то, что пользователь видит в браузере, включая кнопки, формы, анимации и переходы.
  • Бэкенд - это приложения, которые запускаются на серверах и обрабатывают запросы от пользователей.
  • Бэкенд-приложения могут быть написаны на разных языках программирования, таких как Java, Go и Python.

Микросервисная архитектура

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

Базы данных

  • Базы данных используются для хранения данных, таких как пользователи, заказы и статистика.
  • Существует множество разных типов баз данных, каждая из которых имеет свои преимущества и недостатки.
  • Выбор базы данных зависит от требований приложения и его использования.

Типы баз данных

  • SQL базы данных (например, MySQL) обеспечивают строгую гарантию сохранности данных и используются для транзакций и параллельной обработки запросов.
  • noSQL базы данных (например, Redis) хранят данные в оперативной памяти и используются для кэширования и быстрого доступа к данным.

Взаимодействие между бэк-эндами

  • Взаимодействие между бэк-эндами происходит через интернет с использованием протоколов передачи данных (например, HTTP).
  • Синхронный способ взаимодействия подразумевает ожидание ответа от другого сервиса перед продолжением работы.

Взаимодействие между сервисами

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

Мониторинг и трассировка запросов

  • Мониторинг используется для отслеживания метрик, таких как количество пользователей, количество запросов и время обработки.
  • Трассировка запросов позволяет отслеживать путь запроса по системе и находить узкие места.
  • Для этого используются технологии, такие как Jaeger и Zipkin, которые присваивают уникальный идентификатор каждому запросу и замеряют время обработки в каждом сервисе.

Логирование и сбор логов

  • Для централизованного сбора логов используется связка Elasticsearch, Logstash и Kibana.

Непрерывная интеграция и доставка (CI/CD)

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

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц