← Voltar na listagem

💸 Você como desenvolvedor deve se preocupar com os custos sim Finops

Senao se preocupar com os custos talvez o valor recuperado em custos pela empresa nunca volte a você desenvolvedor


🌟 Configuração do Ambiente Multi-cloud com Kubernetes e Custos

📌 1. Organização dos Ambientes

Objetivo: Criar namespaces isolados para Dev, QA, Hom e Prod.

apiVersion: v1
kind: Namespace
metadata:
  name: dev-environment # Altere para qa-environment, hom-environment, etc.

➡️ Custos Estimados por Namespace (Por Ambiente):

Dev e QA: Uso de clusters pequenos com nós otimizados.

Custos: ~US$ 100-200/mês por ambiente.

Hom e Prod: Configuração robusta com alta disponibilidade.

Custos: ~US$ 10.000-20.000/mês para produção, dependendo da carga.

➡️ Passo a seguir:

Salve o arquivo como namespace.yaml.

Aplique no cluster com:

kubectl apply -f namespace.yaml

🔧 2. Deployment Inicial do Microserviço

Objetivo: Configurar o microserviço Java com replicação para suportar a carga inicial.


apiVersion: apps/v1
kind: Deployment
metadata:
  name: java-microservice
  namespace: prod-environment
spec:
  replicas: 10 # Começando com 10 réplicas
  selector:
    matchLabels:
      app: java-microservice
  template:
    metadata:
      labels:
        app: java-microservice
    spec:
      containers:
        - name: java-microservice
          image: your-docker-image:latest
          resources:
            requests:
              cpu: "500m"
              memory: "1Gi"
            limits:
              cpu: "2000m"
              memory: "2Gi"
          ports:
            - containerPort: 8080
          readinessProbe:
            httpGet:
              path: /actuator/health
              port: 8080
            initialDelaySeconds: 5
            periodSeconds: 10

➡️ Custos Estimados para Pods:

Cálculo por Pod:

500m CPU e 1Gi memória.

Estimativa para 10 pods: ~US$ 1.500-3.000/mês, dependendo da região e do provedor.

➡️ Passo a seguir:

Salve como deployment.yaml.

Aplique no cluster com:

kubectl apply -f deployment.yaml

📈 3. Escalabilidade Automática

Objetivo: Usar o Horizontal Pod Autoscaler (HPA) para gerenciar os picos de tráfego.

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: java-microservice-hpa
  namespace: prod-environment
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: java-microservice
  minReplicas: 10
  maxReplicas: 100 # Suporte para até 100 réplicas
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70

➡️ Custos Estimados de Escalabilidade:

Cenário Máximo: 100 réplicas em picos (~10.000 usuários simultâneos por réplica).

Custos: Até ~US$ 20.000/mês, considerando cargas extremas.

➡️ Passo a seguir:

Salve como hpa.yaml.

Aplique no cluster com:

kubectl apply -f hpa.yaml

🛠️ 4. Ferramentas de Monitoramento

Objetivo: Monitorar desempenho e custos em tempo real.

Prometheus e Grafana: Instale com Helm:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo add grafana https://grafana.github.io/helm-charts helm install prometheus prometheus-community/prometheus helm install grafana grafana/grafana

Custos de Monitoramento:

Ferramentas nativas gratuitas, mas com custos de armazenamento.

Estimativa: ~US$ 300-500/mês (armazenamento e instâncias).

🏦 5. Mensageria com Kafka

Objetivo: Adicionar Kafka para comunicação assíncrona.

Instale Kafka usando operadores:

kubectl apply -f https://strimzi.io/install/latest?namespace=prod-environment

➡️ Custos Estimados do Kafka:

Kafka gerenciado (ex.: Confluent ou MSK): US$ 500-2.000/mês.

🔍 Resumo dos Custos Totais

Componente: Dev e QA (Clusters) | Custo Estimado (Mensal): ~US$ 200-400
Componente: Homologação | Custo Estimado (Mensal): ~US$ 1.000-2.000
Componente: Produção | Custo Estimado (Mensal):*~US$ 10.000-20.000
Componente: Monitoramento | Custo Estimado (Mensal): ~US$ 300-500
Componente: Kafka | Custo Estimado (Mensal): ~US$ 500-2.000
Total Estimado: ~US$ 12.000-25.000