Skip to main content

DevOps

Introdução

  DevOps no Peerseed é a ponte que conecta o desenvolvimento de software às operações de infraestrutura. Nosso objetivo é criar processos automatizados e integrados que nos permitam entregar valor aos nossos usuários, João e Mariana de forma rápida, frequente e confiável.

Nossos principais objetivos são:

  • Velocidade (Velocity): Reduzir o tempo entre uma ideia e sua implantação em produção.

  • Confiabilidade (Reliability): Garantir que novas implantações não degradem a estabilidade do sistema, em conformidade com o RNF-CF-01.

  • Escalabilidade (Scalability): Ter processos que funcionem tanto para um quanto para dezenas de microsserviços.

  • Segurança (Security): Integrar a segurança em cada etapa do ciclo de vida do software (Shift-Left Security).


Ferramentas e Tecnologias Principais

Ferramentas e Padrões de Engenharia

ÁreaFerramenta / PadrãoJustificativa
Repositório de CódigoGit / GitHubPadrão mundial para controle de versão, com excelentes ferramentas de colaboração e integração.
Pipeline de CI/CDGitHub ActionsSolução gratuita e nativamente integrada ao GitHub, poderosa e altamente configurável.
Infraestrutura como CódigoTerraformPadrão de mercado para provisionamento de infraestrutura de forma agnóstica à nuvem e declarativa.
ContainerizaçãoDockerPadrão de mercado para empacotar aplicações e dependências, garantindo consistência (RNF-P-01).
OrquestraçãoKubernetesPadrão de mercado para operar aplicações em contêineres de forma resiliente e escalável.
ObservabilidadePrometheus, Grafana, OpenTelemetryStack open source líder para métricas, dashboards e rastreamento distribuído.

Detalhamento dos Processos DevOps

Controle de Versão e Estratégia de Branches (GitHub Flow)

  A disciplina no controle de versão é a base de todo o processo. Adotaremos o GitHub Flow, uma estratégia simples e eficaz para o desenvolvimento contínuo.

O branch main sempre reflete o que está em produção. Ele é protegido e não permite pushes diretos.

Todo o desenvolvimento, seja uma nova feature ou uma correção de bug, é feito em branches descritivas criadas a partir do main

ex: feat/mercado-secundario ou fix/calculo-juros.

Quando o trabalho está concluído, um Pull Request (PR) é aberto para mesclar o branch de volta ao main.

Infraestrutura como Código (IaC)

Toda a nossa infraestrutura de nuvem, o cluster Kubernetes, os bancos de dados, as redes (VPCs), as regras de firewall, é definida como código usando Terraform.

Impactos:

Repetibilidade: Garante que os ambientes de homologação e produção sejam idênticos, eliminando o clássico problema "funcionava em staging".

Versionamento e Auditoria: As alterações na infraestrutura passam pelo mesmo processo de Pull Request e Code Review do código da aplicação, tornando o processo seguro e auditável.

Recuperação de Desastres: Em caso de uma falha catastrófica, podemos recriar toda a nossa infraestrutura do zero, de forma rápida e automática, a partir do código Terraform (RNF-CF-03).

Observabilidade

A observabilidade é como damos "olhos e ouvidos" ao nosso sistema em produção, em total conformidade com o RNF-M-03.

Logs: Conforme definido na documentação de dados, todos os serviços emitem logs estruturados (JSON) para stdout. Em nosso ambiente Kubernetes, um agente (como Fluentd) coleta esses logs e os centraliza em um serviço de logging (ex: AWS CloudWatch ou uma stack ELK), onde podem ser pesquisados e analisados.

Métricas: Cada microsserviço expõe métricas de saúde e de negócio (ex: latência de requisições, taxa de erros, número de transações por segundo) no formato Prometheus. Um servidor Prometheus central coleta essas métricas.

Dashboards e Alertas: O Grafana é conectado ao Prometheus para criar dashboards que nos dão uma visão em tempo real da saúde da plataforma. Alertas são configurados no Grafana para notificar a equipe automaticamente (via Slack ou PagerDuty) quando uma métrica crítica sai do padrão

ex: "A taxa de erro do Serviço de Pagamentos excedeu 5%".

Rastreamento (Tracing): Para depurar problemas complexos em nossa arquitetura de microsserviços, planejamos a adoção do OpenTelemetry. Ele nos permitirá seguir uma única requisição (ex: um investimento da Marina) em sua jornada através de múltiplos serviços, identificando gargalos e pontos de falha.