19 maig, 2020

Introducció a l’automatització i desplegament continu 

Les empreses de desenvolupament de software busquen la manera d’entregar els seus productes, o millores d’aquests, d’una forma àgil i fiable als seus clients. Per aconseguir aquest objectiu necessiten automatitzar aquest procés de lliurament o desplegament, és a dir, incloure els mecanismes i eines necessàries per realitzar el desplegament sense la intervenció humana. 

Implementar eines d’automatització dins del procés de desenvolupament de software permet agilitar el lliurament d’un producte de software en reduir el temps invertit en el desenvolupament d’aquest. La integració contínua, el lliurament continu i el desplegament continu proporcionen un model informàtic automatitzat que permet distribuir les aplicacions de manera més ràpida, eficient i segura. 

Avantatges de l’automatització de sistemes: 

L’automatització en el desenvolupament de programari proporciona una sèrie de beneficis entre els quals podem destacar les següents: 

  • Redueix el temps necessari per completar una tasca. Amb l’automatització s’aconsegueix alliberar l’equip de desenvolupament de realitzar tasques repetitives que consumeixen molt de temps. L’automatització retalla el time to market d’una aplicació. 
  • Un cop automatitzat un procés, es pot reutilitzar el nombre de vegades que sigui necessari. 
  • L’automatització requereix comprendre bé els processos de manera que s’aconsegueixen processos millorats i més ben definits que optimitzen l’execució i amb això el valor del servei. 
  • Ofereix major consistència en el desenvolupament, ja que analitza en profunditat els riscos, reduint la incertesa i el marge d’error per fallades en l’execució. La reducció d’aquest nombre d’errors i incidències fa que el desenvolupament sigui més fiable. 
  • Ofereix una visibilitat i control de tots els fluxos de treball. 
  • Permet ser proactius, anticipants i evitant interrupcions (per exemple, alliberar espai en un disc abans que s’esgoti).
  • Tots aquests avantatges permeten el desplegament més ràpid i amb un servei de major qualitat, augmentant la satisfacció del client. 
  • L’automatització de processos redueix els costos operatius. 

En quins casos o tipus de projecte és especialment interessant: 

L’automatització i el desplegament continu és interessant en tots els àmbits de desenvolupament de software. Alguns projectes on és especialment interessant l’automatització són els següents: 

Desplegament d’aplicacions 

L’automatització és especialment interessant en aquells projectes on es despleguen aplicacions (per exemple, un softare SaaS, com un CRM en línia, amb gran quantitat de llocs de treball que fan ús d’ell mateix). Aquest procés de desplegament pot ser un factor crític per assolir els objectius d’un negoci, de manera que el desplegament automàtic i satisfactori dels diversos components de les aplicacions actuals (molts components amb una dinàmica de canvi molt ràpida) és fonamental per evitar errors i augmentar el temps d’activitat

El desplegament d’aplicacions web o d’apps per a mòbils són dos exemples on el desplegament d’aplicacions automatitzat és interessant. 

Administració de sistemes

L’automatització de sistemes, aplicada en qualsevol element (des de l’automatització de la xarxa, fins a la infraestructura o la gestió de configuració) aconsegueix reduir els errors, alliberar temps que pot ser invertit en un altre tipus de tasques, millorar la col·laboració i en definitiva, augmentar la productivitat dels equips. 

Automatització i Infraestructura com a codi 

IAC o infraestructura com codi tracta als diferents components d’una infraestructura (servidors, bases de dades, xarxes i altres elements) com si fos programari. L’automatització en la replicació d’infraestructura permet prendre el disseny d’una IAC i replicar exactament en un altre entorn, modificant alguns paràmetres durant el seu desplegament; molt útil a l’hora de crear entorns de Disaster Recovery, per exemple. 

Com aquestes noves necessitats han desembocat en la filosofia DevOps

Les expectatives dels clients en relació amb el rendiment, fiabilitat i qualitat de servei han augmentat a causa de les noves tecnologies (internet, dispositius mòbils, treball en el núvol, etc.). Per això, les empreses es veuen obligades a respondre de forma ràpida oferint millors productes, solucionant incidències i brindat una millor assistència a client. Devops sorgeix com una nova filosofia per donar solució a aquestes noves exigències, agilitzant els fluxos de treball i millorant els processos dins del cicle de vida de desenvolupament de software. 

DevOps és una metodologia de treball per a la creació de software que es basa en la integració i col·laboració entre desenvolupadors de software i administradors de sistemes, i permet desenvolupar software de major qualitat de forma més ràpida. Aquesta filosofia de treball es basa en treball en equip, creativitat i automatització. La funció d’automatització és clau per DevOps, ja que facilita que els equips puguin centrar-se a proporcionar valor al lliurament de software, aconseguint una entrega primarenca i contínua de software amb valor. 

El desplegament continu gràcies a l’automatització 

 L’automatització aconsegueix que les empreses de desenvolupament de software efectuïn una entrega contínua de les seves aplicacions. Quan parlem de DevOps i entrega contínua cal tenir en compte els següents conceptes: 

CI – Integració contínua (Cointinuous integration)

Es tracta d’un dels pilars on se sustenta actualment el desenvolupament de software i consisteix en una pràctica d’enginyeria de software per la qual els desenvolupadors treballen en un repositori central que els permet realitzar proves, descobrir fallades i solucionar errors dels canvis realitzats en el codi d’un projecte. 

La integració contínua utilitza eines d’automatització per a construir, testejar i definir el cicle de vida del software. 

CD – Desplegament continu (Continuous delivery)

El desplegament continu consisteix a empaquetar i implementar el que construeix i testejat en la integració contínua, permetent una entrega de software automatitzada (sense intervenció humana) amb un menor cost, major rapidesa i gran fiabilitat. 

Hem vist què és l’automatització i quina és la seva importància perquè les empreses de desenvolupament de software realitzin un desplegament continu de les seves aplicacions. 

Els clients demanen que les empreses de desenvolupament de software els proporcionin aplicacions de major qualitat, de forma àgil, és a dir, en un termini menor de temps i de forma eficient. En aquest entorn sorgeix la filosofia DevOps per la qual el desenvolupament de software s’aborda des d’un sistema col·laboratiu on els diferents equips participen i col·laboren en les diferents tasques de desenvolupament, i on l’automatització de processos és la clau per a reduir els temps de desenvolupament i permetre un enfocament en aquelles tasques que aportin valor. 

Prenem un cafè?

Quedem per xerrar i t'ajudarem en el que necessitis.
Contáctanos