User Tools

Site Tools


sre_nre

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sre_nre [2024/05/20 03:46] ososre_nre [2024/10/17 21:42] (current) – external edit 127.0.0.1
Line 17: Line 17:
  
 **Learning Outcomes**: Gain experience in CI/CD tools, network monitoring, automation, and defining performance metrics. **Learning Outcomes**: Gain experience in CI/CD tools, network monitoring, automation, and defining performance metrics.
 +
 +=== Step-by-Step Implementation ===
 +
 +== Step 1: Configuración Inicial ==
 +
 +  - Configura tu entorno local:
 +    - Asegúrate de tener `git` y `composer` instalados en tu máquina.
 +    - Clona el repositorio forkeado de PicoCMS:
 +      <code>git clone https://github.com/<YOUR_USERNAME>/<YOUR_REPOSITORY> pico
 +      cd pico</code>
 +    - Instala las dependencias:
 +      <code>curl -sSL https://getcomposer.org/installer | php
 +      php composer.phar install</code>
 +
 +  - Configura tu servidor web:
 +    - Accede a tu servidor web y navega al directorio de instalación:
 +      <code>cd /var/www/html</code>
 +    - Clona tu repositorio en el servidor:
 +      <code>git clone https://github.com/<YOUR_USERNAME>/<YOUR_REPOSITORY> pico
 +      cd pico
 +      php composer.phar install</code>
 +
 +== Step 2: Configuración de GitHub Actions para CI/CD ==
 +
 +  - Crea un archivo de workflow en GitHub Actions:
 +    - En tu repositorio de GitHub, crea el directorio `.github/workflows` si no existe.
 +    - Dentro de este directorio, crea un archivo `ci-cd.yml` (o como prefieras llamarlo).
 +
 +  - Define el workflow de GitHub Actions:
 +    - Abre el archivo `ci-cd.yml` y define tu workflow. Aquí tienes un ejemplo básico:
 +      <code>
 +      name: CI/CD Pipeline
 +
 +      on:
 +        push:
 +          branches:
 +            - main
 +        pull_request:
 +          branches:
 +            - main
 +
 +      jobs:
 +        build:
 +          runs-on: ubuntu-latest
 +
 +          steps:
 +            - name: Checkout repository
 +              uses: actions/checkout@v2
 +
 +            - name: Set up PHP
 +              uses: shivammathur/setup-php@v2
 +              with:
 +                php-version: '7.4' # Cambia a la versión de PHP que uses
 +
 +            - name: Install Composer dependencies
 +              run: composer install
 +
 +            - name: Deploy to server
 +              env:
 +                DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
 +              run: |
 +                ssh -o StrictHostKeyChecking=no -i $DEPLOY_KEY user@your_server "cd /var/www/html/pico && git pull && php composer.phar update"</code>
 +
 +== Step 3: Configuración de Deploy Key ==
 +
 +  - Genera una llave SSH para despliegue:
 +    - En tu máquina local, genera una nueva llave SSH sin passphrase: <code>ssh-keygen -t rsa -b 4096 -C "deploy-key" -f deploy_key</code>
 +    - Copia la llave pública al servidor: <code>ssh-copy-id -i deploy_key.pub user@your_server</code>
 +  - Configura la llave privada como secreto en GitHub:
 +    - Ve a la configuración de tu repositorio en GitHub.
 +    - Navega a "Secrets" y añade un nuevo secreto llamado `DEPLOY_KEY`, pegando el contenido de `deploy_key` (la llave privada).
 +
 +== Step 4: Pruebas y Ajustes ==
 +
 +  * Realiza un commit y push para probar el workflow:
 +    - Haz cambios en tu repositorio local y sube los cambios:
 +<code>
 +git add .
 +git commit -m "Setup CI/CD pipeline"
 +git push origin main
 +</code>
 +
 +  * Monitorea la ejecución en GitHub Actions:
 +    - Ve a la pestaña "Actions" en tu repositorio de GitHub y revisa el progreso del workflow.
 +    - Asegúrate de que el pipeline se ejecute correctamente y despliegue los cambios al servidor.
 +
 +== Step 5: Integración de Herramientas de Monitoreo y Automatización ==
 +
 +  - Configura Prometheus y Grafana:
 +    - Instala y configura Prometheus y Grafana en tu servidor para monitorizar métricas.
 +    - Añade los exportadores necesarios para monitorizar tu aplicación web y red.
 +  - Automatiza configuraciones de red con Ansible:
 +    - Crea playbooks de Ansible para automatizar tareas de configuración y despliegue de la red.
 +    - Integra estos playbooks en tu pipeline de GitHub Actions.
 +
 +== Step 6: Definición de SLOs ==
 +
 +  - Define SLOs para tu aplicación:
 +    - Establece objetivos de nivel de servicio para la latencia, pérdida de paquetes y throughput.
 +    - Configura alertas en Prometheus y Grafana basadas en estos SLOs.
 +
  
 ---- ----
sre_nre.1716176774.txt.gz · Last modified: 2024/10/17 21:42 (external edit)