Endevor - это инструмент управления исходным кодом и выпуска релизов для мэйнфреймов, работающих под управлением z / OS . [1] Это часть семейства инструментов администрирования от CA Technologies (ранее Computer Associates, теперь часть Broadcom), которые используются для поддержки программных приложений и отслеживания их версий, а также для автоматизации операций жизненного цикла, таких как сборка и развертывание. [2]
Слово ENDEVOR - это аббревиатура, которая первоначально означала Environment for Developers and Operations, но теперь является формальным названием продукта для флагманского продукта управления жизненным циклом приложений CA для мэйнфреймов . Он также конкурирует с другим инструментом управления исходным кодом CA, Panvalet .
Управления источником
Endevor обеспечивает управление исходными и связанными объектами кода как отдельными элементами. Ссылочный «элемент» используется для определения наименьшего объекта, которым управляет Endevor. Стандартные функции управления версиями поддерживаются для управления элементами, включая ADD, UPDATE, DELETE, MOVE, GENERATE, TRANSFER, SIGNIN и SIGNOUT.
Элементы редактируются в рамках связанного жизненного цикла сред и этапов, причем изменения обычно вносятся с начальной стадии разработки ниже по карте из других сред, таких как QA или PROD. Изменения также могут быть внесены на карту в более высоких средах, чтобы облегчить такие вещи, как аварийные исправления. Жизненный цикл также используется для обеспечения параллельной разработки путем создания нескольких статических путей к производственной среде с точкой слияния в некоторой точке карты. Динамически добавляемые «ветки» также могут быть созданы с помощью песочниц и в будущих функциях с использованием динамических сред.
Функции элементов Endevor
Доступ к функциям Endevor можно получить в интерактивном режиме с помощью панелей 3270 ISPF или в пакетном режиме с помощью JCL и Endevor API. Многие функции, выполняемые в интерактивном режиме, выполняются в пакетном режиме. Сейчас также существуют новые интерфейсы, включая Zowe-совместимый REST API и плагин CLI, интерфейс Eclipse, интерфейс VS Code и интерфейс для Git. Все функции элементов Endevor описываются с использованием собственного языка управления программным обеспечением .
Добавлять
Инструкцию ADD можно использовать для определения нового элемента на этапе Endevor или для добавления ранее зарегистрированного элемента на первый этап в жизненном цикле определения. Функция ADD вызывает процессор генерации, который затем выполняет все действия, необходимые для регистрации или обновления метаданных элемента и обработки выходных данных. Как правило, результатом выполнения функции ADD является то, что элемент будет зарегистрирован на целевой стадии Endevor, или регистрация элемента будет обновлена на целевой стадии и будет вызван соответствующий процессор генерации.
Как правило, результатом вызова процессора генерации является то, что исходный код копируется в соответствующую исходную библиотеку, а в случае программ источник компилируется и связывается, а модули загрузки копируются в библиотеки загрузки целевой стадии.
Двигаться
Функция перемещения перемещает регистрацию элемента из целевой в исходную стадию, а также, вызывая процессор перемещения, перемещает выходные объекты элемента из целевой в исходные библиотеки.
Элемент может перемещаться только в течение заранее определенного жизненного цикла.
Удалить
Удаляет регистрацию целевого элемента и удаляет связанный источник элемента и загрузочные модули.
Перевод
Перемещает элемент из любой исходной стадии в любую целевую. Функция ПЕРЕДАЧА используется для обхода заранее определенных жизненных циклов.
Генерировать
Сгенерируйте выходы. В случае программ это включает модуль / модули ЗАГРУЗКИ, DBRM и исходный код. GENERATE обычно выполняется сразу после ADD или UPDATE.
Управление исходным кодом против управления библиотекой вывода
Endevor отделяет управление источником от объектов, используемых в качестве входных, и объектов, создаваемых в качестве выходных при выполнении действия. В большинстве случаев элемент хранится внутри Endevor как база кода, а последующие изменения сохраняются как дельты . Таким образом, управление исходным кодом происходит внутри Endevor, а действия в системе управления версиями отделены от изменений объектов в выходных библиотеках, которые включают модули загрузки и копии обработанного кода.
Библиотеки, контролируемые Endevor, защищены продуктами безопасности мэйнфреймов, такими как RACF или ACF . Приложение Endevor выполняет системные действия, используя две выделенные системные учетные записи, для которых есть доступ для записи в библиотеки, контролируемые Endevor. Как правило, обычным пользователям мэйнфреймов запрещается изменять библиотеки, управляемые Endevor. Это гарантирует, что единственный способ генерировать и продвигать код - через Endevor, и обеспечивает контрольный журнал всех изменений.
Библиотеки вывода, контролируемые Endevor, используются для хранения следующих типов объектов:
- Источник элемента (обычно копия самой последней версии источника ввода, сохраняемая для обеспечения прямого и легкого доступа с использованием стандартных инструментов мэйнфрейма)
- Элементная база (обычно в виде зашифрованного имени файла)
- Дельты элементов (обычно в виде зашифрованного имени файла)
- Загрузить модули (скомпилированные исполняемые файлы)
- Модули DBRM (скомпилированные модули, содержащие операторы SQL и переменные, используемые программами)
- Списки (подробный обзор действий, произошедших во время выполнения функций элемента)
Это позволяет пользователям Endevor, например разработчикам, быть отделенными от управления объектами, которые они изменяют с помощью функций Endevor. Поскольку Endevor предоставляет интерфейс для создания, изменения, перемещения, удаления и передачи элементов через заранее определенные жизненные циклы, конечному пользователю не нужно иметь доступ на изменение или обновление библиотек, контролируемых Endevor. Это гарантирует, что для всех действий ведется контрольный журнал, и что полученным объектам, контролируемым Endevor, можно доверять.
Управление релизами
Endevor поддерживает управление выпусками, как определено ITIL, в форме управления пакетами. Для обеспечения безопасности пакетов доступны два варианта - собственная безопасность Endevor или интерфейс внешней безопасности Endevor ( ESI ).
Пакетный контроль
Endevor поддерживает управление выпусками в форме управления пакетами. Пакет - это контейнер для Endevor SCL и связанной с ним управляющей информации для выпуска кода. Как минимум, у пакета есть имя, окно выполнения, определяющее временной диапазон, в течение которого пакет может быть выполнен, примечания о пакете, различные флаги и, по крайней мере, одно значение SCL.
Ключевым атрибутом управления пакетами является то, что группы лиц, утверждающих безопасность, могут быть связаны с каждым пакетом. Каждая группа безопасности определяет список пользователей, уполномоченных действовать для этой группы, с установленным кворумом для каждой группы.
Любой этап Endevor, помеченный как управляемый пакетом, требует, чтобы все действия выполнялись с использованием пакета. Это позволяет для определенных этапов жизненного цикла разработки систем назначать утверждающих и контролируемые выпуски.
Поскольку продукт Endevor не имеет компонента планирования, необходимо использовать сторонний инструмент, такой как IBM Tivoli Workload Scheduler или CA7 , для выполнения пакетов Endevor в соответствии с графиком выпуска.
Безопасность
Endevor Native Security
Собственная безопасность Endevor - это встроенный параметр безопасности, который позволяет администраторам Endevor определять группы утверждающих для каждой среды Endevor, отношения групп утверждающих для среды Endevor и таблицы безопасности для среды Endevor и для конкретных функций Endevor.
В каждой группе утверждающих может быть до 16 идентификаторов пользователей. Первым ИД пользователя в группе утверждающих обычно всегда устанавливается ИД пользователя внутренней системы Endevor "NDVR", который предоставляет системе Endevor (пакетной) полномочия на выполнение действий с пакетами. Это связано с моделью безопасности в Endevor, для которой требуется явный безопасный доступ. Это означает, что если внутренний идентификатор пользователя системы Endevor не связан с одной из групп утверждающих при преобразовании пакета, то система Endevor (пакетная) не может выполнять команды для этого пакета.
Каждый утверждающий в группе утверждающих может быть определен как обязательный или необязательный утверждающий, указав флаг в определении группы утверждающих. Конфигурация по умолчанию для групп утверждающих Endevor такова, что ни один конкретный утверждающий в группе утверждающих не является обязательным.
Каждая группа утверждающих имеет установленный кворум, для которого можно установить значение от 0 до 16. Как правило, группа утверждающих имеет кворум 1, что означает, что по крайней мере один из пользователей, перечисленных в группе утверждающих, должен утвердить пакет, чтобы пакет, чтобы перейти в статус УТВЕРЖДЕН. Кворум группы утверждающих, равный нулю, используется для групп утверждающих, где пользователи должны быть проинформированы о действиях пакета или пользователям требуется возможность ОТКАЗАТЬ пакет, но не требуется явно утверждать. Если к пакету присоединяется группа утверждающих с нулевым кворумом, состояние утверждения автоматически устанавливается на УТВЕРЖДЕНО для этой группы.
Нулевой кворум обычно используется для сценария, когда определенная группа утверждающих требует возможности отклонить пакет в ситуации, когда утверждение происходит автоматически.
Нет ограничений на количество групп утверждающих, которые могут быть связаны с одним пакетом. Какие группы утверждающих связаны с пакетом, зависит от правил группы утверждающих. Как правило, когда управление пакетами используется для этапа Endevor, каждая система Endevor будет иметь по крайней мере одну группу утверждающих для этого этапа, а группа утверждающих будет иметь нулевой кворум. Это означает, что для каждой системы, указанной в пакете, потребуется как минимум одно утверждение.
Группы утверждающих могут динамически изменяться выходами Endevor во время трансляции, например, для изменения кворума, связывания дополнительной группы утверждающих или для добавления или удаления пользователей из группы утверждающих. Эти изменения применимы только к транслируемому пакету и не являются постоянными изменениями в конфигурации группы утверждающих.
Endevor также имеет функцию, позволяющую интерактивно динамически добавлять утверждающих в группу утверждающих после успешного преобразования пакета.
Таблицы безопасности Endevor
Таблицы безопасности представляют собой стандартные двоичные справочные таблицы, скомпилированные на ассемблере для мэйнфреймов. Источником таблицы является стандартная таблица объявленных пар мэйнфреймов, скомпилированная (ASMA90) и связанная (IEWL) поисковая система ассемблера (CONSDEF, TYPE =, TABLE =, GROUP =, USERID =), которая хранится в библиотеке загрузки и упоминается как двоичный объект система безопасности Endevor, определенная в конфигурационном модуле C1DEFLTS. Как правило, для каждой среды Endevor существует одна таблица безопасности, однако на одну таблицу безопасности могут ссылаться несколько сред. В этих таблицах определяется доступ к функциям Endevor при использовании собственной безопасности.
Таблица доступа к системе Endevor
Доступ к средам Endevor определяется единой таблицей безопасности для каждой среды Endevor. В этой таблице безопасности определены списки управления доступом, определенные группами, к которым назначены пользователи, и перечислены этапы, на которых пользователи могут взаимодействовать. Затем доступ может быть предоставлен одному или нескольким пользователям на основе идентификатора пользователя мэйнфрейма в качестве статического значения или использования $ в качестве подстановочного знака для «любого символа».
Пользователь может быть определен в несколько групп с применением правил наименьшего ограничения доступа.
Каждая среда Endevor имеет детальную разбивку функций, специфичных для этой среды. Это контролирует возможность пользователей выполнять определенные функции SCM, такие как ДОБАВЛЕНИЕ, ОБНОВЛЕНИЕ, УДАЛЕНИЕ, ПЕРЕМЕЩЕНИЕ.
Компиляция и ссылка на таблицу безопасности Endevor
Таблицы безопасности Endevor компилируются и связываются на мэйнфрейме с использованием стандартного компилятора ассемблера ASMA90 и связаны с помощью IEWL. Таблица безопасности может быть определена для каждой среды Endevor, чтобы обеспечить детальный контроль над действиями элементов вплоть до каждого пользователя, если это необходимо.
Выходы
Администраторы Endevor могут изменять функции Endevor и собирать информацию с помощью программ выхода. Существует несколько типов выхода, каждый из которых привязан к определенной функции Endevor. Выходы обычно пишутся как программы COBOL или Assembler, но теоретически могут быть любым языком, который может быть скомпилирован и скомпилирован в z / OS . Выход будет указывать, где в дереве выхода будет выполняться код и что будет затронуто.
В качестве примера можно написать команду выхода для запуска «до преобразования пакета», чтобы связать дополнительную группу утверждающих с преобразовываемым пакетом. Например, выход может не выполнить действие создания, если CCID недействителен (CCID используется для связывания номера изменения или другого идентификатора с действием связанного элемента).
Программа выхода Endevor имеет доступ к большей части информации, относящейся к выполняемому действию, например к имени пакета, действию пакета, содержимому пакета и т. Д.
Выходы обычно используются для обеспечения соблюдения системной политики и улучшения функциональности Endevor. В частности, выходы используются, чтобы запретить конечным пользователям выполнять действия, которые могут нарушить целостность процесса жизненного цикла разработки системы.
Выход обычно используется, чтобы определить, когда и кому отправлять электронные письма, например, чтобы уведомить утверждающих Endevor о том, что пакет ожидает проверки или что пакет был сброшен.
Процессоров
Основные функции элементов Endevor, включая GENERATE DELETE и MOVE, выполняют программы, написанные на специальном языке Endevor, подобном JCL, для выполнения функций SCL, таких как перемещение исходного кода и загрузка модулей.
Каждое действие создания, перемещения и удаления выполняется путем вызова процессора. Для каждого типа определен по крайней мере один процессор, для которого указано имя процессора, выполняющего требуемое действие. Системный процессор по умолчанию выполняет стандартное действие копирования, перемещения или удаления.
Код процессора выглядит и выполняется аналогично JCL. Процессоры могут использовать как символы Endevor, так и переменные Endevor. Системы Endevor определяются специальной таблицей символов, которая по сути представляет собой список значений пар имен.
Если процессор не определен для типа / группы процессоров / функции, при генерации удаления или перемещении вызывается процессор по умолчанию. Процесс по умолчанию перемещает объекты BASE, DELTA и SOURCE OUTPUT LIBRARY из исходных библиотек в целевые библиотеки, как определено элементом TYPE.
Типы элементов
Endevor поддерживает контроль конфигурации для каждого элемента, зарегистрированного в системе. Каждый элемент отличается именем элемента, системой, подсистемой и типом. Определение типа определяет, как хранится элемент и как обрабатываются последующие изменения, известные как дельты.
Пример определения Endevor TYPE для объектов COBOL. В этом примере тип COBOL в среде TEST.
ДИСПЛЕЙ ---------------------- ОПРЕДЕЛЕНИЕ ТИПА ------------------------- -----КОМАНДА ===>
ТЕКУЩАЯ ОКРУЖАЮЩАЯ СРЕДА: ИД СТАДИИ ТЕСТИРОВАНИЯ: T СИСТЕМА: ТИП ФИНАНСИРОВАНИЯ: COBOLСЛЕДУЮЩИЙ ENV: PROD ИД ЭТАПА: P СИСТЕМА: ТИП ФИНАНСИРОВАНИЯ: COBOL
ОПИСАНИЕ: COBOL IIОБНОВЛЕНО: 02 января 03 08:42 NDVADM ----------------- ОПЦИИ ЭЛЕМЕНТОВ -------------------FWD / REV / IMG DELTA: F (F / R / I) СЖАТЬ БАЗУ / ЗАШИФРОВАТЬ ИМЯ: Д (Д / Н)DFLT PROC GRP: COBOL REGRESSION PCT: 75 REGR SEV: C (I / W / C / E)ДЛИНА ИСТОЧНИКА: 80 СРАВНИТЬ ИЗ: 1 СРАВНИТЬ С: 72АВТО КОНСОЛЬ: ДА (ДА / НЕТ) ЯЗЫК: COBOL PV / LB LANG: COBКОНСОЛЬ НА УРОВНЕ: 95 HFS RECFM: NL (COMP / CR / CRLF / CRNL / F / LF / NL / V)LVLS TO CONSOL: 40 ФОРМАТ ДАННЫХ: T ФАЙЛ EXT: ------------- ВАРИАНТЫ СПИСКА КОМПОНЕНТОВ ----------------ДЕЛЬТА ВПЕРЕД / НАЗАД: F (F / R) АВТО КОНСОЛЬ: Y (ДА / НЕТ) КОНСОЛЬ НА УРОВНЕ: 96 LVLS TO CONSOL: 50 -------------------- БИБЛИОТЕКИ --------------------- БАЗА / БИБЛИОТЕКА ИЗОБРАЖЕНИЙ: NDVR. & C1ST..BASE.SORCLIB БИБЛИОТЕКА DELTA: NDVr. & C1ST..DELTA.COBOL ВКЛЮЧИТЬ БИБЛИОТЕКУ: ИСХОДНАЯ БИБЛИОТЕКА: NDVR. & C1ST..SORCLIB РАСШИРЕНИЕ ВКЛЮЧАЕТ: НЕТ (ДА / НЕТ)
В показанном примере связанные с кодом объекты в библиотеке BASE, библиотеке DELTA и библиотеке вывода SOURCE обрабатываются системой Endevor, а не процессором. Система использует эти значения для определения исходного и целевого местоположений.
Типы, контролируемые Endevor, обычно включают COBOL, Assembler, JCL, REXX, панели ISPF, скелеты ISPF и parms. Таким образом Endevor можно настроить для обработки большинства файлов мэйнфреймов.
Расширения
Endevor имеет несколько программ, расширяющих основные функции Endevor.
Программа | Цель |
---|---|
Быстрое редактирование | Автономная программа для ускорения процесса извлечения, извлечения и возврата элементов |
Менеджер по параллельной разработке | Инструмент, позволяющий разработчикам интегрировать параллельные изменения, внесенные другими разработчиками, в свои собственные изменения. |
ACM | Автоматическое управление конфигурацией, которое автоматически отслеживает информацию о компонентах элементов Endevor и их зависимости. |
Синхронизация посадочных мест | Позволяет отследить двоичные файлы до исходного кода, который их создал, путем встраивания данных следа в двоичный файл для повышения возможности аудита и управления. |
Интеграции для Enterprise DevOps | Обеспечивает целенаправленную интеграцию между CA Endevor и популярными инструментами DevOps, включая ведущие репозитории Enterprise Git, позволяя разработчикам нового поколения сотрудничать с традиционными разработчиками путем синхронизации репозиториев Git с хранилищами CA Endevor. |
Плагин Eclipse | Позволяет напрямую подключаться к Endevor из IDE на основе Eclipse для работы с элементами и пакетами. |
Расширение VS Code | Позволяет напрямую подключаться к Endevor из IDE на основе VS Code для работы с элементами. |
Плагин Zowe CLI | Позволяет напрямую подключаться к Endevor с помощью платформы Zowe CLI, облегчая взаимодействие командной строки с Endevor с любой платформы и интеграцию с помощью сценариев оболочки в инструментах DevOps. |
Разделение окружающей среды
Endevor предоставляет несколько методов для установки и доступа к отдельным экземплярам Endevor, которые установлены на одном и том же LPAR . Как правило, для каждого LPAR устанавливается и используется одна версия Endevor .
Конкурирующие продукты
Те же функции для управления версиями и управления выпусками предоставляются несколькими другими продуктами.
Интеграция с другими инструментами
Endevor интегрируется с IDz (IBM Developer для zOS) и другими IDE на основе Eclipse. Разработчики могут кодировать в IDz IDE и легко взаимодействовать с Endevor для управления своими изменениями. Также доступно базовое расширение VS Code для Endevor под названием Explorer for Endevor. Подключаемый модуль Zowe CLI также предназначен для интеграции с распространенными инструментами DevOps, позволяя создавать сценарии операций Endevor.
Рекомендации
- ^ «Описание продукта - CA Endevor® Software Change Manager Release 15.1» (PDF) . ca Технологии . Проверено 15 мая 2013 года .
- ^ PCmag.com