Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto
Crea a túa primeira cadea DevOps en cinco pasos para principiantes.

DevOps converteuse nunha panacea para procesos de desenvolvemento demasiado lentos, desconectados e problemáticos. Pero necesitas coñecementos mínimos en DevOps. Abarcará conceptos como a cadea DevOps e como crear un en cinco pasos. Esta non é unha guía completa, senón só un "peixe" que se pode ampliar. Comecemos pola historia.

A miña introdución a DevOps

Adoitaba traballar con nubes en Citi Group e desenvolver unha aplicación web IaaS para xestionar a infraestrutura de nube de Citi, pero sempre me interesou como optimizar a cadea de desenvolvemento e mellorar a cultura entre os desenvolvedores. Greg Lavender, o noso CTO de Cloud Architecture and Infrastructure, recomendoume este libro. Proxecto "Phoenix". Explica moi ben os principios de DevOps e lese como unha novela.

A táboa do reverso mostra a frecuencia coa que as empresas lanzan novas versións:

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Como Amazon, Google e Netflix conseguen lanzar tanto? E é sinxelo: descubriron como crear unha cadea DevOps case perfecta.

As cousas foron moi diferentes para nós en Citi ata que cambiamos a DevOps. Despois o meu equipo tiña diferentes ambientes, pero fixemos a entrega ao servidor de desenvolvemento manualmente. Todos os desenvolvedores tiñan acceso só a un servidor de desenvolvemento baseado en IBM WebSphere Application Server Community Edition. Cun intento simultáneo de entrega, o servidor "caeu", e cada vez tivemos que negociar "dolorosamente" entre nós. Tamén tivemos unha cobertura de código insuficiente con probas, un proceso de entrega manual que leva moito tempo e non tivemos forma de rastrexar a entrega de código coa axuda dalgunha tarefa ou requisito do cliente.

Estaba claro que había que facer algo con urxencia, e atopei un colega afín. Decidimos crear a primeira cadea DevOps xuntos: el configurou unha máquina virtual e un servidor de aplicacións Tomcat, e eu ocupei Jenkins, a integración con Atlassian Jira e BitBucket, así como a cobertura do código con probas. O proxecto foi exitoso: automatizamos completamente a cadea de desenvolvemento, conseguimos case o 100% de tempo de actividade no servidor de desenvolvemento, puidemos supervisar e mellorar a cobertura do código con probas e unha rama de Git podería estar vinculada a unha entrega e un problema de Jira. E case todas as ferramentas que usamos para construír a cadea DevOps eran de código aberto.

De feito, a cadea simplificouse, porque nin sequera aplicamos configuracións avanzadas usando Jenkins ou Ansible. Pero conseguímolo. Quizais isto sexa unha consecuencia do principio Pareto (tamén coñecida como a regra 80/20).

Unha breve descrición da cadea DevOps e CI/CD

DevOps ten definicións diferentes. DevOps, como Agile, inclúe diferentes disciplinas. Pero a maioría estará de acordo coa seguinte definición: DevOps é un método, ou ciclo de vida, de desenvolvemento de software, cuxo principio principal é crear unha cultura onde os desenvolvedores e outros empregados estean "na mesma lonxitude de onda", o traballo manual é automatizado, cada un fai o que mellor é, aumenta a frecuencia das entregas, aumenta a produtividade do traballo, aumenta a flexibilidade.

Aínda que as ferramentas por si soas non son suficientes para crear un ambiente DevOps, son indispensables. O máis importante deles é a integración continua e a entrega continua (CI/CD). Hai diferentes etapas na cadea para cada ambiente (por exemplo, DEV (desenvolvemento), INT (integración), TST (probas), QA (garantía de calidade), UAT (probas de aceptación do usuario), STG (preparación), PROD (uso)) , as tarefas manuais están automatizadas, os desenvolvedores poden producir código de calidade, entregalo e poden reconstruír facilmente.

Esta nota describe como crear unha cadea DevOps en cinco pasos, como se mostra na imaxe de abaixo, usando ferramentas de código aberto.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Poñémonos ao negocio.

Paso 1: Plataforma CI/CD

Primeiro de todo, necesitas unha ferramenta CI/CD. Jenkins é unha ferramenta CI/CD de código aberto con licenza MIT escrita en Java que popularizou o movemento DevOps e converteuse no estándar de facto para CICD.

Que é Jenkins? Imaxina que tes un panel de control máxico para unha variedade de servizos e ferramentas. Por si só, unha ferramenta CI/CD como Jenkins é inútil, pero con diferentes ferramentas e servizos, faise todopoderoso.

Ademais de Jenkins, hai moitas outras ferramentas de código aberto, escolla calquera.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Este é o aspecto dun proceso DevOps cunha ferramenta CI/CD

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Tes unha ferramenta CI/CD en localhost, pero aínda non hai moito que facer. Pasemos ao seguinte paso.

Paso 2: versión

A mellor forma (e sen dúbida máis sinxela) de probar a maxia dunha ferramenta CI/CD é integrala cunha ferramenta de xestión de control de fonte (SCM). Por que necesitas o control de versións? Digamos que estás facendo unha solicitude. Escríbeo en Java, Python, C++, Go, Ruby, JavaScript ou calquera outro idioma que sexa un carro e un carriño. O que escribes chámase código fonte. Ao principio, especialmente se estás a traballar só, podes gardar todo nun directorio local. Pero a medida que o proxecto crece e máis xente se une, necesitas un xeito de compartir os cambios de código pero evita conflitos ao combinar os cambios. E tamén cómpre restaurar dalgún xeito as versións anteriores sen usar copias de seguridade e usar o método copiar e pegar para ficheiros de código.

E aquí sen SCM en ningures. O SCM almacena código en repositorios, xestiona versións do mesmo e coordínao entre os desenvolvedores.

Hai moitas ferramentas SCM, pero Git converteuse merecidamente no estándar de facto. Aconséllolle que o use, pero hai outras opcións.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Aquí está o aspecto do pipeline DevOps despois de engadir o SCM.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

A ferramenta CI/CD pode automatizar a carga e descarga do código fonte e a colaboración en equipo. Non está mal? Pero agora como facer unha aplicación que funcione a partir desta, amada por miles de millóns de usuarios?

Paso 3: Construír a ferramenta de automatización

Todo vai como debería. Podes cargar código e realizar cambios no control de fontes e invitar amigos a traballar contigo. Pero aínda non tes unha aplicación. Para que esta sexa unha aplicación web, debe ser compilada e empaquetada para a súa distribución ou executada como un executable. (Non é necesario compilar unha linguaxe de programación interpretada como JavaScript ou PHP).

Use unha ferramenta de automatización de construción. Sexa cal sexa a ferramenta que elixas, reunirá o código no formato correcto e automatizará a limpeza, compilación, proba e entrega. As ferramentas de compilación varían segundo o idioma, pero úsanse habitualmente as seguintes opcións de código aberto.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Perfecto! Agora imos inserir os ficheiros de configuración da ferramenta de automatización de compilación no control de fontes para que a ferramenta CI/CD os constrúa.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Séntese ben. Pero onde está todo isto para lanzar agora?

Paso 4: Servidor de aplicacións web

Polo tanto, tes un ficheiro empaquetado que se pode executar ou lanzar. Para que unha aplicación sexa realmente útil, debe ter algún tipo de servizo ou interface, pero hai que poñelo todo nalgún lugar.

Unha aplicación web pódese aloxar nun servidor de aplicacións web. O servidor de aplicacións proporciona un ambiente onde pode executar lóxica empaquetada, renderizar interfaces e expoñer servizos web a través dun socket. Necesitas un servidor HTTP e algúns outros ambientes (unha máquina virtual, por exemplo) para instalar o servidor de aplicacións. De momento, imos facer como se está a tratar con todo isto a medida que avanza (aínda que falarei dos contedores a continuación).

Hai varios servidores de aplicacións web abertos.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Xa temos unha cadea DevOps case funcionando. Gran traballo!

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

En principio, podes parar aquí, entón podes xestionalo por ti mesmo, pero paga a pena falar da calidade do código.

Paso 5: proba de cobertura

As probas requiren moito tempo e esforzo, pero é mellor atopar erros de inmediato e mellorar o código para agradar aos usuarios finais. Para este fin, hai moitas ferramentas abertas que non só probarán o código, senón que tamén aconsellarán sobre como melloralo. A maioría das ferramentas CI/CD poden conectarse a estas ferramentas e automatizar o proceso.

As probas divídense en dúas partes: marcos de probas para escribir e executar probas e ferramentas con suxestións para mellorar a calidade do código.

Marcos de proba

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Ferramentas con consellos de calidade

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

A maioría destas ferramentas e marcos están escritos para Java, Python e JavaScript porque C++ e C# son propietarios (aínda que GCC é de código aberto).

Aplicamos as ferramentas de cobertura de probas e agora a canalización de DevOps debería parecerse á imaxe do inicio do titorial.

Pasos adicionais

Contenedores

Como dixen antes, un servidor de aplicacións pódese aloxar nunha máquina virtual ou nun servidor, pero os contedores son máis populares.

Que son os contedores? En resumo, nunha máquina virtual, o sistema operativo adoita ocupar máis espazo que a aplicación, e un contedor adoita ser suficiente cunhas poucas bibliotecas e configuración. Nalgúns casos, as máquinas virtuais son indispensables, pero o contedor pode acomodar a aplicación xunto co servidor sen custo adicional.

Para os contedores adoitan tomarse Docker e Kubernetes, aínda que hai outras opcións.

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Lea artigos sobre Docker e Kubernetes en opensource.com:

Ferramentas de automatización de middleware

A nosa cadea DevOps céntrase na creación colaborativa e na entrega dunha aplicación, pero hai outras cousas interesantes que podes facer coas ferramentas DevOps. Por exemplo, use ferramentas de Infraestructura como Código (IaC), tamén coñecidas como ferramentas de automatización de middleware. Estas ferramentas axudan a automatizar a instalación, a xestión e outras tarefas do middleware. Por exemplo, unha ferramenta de automatización pode levar aplicacións (servidor de aplicacións web, base de datos, ferramentas de monitorización) coas configuracións correctas e envialas ao servidor de aplicacións.

Aquí tes algunhas opcións para as ferramentas de automatización de middleware abertas:

Guía de Dummies: Construír cadeas DevOps con ferramentas de código aberto

Detalles nos artigos opensource.com:

E agora que?

Esta é só a punta do iceberg. A cadea DevOps pode facer moito máis. Comeza cunha ferramenta CI/CD e mira que máis podes automatizar para facilitar o teu traballo. Non te esquezas ferramentas de comunicación abertas para una colaboración eficaz.

Aquí tes algúns artigos máis bos de DevOps para principiantes:

Tamén podes integrar DevOps con ferramentas áxiles abertas:

Fonte: www.habr.com

Engadir un comentario