AI РС — программный комплекс для непрерывной интеграции (CI) и разработки (CD) веб-приложений с использованием системы контроля версий и облачных технологий
от компании AGIMA Интерактив.

Система AI PC полезна любому бизнесу, чьи показатели зависят от стабильности работы приложения и скорости его изменения под свои потребности.
AI РС решает следующие проблемы, связанные непрерывной интеграцией и непрерывной разработкой веб и мобильных приложений:
Некорректные релизы приложений и их негативные последствия
Одними из основных требований к приложению (сайту, мобильному приложению, сервису) являются бесперебойная работа (высокая доступность) и скорость доставки изменений от разработки до production (рабочего) окружения (time to market).

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

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


Высокий показатель time to market при изменении приложений и высокие затраты на труд специалистов при внедрении новых версий.
Ручное тестирование изменений и их влияние на связанный функционал (регрессионное-тестирование) увеличивает временные и финансовые затраты на подготовку и осуществление релиза. Применение систем автоматизированной доставки изменений с проверкой на корректность внесенных изменений позволяет сильно уменьшить обозначенные риски и улучшить показатель time to market: новые разработки доставляются на production окружение при помощи специализированного ПО с учетом всех необходимых проверок, по заранее заданному сценарию. Таким образом устраняется риск человеческого фактора и отказа в работе системы.
Применение лучших практик в релизах без использования систем CI/CD требует значительных временных затрат сотрудников и может существенно замедлять вывод новой функциональности в рабочий режим. Многие компании вынуждены проводить релизы в ночное время с downtime (временная недоступность) приложения для того, чтобы снизить риски и сократить количество отказов в обслуживании своего сервиса для пользователей.
Функции системы
Автоматизация
автоматизированное развёртывание веб-приложений и их актуализация в реальном времени на основе системы контроля версий, облачных технологий и программной системы управления качеством.

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

Функциональное тестирование
Для проведения функциональных тестов используется эмулятор веб-браузера, имитирующий действия реального пользователя по заданному сценарию.

Тестирование безопасности
Для проверки безопасности кода используется статический анализатор, выявляющий потенциально уязвимые места
Тестирование на соответствие стандартам кодирования
Проверяется соответствия кода установленным стандартам

Таким образом система позволяет повысить надежность, безопасность и качество приложения, а также упростить дальнейшую программную поддержку приложения в будущем.
Упрощение проведения релизов
Система позволяет автоматизировать и стандартизировать рутинные действия, такие как:
отслеживание изменений
в приложении
запуск «сборки» (build) проекта (минификация программного кода, компилирование исходного кода в исполняемый и т. д.)
совмещение (merge) программного кода от разных разработчиков
запуск скриптов изменений (миграций) в базах данных приложения
проверка безопасности, качества и работоспособности приложения
перенесение изменений из среды разработки на промежуточный стенд или в production среду
откат релиза в случае необходимости
Если взять за среднее время проведение ручного релиза с учетом всех перечисленных выше параметров значение в 92 часа, а частоту релизов 1 раз в две недели, то такой подход позволит сэкономить более 184 рабочих часов специалистов за один месяц.

По нашим оценкам, использование системы, уменьшает трудозатраты на проведение релиза в среднем в 9−14 раз.
Уменьшение риска возникновения человеческого фактора при релизах
Автоматизация рутинных действий также нивелирует риск возникновения ошибки вследствии человеческого фактора. Рисков, связанных с такого рода ошибками очень много
1
Влияние изменений в одной части кода на связанный функционал. (В этом случае, как правило, сотрудник, ответственный за проверку работоспособности приложения может просто не обратить внимания на этот функционал, т.к. напрямую этот функционал не затрагивали).
2
Увольнение, болезнь или отпуск ответственного за релиз сотрудника
3
Бизнесовая необходимость отменить релиз или его часть (в случае ручных релизов это может потребовать больших трудозатрат, чем сам релиз).
4
Устаревание инструкций по проведению релизов
5
Недостаточно квалифицированные сотрудники
Увеличение скорости поставки изменений

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

По нашим оценкам использование системы может позволить ускорить проведение релизов на порядок (в 10 раз и более, в зависимости от сложности приложения).
Улучшение качества работы распределенных команд
при работе над компонентами одного приложения
Использование системы позволяет стандартизировать подход к разработке приложения, таким образом распределенные команды не имеют возможности разрабатывать части приложения с нарушениями стандартов кодирования, правил безопасности или нарушением работы связанных компонентов.

По нашим оценкам использование системы должно снизить общий overhead (коэффициент накладных временных расходов) на поддержку и разработку приложения распределенными командами на 30%.

Система представляет из себя веб-приложение, доступное из браузера по протоколу HTTP/HTTPS с возможностью работы из командной строки (CLI-интерфейс).
AGIMA Интерактив — лидер в области разработки, развития
и поддержки архитектурно сложных сайтов
и мобильных приложений


Мы реализовали более пятисот проектов по сложной интеграционной, мобильной и веб-разработке, аналитике, брендингу и SMM.

Система работает на следующем технологическом стеке
Python
Backend
PostgreSQL
DB
[Vue.js
Front-end
Linux
Front-end
Windows
OS
Docker
Server-side
Gulp
Сборка ПО
npm
Сборка ПО
Node.js
Сборка ПО
mongoDB
Работа с очередями
RabbitMQ
Работа с очередями
Reddis
Работа с очередями
Selenium webdriver
Работа с тестами
SonarQube
Работа с тестами
PVS-Studio
Статические анализаторы
Pylint
Статические анализаторы
Клиенты
Ключевые преимущества AI РС перед конкурентами
Поддержка zero-time deploy из коробки
  • Работа с БД приложений (создание временных таблиц, переключение, откат, репликация и т. д. — все, что нужно, чтобы провести обновление не нарушая работу production приложения)
  • Работа с серверной инфраструктурой (балансировка, переключение трафика и т. д. — все, что нужно, чтобы провести обновление не нарушая работу production приложения)
Встроенная система проверки на безопасность из коробки
  • Интеграция с CVE
  • Использование встроенных статических анализаторов кода
Умеренная цена владения
  • Бесплатная версия при использовании до 10-ти агентов (чем больше агентов — тем большее кол-во работ можно выполнять параллельно, не создавая очередь ожидания)
Интеграция с популярными таск-трекерами (jira, trello, redmine, 1С-Битрикс, youtrack и др.)
Интеграция с Kubernetes
Оставить заявку
© 2020 AGIMA Интерактив
Открытое программное обеспечение для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями
Интерфейс командной строки (англ. Command line interface, CLI) — разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши[1]. Также известен под названием консоль.
https://en.wikipedia.org/wiki/Build_automation" data-tooltip-id="159023964" data-tooltip-position="">
Автоматизация сборки — этап процесса разработки программного обеспечения, заключающийся в автоматизации широкого спектра задач, решаемых программистами в их повседневной деятельности.