viernes, 3 de mayo de 2019

Wercker Intro

A mediados de abril del año 2017 (casi 2 años atrás), Oracle adquirió Wercker. Si bien ya existían productos para habilitar CI/CD en las organizaciones, Oracle vio una característica importante de Wercker: es una plataforma basada en Docker.

Por otro lado, en diciembre pasado (2018), Docker en conjunto con Microsoft anunciaron un nuevo estándar llamado CNAB (Cloud Native Application Bundle). Este estándar tiene como objetivo principal administrar en conjunto: infraestructura, aplicaciones y servicios cloud.

En qué atinó Oracle ese 2017: Docker se convertiría en un estándar tarde o temprano (aunque ellos quizá no lo sabían o, al menos, no estaban tan seguros). Mejor aún, lo que sucedió es que Docker ESCRIBIÓ un estándar. Y no sólo eso, sino que escribió un estándar para aplicaciones Cloud Native. La ventaja de Wercker sobre algunas otras plataformas que ofrecen CI/CD es que desde su concepción está basado en Docker.

Ahora bien: ¿qué es Wercker y cuáles son sus principales funciones o características?

  • Steps
  • Pipelines
  • Workflows

Steps

Son scripts bash o binarios que ayudan a automatizar tareas. Las tareas que automatizan se definen en un archivo llamado wercker.yaml asociado a la aplicación. Los steps los puede uno escribir a mano; o bien, pedirlos prestados a la comunidad. Recuerden que no estamos solos, siempre podemos echar mano de Internet. Estos pasos (los que pedimos prestados) se encuentran en un lugar que se llama Steps Registry.

Pipelines

Esta es la principal capacidad de Wercker. Es donde se define el flujo de las acciones (pasos) y el entorno de esas tareas. Es aquí donde se definen las tareas de build, test y deploy. Algo que presume mucho Wercker es que los pipelines pueden ejecutarse de manera concurrente, esto podría ayudar en el tiempo de ejecución del pipeline.

Workflow

Esta característica es la configuración del circuito. En un workflow podemos incluir uno o varios pipelines y configurarlos en serie o en paralelo (sí, como un circuito eléctrico). De tal suerte que de acuerdo a nuestro diseño de los pipelines (conjunto y configuraciones de steps), podríamos reutilizar distintos pipelines en distintos workflows. Esto nos permite diseñar configuraciones de pipelines (workflows) tan simples o complejos como necesitemos.

Otras funciones

Adicional a las anteriores, Wercker proporciona algunas otras funciones o capacidades. Por ejemplo, cuenta con integración con repositorios basados en Git (el de tu preferencia: GitHub, GitLab, Bitbucket, entre otros). Esta funcionalidad es básica para cualquier pipeline de CI/CD, pues es necesario obtener el código fuente de algún lado para ejecutar tareas de build, test o deploy.