Objectius de l'Exercici
En aquest exercici, aprendràs a configurar un sistema de monitoratge i retroalimentació per a un pipeline de CI/CD. Això inclou:
- Configurar eines de monitoratge.
- Recollir i analitzar dades de rendiment.
- Configurar alertes i notificacions.
- Implementar retroalimentació contínua per millorar el pipeline.
Requisits Prèvis
Abans de començar aquest exercici, assegura't de tenir:
- Un pipeline de CI/CD configurat (pots utilitzar el pipeline bàsic de l'Exercici 1).
- Accés a una eina de monitoratge com Prometheus, Grafana, o una alternativa similar.
- Coneixements bàsics sobre la configuració de servidors i serveis.
Passos de l'Exercici
- Configuració de l'Eina de Monitoratge
Pas 1.1: Instal·lació de Prometheus
Prometheus és una eina de monitoratge i alerta de codi obert. Per instal·lar-la, segueix aquests passos:
-
Descarrega i descomprimeix Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz tar xvfz prometheus-2.31.1.linux-amd64.tar.gz cd prometheus-2.31.1.linux-amd64
-
Executa Prometheus:
./prometheus --config.file=prometheus.yml
-
Accedeix a la interfície web de Prometheus a
http://localhost:9090
.
Pas 1.2: Configuració de Grafana
Grafana és una eina de visualització de dades que es pot integrar amb Prometheus.
-
Descarrega i instal·la Grafana:
sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana_8.2.5_amd64.deb sudo dpkg -i grafana_8.2.5_amd64.deb
-
Inicia Grafana:
sudo systemctl start grafana-server sudo systemctl enable grafana-server
-
Accedeix a la interfície web de Grafana a
http://localhost:3000
i configura Prometheus com a font de dades.
- Recollida i Anàlisi de Dades de Rendiment
Pas 2.1: Configuració de Metrics en el Pipeline
Afegeix un endpoint de metrics al teu pipeline per recollir dades. Per exemple, si utilitzes un servidor Node.js, pots utilitzar el paquet prom-client
:
-
Instal·la
prom-client
:npm install prom-client
-
Afegeix el següent codi al teu servidor:
const client = require('prom-client'); const express = require('express'); const app = express(); const collectDefaultMetrics = client.collectDefaultMetrics; collectDefaultMetrics({ timeout: 5000 }); app.get('/metrics', (req, res) => { res.set('Content-Type', client.register.contentType); res.end(client.register.metrics()); }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
-
Configura Prometheus per recollir les metrics:
scrape_configs: - job_name: 'node_app' static_configs: - targets: ['localhost:3000']
Pas 2.2: Creació de Dashboards en Grafana
- A la interfície de Grafana, crea un nou dashboard.
- Afegeix panells per visualitzar les dades recollides per Prometheus, com ara ús de CPU, memòria, temps de resposta, etc.
- Configuració d'Alertes i Notificacions
Pas 3.1: Configuració d'Alertes en Prometheus
-
Crea un fitxer
alert.rules.yml
amb les regles d'alerta:groups: - name: example rules: - alert: HighMemoryUsage expr: node_memory_Active_bytes / node_memory_MemTotal_bytes * 100 > 80 for: 5m labels: severity: warning annotations: summary: "High memory usage detected" description: "Memory usage is above 80% for more than 5 minutes."
-
Afegeix el fitxer de regles a la configuració de Prometheus:
rule_files: - "alert.rules.yml"
Pas 3.2: Configuració de Notificacions en Grafana
- A la interfície de Grafana, crea un canal de notificació (per exemple, correu electrònic, Slack, etc.).
- Configura les alertes per enviar notificacions a través del canal configurat.
- Implementació de Retroalimentació Contínua
Pas 4.1: Anàlisi de Dades i Millora del Pipeline
- Revisa regularment les dades recollides i les alertes generades.
- Identifica colls d'ampolla i àrees de millora en el pipeline.
- Implementa canvis per optimitzar el rendiment i la fiabilitat del pipeline.
Solució Proposada
Configuració de Prometheus i Grafana
- Instal·lació i configuració de Prometheus per recollir metrics.
- Integració de Grafana per visualitzar les dades recollides.
Recollida de Metrics
- Implementació d'un endpoint de metrics en el servidor.
- Configuració de Prometheus per recollir les metrics del servidor.
Creació de Dashboards
- Creació de dashboards en Grafana per visualitzar l'ús de recursos i altres metrics importants.
Configuració d'Alertes
- Definició de regles d'alerta en Prometheus.
- Configuració de notificacions en Grafana per rebre alertes.
Retroalimentació Contínua
- Anàlisi regular de les dades recollides.
- Implementació de millores basades en l'anàlisi de dades i alertes.
Conclusió
En aquest exercici, has après a configurar un sistema de monitoratge i retroalimentació per a un pipeline de CI/CD. Aquest sistema t'ajudarà a identificar i resoldre problemes de rendiment, així com a millorar contínuament el teu pipeline. Amb aquestes habilitats, podràs assegurar-te que el teu pipeline de CI/CD sigui eficient, fiable i escalable.
Curs de CI/CD: Integració i Desplegament Continu
Mòdul 1: Introducció a CI/CD
Mòdul 2: Integració Contínua (CI)
- Introducció a la Integració Contínua
- Configuració d'un Entorn de CI
- Automatització de la Construcció
- Proves Automatitzades
- Integració amb Control de Versions
Mòdul 3: Desplegament Continu (CD)
- Introducció al Desplegament Continu
- Automatització del Desplegament
- Estratègies de Desplegament
- Monitoratge i Retroalimentació
Mòdul 4: Pràctiques Avançades de CI/CD
Mòdul 5: Implementació de CI/CD en Projectes Reals
Mòdul 6: Eines i Tecnologies
Mòdul 7: Exercicis Pràctics
- Exercici 1: Configuració d'un Pipeline Bàsic
- Exercici 2: Integració de Proves Automatitzades
- Exercici 3: Desplegament en un Entorn de Producció
- Exercici 4: Monitoratge i Retroalimentació