Releases: dalfinha/ecs-fargate-kotlin-canary-datadog
v2.5.0 - datadog-integration-apm-logs
🏷️ 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
🏷️ 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 olocal_pull_ecr.shpara 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
🏷️ 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
🏷️ 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
blueegreen. - 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!