Presentación de contenedores de desarrollo para el desarrollo de aplicaciones de subsistemas de mainframe

Foto de perfil de Gary Evans frente a un fondo gris.

Por Gary Evans

5 minutos de lectura

Introducción

Tras casi 40 años trabajando como desarrollador o con desarrolladores, sostengo que escribir código es en parte arte y en parte ciencia: una combinación de creatividad y habilidad técnica. También he observado que la creatividad se desarrolla mejor cuando los desarrolladores tienen la libertad de tomar decisiones.

También debemos reconocer que los gerentes de desarrollo necesitan procesos que proporcionen control, observabilidad y consistencia. Mientras tanto, las empresas para las que trabajan necesitan que el software se entregue a mayor velocidad, pero sin introducir riesgos.

Entonces, ¿cómo conciliamos todos estos requisitos en el mundo de la nube híbrida ? Este es un obstáculo particularmente difícil para los desarrolladores y organizaciones que producen y dependen de aplicaciones empresariales diseñadas para interactuar con subsistemas de mainframe (MSS) como CICS.®, IMS™ y Db2® .

Rocket Software le ofrece la solución que necesita, brindando capacidades de desarrollo líderes en la industria con una amplia gama de interfaces de usuario. Se pueden implementar en z/OS®, en las instalaciones del cliente y en la nube, tanto en Windows® como en Linux® y AIX. Rocket® Enterprise Developer y Rocket® Enterprise Test Server ofrecen a los desarrolladores la posibilidad de elegir la "Experiencia de Cambio" y la oportunidad de incorporar prácticas de desarrollo modernas. Esto incluye incluso la integración de DevOps en sus tareas diarias al mantener y modernizar las aplicaciones MSS.

Los contenedores están hechos para el desarrollo.

En versiones recientes, también introdujimos compatibilidad con la contenedorización de las capacidades de desarrollo. La implementación de las capacidades de desarrollo en contenedores conserva las características únicas de Enterprise Developer. Se mantiene la disponibilidad de entornos de desarrollo individuales que eliminan los cuellos de botella de la experiencia tradicional de desarrollo de aplicaciones MSS. Lo mismo ocurre con la posibilidad de centralizar la gestión y el control en organizaciones de desarrollo a gran escala.

La naturaleza dinámica de los contenedores los ha hecho omnipresentes en la entrega de funciones de desarrollo automatizadas en todas las principales herramientas de canalización de CI/CD. Y ahora también pueden alinearse con los modelos de flujo de trabajo de los sistemas de control de versiones basados ​​en ramas.

Para ampliar y complementar aún más estas opciones, en la versión 10.0 de Enterprise Developer hemos introducido la capacidad de implementar utilizando contenedores de desarrollo.

 

¿Qué son los contenedores de desarrollo?

Los contenedores de desarrollo (o contenedores Dev, para abreviar) son entornos de desarrollo reproducibles. Pero ¿en qué se diferencian de los contenedores estándar?

Los contenedores de desarrollo añaden un nivel adicional de control sobre la configuración del entorno de desarrollo. Esto amplía el contenedor estándar con opciones de personalización específicas para el desarrollo. Se gestionan mediante un archivo de configuración basado en JSON que simplifica la gestión de sus funciones y permite versionarlos junto con la aplicación. Otras funciones permiten a los desarrolladores personalizar su entorno según sus preferencias.

 

¿Por qué son importantes los contenedores de desarrollo?

Los contenedores de desarrollo potencian a los desarrolladores al proporcionar un entorno confiable, aislado y eficiente para crear y probar código.

Contribuyen a ciclos de desarrollo más rápidos y a una mejor colaboración dentro del equipo de desarrollo.

 

Aislamiento y consistencia

  • Los contenedores de desarrollo permiten a los desarrolladores trabajar dentro de un entorno consistente, independientemente de su configuración local o del sistema host.
  • Al empaquetar herramientas, bibliotecas, tiempos de ejecución y dependencias, los contenedores de desarrollo garantizan que todos los miembros del equipo trabajen con la misma configuración.
  • Este aislamiento evita conflictos entre los equipos de desarrollo y operaciones, ya que cada grupo puede centrarse en sus respectivas áreas de responsabilidad.

 

Velocidad y eficiencia

  • Configurar un nuevo entorno de desarrollo puede llevar mucho tiempo, pero no con los contenedores de desarrollo que agilizan este proceso.
  • Los desarrolladores pueden crear rápidamente un entorno preconfigurado directamente dentro de su editor de código
  • Esto ahorra tiempo, reduce los costos de configuración y garantiza un entorno limpio para cada sesión de desarrollo.

 

Integración y pruebas continuas

  • Los contenedores de desarrollo ayudan en los flujos de trabajo de prueba y de integración continua (CI)
  • Proporcionan un entorno consistente para ejecutar pruebas, lo que garantiza que los resultados de las pruebas sean confiables y reproducibles.
  • Ya sea que esté creando, probando o implementando código, los contenedores de desarrollo simplifican el proceso y mejoran la consistencia.

 

Desarrollo nativo de la nube

  • Los contenedores de desarrollo sientan las bases para las prácticas de desarrollo nativas de la nube
  • Se alinean con los principios de DevOps, las canalizaciones CI/CD y las arquitecturas sin servidor.
  • Las aplicaciones basadas en contenedores pueden funcionar sin problemas en entornos de nube distribuidos, lo que las hace ideales para el desarrollo moderno.

 

¿En qué se diferencian los contenedores de desarrollo?

En el desarrollo típico basado en host, todos los elementos, como el editor, los SDK, los servidores de aplicaciones, las herramientas, los paquetes y el código fuente, se encuentran en un único entorno. Esto suele provocar conflictos de software entre proyectos.

Cuando ocurren conflictos, los desarrolladores tienen que elegir versiones de estas dependencias que no sean las mismas que las versiones ideales, solo para preservar el uso de múltiples bases de datos de origen.

Desarrollo basado en host

En el desarrollo basado en contenedores, los SDK, servidores de aplicaciones, herramientas y paquetes necesarios se instalan en un contenedor, incluido Rocket® Enterprise Developer. El código fuente se puede cargar o montar en el contenedor, lo que permite un aislamiento completo.

Desarrollo basado en contenedores de desarrollo

Considere esto en el contexto del desarrollo de aplicaciones MSS, donde a menudo existe la necesidad empresarial de trabajar en entregas con diferentes ritmos. El uso de contenedores de desarrollo permite al desarrollador trabajar en diferentes versiones de la aplicación sin necesidad de invertir mucho tiempo en reconfigurar su entorno de desarrollo.

 

Manifestación

Para ayudarte a visualizar cómo funciona todo esto, mira el siguiente vídeo.

 

Combinando contenedores de desarrollo y pruebas unitarias

Los contenedores de desarrollo ofrecen a los desarrolladores un mecanismo sencillo para acceder a sus herramientas de desarrollo, lo cual se alinea con las prácticas de desarrollo modernas. Una excelente alternativa para este tipo de experiencia de desarrollo es el uso de pruebas unitarias para simplificar y acelerar las pruebas del código modificado antes de confirmar los cambios en el proceso de CI/CD. El uso de pruebas unitarias también reducirá las tasas de error en las fases posteriores de pruebas más funcionales del SLDC.

Las pruebas unitarias de COBOL [OC1] han estado disponibles en Rocket® Enterprise Developer durante varias versiones. En la versión 9.0, ampliamos esta función para ofrecer simulación y representación de construcciones de codificación de MSS, como CICS y SQL, y añadimos compatibilidad con IMS en la versión 10.0. Esto permite probar el código de lógica de negocio modificado sin necesidad de disponer de un entorno de subsistema MSS completo.

La combinación de estas dos capacidades de Enterprise Developer permitirá a los desarrolladores aprovechar las ventajas de las prácticas de desarrollo modernas para acelerar los cambios de mantenimiento durante el ciclo de vida del desarrollo de software (SDLC). Resulta especialmente beneficioso para las organizaciones que externalizan parte o la totalidad de estos cambios a terceros.

Para más detalles sobre el marco de pruebas unitarias Enterprise Developer, lea este blog. Para ver cómo funcionan las pruebas unitarias dentro de un contenedor de desarrollo, vea el siguiente video.

 

¿Qué sigue para Dev Containers?

A medida que las plataformas en la nube se vuelven más comunes en el desarrollo, aumenta la adopción de herramientas de desarrollo alojadas. Un ejemplo de ello son los Codespaces de GitHub, que ofrecen entornos de código desde cualquier lugar. Las capacidades de desarrollo se gestionan en la nube, basadas en contenedores de desarrollo, y se accede a ellas mediante un navegador que utiliza la versión web de VS Code.

En Rocket Software, creemos que estos entornos desempeñarán un papel importante en el futuro del desarrollo de aplicaciones MSS y estamos trabajando para ofrecer Enterprise Developer para GitHub Codespaces. Para una primera impresión del valor de esta innovación, vea el siguiente vídeo.

 

Cómo puedes probar Dev Containers

Si ya es cliente de Enterprise Developer, descargue la versión 10.0 y consulte la documentación del producto aquí .

Si no es cliente actual, siga el enlace aquí para obtener una versión de prueba de Enterprise Developer.

Si está interesado en el futuro del desarrollo de aplicaciones MSS, ayúdenos a seguir impulsando la innovación participando en la encuesta.

Publicaciones relacionadas

Inteligencia artificial (IA)

Presentamos Rocket EVA 2.0

6 minutos de lectura
Rocket EVA 2.0 introduce agentes de IA controlados para operaciones de TI híbridas y de mainframe, lo que ayuda a los equipos a acelerar las investigaciones, ampliar la experiencia y aplicar [...]
Modernización de aplicaciones

Elige el camino correcto para la modernización del código con IA.

3 minutos de lectura
Rocket reconocida como Challenger en el Cuadrante Mágico™ de Gartner® para herramientas de modernización de código aumentadas con IA.
Modernización de aplicaciones

Encuentra el camino hacia la modernización que proteja lo que importa.

6 minutos de lectura
La IA ofrece más valor cuando la modernización comienza con el comportamiento empresarial y termina con la validación.