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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
81
образом совершается полный цикл движения ценности от разработчиков к
заказчикам.
2.2.3 Характеристика результатной информации
Таким образом, мы можем доставлять код в различные окружения в
самые короткие сроки. Если код необходимо экстренно быстро доставить на
производственное окружение, это займёт около 2 часов с интеграционными
тестами. В среднем, доставка кода в тестовое окружение составляет 5-10 раз в
день, тогда как в производственное окружение раз в 2 недели при завершении
периода спринта разработки.
Также мы можем получать информацию из системы в виде логов и
собирать из них аналитику, следить за состоянием системы и реагировать на её
нештатное поведение очень быстро, понимая, что происходит с каждым
компонентом системы.
И затем конечный пользователь может получать и отправлять
информацию из платформы при помощи устойчивой масштабируемой системы
с балансировкой трафика.
Для программистов, системных инженеров и тестировщиков единый
интерфейс взаимодействия инфраструктурой – посредством кода.
82
2.3 Программное обеспечение задачи
2.3.1 Общие положения (дерево функций и сценарий диалога)
Код двигается от программистов в окружение как представлено на
рисунке:
Рисунок 36. Схема построения конвейера выпуска программного
продукта
Код для разработчиков является методом общения с системой как с
чёрным ящиком, абстрагировавшись от поддержки сетей, хранилищ данных,
серверных систем. Они предоставляют свой код в декларативном виде, и система
разворачивает для них необходимую инфраструктуру, в конечном итоге
предоставляя полную информацию о своём состоянии в любой промежуток
времени.
83
Рисунок 37. Дерево функций
84
Рисунок 38. Сценарий диалогов
2.3.2 Характеристика базы данных
Подходы к гибким системам подразумевают отсутствие хранения
состояния при декларативном подходе. Всегда будет ровно то количество
ресурсов, которое будет запрошено непосредственно из кода, поэтому в роли баз
данных используются BitBucket для хранения кодовой базы, Amazon S3 [23]
сервис для хранения запускаемых скриптов и состояния системы Terraform для
удобства совместной работы. Для хранения логов используется ElasticSearch, где
создаются отдельные индексы для каждой конкретной даты из сервисов и
сервера Nginx [13]. Для каждого события создаётся контекст с бизнес-метками и
служебной информацией, по которым затем можно делать выборку и аналитику.
Для хранения метрик используется база данных временных рядов InfluxDB,
ориентированная на хранение событий, связанных со временем
85
Таблица 5
Структура таблицы логов в ElasticSearch
Наименование
поля
Идентификатор поля
Тип
поля
Прочее
Отсечка времени
@timestamp
дата
Идентификационный
нормер
_id
строка
ключевое
поле
Наименование
индекса
_index
строка
Тип документа
_type
строка
Наименование
сервиса
app
строка
ID в CloudWatch
cloudwatch_logs.event_id
число
Поток логов
cloudwatch_logs.log_stream
строка
Имя хоста
hostname
строка
Название логгера
logger_name
строка
Уровень импакта
level
строка
Тело сообщения
message
строка
Название окружения
profile
строка
Трассировка ошибки
stack_trace
объект
Рисунок 39 Общая схема базы данных всех индексов в ElasticSearch
2.3.3 Структурная схема пакета (дерево вызова программных модулей)
Таким образом собирается цельный конвейер, части которого
автоматизированы и связаны друг с другом.
Таблица 6
Структурная схема инфраструктуры
п/п
Наименование
модуля
Функции модуля
1.
BitBucket
Хранение программного и инфраструктурного кода
2.
TeamCity 2019.2
(71499)
Автоматизация запуска сборки, тестов,
деплоймента приложений, разворачивания
инфраструктуры
Источник: https://baza.diplomsite.ru/previewfile/1758