Дипломная работа: Автоматизация доставки программного обеспечения при помощи DevOps практик и инструментов в облаке AWS в компании ООО "Команда Лабс"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
46
№ п/п
ElasticSearch
5.
Утилизирует ресурсы памяти, быстрее
обрабатывает входящие потоки
6.
Масштабируется вглубь и горизонтально
7.
Предоставляется сервисом AWS
Посмотрим на их поведение под нагрузкой:
Рисунок
23. Утилизация ЦПУ на Cli
Рисунок 24. Утилизация ОЗУ при высокой нагрузке ElasticSearch
ckHouse
47
Рисунок 25. Утилизация CPU при высокой нагрузке ElasticSearch
Мы видим, что у ClickHouse очень высокий процент утилизации ЦПУ при
большом количестве записей на наших инстансах, так как мы живём в облаке,
для нас очень дорого оплачивать именно процессорное время, а в следствие
низкой скорости дисковой подсистемы мы получали ошибку «DB::Exception:
Too many parts (300). Merges are processing significantly slower than inserts» и
теряли наши логи. При этом у ElasticSearch [20] идёт повышенная утилизация
памяти, которая отдельно не оплачивается в AWS. Поэтому для агрегации логов
мы решили использовать стек ElasticSearch, Logstash и Kibana в роли UI для
анализа логов.
48
Рисунок 26. Пользовательский интерфейс взаимодействия с
анализом данных для логов
ElasticSearch также решили использовать для взаимодействия с
системами анализа безопасности Wazuh:
49
Рисунок 27. Система обнаружения уязвимостей Wazuh 3.11.7
Также для хранения метрик с Prometheus сервера мы будем использовать
InfluxDB 2.0, которая предназначена для хранения временных рядов. БД
написана на языке Go и не требует внешних зависимостей. Основным
назначением является хранение больших объемов данных с метками времени.
Например, данные мониторинга и метрики приложений.
1.4.3 Обоснование проектных решений по техническому обеспечению
Разрабатываемый код оборачивается в образы Docker [8], и затем во время
передачи образа в ECS кластер [7] мы можем определить, сколько ресурсов CPU
и памяти мы хотим выделить для работы сервиса и передать файл конфигурации
в виде json файла в сущность Task Definition внутри AWS ECS [10]. Это
позволяет разделять и платить только за те ресурсы, которые мы используем.
Также это позволяет конфигурировать, например, подключение к базе данных и
другие параметры при необходимости.
50
При конфигурировании EC2 серверов, таких, как Бастион сервер или
Nginx сервер, мы можем также заказывать сервера с определённым набором
CPU, объёмом памяти и размера жёсткого диска и при необходимости
увеличивать количество потребляемых ресурсов и платить только за их
использование, что очень удобно при условии необходимости масштабирования
и планирования бюджета.
Также инстансы можно предоплачивать на длительное время от года до
трёх, что помогает сократить расходы на инфраструктуру.
Кроме масштабирования в глубину AWS предоставляет возможность
масштабирования вширь, благодаря балансировщику нагрузки Amazon NLB,
который работает на уровне L4 [25] и предоставляет возможность
перенаправлять трафик сразу на несколько инстансов. И при увеличении
нагрузки увеличить количество инстансов, которые должны обслуживать
запросы. Например, это актуально для Nginx серверов.
Источник: https://baza.diplomsite.ru/previewfile/1758