Клиент-серверная архитектура
Это модель, в которой задачи распределены между поставщиками услуг (серверами) и заказчиками (клиентами). Клиент отправляет запрос, сервер его обрабатывает, при необходимости обращается к базе данных, и возвращает клиенту ответ.
Тонкий и толстый клиент
Разделение зависит от того, где выполняется основная логика обработки данных: на стороне клиента или на стороне сервера.
Тонкий клиент
Вся или почти вся логика выполняется на сервере. Клиент отвечает только за отображение данных. Пример: веб-сайты.
Толстый клиент
Значительная часть логики выполняется на самом клиенте. Сервер часто используется только для хранения данных. Пример: десктопные игры, Photoshop.
Монолит и микросервисы
Два фундаментально разных подхода к построению серверной части приложения, которые напрямую влияют на процесс тестирования.
Монолитная архитектура
Всё приложение — от интерфейса до базы данных — собрано в один большой, единый блок. Проще в разработке и развертывании на старте.
Микросервисная архитектура
Приложение состоит из набора небольших, независимых сервисов, каждый из которых отвечает за свою бизнес-задачу.
Балансировщики нагрузки
Это специальное устройство или программа, которая распределяет входящий сетевой трафик между несколькими серверами "за ним". Это обеспечивает отказоустойчивость и повышает производительность.
Уровни балансировки
- Сетевой (L4 - IP): Перенаправляет трафик на основе IP-адресов и портов, не заглядывая в содержимое пакетов. Очень быстрый. Клиент и сервер работают напрямую после установки соединения.
- Транспортный (L4 - TCP): Работает как прокси, полностью обрабатывая TCP-соединение. Балансировщик и сервер работают без прямой связи с клиентом, что позволяет выполнять более сложные манипуляции с трафиком.
- Прикладной (L7 - HTTP): "Самый умный" уровень. Анализирует содержимое запросов (например, URL, заголовки, cookie) и может перенаправлять их на разные серверы в зависимости от типа контента (например, картинки на один сервер, API-запросы на другой).