Две сотни лет назад Чарльз Дарвин сказал: «выживает не самый сильный и умный, а тот, кто лучше всех приспосабливается к изменениям». Способность выстроить свои внутренние процессы, так, чтобы можно было быстро и корректно интегрировать новый функционал в уже работающий софт — залог успешной адаптации и положительного отклика потребителей в условиях динамики развития финансового сектора и переменчивых факторов внешней среды.

РАБОТАЯ СЛАЖЕННО

Стремительно развивается и приобретает популярность использование методологии CI/CD — создание автоматизированного конвейера разработки и поставки продукта заказчику от этапа исходного кода до внедрения в производственной среде.

Автоматизация этого процесса позволяет:

  • Cокращать релизные циклы и достигать ускоренного развёртывания и внедрения ПО.
  • Cнизить трудоемкость в случае раннего выявления дефекта и повысить качество релизов.

Упростить внедрение и максимально использовать преимущества конвейера CI/CD помогают контейнерные среды (такие как Docker). На основе построенных контейнеров — пакетов ПО, которые содержат все зависимости для работы приложения. команды могут быстрее и проще разрабатывать, тестировать и развертывать изменения и в кратчайшие сроки доставлять приложения в руки конечных пользователей.

ВСЕ ПРОДУКТЫ SOLAR МОГУТ ПОСТАВЛЯТЬСЯ В ВИДЕ КОНТЕЙНЕРОВ И НАТИВНО ИНТЕГРИРОВАТЬСЯ В ОБЛАЧНЫЕ СРЕДЫ. ГИБКИЕ, ЛЕГКО МАСШТАБИРУЕМЫЕ, РЕШЕНИЯ SOLAR ЧРЕЗВЫЧАЙНО ЭФФЕКТИВНЫ ПРИ РАБОТЕ В КОНЦЕПЦИИ CI/CD

CONTINUOUS INTEGRATION (CI)

Continuous Integration (CI) — непрерывная интеграция, метод нацелен на автоматизированную проверку интеграции между изменениями разработчика и остальным кодом. Использование CI предполагает, что обновления кода регулярно создаются, тестируются и объединяются в общий репозиторий. Совместимость компонентов проверяется на ранних стадиях, а значит меньше ошибок в производственной среде, легче готовить сборки, ниже затраты на тестирование.

ДОВЕРЯЙ, НО ПРОВЕРЯЙ

Обеспечить качество при разработке обновления и убедиться в отсутствии сбоев при работе продукта, позволит хорошо отлаженный процесс тестирования. Ручное тестирование крайне трудо- и времязатратно и, конечно, всегда сопряжено с рисками ошибок человеческого фактора, в отличие от автоматизированного тестирования, которое позволяет оперативно отслеживать и при каждом изменении проверять текущее состояние программного кода, что особенно полезно при частой сборке приложений.

SOLAR TESTING TOOLKIT — ГОТОВОЕ РЕШЕНИЕ ДЛЯ АВТОМАТИЗАЦИИ ФУНКЦИОНАЛЬНОГО, ИНТЕГРАЦИОННОГО, РЕГРЕССИОННОГО И НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ. ПРОДУКТ МОЖЕТ ЭМУЛИРОВАТЬ НЕСКОЛЬКО СИСТЕМ В ОДНОМ И ТОМ ЖЕ СЦЕНАРИИ, ВЫПОЛНЯЯ ТЕСТИРОВАНИЕ ФИНАНСОВОЙ ТРАНЗАКЦИИ ИДЕНТИЧНО РЕАЛЬНЫМ УСЛОВИЯМ

CONTINUOUS DELIVERY (CDL)

Целью этого этапа является доставка внесенных изменений в эксплуатацию. После автоматизации сборки и тестирования непрерывная доставка (CDL) автоматизирует развертывание поставок на среды тестирования. Для обеспечения эффективного CDL важно, чтобы CI уже был встроен в конвейер разработки. Цель непрерывной доставки состоит в том, чтобы всегда поддерживать актуальное состояние кодовой базы, готовой к развертыванию в рабочей среде. Таким образом, развертывание нового кода потребует минимальных усилий, можно выпускать сборки чаще, тем самым ускоряя цикл обратной связи пользователей.

CONTINUOUS DEPLOYMENT (CDP)

Заключительным этапом CI/CD-конвейера является непрерывное развертывание (CDP). В качестве расширения непрерывной доставки, которое автоматизирует выпуск готовой к производству сборки в хранилище кода, непрерывное развертывание автоматизирует выпуск изменений в производство.

CDP состоит из следующих обязательных этапов:

1. Получение информации, необходимой для развертывания — дистрибутив, пользовательская и эксплуатационная документация, скрипты развертывания, конфигурации.

2. Подготовка среды для развертывания (проверка прав доступа, скриптов и их готовность к развертыванию).

3. Выполнение развертывания.

4. Проверка успешности развертывания и проверка работоспособности (Smoke testing).

5. Если результаты проверки неудовлетворительные, возможно восстановление приложения на предыдущую версию, информирование ответственных лиц.

НЕПРЕРЫВНОЕ ТЕСТИРОВАНИЕ

В рамках конвейера CI/CD необходим постоянный мониторинг правильности функционирования системы. Для минимизации рисков ошибок, профилактики неполадок и взломов используют непрерывное тестирование (Continuous Testing) — серию автоматизированных тестов, запускаемых в определенный момент прохождения по конвейеру. Правильно скоординированный сквозной процесс взаимодействия групп разработчиков, тестировщиков и эксплуатации позволяет оперативно реагировать и вносить необходимые правки, так обновления могут быть запущены в кратчайшие сроки после их написания.

Работая вместе, все этапы CI/CD уменьшают риски при развертывании приложений, благодаря чему легче разворачивать и проверять изменения в приложениях небольшими частями, а не все сразу. Потребуется изначально написать автоматизированные тесты, чтобы учесть различные этапы тестирования и выпуска в CI/CD-конвейере.

МНОГОЗАДАЧНОСТЬ

Вся идея CI/CD заключается в том, чтобы сократить время вывода на рынок новой функциональности. Способность адаптироваться к меняющимся потребностям и при этом поддерживать стабильную работу продукта напрямую является результатом качественного тестирования. Наиболее надежный способ выполнять все тестовые сценарии быстро и точно — автоматизация.

С различными типами тестов, которые формирует CI/CD-конвейер, возникает вопрос распределения ресурсов для их выполнения. Многие компании откладывают выпуски своих продуктов из-за нехватки времени для тестирования. Эта проблема может быть решена путем использования параллельного тестирования, то есть выполнения нескольких тестовых сценариев одновременно.

SOLAR TESTING TOOLKIT ПОЗВОЛЯЕТ ЗАПУСКАТЬ ТЕСТЫ НА КОМБИНАЦИЯХ ИЗ НЕСКОЛЬКИХ УСТРОЙСТВ, ОБЕСПЕЧИВАЯ ТОЧНУЮ ЭМУЛЯЦИЮ РАБОЧЕЙ СРЕДЫ. SOLAR TESING TOOLKIT ЗНАЧИТЕЛЬНО СОКРАЩАЕТ ВРЕМЯ И УСИЛИЯ КОМАНД — РАЗРАБОТЧИКАМ НЕ НУЖНО ЖДАТЬ ОЧЕРЕДЬ ДЛЯ ТЕСТИРОВАНИЯ СВОЕГО КОДА. В РЕЗУЛЬТАТЕ КЛИЕНТЫ БЫСТРЕЕ ПОЛУЧАЮТ УЛУЧШЕНИЯ И ПОВЫШЕНИЕ КАЧЕСТВА