Categories: DevOpsProyectos

Una vida mejor con el suministro del entorno de desarrollo

Anteriormente trabajé durante varios años como Consultor de Servicios Profesionales. En otras palabras, pasé miles de horas enfrentando numerosos desafíos para muchos proyectos diferentes. Una gran parte de este tiempo tuve una prioridad recurrente: proporcionar al equipo de desarrollo las mejores herramientas y metodologías para optimizar su eficiencia.

Esta es una tarea difícil y sin fin, porque depende de cosas que evolucionan continuamente, como el conocimiento y las herramientas. Si observa de cerca las iniciativas que tienen un impacto en este campo, notará que la mayoría de ellas tiene aspectos comerciales y técnicos.

  • Negocios: estrategias, políticas y decisiones como presupuestos, recursos humanos y proyectos. ¿Qué tan útil es una nueva herramienta poderosa si no puede entrenar a su equipo?
  • Técnicas: conceptos, tecnologías, herramientas y arquitecturas como Alta Disponibilidad, Gradle, BitBucket y Microservicios. ¿Cómo apoyar el desarrollo si no se confía en las tecnologías actualizadas?

El movimiento DevOps es un muy buen ejemplo. DevOps se basa principalmente en tecnologías de máquinas virtuales y contenedores, pero solo puede iniciarse con una gran inversión de la administración. Muchos no lo hicieron al principio, pero ahora que esta innovación se ha convertido en el estándar de la industria, están tratando de ponerse al día. Esto me hace feliz porque considero que DevOps es mucho mejor para futuras innovaciones y desarrollos, y ¿a quién no le gustan las grandes plataformas para crear y disfrutar jugando con ellas?

Pero, en realidad ese es otro tema. Ahora quiero centrarme únicamente en uno de los beneficios específicos de la tecnología de máquina virtual: simplificar la administración de entornos de desarrollo. Con la creciente necesidad de flexibilidad en los proyectos de desarrollo debido a las actualizaciones tecnológicas, el tiempo de comercialización, la rotación de personal, la descentralización, etc., cualquier cosa que facilite la actualización, la seguridad o la integración de miembros del equipo es más que bienvenida. Se puede hacer de una manera bastante fácil y económica con dependencias limitadas.

La idea principal es proporcionar o, en otras palabras, suministrar y asignar los recursos (máquinas virtuales, almacenamiento, alimentación, etc.) necesarios para proyectos o equipos. Esto conlleva numerosos beneficios:

  • Adaptación continua a la carga de trabajo – arriba y abajo – lo que se traduce en una mejor escalabilidad, disponibilidad y capacidad de respuesta, y menores costes en general.
  • Facilita la transición a nuevas tecnologías (sistema operativo, aplicaciones, etc.) que a menudo es necesario para solucionar problemas e innovar.
  • Mejora la seguridad con limitaciones, permisos y copias de seguridad.
  • Facilita la incorporación y el seguimiento de los miembros del equipo con entornos unificados y dedicados.

Como soy un gran creyente de “una imagen vale más que mil palabras”, voy a ilustrar cómo se puede realizar el suministro en el contexto específico de un equipo de desarrollo de aplicaciones empresariales que utiliza el Bonita Studio 7.7.4 Community IDE (una aplicación de código abierto en Eclipse RCP) como entorno de desarrollo y el servicio en la nube AWS WorkSpaces como herramienta de suministro. Elegí este conjunto en particular porque lo conozco bien y cualquiera puede replicarlo sin coste.

Para probarlo, deberás crear una cuenta de AWS. Esto es gratis cuando no sobrepasas las limitaciones del nivel gratuito. Instala la aplicación cliente de AWS WorkSpaces en el entorno local.

En este ejemplo, quiero crear un entorno de desarrollo. Primero, lanzo un nuevo AWS WorkSpace y preparo mi directorio. Puedo identificarme o crear un usuario, seleccionar el paquete estándar con Windows 10 y mantener las configuraciones predeterminadas.

Así se ve cuando me conecto a través de la aplicación cliente de AWS WorkSpaces por primera vez, como esperábamos tiene Windows 10.

Luego completo la instalación descargando e instalando una solución BPM open source, utilizando el Java integrado.

Después podemos realizar una prueba rápida: me aseguro de poder crear un diagrama en el software utilizado en el paso anterior y vuelvo a conectarme a AWS WorkSpace. Compruebo que sigo viendo el diagrama y lo elimino.

Este AWS WorkSpace ya está listo para el desarrollo de aplicaciones empresariales. En la vida real, es probable que instale y configure otras cosas como Git y Maven, pero no son necesarias para este ejemplo.

En esta etapa, solo yo puedo acceder a este entorno de desarrollo, pero es probable que en el futuro necesite suministrar y asignar otras instancias de este mismo entorno de desarrollo a otros usuarios. Para facilitar esto, AWS WorkSpaces me permite crear una imagen/paquete basado en un AWS WorkSpace existente y lanzar nuevos AWS WorkSpaces desde el mismo.

No es necesario explicar lo útil que es esto cuando se tienen que crear, configurar y asignar una gran cantidad de entornos de desarrollo en un período de tiempo realmente corto. Lo he usado muchas veces para impartir sesiones de capacitación técnica, por ejemplo.

Ahora, con una mejor idea de cómo se puede suministrar y escalar, es posible que te preguntes: ¿cómo mantengo todas estas instancias que tienen que permanecer por un tiempo? Considero que este es el principal desafío y, desafortunadamente, la respuesta es “depende”. Lo que sé con certeza es que predefinir una estrategia/plan es crucial para evitar riesgos mayores.

Supongamos que quiero que los desarrolladores utilicen una versión más reciente de la solución BPM en el contexto del ejemplo anterior. Entonces tengo que gestionar la mejora. El servicio AWS WorkSpaces no es de gran ayuda en esta situación (que yo sepa) porque cada AWS WorkSpace es independiente.

En este caso específico, podría:

  • Crear una nueva imagen/paquete y reciclar los WorkSpaces de AWS.

Obviamente, los WorkSpaces de AWS son solo una de las muchas opciones, y otros servicios y/o tecnologías disponibles podrían adaptarse mejor a sus necesidades específicas. Pero lo que realmente me gusta de este tipo de solución es lo básico que es y la cantidad de beneficios que proporciona. Y, sin embargo, muchas organizaciones aún no lo saben o no lo han considerado por alguna razón.

Para terminar, me gustaría resaltar un pensamiento adicional: este enfoque generalmente viene con un monitoreo potente, un requisito importante para monetizar el acceso de los entornos de desarrollo de la misma manera que muchos ya lo hacen con las API.

Aquí hemos visto cómo poner en marcha la tecnología de máquina virtual y algunos de sus beneficios, anímate a probar sus ventajas ahora que conoces los pasos para lanzarlo.

Redacción Silicon

La redacción de Silicon está compuesta por profesionales del periodismo 2.0

Recent Posts

Tendencias en almacenamiento HDD para 2025, una perspectiva completa

En esta tribuna, Rainer W. Kaese, director sénior de Desarrollo de Negocio de HDD de…

3 días ago

IA generativa: cinco razones por las que lo más pequeño puede ser más inteligente

En esta tribuna, Enric Delgado, director de Client Engineering Team de España, Portugal, Grecia e…

6 días ago

Pensando en pequeño para pensar en grande: la arquitectura modular de AMD impulsa la sostenibilidad

En esta tribuna, Justin Murrill, director de Responsabilidad Corporativa en AMD, explica cómo la arquitectura…

6 días ago

Observabilidad: La herramienta de la que todos hablan…

En esta tribuna, Mario Carranza, especialista en observabilidad de CPO WOCU-Monitoring, explica cómo la observabilidad…

2 semanas ago

Cómo combatir los ataques de los Estados-Nación y de los ciberdelincuentes: trabajando desde dentro de la amenaza

Adam Meyers, responsable de operaciones contra adversarios en CrowdStrike, explica cómo combatir las amenazas transversales…

2 semanas ago

El impacto de la IA generativa en las cadenas de suministro de la industria manufacturera

Ana Belén González Bartolomé, Head of Manufacturing, Logistics, Energy, and Utilities para España, Portugal e…

3 semanas ago