РОЗРОБКА БЕЗПЕЧНИХ КОНТЕЙНЕРНИХ ЗАСТОСУНКІВ З МІКРОСЕРВІСНОЮ АРХІТЕКТУРОЮ
DOI:
https://doi.org/10.28925/2663-4023.2023.21.193210Ключові слова:
microservice architecture; container; DevSecOps; application security, security vulnerabilitiesАнотація
У статті розглянуто підходи до розробки програмного забезпечення, які дозволяють завдяки засобам автоматизації та методам гнучкої розробки створювати складні контейнерні застосунки з мікросервісною архітектурою. Розвиток хмарних технологій, глобальна стратегія контейнерізації, модернізація архітектури застосунків, підвищення вимог до безпеки призвели до зміни методології розробки програм. Метою дослідження є визначення підходів до підвищення швидкості розробки, безпеки та якості програмного коду контейнерних застосунків шляхом впровадження принципів безпеки та інструментів автоматизації на всіх етапах життєвого циклу. Розглянуто особливості та перспективи розвитку мікросервісних застосунків, розгорнутих у контейнерному середовищі. Визначені переваги контейнерної інфраструктури: мобільність, масштабованість, додатковий рівень безпеки сервісу. Використання контейнерів забезпечує ізольоване середовище для запуску мікросервісу що зменшує ризик поширення вразливостей безпеки, спрощує взаємодію мікросервісів. У роботі визначені проблеми безпеки мікросервісних застосунків, головні вразливості, пов’язані з використанням контейнерів. Показано, що методологія DevSecOps дозволяє реалізувати сучасну практику безперервної інтеграції, доставки, розгортання застосунку та інтегрувати засоби безпеки в усі етапи життєвого циклу. DevSecOps описує процеси розробки та процеси розгортання і експлуатації програм із застосуванням практик Security as Code та Infrastructure as Code відповідно. В роботі описана модель розробки та розгортання мікросервісних застосунків з контейнеризацією, визначені області безпеки, засоби контролю безпеки кожного етапу DevSecOps розробки. На базі цієї моделі визначено головні інструменти автоматизації контролю безпеки, які необхідно використовувати на всіх етапах конвеєру розробки та розгортання. У статті показано, що розглянута методика регламентує виконання визначених процедур безпеки на всіх етапах конвеєру, дозволяє скоротити час розробки і підвищити якість коду для контейнерних застосунків з мікросервісною архітектурою.
Завантаження
Посилання
Kulikov, E. (2022). IT Ukraine about the of software development field. https://ko.com.ua/vitchiznyana_it-galuz_ochima_it_ukraine_140263
Conger, S. (2010). Software Development Life Cycles and Methodologies: Fixing the old and adopting the new. Sprouts: Working Papers on Information Systems, 10(172). https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=0cc3ebc9b5490d4d6769f005dbc0d50d4a8ad8722
Martin, R. (2002). Agile Software Development, Principles, Patterns, and Practices. Pearson.
Wilson, G. (2020). DevSecOps: A leader’s guide to producing secure software without compromising flow, feedback and continuous improvement. Rethink Press.
Mack, S. (2023). The DevSecOps Playbook: Deliver Continuous Security at Speed. Wiley.
Newman, S. (2021). Building Microservices, 2d Edition: Designing Fine-Grained Systems. O'Reilly Media. https://www.oreilly.com/library/view/building-microservices-2nd/9781492034018/
TeamCity (2020). Agile Continuous Integration. https://www.jetbrains.com/teamcity/ci-cd-guide/agile-continuous-integration/
TeamCity (2020). What are CI/CD Tools and how do they work. https://www.jetbrains.com/teamcity/ci-cd-guide/ci-cd-tools/
DORA (2022). Accelerate: State of DevOps Report 2022. https://services.google.com/fh/files/misc/2022_state_of_devops_report.pdf
TeamCity (2020). What is DevSecOps and its role in CD. https://www.jetbrains.com/en-us/teamcity/ci-cd-guide/what-is-devsecops/
Scott, James A. (2017). A Practical Guide to Microservices and Containers. Mastering the Cloud, Data, and Digital Transformation. https://www.academia.edu/41522528/A_Practical_Guide_to_Microservices_ and_Containers_Mastering_the_Cloud_Data_and_Digital_Transformation
Kocher, P. (2018). Microservices and Containers. Addison-Wesley Professional. 304. https://res.infoq.com/articles/microservices-and-containers-book-review/en/resources/Kocher_InfoQ _Sample-1525845801075.pdf
Ortega, J. (2022). Implementing DevSecOps with Docker and Kubernetes. An Experiential Guide to Operate in the DevOps Environment for Securing and Monitoring Container Applications (English Edition)
Souppaya, M., Morello, J., Scarfone, K. (2017). NIST Special Publication 800-190. Application Container Security Guide. https://doi.org/10.6028/NIST.SP.800-190
Chandramouli, R. (2019). NIST Special Publication 800-204. Security Strategies for Microservices-based Application Systems. https://doi.org/10.6028/NIST.SP.800-204
Production Reedy (2022). Microservice architecture in DevOps practice. https://production-ready.dev/2022/11/mikroservisna-arkhitektura/
MuleSoft (2023). Microservices and Security: Increasing security by increasing surface area https://www.mulesoft.com/resources/api/microservices-security
Cloudfresh (2022). DevSecOps: The Integrate product security at each stage of the SDLC. https://cloudfresh.com/ua/cloud-blog/devsecops-intehratsiya-produktu-bezpeky-na-kozhnomu-etapi-sdlc/.
McCarty P. (2022). DevSecOps Playbook - Version 1.3 https://github.com/6mile/DevSecOps-Playbook
Buriachok, V., Spasiteleva, S., Skladannyi, P. (2018). Organization of development of safe .Net applications in higher education institutions. Modern special technics, 1(52), 13-23.
BrowserStack (2022). Top 14 CI CD Tools for your DevOps project https://www.browserstack.com/guide/top-ci-cd-tools
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2023 Світлана Спасітєлєва, Іван Чичкань, Світлана Шевченко, Юлія Жданова
Ця робота ліцензується відповідно до Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.