Revisión de Digital Garage

Digital Garage


Este artículo en Inglés.

Digital Garage es una plataforma como servicio basada en Openshift presentando un ambiente basado en la nube en el que los desarrolladores pueden ejecutar, probar y administrar sus aplicaciones sin preocuparse de la infraestructura, su hardware subyacente, sistemas operativos y demás recursos de TI. La abstracción proporcionada por esta plataforma permite a los desarrolladores concentrarse en la programación de las aplicaciones obteniendo un impacto drástico en su productividad.

Esta herramienta aporta muchas ventajas para los programadores web. Por ejemplo, la creación de proyectos en la plataforma permite desplegar una aplicación en diferentes entornos como desarrollo, pruebas y producción, permitiendo un control total sobre el ciclo de vida del software; todo esto sin importar el lugar donde se encuentren ya que para su uso sólo se necesita conexión a internet.

La necesidad de realizar gastos en infraestructura física es nula, el ambiente en la nube les evita a los programadores tener realizar una inversión en costosos equipos y tiempo para su administración y configuración. Por una cuota mensual, los programadores tienen acceso a las herramientas necesarias para el despliegue de sus aplicaciones de forma rápida y automatizada.

Otra ventaja notable es que Digital Garage está compuesto por proyectos Open-source, por lo que ofrece cierta transparencia fomentando confianza y permitiendo a los desarrolladores el acceso, el estudio, modificación y reutilización de las diferentes herramientas que componen la plataforma. Docker y Kubernetes son las principales tecnologías de este tipo en las que la Digital Garage está basada, cada una de ellas están siendo mantenida día a día por una comunidad de desarrolladores alrededor del mundo. Esto significa en parte, que la plataforma crecerá en función al crecimiento de las tecnologías que la componen. Por otro lado, los usuarios tienen a sus disposición toda la documentación disponible en internet para el estudio de las herramientas que componen la plataforma.

Usar la plataforma es fácil y representa una pequeña curva de aprendizaje para aquellos programadores que ya están familiarizados con tecnologías como Docker y Git. Básicamente los despliegues de aplicaciones se realizan desde un repositorio Git con el código fuente del proyecto o a partir de una imagen Docker, permitiendo administrar las aplicaciones de forma robusta y escalable.

Digital Garage provee una serie de opciones para el despliegue automatizado de las aplicaciones:

Catálogo de lenguajes, frameworks y bases de datos

Consiste en una lista de opciones donde se dispone de la mayoría de los lenguajes utilizados para el desarrollo web, frameworks y bases de datos; entre ellos, PHP, Python, Ruby, Java, Node.js, Java, Perl, Mysql, Mongodb, Mariadb, Django, Cakephp, etc.

Cuando se selecciona un un lenguaje específico, el programador debe proveer la URL del repositorio Git donde se encuentra la aplicación hecha en el lenguaje seleccionado. De esta forma, la plataforma se encarga de crear una imagen ejecutable a partir del código fuente. Este tipo de opciones se le conoce como "Builder image".

Los frameworks y bases de datos se presentan en el catálogo como "Quick Templates". Estas plantillas representan una serie de objetos parametrizados y son procesadas por la plataforma para generar la aplicación. El usuario sólo debe especificar el valor para cada unos de los parámetros definidos en la plantilla y luego podrá desplegar la aplicación.

A partir de una imagen Docker

La integración de la plataforma con Docker otorga una mejor experiencia de desarrollo a los programadores ya que tienen la posibilidad de utilizar sus propias imágenes para desplegar y ejecutar sus aplicaciones. Los usuarios pueden realizar un despliegue a partir de una imagen ya registrada en el repositorio interno de la plataforma o a partir de una imagen publicada en Docker Hub.

Importando YAML o JSON

Si ninguna de las opciones disponibles se ajustan a las necesidades del desarrollador, es posible crear aplicaciones a partir de “Templates” personalizados. El "Template" debe estar definido en formato YAML o JSON y debe describir ciertos componentes necesarios para el funcionamiento de la aplicación. Los componentes en un "Template" son conceptos heredados de Kubernetes, los principales a tener en cuenta son:

  • Pod, consisten en uno o más contenedores desplegados juntos en un pod, es la unidad de cómputo más pequeña que se puede definir, implementar y gestionar.
  • Services, funciona como un balanceador de carga interno, sirve de proxy entre un conjunto de Pods replicados y las conexiones que recibe.
  • Deployment config, define qué imagen se va a desplegar y cómo.
  • Route, expone un punto de entrada (URL) al Service.

Una vez que el usuario haya realizado el despliegue de su aplicación, este tiene control total sobre ella. A través de la consola web de la plataforma, es posible gestionar todos los proyectos y aplicaciones que el usuario haya creado. Por ejemplo, es posible configurar despliegues automatizados utilizando un webhook de Github para disparar un “rebuild” de la aplicación cuando el código en el repositorio cambie. Otra forma de gestionar las aplicaciones es a través de una interfaz de línea de comando “CLI”, la cual permite al programador realizar ciertas acciones desde el terminal utilizando comandos oc.

De manera que, con Digital Garage los programadores disponen de una serie de herramientas que permiten ahorrar tiempo y dinero. Para un programador, el uso de la plataforma no se compara con la necesidad de configurar servidores reales y todo el trabajo redundante que implica. Por otro lado, permite poner las aplicaciones web en manos de los usuarios finales y “testers” tan pronto como haya sido realizado el despliegue. Por tanto, con esta plataforma el programador dispone de una serie de herramientas con las que podrá trabajar de forma rápida, con bajo costo y con un nivel de limitación muy bajo.


*Article by: Edward Suárez at Bixlabs, Uruguay*
---