Удосконалення методів неперервних інтеграції та доставляння ПЗ за допомогою впровадження етапу тестування навантаження

DOI: 10.31673/2412-9070.2021.013944

  • Березнюк А. В. (Bereznyuk A. V.) Державний університет телекомунікацій, м. Київ
  • Макаренко А. О. (Makarenko А. О.) Державний університет телекомунікацій, м. Київ
  • Гринкевич Г. О. (Grynkevych G. O.) Державний університет телекомунікацій, м. Київ
  • Голубенко О. І. (Holubenko O. I.) Державний університет телекомунікацій, м. Київ
  • Лазебний С. Г. (Lazebnyy S. G.) Державний університет телекомунікацій, м. Київ

Анотація

Упровадження гнучких методів розроблення програмного забезпечення з постійною інтеграцією та постійним доставлянням (CICD) зумовило значне зростання ефективності проектів. Переважно це було досягнуто завдяки тому, що нові функції програмного забезпечення розробляються в кожному спринті та доставляються кінцевим користувачам як результат. Цей підхід є досить ефективним, однак він має збої внаслідок закладеної в нього ідеології. Дійсно, масштабування системи є поширеним вирішенням, однак до якої міри її слід масштабувати? Процес масштабування потребує знань щодо поточного та очікуваного станів системи. При цьому критичним та складним завданням є еталонний тест виробничої системи, оскільки він стосується завдань бізнесу в реальному часі. Необхідною умовою для впровадження нової версії системи є тестування навантаження для оцінювання очікуваного стану після її впровадження. Традиційні методи симуляції навантаження не в змозі виявити поведінкові шаблони навантаження трафіку з виробничого середовища. Для подолання цієї проблеми запропонований нами підхід розширює конвеєр CICD та додає три фази автоматизації: оцінювання, тестування навантаження та масштабування. Це дає можливість мінімізувати простої системи за допомогою тестування на стенді та використовувати трафік з виробничого середовища для тестування навантаження, підвищуючи рівень вірогідності результатів. Лише після завершення тестування навантаження системи можна оцінити можливості масштабування. Спочатку конвеєр CICD було розроблено за допомогою серверів Jenkins CI, Git та Nexus з автоматизацією Ansible. Go-replay використовується для дублювання трафіку від виробничого середовища до тестового стенда. Моніторинг Nagios — для аналізу поведінки системи в кожній фазі та доведення на тестовому стенді, що масштабування впорається з цим навантаженням.

Ключові слова: неперервна інтеграція; неперервне доставляння; гнучкі методи розроблення; керування версіями; конфігурація.

Список використаної літератури
1. Cunningham W. Principles behind the Agile Manifesto [Електронний ресурс] // Agile Manifesto. org. URL: http://agilemanifesto.org/principles.html
2. Cohn M. Succeeding with Agile [Електронний ресурс] // Addison-Wesley. URL: http://1.droppdf.com/files/AFvTS/succeedingwith-agile-mike-cohn.pdf
3. Practicing Continuous Integration and Continuous Delivery on AWS [Електронний ресурс] // Amazon Web Services Inc. URL: https://aws.amazon.com
4. Getting started with Continuous Integration in Software Development [Електронний ресурс] // Infosys Limited. URL: https://www.infosys.com
5. An efficient network monitoring and management system [Електронний ресурс] R. Khan, S. Ullah Khan, R. Zaheer, M. I. Babar // International Journal of Information and Electronics Engineering. URL: https://www.researchgate.net/publication/316060077_An_Efficient_Network_ Monitoring_and_Management_System
6. Kucera A., Glos P., Pitner T. Fault detection in building management system networks [Електронний ресурс] // IFAC Proceedings. URL: https://www.sciencedirect.com/science/article/pii/S1474667015373638
7. Feitelson D. G., Frachtenburg E., Beck K. L. Development and Deployment at Facebook [Електронний ресурс] // IEEE Internet Computing. URL: https://ieeexplore.ieee.org/document/6449236
8. Continuous deployment at Facebook and Oando [Електронний ресурс] / T. Savor, M. Douglas, M. Gentili, L. Williams, K. Beck, M. Stumm // 38th International Conference on Software Engineering Companion. URL: https://ieeexplore.ieee.org/document/6449236
9. Bass L., Weber I., Zhu L. DevOps: A Software Architect’s Perspective // Addison-Wesley Professional, 2015. 352 p.
10. Meyer M. Continuous Integration and Its Tools [Електронний ресурс] // IEEE Software. URL: https://ieeexplore.ieee.org/document/6802994

Номер
Розділ
Статті