El que tot enginyer ha de saber el 2022

En un món cada cop més basat en núvol i descentralitzat, el 77% de les empreses estan utilitzant o planeja utilitzar DevOps. Al mateix temps, el 64% dels líders de diverses funcions de TI estan lluitant per trobar professionals de DevOps qualificats.

Per tant, a mesura que la lluita per un grup de talent limitat continua, és hora que els desenvolupadors s’ocupin; han d’aprendre DevOps com a part del desenvolupament d’aplicacions des del principi. Una empresa i els seus usuaris finals poden tolerar un error o una implementació deficient a nivell d’aplicació. I encara que els desenvolupadors normalment poden aprendre a la feina, amb DevOps, això és impossible: un subòptim i propens a la vulnerabilitat. infraestructura donar suport a un producte o servei pot danyar greument un negoci.

A més, els desenvolupadors que volen perseguir DevOps han de veure les eines en combinacions més que elements individuals. Per exemple, suposem que voleu crear una aplicació en llenguatge Java al sistema operatiu de codi obert Linux i desplegar-la a Kubernetes per automatitzar el desplegament. El conjunt d’eines que s’utilitza aquí és molt diferent d’un desenvolupador que vol crear i desplegar una aplicació en una màquina Linux individual.

Aquestes són només algunes de les raons per les quals DevOps té una gran demanda. Però aprofundim i mirem com els enginyers poden millorar les seves habilitats per omplir el buit de talent. (Llegiu també: Els millors llocs del món per treballar en tecnologia.)

8 habilitats de DevOps que tot enginyer necessita

Els executius de TI i els seus desenvolupadors poden preguntar-se en què difereix DevOps del seu dia a dia, així que això és el que han de tenir en compte i les habilitats que haurien de mirar d’enfortir aquest any:

1. Habilitats d’infraestructura al núvol

Les operacions al núvol i DevOps van de la mà; l’eficiència d’un depèn de l’altre. La metodologia DevOps és vital per impulsar la producció, però el núvol proporciona la plataforma per provar, desplegar i llançar codi.

Els desenvolupadors amb coneixements sobre plataformes en núvol, com AWS o Azure, augmentarien la capacitat d’una organització per oferir aplicacions i serveis a gran velocitat, configurar tallafocs i administrar la infraestructura.

2. Gestió del codi font

Emmagatzemar els resultats del treball i compartir-los amb els companys és essencial per a la cultura DevOps. La gestió del codi font (SCM) és un conjunt d’eines d’automatització que fan un seguiment de les revisions fetes a un programa per garantir que tots els membres de l’equip estiguin al corrent dels canvis al codi font i als fitxers relacionats. Els desenvolupadors s’han d’embrutar les mans amb Git tan aviat com sigui possible, provant GitHub i GitLab.

3. Orquestració i gestió de contenidors

Els desenvolupadors necessiten comprendre els conceptes de virtualització i contenidorització per avaluar el risc.

La virtualització permet als desenvolupadors executar diversos sistemes en el maquinari d’un sol servidor. La contenerització és més flexible, permetent el desplegament de múltiples aplicacions a qualsevol lloc: en un servidor local o màquina virtual al núvol, entre altres entorns. Per a l’orquestració de contenidors d’aplicacions més grans, Kubernetes és una solució popular de codi obert i immediata, i Docker Swarm funciona bé per a aplicacions més petites.

4. Codificació i scripting

Python, Ruby i Go es troben entre els llenguatges de script DevOps més populars. Els desenvolupadors han d’aprendre almenys un d’aquests per a la creació de seqüències d’ordres d’automatització. A més, Bash s’utilitza per a Linux i Shell per a Windows.

En un món en núvol cada vegada més basat en Linux, Bash és imprescindible. Els professionals de DevOps hauran d’escriure programes en diferents idiomes i gestionar codi mitjançant GitHub, per exemple. Dominar cada idioma significa un major control sobre com DevOps permet l’eficiència. (Llegiu també: Els 5 llenguatges de programació que van construir Internet.)

5. CI/CD i Automatització

Un conjunt d’habilitats d’automatització de DevOps està estretament relacionat amb la capacitat de codificació.

Jenkins, per exemple, és una eina de programari d’automatització d’integració contínua i lliurament continu (CI/CD) de codi obert escrita en Java. S’utilitza per implementar fluxos de treball CI/CD (anomenats “pipelines”), empaquetar aplicacions, executar exploracions de vulnerabilitats i crear imatges de Docker. Un altre motiu per repassar els vostres llenguatges de codificació.

6. Observabilitat i Seguiment

Les aplicacions no es poden executar indefinidament; tindran problemes. De fet, són com barres de pa: estan obligats a florir bastant ràpidament. Un desenvolupador és responsable de supervisar el “motlle” (salut del sistema, resiliència i fiabilitat) i fer iteracions.

Les eines de monitorització com Prometheus i Nagios es poden configurar per enviar alertes quan hi hagi un problema. Per visualitzar les dades emmagatzemades en aquest tipus d’eines, utilitzeu Grafana o una de les seves alternatives. (Llegiu també: Com triar l’eina de seguiment d’aplicacions adequada.)

7. Conceptes bàsics de ciberseguretat

Els desenvolupadors haurien de saber instal·lar tallafocs, servidors intermediaris, equilibradors de càrrega i gestionar ports.

8. Planificació, Comunicació i Col·laboració

Un desenvolupador que es distingeixi de la resta ha de tenir habilitats “soft”, estar organitzat i orientat al negoci, i tenir un alt nivell de compromís per trencar les sitges entre els equips de desenvolupament i d’operacions.

En general, els desenvolupadors han de començar a comunicar-se amb les parts interessades del negoci, els companys i altres departaments en termes tècnics i comercials, mentre veuen la tecnologia com una eina per aconseguir resultats empresarials.

Tradicionalment, la definició de DevOps era qualsevol cosa que feia més eficient el procés de desenvolupament. Fa cinc anys, molts directors de tecnologia (CTO) pensaven que només n’hi havia prou amb posar professionals de desenvolupament i operacions a la mateixa sala.

Ara, DevOps ha crescut i s’ha complicat: la icona no oficial és un símbol d’infinit, cosa que demostra que és un procés infinit i continu. No és com acabar una escultura o un assaig. Les integracions necessiten un manteniment constant i una avaluació coherent del cicle de vida del desenvolupament del producte és vital.

DevOps també es deixa a la discreció i el nivell de coneixement de desenvolupadors o equips informàtics concrets per implementar-los com creguin convenient. Tenen les seves pròpies preferències, polítiques i pràctiques d’instrumentació, que invariablement condueixen a inconsistències, sistemes fracturats, deute tècnic enorme, duplicació de llicències de programari i rotació de desenvolupadors. (Llegiu també: Com afecta el treball a distància DevOps i les tendències de desenvolupament.)

Aquest tipus de caiguda sovint passa quan els desenvolupadors i els enginyers miren DevOps només com a pipeline CI/CD. Tot i que això permet el lliurament de codi ràpid i fiable amb una col·lecció d’eines, oblida per què va néixer DevOps.

DevOps no és només un conjunt d’eines: és un model orientat als resultats per oferir ràpidament codi d’alta qualitat i impacte empresarial. Requereix filosofies culturals reglamentades, pràctiques, codificació/scripting i tot un cicle de vida de desenvolupament de programari (SDLC) separat del desenvolupament de funcions empresarials.

Reptes de DevOps

La pressa boja per adoptar DevOps es deu als obstacles i reptes que actualment s’enfronten els desenvolupadors, com ara:

mala comunicació

Els equips de desenvolupament i operacions parlen diferents idiomes: els desenvolupadors volen produir ràpidament codi per a noves funcions per impulsar la producció, mentre que als equips d’operacions els agrada mantenir l’estabilitat, assegurar-se que els projectes funcionin sense problemes i són més reticents a fer modificacions.

DevOps és un mecanisme que garanteix que aquest error de comunicació s’elimini una mica, superant la bretxa entre la cursa a la producció i les aprovacions lentes amb plans de desplegament integrats.

Manca de formació en ciberseguretat

Els desenvolupadors sovint no tenen formació per crear sistemes segurs. Els equips d’operacions solen centrar-se més en la seguretat i, en algunes organitzacions, també hi ha un equip de seguretat dedicat.

Si els desenvolupadors introdueixen una aplicació en producció i l’equip d’operacions l’aprova, però la seguretat no, el cost de corregir qualsevol vulnerabilitat és exorbitant. Això va amplificar la necessitat de “girar a l’esquerra”.

No és només un pany de seguretat colpejat al final; la seguretat s’ha d’incorporar a cada capa de l’ecosistema del producte. (Llegiu també: Què és DevSecOps?)

Falta de Formació en Regulació i Compliment

Les aplicacions no només han de ser segures i eficients, sinó que també s’han de crear d’una manera prescrita tal com ho exigeixen els organismes reguladors. Les organitzacions que han hagut d’injectar HIPAA, HITRUST o SOC2 després del fet poden relacionar-se de manera dolorosa amb la necessitat de crear aplicacions a la primera.

Cost del desenvolupament manual

Les tasques manuals fan que el desenvolupament sigui car i propens a la fricció. Hi ha molta feina manual, des del manteniment d’un servidor, fins a proves d’aplicacions i còpies de seguretat.

La idea és que el codi estigui lliure d’errors de manera nativa, però no és així. Quan les proves (funcions, regressió, càrrega, estrès, seguretat i rendiment) es fan manualment, només és una enginyeria ineficaç.

Conclusió

DevOps no seria complet amb simplement desplegar eines; el secret rau en les combinacions de tecnologia. Aprendre com interactuen entre ells és essencial per a l’èxit dels desenvolupadors i el manteniment a llarg termini. Els executius de TI que necessiten habilitats de DevOps ràpidament han d’avaluar quins coneixements ja tenen els seus desenvolupadors de la llista anterior i on s’ha de centrar el seu equip.

Però, en última instància, DevOps no té un llibre de jugades estàndard ni una guia d’implementació pas a pas que garanteixi els resultats. És un espai altament especialitzat amb un gran nombre de subespecialitats. Per tant, mai és feina d’una sola persona i requereix una orquestració sòlida entre diversos especialistes. Realment, es tracta d’aprenentatge i millora contínua, igual que es tracta de CI/CD. (Llegiu també: Els gestors de DevOps expliquen què fan.)

Leave a Comment

Your email address will not be published. Required fields are marked *