Utilize este identificador para referenciar este registo: http://elartu.tntu.edu.ua/handle/lib/41159
Título: Дослідження методології DevOps для розробки та підтримки веб-застосунків
Outros títulos: DevOps Methodology Research for Developing and Support of Web-Applications
Autor: Мачужак, Андрій Володимирович
Machuzhak, Andrii
Affiliation: ТНТУ ім. І. Пулюя, Факультет комп’ютерно-інформаційних систем і програмної інженерії, Кафедра комп’ютерних наук, м. Тернопіль, Україна
Bibliographic description (Ukraine): Мачужак А.В. Дослідження методології DevOps для розробки та підтримки веб-застосунків : кваліфікаційна робота магістра за спеціальністю „122 – комп’ютерні науки“ / А. В. Мачужак. – Тернопіль : ТНТУ, 2023. – 114 с.
Data: 23-Mai-2023
Submitted date: 8-Mai-2023
Date of entry: 25-Mai-2023
Country (code): UA
Place of the edition/event: ТНТУ ім. І.Пулюя, ФІС, м. Тернопіль, Україна
Supervisor: Готович, Володимир Анатолійович
Committee members: Стадник, Наталія Богданівна
UDC: 004.9
Palavras-chave: методологія DevOps
DevOps methodology
CI/CD
GitHub Actions
контейнер Docker
Docker container
віртуальна машина
virtual machine
метрика для веб-додатку
metric for web application
Google Cloud Platform
Resumo: Кваліфікаційна робота присвячена дослідженню та застосуванню практик та методологій DevOps для автоматизації процесів розробки і розгортання програмного забезпечення при створенні веб-додатків. В першому розділі кваліфікаційної роботи наведено основні визначення та принципи DevOps. Описано різницю між DevOps та традиційними методологіями. Розглянуто основні практики та інструменти DevOps. Проаналізовано та досліджено переваги застосування CI/CD методології та Docker-контейнерів для пришвидшення та оптимізації процесів розробки та розгортання програмного забезпечення. В другому розділі проведено аналіз інструментів, які застосовано в практичній частині роботи, зокрема, CI/CD, Docker та інструментів моніторингу середовища розгортання програмного продукту. Також розглянуто процеси реєстрації доменного імені та отримання SSL-сертифікатів, необхідних для розгортання програмного продукту. В третьому розділі описано результати практичної реалізації методології CI/CD та впровадження моніторингу додатку в процесі розробки конкретного програмного продукту. Проаналізовано результати практичного застосування методологій DevOps. Об’єкт дослідження: автоматизація процесів розробки, тестування та розгортання програмного забезпечення при створенні веб-додатків. Предмет дослідження: застосування методів та інструментів автоматизації процесів розробки, тестування та розгортання веб-додатків на прикладі конкретного програмного рішення. The qualification work is devoted to the research and application of DevOps practices and methodologies for automating the development and deployment of software during the creation of web applications. The first section of the qualification work provides the basic definitions and principles of DevOps. The difference between DevOps and traditional methodologies is described. Basic DevOps practices and tools are covered. The benefits of using the CI/CD methodology and Docker containers to speed up and optimize software development and deployment processes have been analyzed and investigated. The second section analyzes the tools used in the practical part of the work, in particular, CI/CD, Docker and tools for monitoring the software product deployment environment. The processes of registering a domain name and obtaining SSL certificates, which are required for the deployment of a software product, are also covered. The third section describes the results of the practical implementation of the CI/CD methodology and the implementation of application monitoring in the process of developing a specific software product. The results of the practical application of DevOps methodologies are analyzed. Study object: automation of software development, testing and deployment processes when creating web applications. Study subject: application of methods and tools for automating the development, testing and deployment processes of web applications on the base of the example of a particular software solution.
Content: ВСТУП 13 1 АНАЛІЗ МЕТОДОЛОГІЙ DEVOPS ТА ІНСТРУМЕНТІВ ДЛЯ АВТОМАТИЗАЦІЇ ПРОЦЕСІВ РОЗРОБКИ, ТЕСТУВАННЯ ТА РОЗГОРТАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 15 1.1 Коротка історія DevOps. Основні означення, концепції, принципи 15 1.2 Різниця між DevOps і традиційними методологіями 18 1.3 Обсяг знань та сфера компетенцій, які необхідні для DevOps-інженера 20 1.4 Практики та інструменти DevOps 21 1.4.1 Практики безперервної інтеграції та розгортання в DevOps 22 1.4.2 Моніторинг інфраструктури середовища розгортання та продуктивності додатків 25 1.4.3 Інструменти Docker та Kubernetes 27 1.4.4 Застосування хмарних технологій в методологіях DevOps 32 1.5 Переваги застосування методологій DevOps 36 1.5.1 Переваги практик CI/CD 36 1.5.2 Переваги застосування контейнерів 38 1.6 Проблеми, які методології DevOps не вирішують на практиці 40 1.7 Висновок до першого розділу 42 2 ОБГРУНТУВАННЯ ВИБОРУ ІНСТРУМЕНТІВ ДЛЯ МОНІТОРИНГУ СЕРЕДОВИЩА РОЗГОРТАННЯ ТА АВТОМАТИЗАЦІЇ ПРОЦЕСІВ ПРИ РОЗРОБЦІ ВЕБ-ДОДАТКУ «ФАЙЛОВИЙ МЕНЕДЖЕР» 44 2.1 Реалізація практики CI/CD за допомогою сервісу GitHub Actions 44 2.2 Підготовка до розгортання програмного продукту шляхом розміщення додатку в контейнері Docker 46 2.3 Застосування хмарного провайдера Google Cloud Platform 53 2.3.1 Загальна характеристика провайдера 53 2.3.2 Порівняння ручного управління базою даних та сервісу Cloud SQL 54 2.3.3 Виділений сервер Compute Engine для веб-додатку 57 2.3.4 Виділений диск для файлів веб-додатку 59 2.4 Налаштування доменного імені та SSL-сертифікатів 60 2.5 Моніторинг інфраструктури та продуктивності додатків з Cloud Logging та Monitoring 64 2.6 Висновок до другого розділу 66 3 ВПРОВАДЖЕННЯ МЕТОДОЛОГІЇ DEVOPS ДЛЯ АВТОМАТИЗАЦІЇ ТА МОНІТОРИНГУ ПРОЕКТУ «ФАЙЛОВИЙ МЕНЕДЖЕР» І АНАЛІЗ РЕЗУЛЬТАТІВ ЇЇ ЗАСТОСУВАННЯ 67 3.1 Налаштування етапу постійної інтеграції 67 3.2 Налаштування випуску нових версій програмного продукту відповідно до методології CI/CD за допомогою GitHub Actions та Google Cloud Platform 69 3.2.1 Створення бази даних в хмарі 69 3.2.2 Налаштування провайдера ідентифікації для GitHub Actions 73 3.2.3 Створення віртуальної машини для веб-додатку та репозиторію для Docker-контейнерів 74 3.2.4 Створення конвеєра в GitHub Actions 78 3.3 Налаштування доменного імені та SSL сертифікатів 81 3.4 Налаштування моніторингу інфраструктури та продуктивності веб-додатку 85 3.5 Аналіз результатів застосування DevOps методологій для веб-додатку «Файловий менеджер» 88 3.5.1 Аналіз результатів застосування методології CI/CD 88 3.5.2 Виявлення наявних та потенційних проблем функціонування веб-додатку за допомогою інструментів моніторингу використання ресурсів 92 3.6 Висновок до третього розділу 95 4 ОХОРОНА ПРАЦІ ТА БЕЗПЕКА В НАДЗВИЧАЙНИХ СИТУАЦІЯХ 96 4.1 Законодавча основа Євросоюзу з питань охорони праці. Рамкова директива 89/391/ЄС «Про введення заходів, що сприяють поліпшенню безпеки та гігієни праці працівників». 96 4.1.1 Мета директиви, визначення та принципи 97 4.1.2 Обов'язки роботодавців і працівників 98 4.2 Планування заходів цивільного захисту на об’єкті у випадку надзвичайних ситуацій 101 4.3 Висновок до четвертого розділу 105 ВИСНОВКИ 107 ПЕРЕЛІК ДЖЕРЕЛ 109 ДОДАТКИ
URI: http://elartu.tntu.edu.ua/handle/lib/41159
Copyright owner: © Мачужак Андрій Володимирович, 2023
References (Ukraine): 1. Fowler, Martin, and Jim Highsmith. "The agile manifesto." Software development 9.8 (2001): 28-35.
2. A Brief History of Devops [with Infographic]. KnowledgeHut: Professional Bootcamps and Certification Courses Provider for your Future. URL: https://www.knowledgehut.com/blog/devops/history-of-devops (дата звернення: 12.03.2023).
3. C. Ebert, G. Gallardo, J. Hernantes and N. Serrano, "DevOps," in IEEE Software, vol. 33, no. 3, pp. 94-100, May-June 2016, doi: 10.1109/MS.2016.68.
4. Leite, Leonardo, et al. A survey of DevOps concepts and challenges. ACM Computing Surveys (CSUR), 2019, 52.6: 1-35.
5. Sacks, Matthew. Devops principles for successful web sites. In: Pro Website Development and Operations: Streamlining DevOps for Large-Scale Websites. Berkeley, CA: Apress, 2012. p. 1-14.
6. Awad, M. A. A comparison between agile and traditional software development methodologies. University of Western Australia, 2005, 30: 1-69.
7. 8 Software Development Models Organized in Charts and Explained (scnsoft.com) URL: https://www.scnsoft.com/blog/software-development-models. (дата звернення: 13.03.2023).
8. Rise of DevOps – The Evolution of Software Development Life Cycle (SDLC) URL: https://www.htown-tech.com/blogs/rise-of-devops-the-evolution-of-software-development-life-cycle. (дата звернення: 14.03.2023).
9. DevOps Roadmap – Walkthrough – YouTube URL: https://www.youtube.com/watch?v=hKfU_QNJzo8. (дата звернення: 14.03.2023)
10. DevOps Roadmap Step by step guide for DevOps, SRE or any other Operations Role in 2023 URL: https://roadmap.sh/devops. (дата звернення: 25.03.2023)
11. Мачужак А. Автоматизація задач тестування та розгортання програмного забезпечення / А. Мачужак // Матеріали Ⅹ науково-технічної конференції „Інформаційні моделі, системи та технології“, 7–8 грудня 2022 року. — Т. : ТНТУ, 2022. — С. 61. — (Інформаційні системи та технології, кібербезпека)
12. Готович В. А. Застосування методології CI/CD для автоматизації процесів тестування та розгортання програмного забезпечення / В. А. Готович, А. В. Мачужак // ⅩⅠ Міжнародна науково-практична конференція молодих учених та студентів „Актуальні задачі сучасних технологій“, 7-8 грудня 2022 року. — Т. : ТНТУ, 2022. — С. 131–132. — (Комп’ютерно-інформаційні технології та системи зв’язку)
13. Understanding GitHub Actions – GitHub Docs. GitHub Docs. URL: https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions#understanding-the-workflow-file. (дата звернення: 25.03.2023)
14. Leszko, Rafal. Continuous Delivery with Docker and Jenkins: Create secure applications by building complete CI/CD pipelines. Packt Publishing Ltd, 2022.
15. Belmont, Jean-Marcel. Hands-On Continuous Integration and Delivery: Build and release quality software at scale with Jenkins, Travis CI, and CircleCI. Packt Publishing Ltd, 2018.
16. Achdian, Asfin; MARWAN, M. Akbar. Analysis of CI/CD Application Based on Cloud Computing Services on Fintech Company. CD Application Based on Cloud Computing Services on Fintech Company, 2019, 4.3: 112-114.
17. Schlossnagle, Theo. Monitoring in a DevOps world. Communications of the ACM, 2018, 61.3: 58-61.
18. Chen, Boyuan. Improving the software logging practices in DevOps. In: 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). IEEE, 2019. p. 194-197.
19. Why Monitoring and Logging are Important in DevOps. URL: https://www.kovair.com/blog/why-monitoring-and-logging-are-important-in-devops/. (дата звернення: 27.03.2023).
20. What is DevOps Monitoring? Types, Importance and Use Cases. URL: https://www.simform.com/blog/devops-monitoring/. (дата звернення: 01.04.2023).
21. The Importance of Monitoring in DevOps – DevOps Online. URL: https://www.devopsonline.co.uk/the-importance-of-monitoring-in-devops/. (дата звернення: 03.04.2023).
22. The Importance of Constant Monitoring and Feedback – A DevOps Blog. URL: https://www.valewood.org/devops-monitoring. (дата звернення: 03.04.2023).
23. DevOps Monitoring | Atlassian. URL: https://www.atlassian.com/devops/devops-tools/devops-monitoring. (дата звернення: 05.04.2023).
24. Docker, Inc. Docker. lınea.[Junio de 2017]. Disponible en. URL: https://www. docker. com/what-docker, 2020. (дата звернення: 05.04.2023).
25. Miell, Ian; SAYERS, Aidan. Docker in practice. Simon and Schuster, 2019.
26. Luksa, Marko. Kubernetes in action. Simon and Schuster, 2017.
27. Kubernetes Documentation. Concepts, overview URL: https://kubernetes.io/docs/concepts/overview/. (дата звернення: 10.04.2023)
28. Qian, Ling, et al. "Cloud computing: An overview." Cloud Computing: First International Conference, CloudCom 2009, Beijing, China, December 1-4, 2009. Proceedings 1. Springer Berlin Heidelberg, 2009.
29. Alhamazani, Khalid, et al. "An overview of the commercial cloud monitoring tools: research dimensions, design issues, and state-of-the-art." Computing 97 (2015): 357-377.
30. Global cloud infrastructure market share 2022 | Statista URL: https://www.statista.com/statistics/967365/worldwide-cloud-infrastructure-services-market-share-vendor/. (дата звернення: 10.04.2023).
31. Chaput, Shawn R., and Katarina Ringwood. "Cloud compliance: A framework for using cloud computing in a regulated world." Cloud computing: Principles, systems and applications (2010): 241-255.
32. Battina, Dhaya Sindhu, Devops, A New Approach To Cloud Development & Testing (August 8, 2020). International Journal of Emerging Technologies and Innovative Research (www.jetir.org), ISSN:2349-5162, Vol.7, Issue 8, page no.982-985, August-2020, Available :http://www.jetir.org/papers/JETIR2008432.pdf, Available at SSRN: https://ssrn.com/abstract=4004330
33. Jones, "A Proposal for Integrating DevOps into Software Engineering Curricula", International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, pp. 3347, 2018.
34. 40+ DevOps Statistics You Should Know in 2023 | StrongDM. URL: https://www.strongdm.com/blog/devops-statistics. (дата звернення: 10.04.2023).
35. Benefits of Using Cloud With DevOps Services – Dzone URL: https://dzone.com/articles/benefits-of-using-cloud-with-devops-services. (дата звернення: 15.04.2023).
36. Benefits of DevOps | Atlassian. URL: https://www.atlassian.com/devops/what-is-devops/benefits-of-devops. (дата звернення: 15.04.2023).
37. Riungu-Kalliosaari, Leah, et al. "DevOps adoption benefits and challenges in practice: A case study." Product-Focused Software Process Improvement: 17th International Conference, PROFES 2016, Trondheim, Norway, November 22-24, 2016, Proceedings 17. Springer International Publishing, 2016.
38. AWS DevOps Services Case Study – Implemented a CI/CD Pipeline on Tix (rapyder.com) URL: https://www.rapyder.com/case-studies/tix-technologies-devops-case-study/. (дата звернення: 19.04.2023).
39. Containers vs. Virtual Machines (VMs): What’s the Difference? | IBM. URL: https://www.ibm.com/cloud/blog/containers-vs-vms (дата звернення: 19.04.2023).
40. Felter, Wes, et al. "An updated performance comparison of virtual machines and linux containers." 2015 IEEE international symposium on performance analysis of systems and software (ISPASS). IEEE, 2015. Cloud SQL documentation. Default MySQL configuration https://cloud.google.com/sql/docs/mysql/features
41. Мачужак А. В. Розробка веб-сервісу „Файловий менеджер” : кваліфікаційна робота освітнього рівня „Бакалавр“ „122 — комп’ютерні науки“ / А. В. Мачужак. — Тернопіль : ТНТУ, 2021. — 76 с.
42. Global Locations – Regions & Zones | Google Cloud. Google Cloud. URL: https://cloud.google.com/about/locations/ (дата звернення: 19.04.2023).
43. Gcloud compute instances create-with-container | Google Cloud CLI Documentation URL: https://cloud.google.com/sdk/gcloud/reference/compute /instances/create-with-container (дата звернення: 25.04.2023).
44. Add a persistent disk to your VM | Compute Engine Documentation | Google Cloud. Google Cloud. URL: https://cloud.google.com/compute/docs/disks/add-persistent-disk#create_disk (дата звернення: 25.04.2023).
45. What is DNS? | How DNS works | Cloudflare. URL: https://www.cloudflare.com/learning/dns/what-is-dns/ (дата звернення: 26.04.2023).
46. GitHub – certbot/certbot: Certbot is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol. GitHub. URL: https://github.com/certbot/certbot (дата звернення: 26.04.2023).
47. Getting Started – Let's Encrypt. Let's Encrypt. URL: https://letsencrypt.org/getting-started/ (дата звернення: 26.04.2023).
48. Cloud Logging and Monitoring – happtiq. happtiq. URL: https://www.happtiq.com/cloud-logging-and-monitoring (дата звернення: 27.04.2023).
49. Operations: Cloud Monitoring & Logging | Google Cloud. Google Cloud. URL: https://cloud.google.com/products/operations (дата звернення: 29.04.2023).
50. Learn about using private IP | Cloud SQL for MySQL | Google Cloud. Google Cloud. URL: https://cloud.google.com/sql/docs/mysql/private-ip (дата звернення: 30.04.2023).
51. Vargo S., Baiju B. Enabling keyless authentication from GitHub Actions | Google Cloud Blog. Google Cloud Blog. URL: https://cloud.google.com/blog/products/identity-security/enabling-keyless-authentication-from-github-actions (дата звернення: 30.04.2023).
52. Variables – GitHub Docs. GitHub Docs. URL: https://docs.github.com/en/actions/learn-github-actions/variables (дата звернення: 16.05.2023).
53. Жидецький В. Ц. Основи охорони праці / В. Ц. Жидецький. – Л. : Афіша, 2005. – 349 с.
54. Main Obligations and Duties of Employers and Employees. Wonder.Legal – Contracts, Letters and Agreements. URL: https://www.wonder.legal/au/guide/main-obligations-and-duties-of-employers-and-employees (дата звернення: 05.05.2023).
55. 26 employees and employers rights and responsibilities – wisestep. Wisestep. URL: https://content.wisestep.com/employees-and-employers-rights-and-responsibilities/ (дата звернення: 07.05.2023).
56. Are you an employee: workers' health and safety. HSE: Information about health and safety at work. URL: https://www.hse.gov.uk/workers/responsibilities.htm (дата звернення: 05.05.2023).
57. Директива Ради від 12 червня 1989 року про запровадження заходів, покликаних заохочувати до покращення безпеки та охорони здоров'я працівників на роботі (89/391/ЄЕС). Офіційний веб-портал парламенту України. URL: https://zakon.rada.gov.ua/laws/show/994_b23#Text (дата звернення: 05.05.2023).
58. Методичні рекомендації щодо розроблення планів з питань цивільного захисту / Державна служба України з надзвичайних ситуацій. Київ: ДСНС, УНДІЦЗ, 2015. 148с.
59. Про затвердження Порядку розроблення планів діяльності єдиної державної системи цивільного захисту. Офіційний веб-портал парламенту України. URL: https://zakon.rada.gov.ua/laws/show/626-2017-п#Text (дата звернення: 09.05.2023).
Content type: Master Thesis
Aparece nas colecções:122 — комп’ютерні науки

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Mag_2023_SNnm_61_Machuzhak_A_W.pdf2,09 MBAdobe PDFVer/Abrir


Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.

Ferramentas administrativas