Una vida mejor con el suministro del entorno de desarrollo

DevOpsProyectos

Miguel Valdés Faura, director general de Bonitasoft, nos explica la importancia de contar con las mejores herramientas y metodologías para optimizar la eficiencia en el desarrollo de proyectos.

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. 

 

Autor