Què és DevOps?
DevOps és una combinació de pràctiques, eines i una filosofia cultural que té com a objectiu automatitzar i integrar els processos entre el desenvolupament de programari i els equips d'operacions. L'objectiu principal de DevOps és millorar la capacitat d'una organització per lliurar aplicacions i serveis a gran velocitat, evolucionant i millorant productes a un ritme més ràpid que les organitzacions que utilitzen processos tradicionals de desenvolupament de programari i gestió d'infraestructura.
Conceptes Clau de DevOps
-
Col·laboració i Comunicació:
- Fomentar la col·laboració entre els equips de desenvolupament i operacions.
- Utilitzar eines de comunicació i col·laboració per millorar la transparència i la coordinació.
-
Automatització:
- Automatitzar les tasques repetitives i els processos manuals per augmentar l'eficiència.
- Utilitzar eines d'automatització per a la integració contínua (CI) i el lliurament continu (CD).
-
Monitorització i Registre:
- Implementar sistemes de monitorització per detectar problemes de manera proactiva.
- Utilitzar eines de registre per analitzar i resoldre problemes ràpidament.
-
Infraestructura com a Codi (IaC):
- Gestionar i provisionar la infraestructura mitjançant codi i tècniques de desenvolupament de programari.
- Utilitzar eines com Terraform, Ansible, i AWS CloudFormation.
-
Cultura de Millora Contínua:
- Fomentar una cultura de millora contínua i aprenentatge.
- Realitzar retrospectives regulars per identificar àrees de millora.
Beneficis de DevOps
- Velocitat: Augmenta la velocitat de lliurament de programari, permetent a les organitzacions innovar més ràpidament.
- Fiabilitat: Millora la qualitat de les actualitzacions d'aplicacions i la infraestructura, assegurant que es lliurin de manera fiable.
- Escalabilitat: Permet gestionar sistemes complexos de manera eficient i escalar la infraestructura segons sigui necessari.
- Seguretat: Integra pràctiques de seguretat en el procés de desenvolupament i operacions, conegut com DevSecOps.
- Col·laboració: Millora la col·laboració entre els equips de desenvolupament i operacions, fomentant una cultura de treball en equip.
Eines Comunes en DevOps
Eina | Descripció |
---|---|
Jenkins | Servei d'integració contínua i lliurament continu. |
Docker | Plataforma per a la creació, desplegament i execució d'aplicacions en contenidors. |
Kubernetes | Sistema d'orquestració de contenidors per automatitzar el desplegament, l'escalat i la gestió d'aplicacions. |
Ansible | Eina d'automatització de configuració i gestió d'infraestructura. |
Terraform | Eina per a la infraestructura com a codi (IaC) que permet definir i proporcionar infraestructura a través de codi. |
Git | Sistema de control de versions distribuït. |
Prometheus | Sistema de monitorització i alerta. |
Grafana | Plataforma d'analítica i monitorització. |
Exemple Pràctic: Automatització d'un Desplegament amb Jenkins
Pas 1: Instal·lació de Jenkins
-
Descarregar i Instal·lar Jenkins:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
-
Iniciar el Servei de Jenkins:
sudo systemctl start jenkins sudo systemctl enable jenkins
-
Accedir a la Interfície Web de Jenkins:
- Obre un navegador web i ves a
http://localhost:8080
. - Segueix les instruccions per completar la configuració inicial.
- Obre un navegador web i ves a
Pas 2: Configuració d'un Projecte de Construcció
-
Crear un Nou Projecte:
- A la interfície de Jenkins, fes clic a "New Item".
- Dona un nom al projecte i selecciona "Freestyle project".
-
Configurar el Repositori de Git:
- A la secció "Source Code Management", selecciona "Git".
- Introdueix l'URL del repositori de Git.
-
Configurar el Build Trigger:
- A la secció "Build Triggers", selecciona "Poll SCM" i especifica la freqüència (per exemple,
H/5 * * * *
per verificar cada 5 minuts).
- A la secció "Build Triggers", selecciona "Poll SCM" i especifica la freqüència (per exemple,
-
Afegir un Pas de Construcció:
- A la secció "Build", fes clic a "Add build step" i selecciona "Execute shell".
- Introdueix el següent script per construir el projecte:
#!/bin/bash echo "Construint el projecte..." ./gradlew build
-
Guardar i Executar el Projecte:
- Fes clic a "Save" per guardar la configuració.
- Fes clic a "Build Now" per executar el projecte manualment.
Pas 3: Monitorització del Desplegament
-
Veure els Registres de Construcció:
- A la pàgina del projecte, fes clic a "Build History" i selecciona l'última construcció.
- Fes clic a "Console Output" per veure els registres de la construcció.
-
Configurar Notificacions:
- A la secció "Post-build Actions", fes clic a "Add post-build action" i selecciona "E-mail Notification".
- Configura les notificacions per correu electrònic per rebre alertes sobre l'estat de les construccions.
Exercici Pràctic
Objectiu
Configura un pipeline de CI/CD bàsic utilitzant Jenkins per automatitzar la construcció i el desplegament d'una aplicació simple.
Passos
- Instal·la Jenkins i configura un nou projecte de construcció seguint els passos descrits anteriorment.
- Configura el repositori de Git per al projecte.
- Afegeix un pas de construcció per executar les proves unitàries del projecte.
- Configura una notificació per correu electrònic per rebre alertes sobre l'estat de les construccions.
- Executa el pipeline i verifica que tot funcioni correctament.
Solució
-
Instal·lació de Jenkins:
- Segueix els passos descrits a la secció "Instal·lació de Jenkins".
-
Configuració del Repositori de Git:
- A la secció "Source Code Management", selecciona "Git" i introdueix l'URL del repositori.
-
Afegir un Pas de Construcció per a les Proves Unitàries:
- A la secció "Build", fes clic a "Add build step" i selecciona "Execute shell".
- Introdueix el següent script per executar les proves unitàries:
#!/bin/bash echo "Executant les proves unitàries..." ./gradlew test
-
Configurar Notificacions per Correu Electrònic:
- A la secció "Post-build Actions", fes clic a "Add post-build action" i selecciona "E-mail Notification".
- Introdueix l'adreça de correu electrònic per rebre les notificacions.
-
Executar el Pipeline:
- Fes clic a "Build Now" per executar el pipeline.
- Verifica els registres de construcció i assegura't que les proves unitàries s'executin correctament.
Conclusió
En aquesta secció, hem introduït els conceptes bàsics de DevOps i hem explorat com utilitzar Jenkins per automatitzar la construcció i el desplegament d'aplicacions. Hem vist com la col·laboració, l'automatització i la monitorització són elements clau per a l'èxit de DevOps. A més, hem proporcionat un exemple pràctic per configurar un pipeline de CI/CD bàsic amb Jenkins. En les properes seccions, aprofundirem en l'ús de PowerShell amb pipelines CI/CD i altres eines DevOps per millorar encara més els processos de desenvolupament i operacions.
Curs de PowerShell
Mòdul 1: Introducció a PowerShell
- Què és PowerShell?
- Instal·lació i Configuració de PowerShell
- Consola i ISE de PowerShell
- Comandes i Sintaxi Bàsiques
- Sistema d'Ajuda en PowerShell
Mòdul 2: Scripting Bàsic
- Variables i Tipus de Dades
- Operadors en PowerShell
- Sentències Condicionals
- Bucles en PowerShell
- Funcions i Scripts
Mòdul 3: Treballant amb Objectes
- Comprensió dels Objectes
- Propietats i Mètodes dels Objectes
- Pipelines i Manipulació d'Objectes
- Filtratge i Selecció d'Objectes
- Ordenació i Agrupació d'Objectes
Mòdul 4: Tècniques Avançades de Scripting
- Gestió d'Errors
- Depuració de Scripts
- Expressions Regulars
- Treballant amb Fitxers i Directoris
- Ús de Mòduls i Snap-ins
Mòdul 5: Automatització i Programació de Tasques
- Introducció a l'Automatització
- Creació de Tasques Programades
- Ús de PowerShell per a l'Administració del Sistema
- Automatització de Tasques d'Active Directory
- Automatització de Tasques de Xarxa
Mòdul 6: Remotització amb PowerShell
- Introducció a la Remotització
- Configuració de la Remotització
- Ús d'Invoke-Command
- Gestió de Sessions
- Consideracions de Seguretat
Mòdul 7: Funcions Avançades de PowerShell
- Perfils de PowerShell
- Personalització de l'Entorn de PowerShell
- Creació i Ús de Classes
- Treballant amb XML i JSON
- Ús de PowerShell amb REST APIs
Mòdul 8: PowerShell i DevOps
- Introducció a DevOps
- Ús de PowerShell amb Pipelines CI/CD
- Infraestructura com a Codi (IaC)
- Gestió de Recursos al Núvol amb PowerShell
- PowerShell i Docker