CICD para startups: qué herramientas existen y por qué no sólo las utilizan empresas grandes y conocidas

Los desarrolladores de herramientas CICD a menudo incluyen a grandes empresas como clientes: Microsoft, Oculus, Red Hat e incluso Ferrari y NASA. Parecería que estas marcas sólo funcionan con sistemas caros que una startup formada por un par de desarrolladores y un diseñador no puede permitirse. Pero una parte importante de las herramientas está disponible para equipos pequeños.

Te contamos a qué puedes prestar atención a continuación.

CICD para startups: qué herramientas existen y por qué no sólo las utilizan empresas grandes y conocidas
Фото - Csaba Balazs — Desechar

Censura PHP

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

PHP Censor puede funcionar con GitHub, GitLab, Mercurial y varios otros repositorios. Para probar el código, la herramienta utiliza las bibliotecas Atoum, PHP Spec, Behat y Codeception. Aquí archivo de ejemplo configuraciones 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"

ConsideradoPHP Censor es muy adecuado para implementar proyectos pequeños, pero tendrá que alojarlo y configurarlo usted mismo (autohospedado). Esta tarea se simplifica mediante 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. Rex se basa en scripts de Perl, pero no es necesario conocer este lenguaje 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 suelen caber en diez líneas. A continuación se muestra 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 con guía oficial и libro electronico, que actualmente se encuentra en fase de finalización.

Servicio de construcción abierta (OBS)

Esta es una plataforma para optimizar el desarrollo de distribuciones. Su código está abierto y se encuentra en el repositorio en GitHub. El autor de la herramienta es la empresa. Novell. Participó en el desarrollo de la distribución SuSE, y este proyecto inicialmente se llamó openSUSE Build Service. No sorprende que Open Build Service uso para proyectos de construcción en openSUSE, Tizen y VideoLAN. Dell, SGI e Intel también trabajan con la herramienta. Pero entre los usuarios habituales también hay pequeñas empresas emergentes. Especialmente para ellos, los autores recopilaron (página 10) preconfigurado paquete de software. El sistema en sí es completamente gratuito: sólo tienes que gastar dinero en alojamiento o en un servidor de hardware para implementarlo.

Pero a lo largo de su existencia, la herramienta nunca ha adquirido una amplia comunidad. A pesar de el era parte de Linux Developer Network, responsable de estandarizar el sistema operativo abierto. Puede ser difícil Encuentre la respuesta a su pregunta en foros temáticos. Pero uno de los residentes de Quora notó que en chat IRC En Freenode, los miembros de la comunidad responden con bastante facilidad. El problema de una pequeña comunidad no es global, ya que se ha descrito la solución a muchos problemas. en la documentación oficial (PDF y EPUB). Ibídem. puede encontrar mejores prácticas para trabajar con OBS (hay ejemplos y casos).

cubierta

Abrir herramienta (GitHub), que automatiza 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 una “hija” de la plataforma de gestión de aplicaciones ControlTier. Rundeck se separó de él en 2010 y adquirió nuevas funciones, por ejemplo, integraciones con Puppet, Chef, Git y Jenkins.

El sistema se utiliza en The Walt Disney Company, Salesforce и Ticketmaster. Pero el proyecto también es adecuado para empresas emergentes. Esto se debe a que Rundeck tiene la licencia 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 mi cuenta. Le ayudaron con esto. documentación y libros electrónicos, publicado por los desarrolladores.

También puede encontrar guías breves para configurar la herramienta en línea:

GoCD

Abrir herramienta (GitHub) automatizar el control de versiones del código. Fue introducido en 2007 por la empresa. ThoughtWorks — entonces el proyecto se llamó Cruise.

GoCD es utilizado por ingenieros del sitio de venta de automóviles en línea AutoTrader, el servicio de genealogía Ancestry y el proveedor de tarjetas de crédito Barclaycard. Sin embargo, una cuarta parte de los usuarios de herramientas constituye una pequeña empresa.

La popularidad del servicio entre las nuevas empresas se puede explicar por su apertura: se distribuye bajo la licencia Apache v2.0. Al mismo tiempo, GoCD имеет Complementos para la integración con software de terceros: sistemas de autorización y soluciones en la nube. verdadero sistema bastante complicado en masterización: cuenta con una gran cantidad de operadores y equipos. Además, algunos usuarios se quejan de la mala interfaz y necesidad configurar agentes para escalar.

CICD para startups: qué herramientas existen y por qué no sólo las utilizan empresas grandes y conocidas
Фото - Matt Wildbore — Desechar

Si desea probar GoCD en la práctica, puede encontrarlo en el sitio web del proyecto. documentación oficial. También se puede recomendar como fuente de información adicional. Blog para desarrolladores de GoCD con manuales en la configuración.

Jenkins

Jenkins es ampliamente conocido y considerado una especie de estándar en el campo de la CICD; por supuesto, sin él esta selección no estaría completamente completa. La herramienta apareció en 2011, estanque una bifurcación del Proyecto Hudson de Oracle.

Hoy con Jenkins работают en la NASA, Nintendo y otras grandes organizaciones. Sin embargo % más 8 Los usuarios representan pequeños equipos de hasta diez personas. El producto es completamente gratuito y distribuido. bajo licencia MIT. Sin embargo, tendrás que alojar y configurar Jenkins tú ​​mismo; requiere un servidor dedicado.

A lo largo de toda la existencia del instrumento, se ha formado una gran comunidad a su alrededor. Los usuarios se comunican activamente en hilos en Reddit и Grupos de Google. Los materiales sobre Jenkins también aparecen periódicamente en Habré. Si desea formar parte de la comunidad y comenzar a trabajar con Jenkins, existe documentación oficial и guía para desarrolladores. También recomendamos las siguientes guías y libros:

Jenkins tiene varios proyectos paralelos útiles. El primero es un complemento. Configuración como código. Facilita la configuración de Jenkins con API fáciles de leer que incluso los administradores sin un conocimiento profundo de la herramienta pueden entender. El segundo es el sistema. JenkinsX para la nube. Acelera la entrega de aplicaciones implementadas en infraestructura de TI a gran escala al automatizar algunas tareas rutinarias.

Construir bot

Este es un sistema de integración continua para automatizar el ciclo de construcción 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. Hoy esta de servicio cambiado el grupo de iniciativa del Comité de Supervisión de Buildbot, que incluye seis desarrolladores.

Construir bot utilizado proyectos como LLVM, MariaDB, Blender y Dr.Web. Pero también se utiliza en proyectos más pequeños como wxWidgets y Flathub. El sistema es compatible con todos los VCS modernos y tiene configuraciones de compilación flexibles mediante el uso de Python para describirlos. Le ayudará a lidiar con todos ellos. documentación oficial y tutoriales de terceros, por ejemplo, aquí tienes uno breve manual de IBM.

Por supuesto, eso no es todo Herramientas DevOps a las que las pequeñas organizaciones y nuevas empresas deberían prestar atención. Dé sus herramientas favoritas en los comentarios e intentaremos hablar sobre ellas en uno de los siguientes materiales.

Sobre qué escribimos en el blog corporativo:

Fuente: habr.com

Añadir un comentario