CI \ CD para startups: qué herramientas hay y por qué no solo las utilizan grandes y conocidas empresas

Los desarrolladores de herramientas CI \ CD a menudo señalan a grandes empresas como Microsoft, Oculus, Red Hat, incluso Ferrari y NASA como clientes. Parece que tales marcas funcionan solo con sistemas caros que una puesta en marcha condicional de un par de desarrolladores y un diseñador no puede permitirse. Pero una parte importante de las herramientas está disponible para equipos pequeños.

A qué puede prestarle atención, le diremos más.


Fotos - Csaba Balazs - Unsplash



Censor PHP


Un servidor CI de código abierto que facilita la creación de proyectos PHP. Esta es una bifurcación del proyecto PHPCI . PHPCI en sí mismo aún se está desarrollando, pero no tan activamente como antes.

PHP Censor puede trabajar con repositorios GitHub, GitLab, Mercurial y varios otros. Para probar el código, la herramienta utiliza las bibliotecas Atoum, PHP Spec, Behat, Codeception. Aquí hay un archivo de configuración de ejemplo para el primer caso:

test: atoum: args: "command line arguments go here" config: "path to config file" directory: "directory to run tests" executable: "path to atoum executable" 

Se cree que PHP Censor no es malo para implementar proyectos pequeños, pero tendrá que alojarlo y configurarlo usted mismo (autohospedado). Esta tarea se simplifica con documentación bastante detallada: está en GitHub .



Rex


Rex es la abreviatura de Ejecución remota. El sistema fue desarrollado por el ingeniero Ferenc Erki para automatizar procesos en el centro de datos. El trabajo de Rex se basa en los scripts de Perl, pero no es necesario conocer este idioma para interactuar con la herramienta: la mayoría de las operaciones (por ejemplo, copiar archivos) se describen en la biblioteca de funciones, y los scripts a menudo se ajustan en diez líneas. Aquí hay un ejemplo para iniciar sesión en varios servidores y ejecutar el tiempo de actividad:

 use Rex -feature => ['1.3']; user "my-user"; password "my-password"; group myservers => "mywebserver", "mymailserver", "myfileserver"; desc "Get the uptime of all servers"; task "uptime", group => "myservers", sub { my $output = run "uptime"; say $output; }; 

Recomendamos comenzar a familiarizarse con la herramienta de la guía oficial y el libro electrónico , que se está agregando actualmente.



Servicio de compilación abierta (OBS)


Esta es una plataforma para optimizar el desarrollo de la distribución. Su código está abierto y se encuentra en el repositorio en GitHub . El autor de la herramienta es Novell . Ella participó en el desarrollo de la distribución SuSE, y este proyecto originalmente se llamaba OpenSUSE Build Service. No es sorprendente que el Servicio Open Build se use para construir proyectos en openSUSE, Tizen y VideoLAN. La herramienta también funciona con Dell, SGI e Intel. Pero hay entre usuarios habituales y pequeñas startups. Especialmente para ellos, los autores recopilaron ( p. 10 ) un paquete de software preconfigurado. El sistema en sí es completamente gratuito: solo tiene que gastar dinero en un servidor o un servidor de hierro para implementarlo.

Pero durante todo el tiempo de su existencia, la herramienta no ha adquirido una comunidad amplia. Aunque era parte de la Red de Desarrolladores de Linux, responsable de estandarizar el sistema operativo abierto. Puede ser difícil encontrar una respuesta a una pregunta en foros de temas. Pero uno de los residentes de Quora señaló que en el chat de IRC en Freenode, los miembros de la comunidad responden de buena gana. El problema de la pequeña comunidad no es global, ya que la solución a muchos problemas se describe en la documentación oficial (PDF y EPUB). Allí puede encontrar las mejores prácticas para trabajar con OBS (hay ejemplos y casos).



Rundeck


Una herramienta abierta ( GitHub ) que automatiza las tareas en el centro de datos y la nube mediante scripts. Un servidor de script especial es responsable de su ejecución. Podemos decir que Rundeck es la "hija" de la plataforma para administrar aplicaciones ControlTier. Rundeck se separó de ella en 2010 y adquirió una nueva funcionalidad, por ejemplo, integraciones con Puppet, Chef, Git y Jenkins.

El sistema es utilizado por The Walt Disney Company , Salesforce y Ticketmaster . Pero el proyecto también es adecuado para nuevas empresas. Esto se debe a que Rundeck tiene licencia de Apache v2.0. Además, la herramienta es bastante fácil de usar.

Un residente de Reddit que trabajó con Rundeck dice que resolvió la mayoría de las dificultades por su cuenta. Con esto, la documentación y los libros electrónicos publicados por los desarrolladores lo ayudaron.

También puede encontrar guías rápidas sobre cómo configurar la herramienta en línea:




Gocd


Una herramienta abierta ( GitHub ) automatiza el control de versión del código. Fue presentado en 2007 por ThoughtWorks , luego el proyecto se llamó Cruise.

AutoCD Autoder, un servicio de genealogía de Ancestry, y Barclaycard, un proveedor de tarjetas de crédito, trabajan con GoCD. Sin embargo, una cuarta parte de los usuarios de la herramienta son pequeñas empresas .

La popularidad del servicio entre las startups puede explicarse por su apertura: se distribuye bajo la licencia Apache v2.0. Al mismo tiempo, GoCD tiene complementos para la integración con software de terceros: sistemas de autorización y soluciones en la nube. Es cierto que el sistema es bastante difícil de dominar: tiene una gran cantidad de operadores y equipos. Además, algunos usuarios se quejan de la mala interfaz y la necesidad de configurar agentes para escalar.


Fotos - Matt Wildbore - Unsplash

Si quiere probar GoCD en la práctica, en el sitio web del proyecto puede encontrar documentación oficial . También puede recomendar el Blog para desarrolladores de GoCD con guías de personalización como fuente de información adicional.



Jenkins


Jenkins es ampliamente conocido y se lo considera un tipo de estándar en el campo de CI \ CD; por supuesto, sin él, esta selección no estaría completa. La herramienta apareció en 2011, convirtiéndose en una rama del proyecto Hudson de Oracle.

Hoy, trabajan con Jenkins en la NASA, Nintendo y otras grandes organizaciones. Sin embargo, más del 8% de los usuarios son pequeños grupos de hasta diez personas. El producto es completamente gratuito y se distribuye bajo la licencia MIT . Sin embargo, tendrá que alojar y configurar Jenkins usted mismo; requiere un servidor dedicado.

Durante toda la vida del instrumento, se ha formado una extensa comunidad a su alrededor. Los usuarios se comunican activamente en hilos en Reddit y Grupos de Google . Los materiales sobre Jenkins también aparecen regularmente en Habré. Si desea formar parte de la comunidad y comenzar a trabajar con Jenkins, hay documentación oficial y una guía de los desarrolladores . También recomendamos las siguientes guías y libros:


Jenkins tiene algunos proyectos útiles de terceros. El primero es el complemento Configuración como código . Simplifica la configuración de Jenkins con API legibles que son comprensibles incluso para los administradores sin un conocimiento profundo de la herramienta. El segundo es el sistema en la nube Jenkins X. Acelera la entrega de aplicaciones implementadas en una infraestructura de TI a gran escala al automatizar algunas tareas rutinarias.



Buildbot


Este es un sistema de integración continua para automatizar el ciclo de ensamblaje y prueba de aplicaciones. Comprueba automáticamente la funcionalidad del código cada vez que se le realizan cambios.

El autor de la herramienta fue el ingeniero Brian Warner (Brian Warner). Hoy fue reemplazado por el grupo de iniciativa del Comité de Supervisión Buildbot, que incluye seis desarrolladores.

Buildbot es utilizado por proyectos como LLVM, MariaDB, Blender y Dr.Web. Pero también se usa en proyectos más pequeños como wxWidgets y Flathub. El sistema admite todos los VCS modernos y tiene configuraciones de compilación flexibles mediante el uso de Python para describirlos. La documentación oficial y los tutoriales de terceros lo ayudarán a lidiar con todos ellos, por ejemplo, aquí hay una guía rápida de IBM .



Por supuesto, estas no son todas las herramientas de DevOps a las que deben prestar atención las organizaciones pequeñas y las startups. Dé sus herramientas favoritas en los comentarios e intentaremos hablar sobre ellas en uno de los siguientes materiales.



Sobre qué escribimos en un blog corporativo:

Source: https://habr.com/ru/post/460735/


All Articles