Катаклизм двух миров?

В книге 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.

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

Спасибо за чтение,

Хлопок всегда приветствуется, :-)

Алекс

Если вам это нужно, Создайте SAP BTP, пробную версию среды ABAP и Как настроить Eclipse с SAPUI5.

Начало работы с Uiveri5 — автоматизация тестирования SAPUI5