Skill

Automate Application Deployment with CI/CD

DevOps deployment skill for Docker, CI/CD with GitHub Actions, AWS Lambda, SAM, Terraform, infrastructure as code, and monitoring-dockerize apps, configure

Works with dockergithubawslambdaecs

46
Spark score
out of 100
Updated 2 days ago
Version 13.1.0

Add to Favorites

Why it matters

Streamline your development lifecycle by automating application deployment from idea to production. This skill sets up robust CI/CD pipelines, containerizes your applications, and manages infrastructure as code for reliable and efficient releases.

Outcomes

What it gets done

01

Dockerize applications for consistent environments.

02

Configure CI/CD pipelines using GitHub Actions.

03

Deploy applications to AWS services like Lambda and ECS.

04

Implement infrastructure as code with Terraform.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-devops-deploy | bash

Capabilities

What this skill does

Deploy / CI

Runs build pipelines, tests, and deploys to environments.

Generate code

Writes source code or scripts from a description.

Manage secrets

Stores, rotates, and injects API keys and credentials.

Write tests

Creates unit, integration, or end-to-end test cases.

Overview

DEVOPS-DEPLOY - Da Ideia para Producao

What it does

A DevOps deployment skill that provides templates and configurations for Docker containerization, CI/CD pipelines with GitHub Actions, AWS Lambda deployments using SAM, infrastructure as code with Terraform, and monitoring setup. Includes multi-stage Dockerfiles, Docker Compose configurations, SAM templates for serverless functions, GitHub Actions workflows with testing and security stages, health check endpoints, CloudWatch alerting code, and production readiness checklists.

How it connects

Use this skill when you need to dockerize an application, set up CI/CD pipelines with GitHub Actions, deploy to AWS Lambda or ECS, configure infrastructure as code with SAM or Terraform, implement health checks and monitoring, or prepare applications for production deployment. Do not use for tasks unrelated to DevOps deployment or when simpler tools suffice.

Source README

DEVOPS-DEPLOY - Da Ideia para Producao

Overview

DevOps e deploy de aplicacoes - Docker, CI/CD com GitHub Actions, AWS Lambda, SAM, Terraform, infraestrutura como codigo e monitoramento. Ativar para: dockerizar aplicacao, configurar pipeline CI/CD, deploy na AWS, Lambda, ECS, configurar GitHub Actions, Terraform, rollback, blue-green deploy, health checks, alertas.

When to Use This Skill

  • When you need specialized assistance with this domain

Do Not Use This Skill When

  • The task is unrelated to devops deploy
  • A simpler, more specific tool can handle the request
  • The user needs general-purpose assistance without domain expertise

How It Works

"Move fast and don't break things." - Engenharia de elite nao e lenta.
E rapida e confiavel ao mesmo tempo.


Dockerfile Otimizado (Python)

FROM python:3.11-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt

FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
ENV PYTHONUNBUFFERED=1
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:8000/health || exit 1
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Docker Compose (Dev Local)

version: "3.9"
services:
  app:
    build: .
    ports: ["8000:8000"]
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    volumes:
      - .:/app
    depends_on: [db, redis]
  db:
    image: postgres:15
    environment:
      POSTGRES_DB: auri
      POSTGRES_USER: auri
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - pgdata:/var/lib/postgresql/data
  redis:
    image: redis:7-alpine
volumes:
  pgdata:

Sam Template (Serverless)


## Template.Yaml

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Globals:
  Function:
    Timeout: 30
    Runtime: python3.11
    Environment:
      Variables:
        ANTHROPIC_API_KEY: !Ref AnthropicApiKey
        DYNAMODB_TABLE: !Ref AuriTable

Resources:
  AuriFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: src/
      Handler: lambda_function.handler
      MemorySize: 512
      Policies:
        - DynamoDBCrudPolicy:
            TableName: !Ref AuriTable

  AuriTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: auri-users
      BillingMode: PAY_PER_REQUEST
      AttributeDefinitions:
        - AttributeName: userId
          AttributeType: S
      KeySchema:
        - AttributeName: userId
          KeyType: HASH
      TimeToLiveSpecification:
        AttributeName: ttl
        Enabled: true

Deploy Commands


## Build E Deploy

sam build
sam deploy --guided  # primeira vez
sam deploy           # deploys seguintes

## Deploy Rapido (Sem Confirmacao)

sam deploy --no-confirm-changeset --no-fail-on-empty-changeset

## Ver Logs Em Tempo Real

sam logs -n AuriFunction --tail

## Deletar Stack

sam delete

.Github/Workflows/Deploy.Yml

name: Deploy Auri

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: "3.11" }
- run: pip install -r requirements.txt
- run: pytest tests/ -v --cov=src --cov-report=xml
- uses: codecov/codecov-action@v4

security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install bandit safety
- run: bandit -r src/ -ll
- run: safety check -r requirements.txt

deploy:
needs: [test, security]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: aws-actions/setup-sam@v2
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- run: sam build
- run: sam deploy --no-confirm-changeset
- name: Notify Telegram on Success
run: |
curl -s -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage"
-d "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}"
-d "text=Auri deployed successfully! Commit: ${{ github.sha }}"


---

## Health Check Endpoint

```python
from fastapi import FastAPI
import time, os

app = FastAPI()
START_TIME = time.time()

@app.get("/health")
async def health():
    return {
        "status": "healthy",
        "uptime_seconds": time.time() - START_TIME,
        "version": os.environ.get("APP_VERSION", "unknown"),
        "environment": os.environ.get("ENV", "production")
    }

Alertas Cloudwatch

import boto3

def create_error_alarm(function_name: str, sns_topic_arn: str):
    cw = boto3.client("cloudwatch")
    cw.put_metric_alarm(
        AlarmName=f"{function_name}-errors",
        MetricName="Errors",
        Namespace="AWS/Lambda",
        Dimensions=[{"Name": "FunctionName", "Value": function_name}],
        Period=300,
        EvaluationPeriods=1,
        Threshold=5,
        ComparisonOperator="GreaterThanThreshold",
        AlarmActions=[sns_topic_arn],
        TreatMissingData="notBreaching"
    )

5. Checklist De Producao

  • Variaveis de ambiente via Secrets Manager (nunca hardcoded)
  • Health check endpoint respondendo
  • Logs estruturados (JSON) com request_id
  • Rate limiting configurado
  • CORS restrito a dominios autorizados
  • DynamoDB com backup automatico ativado
  • Lambda com timeout adequado (10-30s)
  • CloudWatch alarmes para erros e latencia
  • Rollback plan documentado
  • Load test antes do lancamento

6. Comandos

Comando Acao
/docker-setup Dockeriza a aplicacao
/sam-deploy Deploy completo na AWS Lambda
/ci-cd-setup Configura GitHub Actions pipeline
/monitoring-setup Configura CloudWatch e alertas
/production-checklist Roda checklist pre-lancamento
/rollback Plano de rollback para versao anterior

Best Practices

  • Provide clear, specific context about your project and requirements
  • Review all suggestions before applying them to production code
  • Combine with other complementary skills for comprehensive analysis

Common Pitfalls

  • Using this skill for tasks outside its domain expertise
  • Applying recommendations without understanding your specific context
  • Not providing enough project context for accurate analysis

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.