Axuda: que é a entrega continua

Anteriormente, nós contou sobre Integración Continua (CI). Seguimos con Entrega Continua. Este é un conxunto de métodos de desenvolvemento de software. Axuda a garantir que o teu código estea listo para a súa implantación.

Axuda: que é a entrega continua
/Pixabay/ bluebudgie / PL

Historia

Púidose ver de novo a frase entrega continua manifesto áxil desde 2001 ao comezo da lista de principios básicos: "A prioridade é resolver os problemas dos clientes mediante a entrega continua de software actualizado".

En 2010, Jez Humble e David Farley lanzaron un libro por Entrega Continua. Segundo os autores, o CD complementa o enfoque Integración continua e permite simplificar a preparación do código para a súa implantación.

Despois da publicación do libro, o enfoque comezou a gañar popularidade e en só un par de anos chegou a ser case universalmente aceptado. Dacordo con enquisa, realizado entre máis de 600 desenvolvedores e xestores de TI en 2014, o 97% dos xestores técnicos e o 84% dos programadores estaban familiarizados coa Entrega Continua.

Agora este enfoque segue sendo un dos máis populares. Segundo un estudo de 2018 no que participaron a comunidade de TI DevOps e Jenkins Community, el usos a metade dos máis de mil enquisados.

Como funciona a entrega continua?

A base do CD é a preparación do código para a súa implantación. Para realizar esta tarefa, utilízase a automatización do proceso de preparación do software para a súa publicación. Debe ser estándar en diferentes contornos de desenvolvemento, o que axudará a atopar rapidamente os puntos débiles e optimizalos. Por exemplo, acelerar as probas.

Un exemplo dun proceso de entrega continua é o seguinte:

Axuda: que é a entrega continua

Se o enfoque de integración continua é o responsable de automatizar as dúas primeiras etapas, entón a entrega continua é responsable das dúas seguintes. A estabilidade do proceso está asegurada, entre outras cousas, polos sistemas xestión da configuración. Controlan os cambios na infraestrutura, bases de datos e dependencias. A propia implantación pódese automatizar ou facer manualmente.

O proceso imponse os seguintes requisitos:

  • Dispoñibilidade de información sobre a preparación para entrar no contorno de produción e a preparación para a liberación inmediata (as ferramentas de CD proban o código e permiten avaliar o efecto dos cambios na versión).
  • Responsabilidade xeral do produto final. O equipo do produto (xestores, desenvolvedores, probadores) pensa no resultado e non só na súa área de responsabilidade (o resultado é unha versión funcional que está dispoñible para os usuarios do produto).

Nos CDs adoita utilizarse revisión de código, e para recoller opinións dos clientes - o principio lanzamento escuro. Unha nova función lánzase por primeira vez a un pequeno segmento de usuarios: a súa experiencia de interactuar co produto axuda a atopar deficiencias e erros que non se detectaron durante as probas internas.

Cal é o beneficio

A entrega continua axuda a simplificar a implantación do código, o que ten un impacto positivo na produtividade e reduce a probabilidade de que os empregados se esgoten. En definitiva, isto reduce os custos xerais de desenvolvemento. Por exemplo, CD axudou a un dos equipos de HP para reducir tales custos nun 40%.

Ademais, segundo un estudo de 2016 (páxina 28 documento) - as empresas que implementaron CD solucionan os problemas de seguridade da información un 50% máis rápido que as que non utilizan o enfoque. En certa medida, esta diferenza pódese explicar polo rendemento das ferramentas de automatización de procesos.

Outra vantaxe é a aceleración dos lanzamentos. Entrega continua no estudo de desenvolvemento finlandés axudou aumentar a velocidade de montaxe do código nun 25%.

Dificultades potenciais

O primeiro e principal problema é a necesidade de reconstruír procesos familiares. Para mostrar as vantaxes do novo enfoque, paga a pena cambiar gradualmente ao CD, comezando non polas aplicacións máis intensivas en man de obra.

O segundo problema potencial é o gran número de ramas de código. A consecuencia da "ramificación" son conflitos frecuentes e unha maior perda dunha gran cantidade de tempo. Posible solución - enfoque sen ramas.

En particular, nalgunhas empresas as principais dificultades xorden coas probas: leva moito tempo. Os resultados das probas moitas veces teñen que ser analizados manualmente, pero unha posible solución pode ser paralelizar as probas nas primeiras fases da implementación do CD.

Tamén debes formar aos empregados para traballar con novas ferramentas: un programa educativo preliminar aforrará tempo e esforzo aos desenvolvedores.

Axuda: que é a entrega continua
/flickr/ h.ger1969 / CC BY-SA

Ferramentas

Aquí tes algunhas ferramentas abertas para a entrega continua:

  • GoCD — servidor para entrega continua en Java e JRuby on Rails. Permítelle controlar todo o proceso de entrega da aplicación: compilación-proba-lanzamento. A ferramenta distribúese baixo a licenza Apache 2.0. Podes atopalo no sitio web oficial guía de configuración.
  • Capistrano — un marco para crear scripts que automatizan a implantación de aplicacións en Ruby, Java ou PHP. Capistrano é capaz de executar comandos nunha máquina remota conectándose a ela a través de SSH. Funciona con outras ferramentas de integración e entrega continuas, como o servidor Integrity CI.
  • Gradle é unha ferramenta multiplataforma que automatiza todo o ciclo de desenvolvemento de aplicacións. Gradle traballa con Java, Python, C/C++, Scala, etc. Hai integración con Eclipse, IntelliJ e Jenkins.
  • zangão - Plataforma de CD en lingua Go. O drone pódese implementar localmente ou na nube. A ferramenta está construída sobre os contedores e usa ficheiros YAML para xestionalos.
  • Spinnaker — unha plataforma para a entrega continua de código en sistemas multi-nube. Desenvolvido por Netflix, os enxeñeiros de Google xogaron un papel importante no desenvolvemento da ferramenta. Instrucións de instalación atopalo no sitio web oficial.

Que ler no noso blog corporativo:

Fonte: www.habr.com

Engadir un comentario