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

Микросервисы

Архитектура микросервисов — это парадигма проектирования, которая структурирует приложение как набор сервисов, которые:

1. Организованы вокруг конкретной бизнес-полезности.

2. Возможность независимого развертывания.

3. Управляется небольшой командой.

4. Слабосвязанные.

5. Высокая ремонтопригодность и масштабируемость

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

С монолитными архитектурами:

1. Все процессы тесно связаны и работают как единый сервис. Если один процесс приложения испытывает всплеск спроса, необходимо масштабировать всю архитектуру приложения.

2. Добавление или улучшение функций монолитного приложения усложняется по мере роста кодовой базы. Эта сложность ограничивает экспериментирование и затрудняет реализацию новых идей.

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

В архитектуре микросервисов приложение строится как независимые компоненты, которые запускают каждый процесс приложения как службу. Эти сервисы взаимодействуют через четко определенный интерфейс с использованием облегченных API.

Поскольку они запускаются независимо, каждую службу можно обновлять, развертывать и масштабировать в соответствии с потребностями конкретных функций приложения.

Характеристики микросервисов:

  1. Автономность: каждый компонент службы в архитектуре микрослужб можно разрабатывать, развертывать, эксплуатировать и масштабировать, не влияя на работу других служб. Сервисам не нужно делиться своим кодом или реализацией с другими сервисами. Любая связь между отдельными компонентами происходит через четко определенные API.
  2. Специализированный: каждый сервис предназначен для набора возможностей и ориентирован на решение конкретной проблемы. Если разработчики со временем вносят в службу больше кода и служба становится сложной, ее можно разбить на более мелкие службы.

Хватит говорить о микросервисах. Другой компонент, который очень важен для большинства приложений, которые мы используем сегодня, — это балансировщик нагрузки.

Балансировка нагрузки — это процесс распределения сетевого трафика между несколькими серверами. Это гарантирует, что ни один сервер не будет иметь слишком большой спрос.

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

2. Это также увеличивает доступность приложений и веб-сайтов для пользователей. Современные приложения не могут работать без балансировщиков нагрузки.

3. Когда один сервер приложений становится недоступным, балансировщик нагрузки направляет все новые запросы приложений на другие доступные серверы.

Балансировщики нагрузки обычно делятся на две категории:

Уровень 4. Балансировщики нагрузки на уровне 4 обычно работают с данными, найденными в протоколах сетевого и транспортного уровня (TCP, IP, протокол передачи файлов (FTP) и UDP).

Уровень 7. Балансировщики нагрузки на уровне 7 распределяют входящие данные (запросы) на основе данных приложения (HTTP).

Балансировщики нагрузки определяют маршрутизацию запросов к конкретному целевому серверу на основе определенных алгоритмов. Некоторые из них упомянуты ниже:

1. Круговая система

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

3. Наименее активные соединения

4. Наименьшее время отклика

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

А пока следите за обновлениями GrammIt.

Счастливого Дивали и счастливого чтения!