Introdução¶
Este projeto foi desenvolvido com base na arquitetura apresentada na imagem abaixo, utilizando recursos da Oracle Cloud Infrastructure (OCI) e o Oracle Kubernetes Engine (OKE) para orquestrar os ambientes de desenvolvimento, homologação e produção. O principal objetivo foi construir uma infraestrutura escalável, segura e automatizada para a implantação do backend da aplicação "Rede IS", além do gerenciamento de serviços auxiliares e ferramentas DevOps.
Figura 1: Arquitetura Geral
Componentes Principais¶
- OCI Region (
eu-saojoaquim-1): Região da Oracle Cloud onde os recursos estão provisionados. - Fault Domains (1, 2 e 3): Domínios de falha que garantem alta disponibilidade e resiliência da infraestrutura.
- OKE (Oracle Kubernetes Engine): Serviço gerenciado de Kubernetes da OCI, onde são executadas as aplicações em contêineres.
- Worker Nodes: Máquinas virtuais onde os pods (unidades de execução) são executados.
- Pods: Unidades que contêm um ou mais contêineres da aplicação.
- Istio: Service Mesh responsável por tráfego, segurança e observabilidade entre serviços.
- Internal Load Balancer: Balanceador interno responsável por distribuir tráfego para os gateways da aplicação.
- Gateway API: Ponto de entrada para as aplicações hospedadas no OKE.
- OCI Vault & External Secrets Operator: Solução para gerenciamento seguro de segredos, integrada ao cluster via operador Kubernetes.
- HashiCorp Vault: Alternativa ou complemento para o gerenciamento de segredos.
- HELM: Gerenciador de pacotes para Kubernetes utilizado para implantações complexas.
- Argo CD: Ferramenta GitOps que sincroniza o estado do cluster com repositórios Git.
- OCI Container Registry: Registro privado de imagens Docker hospedado na OCI.
- GitHub & GitHub Actions: Plataforma de versionamento e automação de pipelines CI/CD.
- Docker: Plataforma de containerização responsável pela criação de imagens.
- Sentry & OpenTelemetry: Ferramentas para rastreamento de erros, métricas e observabilidade.
- Firewall & Dynamic Routing Gateway (DRG): Componentes de rede utilizados para controle de acesso e roteamento entre VCNs e a internet.
Fluxo de Trabalho¶
- Desenvolvedor cria uma Pull Request (PR) com novas funcionalidades ou correções.
- GitHub Actions executa testes, validações e cria uma nova imagem Docker.
- Imagem Docker é gerada e enviada para o OCI Container Registry.
- Argo CD detecta alterações no repositório Git e sincroniza o cluster OKE.
- Nova versão da aplicação é implantada no cluster com a nova imagem.
- External Secrets Operator sincroniza segredos do OCI Vault ou HashiCorp Vault com o Kubernetes.
- Istio gerencia o tráfego e a segurança entre serviços.
- Internal Load Balancer distribui o tráfego para os gateways da aplicação.
- Sentry e OpenTelemetry monitoram desempenho, erros e métricas.
Conclusão¶
A arquitetura representa uma abordagem moderna e automatizada de CI/CD na Oracle Cloud, com foco em segurança, observabilidade e resiliência. A utilização do OKE integrada a ferramentas como Argo CD, Vault, GitHub Actions e OpenTelemetry permite uma entrega contínua eficiente, segura e auditável, alinhada às melhores práticas DevOps e GitOps.