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:43] ososre_nre [2024/10/17 21:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
 Given your background, combining the responsibilities and skills from both job descriptions to create comprehensive projects in your homelab would be an excellent approach. This will allow you to build on your existing projects while aligning them closely with the expectations for both Site Reliability Engineer (SRE) and Network Reliability Engineer (NRE) roles. Here are some project ideas that integrate the key aspects of both roles, along with expansions on your existing projects documented in your personal wiki: Given your background, combining the responsibilities and skills from both job descriptions to create comprehensive projects in your homelab would be an excellent approach. This will allow you to build on your existing projects while aligning them closely with the expectations for both Site Reliability Engineer (SRE) and Network Reliability Engineer (NRE) roles. Here are some project ideas that integrate the key aspects of both roles, along with expansions on your existing projects documented in your personal wiki:
  
-==== 1. **Enhanced CI/CD Pipeline with Network Reliability** ====+ 
 +---- 
 + 
 +==== Enhanced CI/CD Pipeline with Network Reliability ====
  
 === Project: Comprehensive CI/CD Pipeline with Integrated Network Monitoring and Automation === === Project: Comprehensive CI/CD Pipeline with Integrated Network Monitoring and Automation ===
Line 15: Line 18:
 **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.
  
-==== 2. **Distributed Ceph Storage Cluster with High Availability and Performance Tuning** ====+=== 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. 
 + 
 + 
 +---- 
 + 
 +==== Distributed Ceph Storage Cluster with High Availability and Performance Tuning ====
  
 === Project: Highly Available Ceph Storage Cluster with Performance Monitoring === === Project: Highly Available Ceph Storage Cluster with Performance Monitoring ===
Line 29: Line 135:
 **Learning Outcomes**: Develop skills in distributed storage, performance tuning, automation, and open-source collaboration. **Learning Outcomes**: Develop skills in distributed storage, performance tuning, automation, and open-source collaboration.
  
-==== 3. **Automated Microservices Deployment with Advanced Networking** ====+---- 
 + 
 +==== Automated Microservices Deployment with Advanced Networking ====
  
 === Project: Deploy and Manage Microservices with Advanced Networking Capabilities === === Project: Deploy and Manage Microservices with Advanced Networking Capabilities ===
Line 43: Line 151:
 **Learning Outcomes**: Deepen your understanding of microservices, advanced networking, CI/CD, and observability. **Learning Outcomes**: Deepen your understanding of microservices, advanced networking, CI/CD, and observability.
  
-==== 4. **Network Performance and Reliability Testing Lab** ====+---- 
 + 
 +==== Network Performance and Reliability Testing Lab ====
  
 === Project: Build a Network Performance and Reliability Testing Environment === === Project: Build a Network Performance and Reliability Testing Environment ===
Line 57: Line 167:
 **Learning Outcomes**: Enhance your skills in network troubleshooting, performance testing, and automation. **Learning Outcomes**: Enhance your skills in network troubleshooting, performance testing, and automation.
  
-==== 5. **Contribute to Open-Source Networking Projects** ====+---- 
 + 
 +==== Contribute to Open-Source Networking Projects ====
  
 === Project: Engage with Open-Source Networking Software and Communities === === Project: Engage with Open-Source Networking Software and Communities ===
Line 69: Line 181:
  
 **Learning Outcomes**: Experience with open-source software development, community engagement, and collaborative coding. **Learning Outcomes**: Experience with open-source software development, community engagement, and collaborative coding.
 +
 +----
  
 ==== Combining Projects into a Comprehensive Learning Path ==== ==== Combining Projects into a Comprehensive Learning Path ====
sre_nre.1716176596.txt.gz · Last modified: 2024/10/17 21:42 (external edit)