Улучшение инфраструктуры автоматизации при помощи навыков DevOps |
06.05.2025 00:00 |
В динамическом мире разработки ПО очень важна способность эффективно масштабировать и оптимизировать процессы. Работая над улучшением инфраструктуры нашей автоматизации в Glassbox, мы пришли к применению возможностей DevOps, Groovy, скриптов DSL и AWS EC2 Jenkins-агентов. Эта комбинация позволила создать масштабируемую и устойчивую систему, способную на запуск более чем 1000 задач в день, что дает нам высокую производительность и надежность. ПроблемаУправление большим объемом задач автоматизации, включая UI, мобильное тестирование, API и производительность, подвержено ряду значительных проблем. Некоторые задачи запускаются, как часть нашего CI/CD пайплайна, но по мере роста проекта росло и количество задач, и их сложность. Наша существующая статичная архитектура состояла из трех слейвов Jenkins, каждый из которых мог одновременно выполнять до 5 задач. Эта архитектура была недостаточно масштабируемой для работы с растущей рабочей нагрузкой, и в результате получались «бутылочные горла» производительности и эффективности. Нам нужно было решение, способное динамически масштабироваться, автоматизировать процессы и поддерживать высокий уровень надежности. Применение навыков DevOpsПервым шагом трансформации инфраструктуры автоматизации стало внедрение принципов DevOps. Ключевые практики DevOps, сыгравшие критически важную роль:
Groovy и DSL-скрипты: совершенствование автоматизацииСкрипты Groovy и Jenkins DSL (доменно-специфичный язык) очень помогли в автоматизации и масштабировании задач Jenkins. Используя скрипты Jenkins DSL, мы программно задавали настройки задач. Этот подход помог управлять определениями задач с контролем версий, что упростило дублирование и изменение задач в разных окружениях. Так как у нас много различных потребностей, это сберегло много времени и стало хорошей устойчивой практикой. Скрипты Groovy использовались для запуска автоматизированных тестов в Jenkins и в то же время использовали нашу систему контроля версий, чтобы убедиться, что все идет гладко. Groovy – наш основной инструмент пайплайна: мы используем его для всего, от запуска сложных задач (например, получение данных из репозитория, получение образа docker из сети, запуск тестов, сложные завершающие действия – публикация отчетов, очистка слейвов, отправка писем и уведомлений) до настройки задач Jenkins по управлению плагинами и выполнению рутинных поддерживающих действий. Скрипты Groovy дают нам гибкость и контроль, необходимые для оптимизации наших процессов автоматизации. AWS EC2 Jenkins-агенты: добиваемся масштабируемостиДля решения вопроса масштабируемости мы использовали копии AWS EC2 как агенты (слейвы) Jenkins. У этого подхода был ряд преимуществ:
Узнать о плагине больше можно тут. РезультатыИнтеграция навыков DevOps, Groovy и DSL-скриптов и AWS EC2 Jenkins-агентов привели к значительным улучшениям инфраструктуры нашей автоматизации:
ЗаключениеИспользуя продвинутые практики DevOps, Groovy, DSL-скрипты, Grafana и AWS EC2 Jenkins-агенты, мы трансформировали инфраструктуру нашей автоматизации в масштабируемую, эффективную и надежную систему. Это преображение не только отвечает нашим текущим нуждам, но также позволяет уверенно справляться с будущими задачами и сохранять прекрасное качество наших процессов разработки. |