Servicios DevOps
Infraestructura como código, CI/CD automatizado y despliegue en la nube.
Simulador de Terminal
Prueba comandos de DevOps simulados:
Dockerfile de Ejemplo
Multi-stage build optimizado para producción:
# Stage 1: Build FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . RUN npm run build # Stage 2: Production FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
docker-compose.yml
Configuración de servicios con red y volúmenes:
version: '3.8'
services:
web:
build: .
ports:
- "80:80"
depends_on:
- db
environment:
- NODE_ENV=production
- DB_HOST=db
restart: unless-stopped
networks:
- app-network
db:
image: postgres:14-alpine
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=myapp
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=secret
networks:
- app-network
volumes:
postgres_data:
networks:
app-network:
driver: bridge
GitHub Actions CI/CD
Pipeline automatizado para test, build y deploy:
name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- run: npm ci
- run: npm test
build-and-deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t myapp:${{ github.sha }} .
- name: Deploy to server
run: echo "Deploying to production..."
Simulación de Deploy
Observa un despliegue simulado en tiempo real:
Estado del Deploy
Pendiente
Esperando inicio del deploy...
Stack DevOps
Docker
Kubernetes
GitHub Actions
GitLab CI
Nginx
Linux
AWS
Azure
Terraform
Ansible