Endevor es una herramienta de administración de versiones y administración de código fuente para computadoras mainframe que ejecutan z / OS . [1] Es parte de una familia de herramientas de administración de CA Technologies (antes Computer Associates ahora parte de Broadcom), que se utiliza para mantener aplicaciones de software y rastrear sus versiones, así como automatizar actividades del ciclo de vida como compilaciones e implementaciones. [2]
La palabra ENDEVOR es un acrónimo que originalmente significaba Environment for Developers and Operations, pero ahora es el nombre formal del producto principal del mainframe Application Lifecycle Management de CA, el producto de control de fuente. También compite con otra herramienta de administración de código fuente de CA, Panvalet .
Fuente de control
Endevor proporciona control de los objetos de código fuente y relacionados como elementos individuales. La referencia "elemento" se utiliza para definir el objeto más pequeño que controla Endevor. Las funciones de control de fuente estándar son compatibles con el control de elementos, incluidas AGREGAR, ACTUALIZAR, ELIMINAR, MOVER, GENERAR, TRANSFERIR, INICIAR SESIÓN y SALIR.
Los elementos se editan en un ciclo de vida asociado de entornos y etapas, y los cambios se realizan normalmente desde una etapa de entrada de desarrollo en el mapa desde otros entornos como QA o PROD. Los cambios también se pueden introducir en el mapa en entornos superiores para facilitar cosas como arreglos de emergencia. El ciclo de vida también se utiliza para permitir el desarrollo paralelo, ya sea creando múltiples rutas estáticas a la producción con un punto de fusión en algún punto del mapa. También se pueden crear “ramas” agregadas dinámicamente usando Sandboxes y en una función próxima, usando entornos dinámicos.
Funciones del elemento Endevor
Se puede acceder a las funciones de Endevor de forma interactiva utilizando paneles ISPF 3270 o en modo por lotes utilizando JCL y la API de Endevor. Muchas funciones ejecutadas en modo interactivo se completan en modo por lotes. También existen interfaces más nuevas, incluida una API REST conforme a Zowe y un complemento CLI, una interfaz Eclipse, una interfaz VS Code y una interfaz para Git. Todas las funciones de los elementos de Endevor se describen mediante un lenguaje de control de software patentado .
Agregar
La instrucción ADD se puede utilizar para definir un nuevo elemento en una etapa de Endevor o agregar un elemento registrado previamente a la primera etapa en un ciclo de vida definido. La función ADD invoca un procesador de generación que luego ejecuta todas las acciones necesarias para registrar o actualizar los metadatos del elemento y las salidas del proceso. Generalmente, el resultado de emitir una función ADD es que el elemento se registrará en la etapa de Endevor de destino, o el registro del elemento se actualizará en la etapa de destino y se invocará el procesador de generación apropiado.
Generalmente, el resultado de invocar un procesador de generación es que el código fuente se copia en la biblioteca fuente adecuada y, en el caso de los programas, la fuente se compila y se vincula y los módulos de carga se copian en las bibliotecas de carga de la etapa de destino.
Moverse
La función de movimiento mueve un registro de elemento desde el destino a la etapa de origen y también, al invocar un procesador de movimiento, mueve los objetos de salida del elemento desde el destino a las bibliotecas de origen.
Un elemento solo se puede mover a lo largo de un ciclo de vida predefinido.
Borrar
Elimina el registro del elemento de destino y elimina el origen del elemento asociado y los módulos de carga.
Transferir
Mueve un elemento de cualquier etapa de origen a cualquier etapa de destino. La función TRANSFERIR se utiliza para omitir ciclos de vida predefinidos.
Generar
Genera salidas. En el caso de programas, esto incluye el / los módulo / s LOAD del programa, DBRM y fuente. Generalmente, GENERAR se ejecuta inmediatamente después de AGREGAR o ACTUALIZAR.
Control de fuente vs control de biblioteca de salida
Endevor separa el control de la fuente de los objetos utilizados como entrada y los objetos creados como salida cuando se realiza una acción. En la mayoría de los casos, Endevor almacena internamente un elemento como base de código y los cambios posteriores se almacenan como deltas . Como tal, el control de la fuente ocurre internamente en Endevor y las acciones de control de la fuente son independientes de los cambios en los objetos en las bibliotecas de salida, que incluyen módulos de carga y copias del código procesado.
Las bibliotecas controladas por Endevor están protegidas con un producto de seguridad de mainframe como RACF o ACF . La aplicación Endevor ejecuta acciones del sistema utilizando dos cuentas de sistema dedicadas para las cuales tienen acceso para escribir en bibliotecas controladas por Endevor. Como regla general, los usuarios generales de mainframe tienen prohibido modificar las bibliotecas controladas por Endevor. Esto asegura que la única forma de generar y promover código sea a través de Endevor y proporciona una pista de auditoría de todos los cambios.
Las bibliotecas de salida controladas por Endevor se utilizan para almacenar los siguientes tipos de objetos:
- Fuente del elemento (generalmente una copia de la versión más reciente de la fuente de entrada almacenada para permitir un acceso directo y fácil usando herramientas estándar de mainframe)
- Base de elementos (normalmente como un nombre de archivo cifrado)
- Elementos deltas (normalmente como un nombre de archivo cifrado)
- Cargar módulos (ejecutables compilados)
- Módulos DBRM (módulos compilados que contienen las sentencias SQL y las variables utilizadas por los programas)
- Listados (resumen detallado de las acciones que ocurrieron durante las funciones del elemento)
Esto permite que los usuarios de Endevor, como los desarrolladores, estén separados del control de los objetos que modifican utilizando las funciones de Endevor. Como Endevor proporciona una interfaz para crear, modificar, mover, eliminar y transferir elementos a través de ciclos de vida predefinidos, no es necesario que ningún usuario final tenga acceso para modificar o actualizar las bibliotecas controladas por Endevor. Esto asegura que se mantenga una pista de auditoría para todas las acciones y que se pueda confiar en los objetos resultantes controlados por Endevor.
Gestión de la liberación
Endevor admite la gestión de versiones, según lo define ITIL en forma de control de paquetes. Hay dos opciones disponibles para la seguridad del paquete: seguridad nativa de Endevor o Endevor External Security Interface ( ESI ).
Control de paquetes
Endevor admite la gestión de versiones en forma de control de paquetes. Un paquete es un contenedor de Endevor SCL y la información de control asociada para la publicación del código. Como mínimo, un paquete tiene un nombre, una ventana de ejecución define el intervalo de tiempo en el que se puede ejecutar el paquete, notas sobre el paquete, varios indicadores y al menos una declaración de valor SCL.
Un atributo clave del control de paquetes es que los grupos de aprobadores de seguridad se pueden vincular a cada paquete. Cada grupo de seguridad especifica una lista de usuarios autorizados para actuar para ese grupo con un quórum establecido por grupo.
Cualquier etapa de Endevor que esté marcada como controlada por paquetes requiere que todas las acciones se ejecuten utilizando un paquete. Esto permite que las etapas definidas del ciclo de vida del desarrollo de sistemas tengan aprobadores establecidos y liberaciones controladas.
Como el producto Endevor no tiene un componente de programación, se debe utilizar una herramienta de terceros como IBM Tivoli Workload Scheduler o CA7 para ejecutar los paquetes de Endevor de acuerdo con el programa de lanzamiento.
Seguridad
Seguridad nativa de Endevor
La seguridad nativa de Endevor es una opción de seguridad integrada que permite a los administradores de Endevor definir grupos de aprobadores por Entorno de Endevor, relaciones de grupos de aprobadores por Entorno de Endevor y tablas de seguridad por Entorno de Endevor y para funciones específicas de Endevor.
Cada grupo de aprobadores puede tener hasta 16 ID de usuario. El primer ID de usuario en un grupo de aprobadores generalmente siempre está configurado para ser el ID de usuario del sistema interno de Endevor "NDVR", que otorga al sistema Endevor (por lotes) la autoridad para ejecutar acciones de paquete. Esto se debe al modelo de seguridad dentro de Endevor para el cual requiere acceso de seguridad explícito. Esto significa que si el ID de usuario interno del sistema Endevor no está vinculado a uno de los grupos de aprobadores cuando se envía un paquete, el sistema Endevor (por lotes) no puede ejecutar comandos contra ese paquete.
Cada aprobador de un grupo de aprobadores se puede definir como aprobador obligatorio u opcional especificando una marca en la definición del grupo de aprobadores. La configuración predeterminada para los grupos de aprobadores de Endevor es que no es obligatorio ningún aprobador específico en un grupo de aprobadores.
Cada grupo de aprobadores tiene un quórum establecido para el cual se puede establecer de 0 a 16. Generalmente, un grupo de aprobadores tendrá un quórum de 1, lo que significa que al menos uno de los usuarios enumerados en el grupo de aprobadores debe aprobar el paquete para poder el paquete para progresar al estado APROBADO. Se utiliza un quórum de grupo de aprobadores de cero para los grupos de aprobadores en los que los usuarios deben ser informados de las acciones del paquete o los usuarios requieren la capacidad de NEGAR un paquete, pero no están explícitamente obligados a aprobar. Cuando un grupo de aprobadores con un quórum de cero se adjunta a un paquete, el estado de aprobación se establece automáticamente en APROBADO para ese grupo.
El quórum de cero se usa normalmente para un escenario en el que un grupo de aprobadores específico requiere la capacidad de denegar un paquete en una situación en la que la aprobación es automática.
No hay límite para la cantidad de grupos de aprobadores que se pueden vincular a un solo paquete. Los grupos de aprobadores que están vinculados a un paquete se basan en las reglas del grupo de aprobadores. Como regla general, cuando se utiliza el control de paquetes para una etapa de Endevor, cada sistema Endevor tendrá al menos un grupo de aprobadores para esa etapa y el grupo de aprobadores tendrá un quórum de cero. Esto significa que para cada sistema al que se hace referencia en el paquete, se requerirá al menos una aprobación.
Los grupos de aprobadores pueden modificarse dinámicamente mediante salidas de Endevor en el momento de la transmisión, por ejemplo, para cambiar el quórum, vincular un grupo de aprobadores adicional o para agregar o eliminar usuarios de un grupo de aprobadores. Estos cambios solo se aplican al paquete que se está emitiendo y no son cambios permanentes en la configuración del grupo de aprobadores.
Endevor también tiene una función para permitir que los aprobadores se agreguen de forma interactiva y dinámica a un grupo de aprobadores después de que un paquete se haya emitido correctamente.
Mesas de seguridad Endevor
Las tablas de seguridad son tablas de búsqueda binarias de referencia de ensamblador compiladas de mainframe estándar. La fuente de la tabla es una tabla de mainframe de par de nombres declarada estándar compilada (ASMA90) y una búsqueda de ensamblador vinculada (IEWL) (CONSDEF, TYPE =, TABLE =, GROUP =, USERID =) que se almacena en una biblioteca de carga y se hace referencia como un objeto binario por el sistema de seguridad Endevor como se define a través del módulo de configuración C1DEFLTS. Generalmente, hay una tabla de seguridad por entorno Endevor, sin embargo, varios entornos pueden hacer referencia a una sola tabla de seguridad. Estas tablas son donde se define el acceso a las funciones de Endevor cuando se usa seguridad nativa.
Tabla de acceso al sistema Endevor
El acceso a los entornos Endevor se define mediante una única tabla de seguridad por entorno Endevor. Esta tabla de seguridad define las listas de control de acceso definidas por grupos para los cuales los usuarios están asignados y enumera las etapas con las que los usuarios pueden interactuar. A continuación, se puede otorgar acceso a uno o más usuarios basándose en el ID de usuario del mainframe del usuario como valor estático o usando $ como comodín para "cualquier carácter".
Un usuario puede definirse para varios grupos con la aplicación de las reglas de acceso menos restrictivas.
Cada entorno de Endevor tiene un desglose granular de funciones específicas para ese entorno. Esto controla la capacidad de los usuarios para ejecutar funciones específicas de SCM como AGREGAR, ACTUALIZAR, ELIMINAR, MOVER.
Endevor Security Table Compile and Link
Las tablas de seguridad de Endevor se compilan y vinculan en el mainframe utilizando el compilador ensamblador estándar ASMA90 y se vinculan mediante IEWL. Se puede definir una tabla de seguridad por entorno Endevor para proporcionar un control granular de las acciones de los elementos hasta por usuario, si es necesario.
Salidas
Los administradores de Endevor pueden modificar las funciones de Endevor y capturar información usando salidas. Hay varios tipos de salida, cada uno asociado a una función específica de Endevor. Las salidas generalmente se escriben como programas COBOL o Assembler, pero teóricamente pueden ser cualquier lenguaje que se pueda compilar y vincular en z / OS . Una salida especificará en qué parte del árbol de salida se ejecutará el código y qué se verá afectado.
Por ejemplo, se podría escribir una salida para activar "antes de la transmisión del paquete" para vincular un grupo de aprobadores adicional al paquete que se está transmitiendo. Por ejemplo, una salida podría fallar en la acción de generar cuando el CCID no es válido (se utiliza un CCID para asociar un número de cambio u otro ID con una acción de elemento relacionada).
Un programa de salida de Endevor tiene acceso a la mayor parte de la información relevante para la acción que se está realizando, por ejemplo, el nombre del paquete, la acción del paquete, el contenido del paquete, etc.
Las salidas se utilizan generalmente para hacer cumplir la política del sistema y mejorar la funcionalidad de Endevor. En particular, las salidas se utilizan para impedir que los usuarios finales ejecuten acciones que subvertirían la integridad del proceso del ciclo de vida del desarrollo del sistema.
Una salida se usa generalmente para determinar cuándo ya quién enviar correos electrónicos, por ejemplo, para notificar a los aprobadores de Endevor que un paquete está esperando ser revisado o que un paquete se ha restablecido.
Procesadores
Las funciones de los elementos primarios de Endevor, incluidas GENERATE DELETE y MOVE, ejecutan programas escritos en un lenguaje específico de Endevor similar a JCL para realizar funciones SCL como mover código fuente y cargar módulos.
Cada acción de generar, mover y eliminar se ejecuta llamando a un procesador. Cada tipo tiene al menos un procesador definido para el cual enumera el nombre del procesador que realiza la acción requerida. El procesador del sistema predeterminado ejecuta una acción estándar de copiar, mover o eliminar.
El código del procesador se parece y se ejecuta de forma similar a JCL. Los procesadores pueden utilizar tanto los símbolos de Endevor como las variables de Endevor. Los sistemas Endevor se definen mediante una tabla de símbolos específica que es esencialmente una lista de valores de pares de nombres.
Cuando un procesador no está definido para un tipo / grupo de procesadores / función, siendo generar eliminar o mover, se invoca el procesador predeterminado. El proceso predeterminado mueve los objetos BASE, DELTA y SOURCE OUTPUT LIBRARY del elemento de las bibliotecas de origen a las bibliotecas de destino según lo definido por el elemento TYPE.
Tipos de elementos
Endevor mantiene el control de la configuración de cada elemento registrado en el sistema. Cada elemento se distingue por su nombre, sistema, subsistema y tipo. La definición de tipo determina cómo se almacena el elemento y cómo se manejan los cambios posteriores, conocidos como deltas.
Ejemplo de una definición de TIPO de Endevor para objetos COBOL. En este ejemplo, el tipo es COBOL en el entorno TEST.
PANTALLA ---------------------- DEFINICIÓN DEL TIPO ------------------------- -----COMANDO ===>
ENV ACTUAL: ID DE LA ETAPA DE PRUEBA: T SISTEMA: TIPO DE FINANCIAMIENTO: COBOLSIGUIENTE ENV: ID DE ETAPA DE PROD: P SISTEMA: TIPO DE FINANCIAMIENTO: COBOL
DESCRIPCIÓN: COBOL IIACTUALIZADO: 02JAN03 08:42 POR NDVADM ----------------- OPCIONES DE ELEMENTOS -------------------FWD / REV / IMG DELTA: F (F / R / I) COMPRIMIR BASE / CIFRAR NOMBRE: Y (Y / N)DFLT PROC GRP: REGRESIÓN COBOL PCT: 75 REGR SEV: C (I / W / C / E)LONGITUD DE LA FUENTE: 80 COMPARAR DE: 1 COMPARAR CON: 72CONSOLA AUTOMÁTICA: Y (S / N) IDIOMA: COBOL PV / LB IDIOMA: COBCONSOLA EN LVL: 95 HFS RECFM: NL (COMP / CR / CRLF / CRNL / F / LF / NL / V)LVLS A CONSOLA: 40 FORMATO DE DATOS: T EXT ARCHIVO: ------------- OPCIONES DE LISTA DE COMPONENTES ----------------DELTA DE AVANCE / RETROCESO: F (F / R) CONSOLA AUTOMÁTICA: Y (S / N) CONSOLA EN LVL: 96 NIVELES A CONSOLA: 50 -------------------- BIBLIOTECAS --------------------- BIBLIOTECA DE IMAGEN / BASE: NDVR. & C1ST..BASE.SORCLIB BIBLIOTECA DELTA: NDVr. & C1ST..DELTA.COBOL INCLUYE BIBLIOTECA: BIBLIOTECA FUENTE O / P: NDVR. & C1ST..SORCLIB EXPANDIR INCLUYE: N (Y / N)
En el ejemplo que se muestra, los objetos relacionados con el código en la biblioteca BASE, la biblioteca DELTA y la biblioteca SOURCE Output son manejados por el sistema Endevor, no por el procesador. El sistema utiliza estos valores para determinar las ubicaciones de origen y destino.
Los tipos controlados por Endevor generalmente incluyen COBOL, Assembler, JCL, REXX, ISPF Panels, ISPF Skeletons y parms. De esta manera, Endevor se puede configurar para manejar la mayoría de los archivos de mainframe.
Extensiones
Endevor tiene varios programas para los cuales amplían las funciones primarias de Endevor.
Programa | Propósito |
---|---|
Edición rapida | Programa independiente para abreviar el proceso de verificación, recuperación y registro de elementos |
Gerente de Desarrollo Paralelo | Una herramienta que permite a los desarrolladores integrar cambios paralelos de otros desarrolladores en sus propios cambios. |
ACM | Control de configuración automatizado que rastrea automáticamente la información y las dependencias de los componentes del elemento Endevor |
Sincronización de huella | Permite rastrear los archivos binarios hasta el código fuente que los creó mediante la incorporación de datos de huella en el binario para mejorar la auditabilidad y la gobernanza. |
Integraciones para DevOps empresariales | Proporciona integraciones especialmente diseñadas entre CA Endevor y las populares herramientas DevOps, incluidos los principales repositorios de Enterprise Git, lo que permite a los desarrolladores de próxima generación colaborar con los desarrolladores tradicionales sincronizando los repositorios de Git con las ubicaciones de inventario de CA Endevor. |
Complemento Eclipse | Permite la conexión directa a Endevor desde un IDE basado en Eclipse para trabajar con elementos y paquetes |
Extensión de código VS | Permite la conexión directa a Endevor desde un IDE basado en VS Code para trabajar con elementos. |
Complemento CLI de Zowe | Permite la conexión directa a Endevor utilizando el marco CLI de Zowe, lo que facilita la interacción de la línea de comandos con Endevor desde cualquier plataforma y la integración a través de scripts de shell en herramientas DevOps. |
Separación del medio ambiente
Endevor proporciona varios métodos para instalar y acceder a distintas instancias independientes de Endevor para las que están instaladas en la misma LPAR . Como regla general, se instala y utiliza una versión de Endevor por LPAR .
Productos de la competencia
Varios otros productos proporcionan la misma funcionalidad para el control de fuentes y las funciones de gestión de versiones.
Integración con otras herramientas
Endevor se integra con IDz (IBM Developer para zOS) y otros IDE basados en Eclipse. Los desarrolladores pueden codificar en IDz IDE e interactuar sin problemas con Endevor para administrar sus cambios. También está disponible una extensión básica de VS Code para Endevor llamada Explorer for Endevor. El complemento CLI de Zowe también está diseñado para permitir la integración con herramientas DevOps comunes al permitir que las operaciones de Endevor sean programadas.
Referencias
- ^ "Ficha de producto - CA Endevor® Software Change Manager versión 15.1" (PDF) . ca Technologies . Consultado el 15 de mayo de 2013 .
- ^ PCmag.com