DevOps
DevOps (Un mot creuat de “desenvolupament” i "operacions") és un mètode de desenvolupament del programari que accentua la comunicació, la col·laboració (compartició d'informació i utilització del servei web), la integració, l'automatització i la mesura del nivell de cooperació entre desenvolupadors de programari i altres professionals de tecnologies de la informació.[1][2]
La metodologia DevOps reconeix la interdependència entre el desenvolupament de programari, l'assegurament de qualitat i les operacions TIC, i té com a objectiu ajudar una organització a produir ràpidament productes de programari i serveis, millorant l'eficiència del departament d'operacions.[2][3][4][5][6][7][8]
Objectius
[modifica]Els objectius específics de l'aproximació DevOps van de banda a banda del canal de distribució, incloent-hi millora en la freqüència de lliuraments, el que pot portar a menors temps en arribar al mercat, una ràtio d'errors menors en els nous lliuraments, escurçament de temps en la correcció d'errades i de recuperació en els casos de caiguda del sistema productiu en actualitzar-ne la versió. Amb la metòdica DevOps, els processos senzills esdevenen programables i dinàmics,[9] el que condueix a maximitzar la predictibilitat, l'eficiència, la seguretat i la facilitat de manteniment dels processos d'operacions. Sovint s'utilitza l'automatització per a assolir aquesta fita.
Desplegament continu
[modifica]Les empreses amb alliberaments molt freqüents poden requerir coneixement sobre DevOps o un programa de formació. Flickr va desenvolupar una aproximació DevOps per donar suport a un requisit empresarial de deu desplegaments per dia; aquest cicle de desplegament diari seria molt més alt a les organitzacions que produeixen aplicacions multifocus o multifunció.[10] Això s'anomena desplegament continu o lliurament continu i ha estat associat amb la metodologia Lean Startup.[11][12][13] Des de l'any 2009, grups de treball, associacions professionals i blogsCol·legi professional han fet divulgació sobre aquesta temàtica.[6][14][15]
DevSecOps
[modifica]DevSecOps és una extensió de la metodologia DevOps que integra les pràctiques de seguretat informàtica dins del cicle de vida del desenvolupament de programari, en comptes de tractar-les com una fase separada al final del procés. L'acrònim prové de la contracció de "desenvolupament" (development), "seguretat" (security) i "operacions" (operations).
Origen i motivació
[modifica]En els models tradicionals de desenvolupament, la seguretat era responsabilitat d'un equip separat que revisava el programari just abans del seu desplegament. Aquest enfocament, conegut col·loquialment com a seguretat com a porta (security as a gate), generava friccions en els cicles de lliurament ràpid que caracteritzen DevOps, ja que les vulnerabilitats detectades tardanament obligaven a tornar enrere en el procés de desenvolupament.
DevSecOps respon a aquesta problemàtica desplaçant les comprovacions de seguretat cap a les fases inicials del cicle de desenvolupament, un principi conegut com a shift left. L'objectiu és que els equips de desenvolupament incorporin la seguretat com una responsabilitat compartida des del primer moment, en comptes de delegar-la íntegrament a equips especialitzats.
Pràctiques principals
[modifica]Les pràctiques habituals en un entorn DevSecOps inclouen:
- Anàlisi estàtica de codi (SAST): examen automàtic del codi font per detectar vulnerabilitats abans de l'execució
- Anàlisi dinàmica (DAST): proves de seguretat sobre l'aplicació en execució
- Gestió de dependències: revisió automàtica de les biblioteques de tercers per detectar vulnerabilitats conegudes
- Integració en el pipeline de CI/CD: incorporació de les comprovacions de seguretat dins dels fluxos d'integració i desplegament continus
- Política com a codi (policy as code): d
Història del terme "DevOps"
[modifica]A la conferència Agile 2008, n'Andrew Clay Shafer i en Patrick Debois van parlar d'"Infraestructura Àgil", i van crear després a Google el grup "Agile System Administrators Group" (Administradors de Sistema Àgils).[16] El terme "DevOps" es va popularitzar a través d'una sèrie jornades anomenades "DevOps Days" que van començar el 2009 a Bèlgica.[17] Des d'aleshores, hi ha hagut conferències sobre DevOps a multitud de països arreu del món.[18]
Model visual
[modifica]
Mentre algunes metodologies de desenvolupament, com el desenvolupament de programari àgil, anima a col·laborar de forma creuada entre analistes, dissenyadors, desenvolupadors i personal d'assegurament de qualitat, no sol ser existir aquesta coordinació interdepartamental amb el personal d'operacions TIC. Com s'il·lustra al gràfic, DevOps promociona un conjunt de processos i mètodes per pensar quant a comunicació i col·laboració entre desenvolupament, QA, i operacions.[19]