Статья на тему "Синергия. Автоматизация доставки программного обеспечения при помощи devops практик и инструментов в облаке AWS в компании ООО "КОМАНДА ЛАБС""


Работа Синергии на тему: Автоматизация доставки программного обеспечения при помощи devops практик и инструментов в облаке AWS в компании ООО "КОМАНДА ЛАБС" . Год сдачи: 2020. Оценка: Отлично. Оригинальность работы на момент публикации 50+% на антиплагиат.ру. Ниже прилагаю все данные для покупки.
Количество страниц: 153
Демо работы
Описание работы
Содержание
Введение ....................................................................................................... 3
I Аналитическая часть ......................................................................... 7
1.1 Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «КАК ЕСТЬ» ................................................ 7
1.1.1 Характеристика предприятия и его деятельности................... 7
1.1.2 Организационная структура управления предприятием ...... 11
1.1.3 Программная и техническая архитектура ИС предприятия . 13
1.2 Характеристика комплекса задач, задачи и обоснование
необходимости автоматизации ........................................................................... 27
1.2.1 Выбор комплекса задач автоматизации и характеристика
существующих бизнес процессов ......................................................................... 27
1.2.2 Определение места проектируемой задачи в комплексе задач и ее описание 32
1.2.3 Обоснование необходимости использования вычислительной
техники для решения задачи ................................................................................. 33
1.2.4 Анализ системы обеспечения информационной безопасности
и защиты информации ........................................................................................... 37
1.3 Анализ существующих разработок и выбор стратегии
автоматизации «КАК ДОЛЖНО БЫТЬ»............................................................. 40
1.3.1 Анализ существующих разработок для автоматизации задачи
40
1.3.2 Выбор и обоснование стратегии автоматизации задачи ....... 41 1.3.3 Выбор и обоснование способа приобретения ИС для
автоматизации задачи ............................................................................................ 43
1.4 Обоснование проектных решений ................................................. 43
1.4.1 Обоснование проектных решений по информационному обеспечению 43
1.4.2 Обоснование проектных решений по программному обеспечению 44
1.4.3 Обоснование проектных решений по техническому обеспечению 49
II Проектная часть ............................................................................... 52
2.1 Разработка проекта автоматизации .......................................... 52
2.1.1 Этапы жизненного цикла проекта автоматизации ................ 52
2.1.2 Ожидаемые риски на этапах жизненного цикла и их описание
54
2.1.3 Организационно-правовые и программно-аппаратные средства обеспечения информационной безопасности и защиты информации . 60
2.2 Информационное обеспечение задачи ........................................... 70
2.2.1 Информационная модель и её описание ................................ 70
2.2.2 Характеристика нормативно-справочной, входной и
оперативной информации ...................................................................................... 80
2.2.3 Характеристика результатной информации .......................... 81
2.3 Программное обеспечение задачи .................................................. 82
2.3.1 Общие положения (дерево функций и сценарий диалога) ... 82
2.3.2 Характеристика базы данных ................................................. 84
2.3.3 Структурная схема пакета (дерево вызова программных модулей) 85
2.3.4 Описание программных модулей ........................................... 88
2.4 Контрольный пример реализации проекта и его описание .......... 90 III Обоснование экономической эффективности проекта ............... 97
3.1 Выбор и обоснование методики расчёта экономической
эффективности ..................................................................................................... 97
3.2 Расчёт показателей экономической эффективности проекта 100
Заключение .............................................................................................. 104
Список использованной литературы .................................................. 106
Приложения ............................................................................................ 109

?
Введение

Актуальность исследования. Самая актуальная задача для бизнеса в существующих реалиях это умение гибко реагировать на изменения и быстро доставлять эти изменения на производственную среду. Требования бизнеса могут меняться очень часто, поэтому в компании Aquiva Labs при разработке используется гибкие методологии Agile [1] и Scrum [2], которая подразумевает изменение в функционале или исправление ошибок в коде мелкими итерациями – двухнедельными спринтами. Компания Aquiva Labs разрабатывает решения для разных видов бизнеса, мне удалось поработать в проекте HAPI, который связан с госпитальным бизнесом.
При ручной сборке, тестировании и доставке ПО в окружения совершается большое количество человеческих ошибок, а также такие процессы занимают весьма длительное время. Полный цикл от постановки задачи до попадания сервисов в производственную среду может занимать от 3 до 8 недель при ручном разворачивании инфраструктуры и сервисов. Разворачивание инфраструктуры достаточно рутинный и сложный процесс без понимания того, какие слайд-эффекты могут проявиться после предыдущих внесений изменений в её параметры. Это приводит к тому, что система может быть неидемпотентной. Один из основных показателей для сферы цифровых продуктов является Time to market — в коммерции время выхода релиза продукта на рынок — это отрезок времени, который требуется от задуманного продукта до его продажи в продажу. ТТМ важен в отраслях, где продукты быстро устаревают.
Гибкие методологии разработки породили широкое распространение практик и инструментов для управления инфраструктурой, которые предполагает методология DevOps — активное взаимодействие специалистов по
разработке со специалистами по информационно-технологическому обслуживанию, и взаимная интеграция рабочих процессов друг в друга для обеспечения качества продукта.
Также необходимость соответствия различным требованиям стандартам безопасности, в частности PCI DSS и ГОСТ ISO/IEC 27001, необходимо внедрять в процессы развёртывания системы DevSecOps практики и методологию, которая подразумевает под собой автоматизацию сканирования на уязвимости кода, подключаемых модулей и зависимостей, операционных систем и других частей платформы во время сборки, доставки и эксплуатации продукта.
Основной целью проекта является ускорение движения программного обеспечения по конвейеру доставки от разработчиков к производственной среде, то есть выпуска релизов с помощью DevOps практик и инструментов, таких, как управление конфигурацией, мониторинг, логирование, инфраструктуры как код, непрерывная интеграция.
Нам необходимо уменьшить это время для того, чтобы можно было быстрее реагировать на изменения, происходящие со стороны заказчиков, а также избавиться от рутинного ручного труда.
Мои основные задачи были связаны с тем, чтобы свести к минимуму время выкладки цифрового продукта — программного обеспечения на серверы, которыми пользуются клиенты. Таким образом, необходимо автоматизировать промежуточные этапы доставки кода, которые включают в себя:
• Организовать автоматизацию сборки кода и зависимостей.
• Автоматизировать создание артефактов и доставку в окружения.
• Разворачивать инфраструктуру, исходя из заданных параметров, заданных декларативно. Избавиться от слайд-эффектов после предыдущих изменений инфраструктуры.
• Автоматизировать тестирование
• Развернуть и подключить инструменты для наблюдаемости всех компонентов платформы (сбора метрик и событий в процессе доставки и работы систем).
• Автоматизировать доставку артефактов в выбранное окружение
• Использовать контейнерные платформы для изоляции
микросервисов и микросервисной архитектуры
• Подготовить платформу для быстрой реакции на изменения бизнеса.
• Иметь возможность автоматического масштабирования
• Обеспечить отказоустойчивость системы
• Научиться быстро разворачивать инфраструктуру в случае утраты всей системы.
• Иметь возможность автоматического разворачивания
инфраструктуры для разных сред: девелоперской, демо, продакшен и иметь одинаковые параметры для каждой из них во избежание слайд-эффектов.
• Автоматизировать тестирование кода и инфраструктуры на безопасность.
• Иметь процессы и инструменты для быстрой обратной связи и аналитики.
• Иметь глубокое понимание процессов внутри рабочей системы.
• Внедрить автодокументацию инфраструктуры с помощью подхода «Инфраструктура как код» [3].
• Исключить ручной труд и человеческие ошибки при развёртывании.
• Уменьшить время развёртывания продукта.
• Внедрить инструменты для идемпотентности системы в целом и на всех пограничных и сервисных систем.
• Ускорить донесения ценности до клиентов
• Обеспечить возможность быстрых внесение правок в код и выкатывания в среды.
Объектом исследования является ООО "КОМАНДА ЛАБС".
Предметом исследования является внедрение инструментов, позволяющих сократить время от постановки задачи через промежуточные этапы к доставке клиенту.
Практическая значимость применения DevOps практик и инструментов состоит в том, чтобы помогать цифровым компаниям быстрее доставлять код до клиентов.
В процессе написания работы я опирался на следующие методы:
• Анализ — чтобы разбить признаки DevOps на составляющие.
• Синтез — для того, чтобы составить понимание о том, как может вести себя система в целом.
• Индукция — понимать поведение и конечную ценность платформы. • Дедукция — необходимо составить представление, как работают все составляющие архитектуры.
• Наблюдение — это возможность иметь представление обо всех объектах системы благодаря агрегации метрик и логов.
• Сравнение — обратная связь на каждом этапе разработки позволяет нам понимать, в каких местах происходит признаки улучшения поведения системы.
• Измерение — чтобы понимать количественные улучшения времени выкатывания программного обеспечения
?

Список использованной литературы

[1] Постигая Agile. Ценности, принципы, методологии, Москва: Миф.
IT, 2019.
[2] К. Рубин, Essential Scrum: A Practical Guide to the Most Popular Agile Process, Pearson Education, 2013.
[3] К. Моррис, Infrastructure as Code, O'Reilly, 2016.
[4] «The Hospitality Industry Becomes a “HAPI-er” Place with the Launch of HAPI’s Integrated Data Platform,» [В Интернете]. Available
[5] Apache, «Kafka,» Apache Software Foundation, 2020. [В Интернете].
[6] М. В. Андреас Виттиг, Amazon Web Services in Action, Manning,
2015.
[7] Amazon, «Amazon Container Services,» [В Интернете]. Av
[8] Э. Моуэт, Использование Docker, Москва: ДМК, 2017.
[9] Apache, «maven.apache.org,» Apache, [В Интернете]. .
[10] Amazon, «Amazon Container Registry,» Amazon, 2020. [В Интернете].
[11] К. Д. У. Д. Х. Д. Патрик Дюбуа, Руководство по DevOps, Москва:
ООО Манн, Иванов и Фербер, 2018.
[12] Amazon, «AWS Security Groups,» Amazon, 2020. [В Интернете].
[13] Д. Айвалиотис, Администрирование сервера NGINX, Москва: ДМК,
2015.
[14] Amazon, «Amazon IAM,» Amazon, 2020. [В Интернете].
[15] Amazon, «EC2,» Amazon, 2020. [В Интернете].
[16] Ф. Д. Хамбл Джез, Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ, Вильямс, 2016.
[17] JetBrains, «TeamCity CI/CD Server,» JetBrains, 2020. [В Интернете].
[18] Л. Хохштейн, "Запускаем Ansible" Простой способ автоматизации управления конфигурациями и развертывания приложений, Москва: ДМКПресс, 2018.
[19] T. Fukuda, «Trivy - Vulnerability Scanner for Containers,» [В
Интернете].
[20] ElasticSearch, «ELK Stack,» в Elasticsearch, Kibana, Logstash и поисковые системы нового поколения , Санкт-Петербург, Питер, 2018.
[21] Athlassian, «OpsGenie Полное управление инцидентами для команд разработчиков и ИТ-команд,» Athlassian, 2020. [В Интернете].
[22] Y. Brikman, Terraform: Up & Running: Writing Infrastructure as Code,
O'Reilly.
[23] Amazon, «S3,» Amazon, 2020. [В Интернете].
[24] Amazon, «AWS Systems Manager,» Amazon, 2020. [В Интернете].
[25] Р. К. Джесс Рассел, Сетевая модель OSI, Книга по Требованию ,
2012.
[26] Amazon, «RDS, Amazon Relational Database Service,» Amazon, 2020.
[В Интернете].
[27] J. Turnbull, THE PACKER BOOK, 2017.