Taula de continguts[Amaga][Espectacle]
La infraestructura és una part important del procés de desenvolupament de programari, ja que és directament responsable del bon funcionament d'una aplicació de programari. Servidors, equilibradors de càrrega, tallafocs, bases de dades i clústers de contenidors complicats són exemples d'infraestructura.
Com que les dificultats d'infraestructura impregnen tot el procés de desenvolupament, són rellevants més enllà de les situacions de producció.
Inclouen plataformes CI/CD, entorns de posada en escena i eines de prova, entre altres coses.
A mesura que augmenta la complexitat del producte de programari, aquests reptes d'infraestructura es tornen més crítics. La tècnica tradicional de gestió manual de la infraestructura es converteix ràpidament en una solució no escalable per adaptar-se a les aspiracions dels cicles de desenvolupament de programari ràpid basats en DevOps actuals.
Com a resultat, Infrastructure as Code (IaC) s'ha convertit avui en la solució de desenvolupament de facto. La infraestructura com a codi (IaC) us permet escalar i fer un seguiment dels canvis d'infraestructura a mesura que es produeixen.
En aquesta peça analitzarem més de prop la infraestructura com a codi, inclosos els seus avantatges, per què és vital i molt més. Així doncs, comencem.
Quin és el La infraestructura com a codi?
La infraestructura com a codi és el procés de proporcionar i configurar un entorn mitjançant codi en lloc de configurar manualment els dispositius i sistemes adequats. Els desenvolupadors executen scripts després de definir els paràmetres del codi i la plataforma IaC genera automàticament la infraestructura del núvol.
Aquestes configuracions automatitzades de TI permeten als equips construir ràpidament la configuració del núvol necessària per provar i executar el seu producte. La infraestructura com a codi permet als desenvolupadors construir qualsevol component d'infraestructura que vulguin, com ara xarxes, equilibradors de càrrega, bases de dades, màquines virtuals i tipus de connexió.
En termes senzills, és el procés de subministrament i gestió d'infraestructura especificada mitjançant codi en lloc de manualment. IaC també és una tècnica DevOps important que es requereix per a un cicle de vida ràpid de lliurament de programari.
Permet als equips de DevOps construir i versionar ràpidament la infraestructura de la mateixa manera que es versiona el codi font, així com fer un seguiment d'aquestes versions per minimitzar la inconsistència entre entorns informàtics, que poden causar problemes importants durant el desplegament.
Enfocaments declaratius vs. imperatius de l'IaC
IaC es pot abordar de dues maneres: declarativa o imperativa.
Una eina IaC us configurarà el sistema si feu servir un enfocament declaratiu, que descriu l'estat previst del sistema, inclosos els recursos que necessiteu i les qualitats que haurien de tenir.
Un enfocament declaratiu també fa un seguiment de l'estat actual dels objectes del vostre sistema, facilitant la gestió del temps d'inactivitat de la vostra infraestructura. Un mètode imperatiu, d'altra banda, descriu les instruccions particulars que s'han d'executar en l'ordre correcte per crear la configuració prevista.
Moltes tecnologies IaC utilitzen un enfocament declaratiu per a l'aprovisionament d'infraestructura i ho faran automàticament. Una eina declarativa d'IaC aplicarà modificacions a l'estat desitjat si les feu. Haureu d'esbrinar com aplicar aquests ajustos si feu servir una eina essencial. Les eines IaC sovint són capaces de funcionar en ambdós modes, tot i que afavoreixen una sobre l'altra.
Com funciona la infraestructura com a codi?
Per implementar completament la infraestructura com a codi, cal que hi hagi uns quants requisits.
Una plataforma d'allotjament en núvol com a servei (IaaS)
La primera i més important necessitat és l'allotjament d'accés remot. L'eina de gestió de configuració s'ha de connectar a l'amfitrió remot i fer-hi canvis. El vostre equip ha de garantir que l'eina de gestió de configuració tingui accés si la infraestructura llunyana és autogestionada.
Les API de la plataforma d'allotjament en núvol habilitada per IaaS permeten als clients crear, eliminar i canviar recursos d'infraestructura sota demanda. Els sistemes de gestió de configuració poden utilitzar aquestes API per automatitzar encara més aquestes activitats. Digital Ocean, Amazon AWS i Microsoft Azure són tres sistemes IaaS principals.
Una plataforma per a la gestió de la configuració
La suite d'eines que es connecta a les API d'IaaS i automatitza les operacions típiques és el següent requisit previ per completar IaC. Un grup de persones pot treballar junts per produir una col·lecció de scripts i eines. Tanmateix, caldria un esforç important, un manteniment continu i un retorn mínim de la inversió. Terraform, Ansible, Salt Stack i Chef són només algunes de les eines de gestió de configuració de codi obert que gestionen aquest repte.
Sistema de control de versions
Una plataforma de gestió de configuració utilitza fitxers de text escrits en un llenguatge de marques com ara YAML per proporcionar tasques i seqüències perquè la plataforma s'executi. Aquests fitxers de text es poden tractar com a codi d'aplicació i emmagatzemats en un dipòsit de control de versions. Les sol·licituds d'extracció i les revisions de codi es permeten al repositori, que actua com un únic punt de veritat. El sistema de control de versions Git és el més popular.
Amb aquests requisits previs, tingueu en compte l'escenari següent: un desenvolupador vol afegir un nou servei d'aplicació a un sistema. Aquest exemple il·lustra un procés IaC.
- A la seva plataforma de gestió de configuració preferida, Terraform, el desenvolupador modifica un fitxer de text de configuració YAML. Els canvis indiquen que cal un nou servidor d'allotjament.
- Al dipòsit de Git, el desenvolupador confirma els canvis a una branca de funcions. El desenvolupador crea una sol·licitud d'extracció ja que el repositori Git del projecte està allotjat a Bitbucket. Un altre membre de l'equip examina la sol·licitud d'extracció i nota les noves millores a la infraestructura. La sol·licitud d'extracció l'aprova un membre de l'equip i el desenvolupador integra el canvi a la branca principal del dipòsit.
- La plataforma de configuració és necessària en aquest pas per dur a terme una actualització. El desenvolupador pot iniciar manualment l'actualització. Com que l'equip utilitza Bitbucket, tenen accés a Bitbucket Pipelines i poden utilitzar-ne un per automatitzar aquest procediment.
- Terraform es connecta a l'IaaS de l'equip després de l'execució. Terraform utilitza l'API IaaS per executar una seqüència d'ordres que actualitzen l'IaaS a la configuració d'infraestructura prevista.
Beneficis IaC
IaC ajuda les organitzacions a gestionar les seves demandes d'infraestructura de TI de diverses maneres mitjançant procediments automatitzats. Alguns dels avantatges d'instal·lar IaC són els següents:
- Coherència: IaC pot augmentar la consistència i reduir els errors que es produeixen amb freqüència durant la configuració manual. També evita la deriva de configuració que es pot produir durant una operació manual. IaC us permet evitar modificacions de configuració ad-hoc no documentades mitjançant la codificació i la documentació dels vostres estàndards de configuració.
- Eficiència: la codificació de la vostra infraestructura crea una plantilla d'aprovisionament, facilitant la configuració, el manteniment i l'administració del sistema. Crea una infraestructura flexible, repetible i escalable. Com a resultat, DevOps pot accelerar cada etapa del desenvolupament del programari, donant lloc a que es publiquin més aplicacions diàriament.
- Cost reduït: IaC permet gestionar les màquines virtuals mitjançant programació, eliminant la necessitat de configurar i actualitzar manualment el maquinari. Utilitzant el mateix codi, un operador pot instal·lar i gestionar una màquina o 1000 unitats. Com a resultat, es necessiten menys empleats i ja no calen equips nous, la qual cosa suposa un estalvi de costos considerable.
- Velocitat: IaC redueix el temps que triguen els desenvolupadors a subministrar la seva infraestructura convertint-la en un script senzill. Com a resultat, la infraestructura ja no retarda el desplegament d'aplicacions i el nou programari es pot lliurar considerablement més ràpidament.
- Reduir el risc: tal com ho fomenta IaC control de versions, es poden rastrejar els vostres fitxers de configuració, com qualsevol altre fitxer de codi font del programari. Com a conseqüència, el risc es redueix.
Quin problema resol IaC?
Infrastructure as Code es va crear per abordar el problema de la deriva de l'entorn de la canalització d'alliberament. Sense IaC, els equips són els responsables de mantenir la configuració de cada entorn de desplegament. Cada entorn evoluciona cap a un floc de neu, un arranjament únic que no es pot replicar automàticament.
Durant els desplegaments, la inconsistència entre els entorns causa problemes. Els flocs de neu necessiten operacions manuals difícils de gestionar i que contribueixen a cometre errors en l'administració i el manteniment de la infraestructura.
Infraestructura com a codi s'adhereix a la idea d'idempotència.
Idempotència es refereix al fet que una ordre de desplegament sempre configura l'entorn de destinació de la mateixa manera, independentment de l'estat inicial de l'entorn. La idempotència s'aconsegueix establint automàticament un objectiu existent o descartant l'objectiu existent i començant de nou.
Com a resultat, amb IaC, els equips modifiquen la descripció de l'entorn i la versió del model de configuració, que sovint s'escriu en formats de codi ben documentats com JSON. El model s'executa en el pipeline de llançament per configurar entorns de destinació. L'equip edita la font, no l'objectiu, si han de fer canvis.
Com importa IaC a DevOps?
La implementació de metodologies de DevOps i d'integració contínua/entrega contínua (CI/CD) requereix l'ús d'IaC. Alleuja els desenvolupadors de la majoria de les responsabilitats de subministrament, permetent-los només executar un script per posar en funcionament la seva infraestructura.
Com a resultat, els desplegaments d'aplicacions no s'aturen mentre es construeix la infraestructura i els administradors del sistema no es veuen carregats de tasques manuals que requereixen temps. Des de la integració i les proves fins al lliurament i el desplegament, CI/CD es basa en una automatització constant i un seguiment continu durant tot el cicle de vida de l'aplicació. Es requereix un entorn constant perquè l'automatització funcioni.
Quan l'equip de desenvolupament ofereix aplicacions o configura entorns d'una manera i l'equip d'operacions instal·la i configura l'entorn d'una manera diferent, no és possible automatitzar els desplegaments d'aplicacions.
Una metodologia DevOps alinea els equips de desenvolupament i operacions, donant lloc a menys errors, desplegaments manuals i inconsistències. Com que tant els equips de desenvolupament com d'operacions poden utilitzar la mateixa descripció del desplegament de l'aplicació, IaC us ajuda a sincronitzar el desenvolupament i les operacions, permetent un enfocament DevOps.
Tots els entorns, inclòs el vostre entorn de producció, haurien de seguir el mateix mètode de desplegament. Cada vegada que s'utilitza IaC, es crea un entorn idèntic.
Conclusió
DevOps depèn en gran mesura de la infraestructura com a codi. Infraestructura com a codi és el següent pas natural per preparar les vostres operacions per al futur en un món on les tecnologies disruptives transformen contínuament el sector informàtic.
Et permet aprofitar tot el potencial de cloud computing, redueix els errors associats a la gestió manual de la infraestructura informàtica i millora la velocitat amb què es desenvolupa el programari. Tot això s'aconsegueix alhora que es redueixen les despeses d'explotació.
Deixa un comentari