Катаклизм двух миров?
В книге Team Topologies, написанной Мануэлем Паисом и Мэтью Скелтоном, говорится: Ограничьте размер программных сервисов/продуктов когнитивной нагрузкой, с которой может справиться команда.
Значение — программное обеспечение, которое умещается в вашей голове, — как мы видим на картинке выше, если это не может привести к нескольким проблемам, будьте проще, «программное обеспечение, которое слишком велико для наших голов», работает против организационной гибкости.
Если вы когда-либо работали с SAP, вы уже знаете, что это сложный монстр, никто не понимает его полностью.
Когнитивная нагрузка — это общее количество умственных усилий, затрачиваемых на рабочую память. Джон Селлер
Так как же DevOps подходит (или не подходит) для разработки SAP?
Некоторые компоненты SAP существуют с первых дней SAP R/3. Одним из таких компонентов является SAP Change and Transport System (CTS).
Хотя в течение десяти лет в этот важный основной компонент не вносилось существенных изменений, за последние 13 лет он был расширен для поддержки переноса объектов, отличных от ABAP (Enhanced CTS или CTS+), а также для синхронизации зависимых изменений между различными SAP. ландшафты (Центральные ЦТС или ЦТС).
Теперь SAP представляет gCTS, систему изменений и транспорта с поддержкой Git в SAP S/4HANA 2020.
Git Enabled Change and Transport System (gCTS).
Как видите, теперь мы можем использовать Git-репозиторий, но все же требуется транспортный запрос в фоновом режиме, но нам больше не нужна полная настройка ландшафта, чтобы иметь возможность перемещать данные между системами, и, конечно же, среда выполнения ABAP по-прежнему является обязательной.
В качестве связи с этими системами у нас есть репозиторий Git, который представляет собой подход DevOps, но у нас все еще есть классический CTS в фоновом режиме.
Процесс разработки
Разработчики ABAP начинают работать так, как они привыкли, либо с помощью ADT (Инструменты разработки ABAP), транзакции SE80 (Навигатор объектов), SPRO (Настройка), в зависимости от версии SAP, и, наконец, SE09 (Организатор транспорта).
В средах SAP разработчик сначала начинает создавать транспортный запрос, после этого он может приступить к разработке, когда он закончит, он выпустит транспортный запрос, поэтому процесс для разработчика на первый взгляд не сильно изменится. Только когда транспортный запрос освобождается, все меняется.
В транспортной цели будет выполнено нажатие, эта фиксация будет выполнена в репозитории, а затем вы сможете выполнить некоторую сборку, модульное тестирование и т. д. и выполнить полный конвейер, как показано на следующем рисунке.
Конечно, мы можем выбирать из различных инструментов для обеспечения непрерывной интеграции, таких как Jenkins, GitLab, IKAN ALM и т. д.
gCTS для пользовательского интерфейса Fiori
Приложения SAP Fiori разрабатываются с использованием набора средств разработки пользовательского интерфейса для HTML5 (SAPUI5). Среда выполнения SAPUI5 — это клиентская библиотека рендеринга HTML5 с богатым набором элементов управления пользовательского интерфейса для создания как настольных, так и мобильных приложений. Чтобы помочь вам в разработке приложений, инструменты SAPUI5 поставляются с набором мастеров и редакторов на основе Eclipse. Они предоставляют мастера для создания проектов приложений и представлений в соответствии с концепцией модель-представление-контроллер и другими функциями, такими как автодополнение кода JavaScript, шаблоны и фрагменты, а также предварительный просмотр приложения на месте.
Таким образом, внешний интерфейс — это отдельный код, построенный на Eclipse, а серверная часть — это пакет ABAP, оба подключены к репозиторию Git.
Мы можем добавить Selenium в наш пайплайн для автоматизации тестирования на лицевой стороне или можем использовать Uiveri5, явно не очередной громоздкий инструмент от SAP.
UIVeri5 — это среда тестирования E2E для приложений на основе UI5. Он использует WebDriverJS для управления настоящим браузером и взаимодействует с вашим приложением так, как это сделал бы реальный пользователь. UIVeri5 во многом вдохновлен Protractor и привносит большую часть (и даже больше) своих преимуществ в приложения UI5.
За кулисами он использует Webdriver, который используется в Selenium и Jasmine для установки набора тестов и написания тестов.
Объекты страницы — это шаблоны проектирования, представляющие значительную часть приложения, группы, действий или утверждений. С помощью локаторов они позволяют исполнителям тестов видеть и делать все, что сделал бы реальный пользователь.
Непрерывное тестирование
Тестирование должно присутствовать на всех этапах, но большая часть тестирования должна проводиться во время модульного тестирования. Цель состоит в том, чтобы решить проблемы как можно раньше, сдвинув контроль качества влево.
Цель сдвига влево — не накапливать технический долг.
Модульные тесты фокусируются на одной единице исходного кода. Все вокруг этого блока заменяется тестовыми двойниками (изоляция зависимостей).
Есть 2 центральных компонента инструментов разработки ABAP (ADT) для обеспечения качества.
1. Структура модуля ABAP
Проверяет функциональную правильность и предполагаемое поведение программы во время выполнения.
2. Тестовая кабина ABAP (ATC)
Выполните модульный тест ABAP вместе с другими тестами, такими как проверки функциональности, безопасности, доступности или удобства использования.
Конвейер ABAP CI/CD с использованием gCTS
Взгляните на следующее изображение (отказ от ответственности, изображение взято с обучающей платформы openSAP) и, конечно же, Banana Corp — это вымышленная компания.
Итак, у нас есть 3 разные системы: разработка N20, тестирование — T20, а производство — Y20. Ветка для разработки под названием Feature и ветка Master, которая выполняет развертывание в рабочей среде.
Как может происходить двойная ландшафтная (модернизированная) синхронизация с Git-Enabled Change and Transport System (gCTS)?
На уровне филиала в репозитории или на уровне филиала в исходном репозитории и с модификацией SAP Solution Manager (смешанный режим).
Вывод
По моему скромному мнению, по-прежнему не так просто реализовать проект гибкой разработки в системах SAP, но это стало намного проще, чем раньше. Возможно, нет причин использовать gCTS в чистой среде ABAP. Классический CTS доступен и останется доступным. Если вы довольны процессом и потоками, которые вы используете в CTS, продолжайте их использовать!
gCTS создан для случаев, когда процессы CI/CD в среде, ориентированной на DevOps, необходимы и для ABAP. gCTS каким-то образом открывает двери для разработки ABAP в этот мир. С gCTS это, например. можно настроить конвейеры для разработки ABAP.
У SAP есть разные решения для CI/CD.
- Как показано на изображении выше, первый вариант — непрерывная интеграция, а доставка — это облачная служба, которая позволяет настраивать и запускать предопределенные конвейеры CI/CD. Вам не нужно настраивать собственную инфраструктуру CI/CD и, что более важно, вам не нужны глубокие знания о CI/CD для ее использования.
- Второй вариант — инструментарий SAP для непрерывной поставки в проекте Пайпер, более гибкий и не слишком сложный в реализации. Цель проекта Пайпер — существенно упростить настройку непрерывной доставки в вашем проекте с использованием технологий SAP.
- Руководство, которое поможет вам найти решение SAP для непрерывной интеграции (CI)/непрерывной доставки (CD), которое наилучшим образом соответствует вашему конкретному сценарию.
Спасибо за чтение,
Хлопок всегда приветствуется, :-)
Алекс
Если вам это нужно, Создайте SAP BTP, пробную версию среды ABAP и Как настроить Eclipse с SAPUI5.