Skip to content

Releases: dalfinha/ecs-fargate-kotlin-canary-datadog

v2.5.0 - datadog-integration-apm-logs

12 Jul 02:41
b80b1ec

Choose a tag to compare

🏷️ v2.5.0 - Adição do Datadog Logs e Datadog APM no container da app / Deploy dinâmico com o CodeDeploy

Nesta versão, o projeto passou a suportar o envio automático de logs e traces para o Datadog, ativado pela variável enable_datadog = true, utilizando a API Key do Datadog no Secret Manager. A infraestrutura em Terraform continua com deploy blue/green no ECS Fargate usando CodeDeploy, agora modular e mais flexível.

A aplicação Kotlin com Spring mantém a integração com a API Numbers, com logs estruturados para facilitar monitoramento.


🔧 Melhorias principais

  • Suporte ao Datadog Logs e APM no container da aplicação.
  • Possibilidade de ligar e desligar a integração com o Datadog.
  • Revisão dos módulos Terraform para permitir criar só ALB, CodeDeploy ou ECS.
  • Scripts locais atualizados para build, tag e push da imagem Docker no ECR.
  • Instalação do agente do Datadog no Dockerfile.

❌ Falhas ao executar?

Abra uma issue! Correções e contribuições são bem-vindas.

v2.0.0 - api-numbers-local-scripts-kotlin

28 May 01:47

Choose a tag to compare

🏷️ v2.0.0 - Integração da aplicação Kotlin com a API Numbers (http://numbersapi.com)

Esta versão marca a integração da aplicação Kotlin com a API pública Numbers API, que retorna curiosidades sobre números. A aplicação agora executa uma task que gera dois números aleatórios, soma os valores e consulta uma trivia com base no resultado, enviando o payload completo em log — pronto para uso com ferramentas como o Datadog.

Complementando os scripts locais com null_resource no Terraform, também foram adicionados dois novos scripts para auxiliar na publicação da imagem gerada pelo Gradle:

  • local_gradle_build.sh: Compila o projeto com Gradle, gera o JAR, cria a imagem Docker e chama o local_pull_ecr.sh para versionar e enviar a imagem ao ECR.
  • local_pull_ecr.sh: Autentica no ECR, busca a próxima versão disponível, cria uma nova tag baseada nela e faz o push da imagem Docker para o repositório.

🔧 Melhorias Principais

  • Aplicação Kotlin com Spring para chamadas à API Numbers.
  • Payloads de log formatados em JSON para fácil rastreamento e análise.
  • Scripts locais para build e publicação da imagem compilada no ECR.

📃 Exemplo de Payload de Log

{
  "@timestamp": "2025-05-27T01:40:58.995531147Z",
  "@version": "1",
  "message": "sort number: sortFirst=98, sortSecond=0, sum: sortSum=98, response: response=NumberFact(...)",
  "logger_name": "app.ScheduledTask",
  "thread_name": "scheduling-1",
  "level": "INFO",
  "sortFirst": 98,
  "sortSecond": 0,
  "sortSum": 98,
  "response": {
    "text": "98 is the highest jersey number allowed in the National Hockey League...",
    "number": 98,
    "found": true,
    "type": "trivia"
  }
}

❌ Falhas ao executar?

Abra uma issue! Correções e contribuições são bem-vindas.

v1.5.0 - modular-setup-canary-ecs-codedeploy

19 May 03:29

Choose a tag to compare

🏷️ v1.5.0 - Modularização da criação do Load Balancer, ECS Service e CodeDeploy

Esta versão introduz uma estrutura modular para provisionar de forma independente os componentes: Application Load Balancer, serviço ECS Fargate e CodeDeploy. Agora é possível utilizar apenas os módulos necessários, referenciando cada um de forma separada. A pasta example demonstra como usar valores dinâmicos com data ou estáticos via tfvars.

🔧 Melhorias Principais

  • Arquitetura modular para facilitar reuso e manutenção.
  • Separação dos arquivos Terraform para:
    • Application Load Balancer
    • Serviço ECS
    • Integração com CodeDeploy
  • Script local para forçar novos deployments.
  • Geração e remoção local do arquivo AppSpec.yaml.
  • Exemplo com uso de dados dinâmicos e arquivos de variáveis.

❌ Falhas ao executar?

Abra uma issue! Assim que possível aplicamos a correção. Contribuições são bem-vindas!

v1.0.0 - canary-deployment-codedeploy-integration

03 May 18:20
e10c18f

Choose a tag to compare

🏷️ v.1.0.0 - Canary Blue/Green Deployment com ECS e CodeDeploy via Terraform

Esta versão provisiona uma infraestrutura completa para realizar deployments com estratégia blue/green em serviços ECS Fargate, utilizando AWS CodeDeploy. A pasta /app contém uma aplicação básica em Kotlin (SEM SPRING) para testar o rollout e rollback do Canary.

🔧 Componentes Principais

  • ECS Fargate: Ambiente de execução para os containers.
  • Application Load Balancer (ALB): Balanceador com listener único na porta 80.
  • Target Groups: Criados dinamicamente para blue e green.
  • AWS CodeDeploy: Orquestra a troca de tráfego entre versões.
  • AppSpec: Template para controlar o comportamento do deploy.
  • Scripts locais: Sobrescrevendo o arquivo appspec.yaml do CodeDeploy e forçando novos deploys diretamente no terminal.

❌ Falhas ao executar?

Abra uma issue! Assim que possível aplicamos a correção. Contribuições são bem vindas!