Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert
Construeix la teva primera cadena DevOps en cinc passos per a principiants.

DevOps s'ha convertit en una panacea per a processos de desenvolupament massa lents, desconnectats i problemàtics. Però necessiteu coneixements mínims en DevOps. Cobrirà conceptes com ara la cadena DevOps i com crear-ne un en cinc passos. Aquesta no és una guia completa, sinó només un "peix" que es pot ampliar. Comencem per la història.

La meva introducció a DevOps

Abans treballava amb núvols a Citi Group i desenvolupava una aplicació web IaaS per gestionar la infraestructura de núvol de Citi, però sempre m'ha interessat com optimitzar la cadena de desenvolupament i millorar la cultura entre els desenvolupadors. Greg Lavender, el nostre CTO d'Arquitectura i Infraestructura del núvol, em va recomanar aquest llibre. Projecte "Phoenix". Explica molt bé els principis de DevOps i es llegeix com una novel·la.

La taula de la part posterior mostra la freqüència amb què les empreses publiquen noves versions:

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Com Amazon, Google i Netflix aconsegueixen desplegar tant? I és senzill: van descobrir com crear una cadena DevOps gairebé perfecta.

Les coses van ser molt diferents per a nosaltres a Citi fins que vam canviar a DevOps. Aleshores, el meu equip tenia diferents entorns, però vam fer el lliurament al servidor de desenvolupament manualment. Tots els desenvolupadors només tenien accés a un servidor de desenvolupament basat en IBM WebSphere Application Server Community Edition. Amb un intent simultani de lliurament, el servidor va "caure" i cada vegada vam haver de negociar "dolorosamente" entre nosaltres. També vam tenir una cobertura de codi insuficient amb proves, un procés de lliurament manual que consumia molt de temps i no vam fer un seguiment del lliurament del codi amb l'ajuda d'alguna tasca o requisit del client.

Estava clar que calia fer alguna cosa amb urgència, i vaig trobar un col·lega que em semblava. Vam decidir crear la primera cadena DevOps junts: va configurar una màquina virtual i un servidor d'aplicacions Tomcat, i jo em vaig ocupar de Jenkins, la integració amb Atlassian Jira i BitBucket, així com la cobertura del codi amb proves. El projecte va tenir èxit: vam automatitzar completament la cadena de desenvolupament, vam aconseguir gairebé el 100% de temps d'activitat al servidor de desenvolupament, vam poder supervisar i millorar la cobertura del codi amb proves i una branca de Git es podia vincular a un lliurament i problema de Jira. I gairebé totes les eines que vam utilitzar per construir la cadena DevOps eren de codi obert.

De fet, la cadena es va simplificar, perquè ni tan sols vam aplicar configuracions avançades amb Jenkins o Ansible. Però ho vam aconseguir. Potser això és una conseqüència del principi Pareto (també conegut com la regla 80/20).

Una breu descripció de la cadena DevOps i CI/CD

DevOps té diferents definicions. DevOps, com Agile, inclou diferents disciplines. Però la majoria estarà d'acord amb la següent definició: DevOps és un mètode, o cicle de vida, de desenvolupament de programari, el principi principal del qual és crear una cultura on els desenvolupadors i altres empleats estiguin "a la mateixa longitud d'ona", el treball manual estigui automatitzat, cadascú fa el que és millor, augmenta la freqüència dels lliuraments, augmenta la productivitat del treball, augmenta la flexibilitat.

Tot i que les eines per si soles no són suficients per crear un entorn DevOps, són indispensables. El més important d'ells és la integració contínua i el lliurament continu (CI/CD). Hi ha diferents etapes de la cadena per a cada entorn (per exemple, DEV (desenvolupament), INT (integració), TST (proves), QA (assegurament de la qualitat), UAT (proves d'acceptació d'usuaris), STG (preparació), PROD (ús)) , les tasques manuals estan automatitzades, els desenvolupadors poden crear codi de qualitat, lliurar-lo i reconstruir-lo fàcilment.

Aquesta nota descriu com crear una cadena DevOps en cinc passos, tal com es mostra a la imatge següent, utilitzant eines de codi obert.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Anem als negocis.

Pas 1: Plataforma CI/CD

En primer lloc, necessiteu una eina CI/CD. Jenkins és una eina CI/CD de codi obert amb llicència MIT escrita en Java que va popularitzar el moviment DevOps i s'ha convertit en l'estàndard de facto per a CICD.

Què és Jenkins? Imagineu que teniu un tauler de control màgic per a una varietat de serveis i eines. Per si sol, una eina CI/CD com Jenkins no serveix per a res, però amb diferents eines i serveis, esdevé totpoderosa.

A més de Jenkins, hi ha moltes altres eines de codi obert, trieu-ne qualsevol.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Aquí teniu l'aspecte d'un procés DevOps amb una eina CI/CD

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Teniu una eina CI/CD a localhost, però encara no hi ha molt a fer. Passem al següent pas.

Pas 2: Control de versions

La millor (i probablement la més fàcil) de provar la màgia d'una eina CI/CD és integrar-la amb una eina de gestió de control de font (SCM). Per què necessiteu el control de versions? Suposem que estàs fent una sol·licitud. Ho escriviu en Java, Python, C++, Go, Ruby, JavaScript o qualsevol altre llenguatge que sigui un vagó i un petit carro. El que escrius s'anomena codi font. Al principi, sobretot si treballeu sol, podeu desar-ho tot en un directori local. Però a mesura que el projecte creix i més persones s'uneixen, necessiteu una manera de compartir els canvis de codi però evitar conflictes en combinar els canvis. I també cal restaurar d'alguna manera les versions anteriors sense utilitzar còpies de seguretat i utilitzar el mètode de copiar i enganxar per als fitxers de codi.

I aquí sense SCM enlloc. L'SCM emmagatzema codi en repositoris, en gestiona versions i el coordina entre els desenvolupadors.

Hi ha moltes eines SCM, però Git s'ha convertit en l'estàndard de facto merescudament. Us aconsello que l'utilitzeu, però hi ha altres opcions.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Aquí teniu l'aspecte del pipeline DevOps després d'afegir l'SCM.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

L'eina CI/CD pot automatitzar la càrrega i descàrrega del codi font i la col·laboració en equip. No està malament? Però ara com fer una aplicació que funcioni a partir d'això, estimat per milers de milions d'usuaris?

Pas 3: crear una eina d'automatització

Tot va com cal. Pots penjar codi i confirmar canvis al control de fonts i convidar amics a treballar amb tu. Però encara no tens una aplicació. Perquè aquesta sigui una aplicació web, s'ha de compilar i empaquetar per distribuir-la o executar-la com a executable. (No cal compilar un llenguatge de programació interpretat com JavaScript o PHP.)

Utilitzeu una eina d'automatització de construcció. Sigui quina sigui l'eina que trieu, reunirà el codi en el format adequat i automatitzarà la neteja, la compilació, les proves i el lliurament. Les eines de creació varien segons l'idioma, però les opcions de codi obert següents s'utilitzen habitualment.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Perfecte! Ara inserim els fitxers de configuració de l'eina d'automatització de compilació al control de fonts perquè l'eina CI/CD els generi.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Senta bé. Però, on es pot desplegar tot això ara?

Pas 4: Servidor d'aplicacions web

Per tant, teniu un fitxer empaquetat que es pot executar o desplegar. Perquè una aplicació sigui realment útil, ha de tenir algun tipus de servei o interfície, però cal posar-ho tot en algun lloc.

Una aplicació web es pot allotjar en un servidor d'aplicacions web. El servidor d'aplicacions proporciona un entorn on podeu executar lògica empaquetada, representar interfícies i exposar serveis web a través d'un sòcol. Necessiteu un servidor HTTP i alguns entorns més (una màquina virtual, per exemple) per instal·lar el servidor d'aplicacions. De moment, imaginem que esteu tractant amb tot això a mesura que aneu (tot i que a continuació parlaré dels contenidors).

Hi ha diversos servidors d'aplicacions web oberts.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Ja tenim una cadena DevOps gairebé funcionant. Bona feina!

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

En principi, podeu aturar-vos aquí, després podeu gestionar-ho vosaltres mateixos, però val la pena parlar de la qualitat del codi.

Pas 5: prova de cobertura

Les proves requereixen molt de temps i esforç, però és millor trobar errors immediatament i millorar el codi per agradar als usuaris finals. Amb aquesta finalitat, hi ha moltes eines obertes que no només provaran el codi, sinó que també aconsellaran sobre com millorar-lo. La majoria de les eines CI/CD es poden connectar a aquestes eines i automatitzar el procés.

Les proves es divideixen en dues parts: marcs de proves per escriure i executar proves i eines amb consells per millorar la qualitat del codi.

Marcs de prova

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Eines amb consells de qualitat

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

La majoria d'aquestes eines i marcs estan escrits per a Java, Python i JavaScript perquè C++ i C# són propietaris (tot i que GCC és de codi obert).

Hem aplicat les eines de cobertura de proves i ara la canalització de DevOps hauria de semblar a la imatge de l'inici del tutorial.

Passos addicionals

contenidors

Com he dit abans, un servidor d'aplicacions es pot allotjar en una màquina virtual o un servidor, però els contenidors són més populars.

Què són els contenidors? En resum, en una màquina virtual, el sistema operatiu sovint ocupa més espai que l'aplicació, i normalment n'hi ha prou amb un contenidor amb poques biblioteques i configuració. En alguns casos, les màquines virtuals són indispensables, però el contenidor pot allotjar l'aplicació juntament amb el servidor sense cap cost addicional.

Per als contenidors, normalment es prenen Docker i Kubernetes, tot i que hi ha altres opcions.

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Llegiu articles sobre Docker i Kubernetes a Opensource.com:

Eines d'automatització de middleware

La nostra cadena DevOps se centra en la creació col·laborativa i el lliurament d'una aplicació, però hi ha altres coses interessants que podeu fer amb les eines DevOps. Per exemple, utilitzeu les eines Infrastructure as Code (IaC), també conegudes com a eines d'automatització de middleware. Aquestes eines ajuden a automatitzar la instal·lació, la gestió i altres tasques de middleware. Per exemple, una eina d'automatització pot agafar aplicacions (servidor d'aplicacions web, base de dades, eines de monitorització) amb les configuracions correctes i enviar-les al servidor d'aplicacions.

Aquí hi ha algunes opcions per a les eines d'automatització de middleware obertes:

Guia de Dummies: Creació de cadenes DevOps amb eines de codi obert

Detalls als articles Opensource.com:

Ara que?

Això és només la punta de l'iceberg. La cadena DevOps pot fer molt més. Comenceu amb una eina CI/CD i vegeu què més podeu automatitzar per facilitar la vostra feina. No us oblideu eines de comunicació obertes per a una col·laboració efectiva.

Aquí hi ha alguns articles més bons de DevOps per a principiants:

També podeu integrar DevOps amb eines àgils obertes:

Font: www.habr.com

Afegeix comentari