Уменьшите зависимость от лицензий за счет интеграции GitHub Actions для автоматического тестирования.
Переведено с Use These DevOps Pipelines To Cut Automation Tool Costs,Гаурав Миттал.
Многие ИТ-организации используют лицензионный инструмент автоматизации.,Но предоставлять лицензии всем QA и разработчикам нецелесообразно. в целом,Лицензии выдаются назначенным инженерам по автоматизации.,Они создают и запускаются по мере необходимоститест。этотСоздает задачу для любого члена команды выполнять тестирование по требованию.。Поскольку большинствоавтоматизация Инженеры за границей,Поэтому для локального выполнения тестов требуется дополнительная лицензия.,Это может быть очень дорого. также,Обеспечить качественный код, адекватное освещение、Отсутствие запаха кода и тщательное сканирование безопасности имеют решающее значение.
Моя организация большая и охватывает несколько областей, таких как ERP, данные, системы управления лабораторной информацией (LIMS), программное обеспечение для автоматизации и робототехники, биопроизводство и программное обеспечение для клеточной/генной терапии. В каждом регионе используется собственное решение DevOps, в первую очередь Jenkins, за которое взимаются ежемесячные расходы. Чтобы иметь единую структуру DevOps для всей организации, я исследовал несколько инструментов DevOps, чтобы определить наиболее экономически эффективное решение. Цель состоит в том, чтобы иметь единую структуру, которую можно было бы использовать в разных проектах в разных областях.
В свою очередь, это решение DevOps снижает затраты на лицензию на сторонние инструменты автоматизации, используемые в различных проектах. Как только этот конвейер CI будет готов, любой, у кого есть доступ к инструментам DevOps, сможет запускать автоматические тесты, не беспокоясь о необходимости лицензии на инструмент автоматического тестирования.
Поэтому я начал связываться с несколькими поставщиками и в итоге перечислил Jenkins, GitHub Actions (GHA) и Gearset как общие инструменты, которые можно использовать во многих областях. После дальнейшего анализа с моей командой мы обнаружили, что GHA был лучшим выбором с точки зрения стоимости и простоты добавления проверок безопасности и модульных тестов в конвейер.
В этой статье я продемонстрировал преимущества GitHub Actions (GHA) как CI-инструмента. ГСГ имеет открытый исходный код,Но затраты будут понесены в зависимости от использования бегуна.。Я также предложил инновационное решение, позволяющее исключить затраты на бегунков.。ВоляИнструменты качества кода, такие как SonarQube и CodeQL, интегрированы в конвейер.Также обеспечивает сканирование безопасности и выявляет проблемы перед развертыванием.。
Автоматизированные инструменты, требующие лицензии, могут использоваться только лицензированными лицами. Однако при интеграции с конвейером CI любой пользователь, имеющий доступ к CI, может запускать задания, не требуя прямой лицензии. Такой подход оптимизирует управление пулами лицензий, снижает затраты и расширяет возможности инструмента для автоматизации тестирования. Например, все разработчики с доступом к GitHub Actions (GHA) теперь могут вызывать инструменты автоматизации, не требуя отдельной лицензии.
Некоторые инструменты автоматизации не позволяют тестировщикам/разработчикам покидать экран пользовательского интерфейса во время выполнения теста пользовательского интерфейса, тем самым не позволяя им выполнять другие задачи на компьютере. Использование GitHub Actions (GHA)Конвейерные вызовыавтоматизацияинструмент Это ограничение снято,позволятьРазработчики и тестировщики решаютДругие задачи,А автоматизация работает в фоновом режиме. После выполнения,Будет отправлено электронное письмо с подробным и удобным для пользователя отчетом о результатах теста в формате PDF.
Рисунок. Изображение того, как автоматизация помогает сократить ручную работу.
До CI Pipeline — настройка выполнения тестов вручную эффективно сократила наше время с XXX часов до XX часов, но нам все равно нужно выделить XX часов, поскольку ресурсы QA должны контролировать экраны во время выполнения теста.
Рисунок. Изображение действий GitHub, позволяющее свести усилия по автоматизации к нулю.
Автоматическая интеграция CI/CD. Сократите эти часы до нуля, поскольку конвейер CI управляет сеансами и устраняет необходимость ручного мониторинга во время выполнения тестов.
Действия GitHub — это функция GitHub, которая включена по умолчанию, поэтому явный доступ к GHA не требуется. Он поддерживает рабочие процессы CI/CD непосредственно в вашем репозитории.
Для конвейера CI/CD,Нам нужно интегрировать раннер (виртуальная машина, необходимая для запуска заданий CI),Обычно настраивается в облаках, таких как AWS.,повлечет за собой дополнительные расходы,И оно растет по мере увеличения нагрузки. Однако,через эту программу,В качестве посредника мы используем машину Win365, предоставленную организацией.,Это исключает дополнительныеЗатраты оператора инфраструктуры。всеавтоматизация Инженеры оснащеныWin365Машина для монтажа и исполненияавтоматизация Скрипт。
Рисунок – экземпляры Microsoft Win365 и AWS EC2
Если он обеспечивает ту же виртуальную среду, что и его образ на рабочем столе машина,Членам команды автоматизации нужныУстановитьавтоматизацияинструмент。это облако Пример Будет фиксированная плата。QAРесурсы используются только в рабочее время.это облако Пример,Остальные 16 часов в день бесплатны. Мы можем значительно сократить использование AWS, используя эти виртуальные машины в качестве исполнителей конвейера CI в свободное время.,Нет необходимости запускать новый пример EC2.
На графике ниже показана экономия средств. Здесь мы несем фиксированную стоимость виртуальной машины в размере 55 долларов США в месяц, поэтому конвейер, использующий эти виртуальные машины, будет нести затраты на исполнителя в размере 0 долларов США, но если мы будем использовать новый экземпляр AWS в качестве исполнителя, мы можем понести ежемесячные затраты в размере 80 долларов США.
Рисунок – Расчет экономии затрат
Поскольку GitHub управляется внутри внутренней сети организации, мы можем избежать любых проблем с разрешениями API систем безопасности и инструментов автоматизации, которые являются проблемами, с которыми сталкиваются инструменты CI/CD, размещенные на внешнем хостинге.
Внутри самого конвейера CI мы можем реализовать инструменты качества кода CodeQL и SonarQube, избегая необходимости отдельного тестирования. CodeQL — это трудоемкий инструмент. Выполнение конвейера занимает много времени, поэтому рекомендуется запускать CodeQL в отдельном конвейере, а результаты можно просмотреть на GitHub.
Рисунок. После запуска конвейера вы можете просмотреть все ошибки, выделенные CodeQL.
Наконец, конвейер DevOps для развертывания кода и запуска автоматических тестов для недавно выпущенной ветки выглядит следующим образом:
Рисунок. Конвейер DevOps, который развертывает код, выполняет проверки качества кода и, наконец, запускает автоматические тесты.
Решение использовать GitHub Actions в качестве инструмента CICD для различных доменов оказалось плодотворным для моей организации. Мы исключаем затраты на дополнительные лицензии на инструменты автоматизации и используем доступные локальные виртуальные машины в качестве участников конвейера, сокращая затраты на облачные экземпляры. Кроме того, простая интеграция GHA с инструментами качества кода, такими как SonarQube и CodeQL, также помогает поддерживать стандарты кодирования.
В современном мире, где организации сталкиваются с бюджетными проблемами, этот тип технологии может оказать значительное влияние. Нам следует творчески подходить к использованию существующих решений и искать инструменты с открытым исходным кодом для обеспечения безопасных и экономичных решений автоматизации.