Guia DevOps per a principiants

Quina és la importància de DevOps, què significa per als professionals de les TI, descripció de mètodes, marcs i eines.

Guia DevOps per a principiants

Han passat moltes coses des que el terme DevOps s'ha implantat al món de les TI. Amb gran part de l'ecosistema de codi obert, és important reconsiderar per què va començar això i què significa per a una carrera en TI.

Què és DevOps

Tot i que no hi ha una definició única, crec que DevOps és un marc tecnològic que permet la col·laboració entre equips de desenvolupament i equips d'operacions per desplegar codi més ràpidament als entorns de producció amb la capacitat de replicar i automatitzar. Passarem la resta de l'article desempaquetant aquesta declaració.

La paraula "DevOps" és una combinació de les paraules "desenvolupament" (desenvolupament) i "operacions" (operacions). DevOps ajuda a accelerar el lliurament d'aplicacions i serveis. Això permet a les organitzacions servir de manera eficaç als seus clients i ser més competitives al mercat. En poques paraules, DevOps tracta de l'alineació entre el desenvolupament i les operacions de TI, amb una millor comunicació i col·laboració.

DevOps preveu una cultura on la col·laboració entre equips de desenvolupament, operadors i equips empresarials es considera fonamental. No es tracta només d'eines, perquè DevOps en una organització també ofereix valor constantment als clients. Les eines són un dels seus pilars, juntament amb les persones i els processos. DevOps augmenta la capacitat de les organitzacions per oferir solucions d'alta qualitat en el menor temps possible. DevOps també automatitza tots els processos, des de la creació fins al desplegament, l'aplicació o el producte.

La discussió de DevOps se centra en la relació entre els desenvolupadors, les persones que escriuen programari per guanyar-se la vida i els operadors responsables del manteniment d'aquest programari.

Reptes per a l'equip de desenvolupament

Els desenvolupadors solen mostrar-se entusiasmats i disposats a implementar nous enfocaments i tecnologies per resoldre problemes organitzatius. Tanmateix, també s'enfronten a certs problemes:

  • El mercat competitiu crea molta pressió per lliurar el producte a temps.
  • S'han d'encarregar de gestionar el codi llest per a la producció i d'implementar noves funcions.
  • El cicle de llançament pot ser llarg, de manera que l'equip de desenvolupament ha de fer diverses suposicions abans de desplegar aplicacions. En aquest escenari, es necessita més temps per resoldre els problemes que sorgeixen durant el desplegament en un entorn de producció o de prova.

Reptes als quals s'enfronta el grup operatiu

Històricament, els grups d'operacions s'han centrat en l'estabilitat i la fiabilitat dels serveis informàtics. És per això que els equips d'operacions busquen estabilitat mitjançant canvis de recursos, tecnologies o enfocaments. Les seves tasques inclouen:

  • Gestioneu l'assignació de recursos a mesura que creix la demanda.
  • Gestionar els canvis de disseny o personalitzacions que es requereixen per aplicar-los a un entorn de producció.
  • Diagnosticar i resoldre problemes relacionats amb la producció després d'auto-desplegar aplicacions.

Com DevOps resol els problemes de desenvolupament i operacions

En lloc de desplegar un gran nombre de funcions d'aplicació alhora, les empreses intenten veure si poden implementar un nombre reduït de funcions als seus clients mitjançant una sèrie d'iteracions de llançament. Aquest enfocament té una sèrie d'avantatges, com ara una millor qualitat del programari, un feedback més ràpid dels clients, etc. Això, al seu torn, garanteix un alt grau de satisfacció del client. Per assolir aquests objectius, les empreses han de:

  • Reduïu la taxa de fracàs de les noves versions
  • Augmentar la freqüència de desplegament
  • Aconseguiu un temps mitjà més ràpid per a la recuperació en cas de llançament d'una nova aplicació.
  • Reduir el temps de correcció

DevOps s'encarrega de totes aquestes tasques i ajuda a garantir un lliurament perfecte. Les organitzacions estan utilitzant DevOps per aconseguir nivells de rendiment que eren impensables fa només uns anys. Realitzen desenes, centenars i fins i tot milers de desplegaments al dia alhora que ofereixen fiabilitat, estabilitat i seguretat de primer nivell. (Més informació sobre les mides dels lots i el seu impacte en el lliurament de programari).

DevOps intenta abordar diversos problemes derivats de metodologies anteriors, com ara:

  • Aïllament del treball dels equips de desenvolupament i operadors
  • Les proves i el desplegament com a fases separades després del disseny i la construcció que triguen més que els cicles de construcció.
  • Excés de temps dedicat a provar, desplegar i dissenyar en lloc de centrar-se en la creació de serveis empresarials bàsics
  • Desplegament manual del codi que condueix a errors en la producció
  • Les diferències en els horaris dels equips de desenvolupament i operacions condueixen a retards addicionals

Guia DevOps per a principiants

Enfrontament de DevOps, Agile i TI tradicional

Sovint es parla de DevOps en relació amb altres pràctiques de TI, en particular la infraestructura de TI àgil i en cascada.

Àgil és un conjunt de principis, valors i mètodes per produir programari. Així, per exemple, si teniu una idea que voleu convertir en programari, podeu utilitzar principis i valors àgils. Però aquest programari només es pot executar en un entorn de desenvolupament o de prova. Voleu una manera senzilla i segura de traslladar el programari de manera ràpida i repetida a la producció, i el camí passa per les eines i pràctiques de DevOps. El desenvolupament de programari àgil se centra en els processos de desenvolupament, amb DevOps responsable de desenvolupar i desplegar de la manera més segura i fiable possible.

Comparar el model de cascada tradicional amb DevOps és una bona manera d'entendre els beneficis que aporta DevOps. L'exemple següent suposa que l'aplicació es llançarà en quatre setmanes, el desenvolupament s'ha completat al 85%, l'aplicació estarà activa i el procés de compra de servidors per a l'enviament del codi acaba de començar.

Processos tradicionals
Processos en DevOps

Després de fer una comanda de nous servidors, l'equip de desenvolupament treballa en proves. El grup focal està treballant en l'extensa documentació que les empreses necessiten per desplegar la infraestructura.
Després de fer una comanda de nous servidors, els equips de desenvolupament i operacions treballen conjuntament en els processos i el flux de treball per instal·lar nous servidors. Això us permet entendre millor els requisits d'infraestructura.

Falta la informació distorsionada sobre la migració per error, la redundància, la ubicació del centre de dades i els requisits d'emmagatzematge d'un equip de desenvolupament que tingui un coneixement profund de l'aplicació.
La informació detallada sobre failover, redundància, recuperació de desastres, ubicacions del centre de dades i requisits d'emmagatzematge es coneix i és correcta gràcies a la contribució de l'equip de desenvolupament.

El grup de treball no té ni idea del progrés de l'equip de desenvolupament. També desenvolupa un pla de seguiment a partir de les seves pròpies idees.

El grup de treball és plenament conscient del progrés realitzat per l'equip de desenvolupament. També interactua amb l'equip de desenvolupament i desenvolupen conjuntament un pla de seguiment que satisfà les necessitats de TI i de negoci. També utilitzen eines de seguiment del rendiment de l'aplicació (APM).

Una prova de càrrega realitzada abans que s'iniciï una aplicació fa que l'aplicació es bloquegi, retardant-ne el llançament.
Una prova de càrrega realitzada abans de llançar l'aplicació provoca una degradació del rendiment. L'equip de desenvolupament elimina ràpidament els colls d'ampolla i l'aplicació es llança a temps.

Cicle de vida de DevOps

DevOps implica l'adopció de determinades pràctiques generalment acceptades.

Planificació contínua

La planificació contínua es basa en els principis de Lean per començar petit, identificant els recursos i resultats necessaris per provar el valor o la visió del negoci, adaptar-se contínuament, mesurar el progrés, comprendre les necessitats dels clients, canviar la direcció segons sigui necessari per adaptar-se a l'agilitat i actualitzar el pla de negoci.

Desenvolupament conjunt

El procés de desenvolupament col·laboratiu permet que les empreses, els equips de desenvolupament i els equips de prova de diferents zones horàries ofereixin programari de qualitat contínuament. Això inclou desenvolupament multiplataforma, suport de programació multilingüe, creació d'històries d'usuari, ideació i gestió del cicle de vida. El desenvolupament col·laboratiu inclou el procés i la pràctica d'integració contínua, que fomenta la integració de codi freqüent i les compilacions automatitzades. En injectar codi amb freqüència a una aplicació, els problemes d'integració es detecten a principis del cicle de vida (quan són més fàcils de solucionar) i l'esforç d'integració general es redueix gràcies a la retroalimentació contínua a mesura que el projecte mostra un progrés continu i demostrable.

Prova contínua

Les proves contínues redueixen el cost de les proves en ajudar els equips de desenvolupament a equilibrar la velocitat i la qualitat. També elimina els colls d'ampolla de proves amb la virtualització de serveis i facilita la creació d'entorns de prova virtualitzats que es poden compartir, desplegar i actualitzar fàcilment a mesura que canvien els sistemes. Aquestes capacitats redueixen el cost d'aprovisionament i manteniment d'entorns de prova, a més d'escurçar el temps del cicle de prova, permetent que les proves d'integració es realitzin a principis del cicle de vida.

Alliberament i desplegament continus

Aquestes metodologies porten amb elles una de les pràctiques bàsiques: llançament i desplegament continus. Això proporciona un pipeline continu que automatitza els processos clau. Redueix els passos manuals, els temps d'espera dels recursos i la reelaboració en permetre el desplegament de botons per obtenir més versions, menys errors i una transparència total.

L'automatització té un paper clau per garantir un llançament de programari estable i fiable. Un dels reptes més grans és prendre processos manuals com la construcció, la regressió, el desplegament i la infraestructura i automatitzar-los. Això requereix el control de la versió del codi font; escenaris de prova i desplegament; infraestructura d'aplicacions i dades de configuració; així com les biblioteques i paquets dels quals depèn l'aplicació. Un altre factor important és la capacitat de consultar l'estat de tots els entorns.

Seguiment continu

La supervisió contínua proporciona informes de nivell empresarial que ajuden els equips de desenvolupament a entendre la disponibilitat i el rendiment de les aplicacions en un entorn de producció abans d'implementar-les a la producció. La retroalimentació primerenca proporcionada pel seguiment continu és fonamental per reduir el cost dels errors i mantenir els projectes en la direcció correcta. Aquesta pràctica sovint inclou eines de supervisió, que tendeixen a revelar mètriques relacionades amb el rendiment de l'aplicació.

Feedback i optimització constants

La retroalimentació i l'optimització contínues proporcionen una representació visual del flux del client i identifiquen les àrees problemàtiques. Els comentaris es poden incloure tant a les etapes de prevenda com de postproducció per maximitzar el valor i garantir que encara es facin més transaccions amb èxit. Tot això proporciona una visibilitat immediata de la causa principal dels problemes dels clients que afecten el seu comportament i impacte en el negoci.

Guia DevOps per a principiants

Beneficis de DevOps

DevOps pot ajudar a crear un entorn on desenvolupadors i operadors treballin en equip per assolir objectius comuns. Una fita important en aquest procés és la introducció de la integració contínua i el lliurament continu (CI/CD). Aquestes tècniques permetran als equips portar programari al mercat més ràpidament amb menys errors.

Els avantatges importants de DevOps són:

  • Predictibilitat: DevOps ofereix una taxa de fracàs significativament més baixa per a les noves versions.
  • Mantenibilitat: DevOps proporciona una recuperació fàcil en cas de fallades en una nova versió o tancament de l'aplicació.
  • Reproductibilitat: un sistema de control de versions per a un conjunt o codi us permet restaurar versions anteriors segons sigui necessari.
  • Major qualitat: la resolució de problemes d'infraestructura millora la qualitat del desenvolupament d'aplicacions.
  • Temps de comercialització: l'optimització de lliurament de programari redueix el temps de comercialització en un 50%.
  • Reducció de riscos: garantir la seguretat en el cicle de vida del programari redueix el nombre de defectes al llarg del cicle de vida.
  • Eficàcia en costos: la recerca de l'eficiència en costos en el desenvolupament de programari atrau la direcció superior.
  • Estabilitat: el sistema de programari és més estable, segur i es poden provar els canvis.
  • La base de codi més gran es divideix en parts manejables: DevOps es basa en pràctiques de desenvolupament àgil que us permeten dividir una base de codi gran en parts més petites i manejables.

Principis de DevOps

L'adopció de DevOps ha generat diversos principis que han evolucionat (i continuen evolucionant). La majoria de proveïdors de solucions han desenvolupat les seves pròpies modificacions a les diferents metodologies. Tots aquests principis es basen en un enfocament holístic de DevOps i les organitzacions de totes les mides els poden utilitzar.

Desenvolupar i provar en un entorn de producció

La qüestió és permetre als equips de desenvolupament i garantia de qualitat (QA) desenvolupar i provar sistemes que es comporten com sistemes de producció perquè puguin veure com es comporta i funciona bé l'aplicació abans que estigui llesta per al desplegament.

L'aplicació s'ha de connectar als sistemes de producció tan aviat com sigui possible en el cicle de vida per abordar tres problemes potencials principals. En primer lloc, permet provar l'aplicació en un entorn proper a l'entorn real. En segon lloc, us permet provar i validar els processos de lliurament d'aplicacions amb antelació. En tercer lloc, permet a l'equip d'operacions provar al principi del cicle de vida com es comportarà el seu entorn quan es desplegaran les aplicacions, cosa que els permet crear un entorn centrat en aplicacions altament personalitzable.

Desplegament amb processos reproductibles i fiables

Aquest principi permet als equips de desenvolupament i operacions mantenir processos de desenvolupament de programari àgils durant tot el cicle de vida. L'automatització és fonamental per crear processos iteratius, fiables i reproduïbles. Per tant, l'organització ha de crear una canalització de lliurament que permeti un desplegament i proves continus i automatitzats. El desplegament freqüent també permet als equips provar els processos de desplegament, reduint així el risc d'errors de desplegament durant els llançaments reals.

Seguiment i control de la qualitat del treball

Les organitzacions són bones per supervisar les aplicacions de producció perquè tenen eines que capturen mètriques i indicadors clau de rendiment (KPI) en temps real. Aquest principi mou la supervisió al principi del cicle de vida, assegurant que les proves automatitzades fan un seguiment dels atributs funcionals i no funcionals d'una aplicació al principi del procés. Sempre que es prova i es desplega una aplicació, s'han d'examinar i analitzar les mètriques de qualitat. Les eines de monitorització proporcionen una alerta primerenca dels problemes de rendiment i qualitat que poden sorgir durant la producció. Aquests indicadors s'han de recollir en un format accessible i comprensible per a totes les parts interessades.

Millora dels bucles de retroalimentació

Un dels objectius dels processos DevOps és permetre que les organitzacions responguin i facin canvis més ràpidament. A l'hora de lliurar programari, aquest objectiu requereix que l'organització rebi feedback des del principi i després aprengui ràpidament de cada acció realitzada. Aquest principi requereix que les organitzacions creïn canals de comunicació que permetin a les parts interessades accedir i interactuar a partir de la retroalimentació. El desenvolupament es pot fer ajustant els seus plans o prioritats de projecte. La fabricació pot actuar millorant l'entorn de treball.

Dev

  • Planificació: Kanboard, Wekan i altres alternatives de Trello GitLab, Tuleap, Redmine i altres alternatives JIRA Mattermost, Roit.im, IRC i altres alternatives a Slack.
  • Redacció del codi: Git, Gerrit, Bugzilla; Jenkins i altres eines CI/CD de codi obert
  • Muntatge: Apache Maven, Gradle, Apache Ant, Packer
  • Proves: JUnit, cogombre, seleni, Apache JMeter

ops

  • Alliberament, desplegament, operacions: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform
  • Seguiment: Grafana, Prometheus, Nagios, InfluxDB, Fluentd i molt més tractats en aquesta guia

(* Les eines per a les operacions s'han numerat per ordre d'ús per les ordres d'operacions, però les seves eines es superposen amb les etapes del cicle de vida de les eines de llançament i desplegament. La numeració s'ha eliminat per facilitar la lectura.)

en conclusió

DevOps és una metodologia cada cop més popular que té com a objectiu reunir desenvolupadors i operadors. És únic, diferent de les operacions de TI tradicionals i complementària a Agile (però no tan flexible).

Guia DevOps per a principiants

Descobriu els detalls de com obtenir una professió sol·licitada des de zero o Pujar de nivell en termes d'habilitats i salari completant els cursos en línia de pagament de SkillFactory:

més cursos

útil

Font: www.habr.com

Afegeix comentari