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.
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
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
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
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
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
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
Ferramentas nativas gratuitas, mas com custos de armazenamento.
Estimativa: ~US$ 300-500/mês (armazenamento e instâncias).
Objetivo: Adicionar Kafka para comunicação assíncrona.
Instale Kafka usando operadores:
kubectl apply -f https://strimzi.io/install/latest?namespace=prod-environment
Kafka gerenciado (ex.: Confluent ou MSK): US$ 500-2.000/mês.
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