Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lubrum/github-actions-with-go
Integração Contínua e Entrega Contínua com Go, AWS EC2, AWS ECS, AWS Fargate, Docker, Github Actions
https://github.com/lubrum/github-actions-with-go
automated-testing aws aws-ec2 aws-ecs aws-ecs-fargate aws-rds aws-rds-postgres bash ci ci-cd continuous-delivery devops docker docker-compose github-actions go golang pipeline unit-testing
Last synced: about 1 month ago
JSON representation
Integração Contínua e Entrega Contínua com Go, AWS EC2, AWS ECS, AWS Fargate, Docker, Github Actions
- Host: GitHub
- URL: https://github.com/lubrum/github-actions-with-go
- Owner: Lubrum
- Created: 2022-11-27T14:58:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-08T00:03:36.000Z (4 months ago)
- Last Synced: 2024-09-08T20:53:42.563Z (4 months ago)
- Topics: automated-testing, aws, aws-ec2, aws-ecs, aws-ecs-fargate, aws-rds, aws-rds-postgres, bash, ci, ci-cd, continuous-delivery, devops, docker, docker-compose, github-actions, go, golang, pipeline, unit-testing
- Language: Go
- Homepage:
- Size: 14.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Escola DevOps - Trilha DevOps
### ~~3. Aprender sobre integração e entrega contínua~~
### ~~3.1. Integração contínua: testes automatizados e pipeline no Github Actions~~
### ~~3.2. Integração contínua: Pipeline Docker no Github Actions~~
## Escola DevOps - Trilha/formação [Integração Contínua e Entrega Contínua](https://cursos.alura.com.br/formacao-integracao-continua-entrega-continua)
### ~~1. Criando uma rotina de CI~~
### ~~1.1. Integração contínua: testes automatizados e pipeline no Github Actions~~
### ~~1.2. Integração contínua: Pipeline Docker no Github Actions~~
### 2. ~~Começando com entrega contínua~~
### 2.1 ~~Integração Contínua: Pipeline de entrega e implementação contínua na EC2~~
### 2.2 ~~Integração Contínua: Automatize o deploy no Amazon ECS~~
### 3. Garantindo a aplicação e Kubernetes
### 3.1 Integração Contínua: rollback e teste de carga
### 3.2 Integração Contínua: automatizando a entrega no Kubernetes
# Requisitos para execução local:
- docker;
- docker compose;### Comando para atualização de dependências (em ambiente local isso requer go instalado na máquina)
```bash
go get -u
```### Para executar a aplicação junto com banco de dados, execute o código abaixo:
```bash
docker compose up -d
```### para rodar e executar os testes, suba o banco de dados com o docker compose, e rode o main_test.go localmente
```bash
docker compose up -d
HOST=localhost USER=root PASSWORD=root DBNAME=root DBPORT=5432 go test -v main_test.go
```Para testar se tudo funcionou, abra no navegador o link http://localhost:8085/index ou teste a API GET http://localhost:8085/MEU_NOME
## Passos na criação do cluster ECS (2.2):
1- criação de cluster no Amazon ECS;
2- criação de 'task definition' no Amazon ECS;
3- criação de serviço através da task ou do cluster no Amazon ECS (faz ligação entre a task e o cluster);
4- para criar CI/CD no github para o ECS, pode requerer criar usuário IAM caso exista apenas user root na conta;
4.1- caso falhe criação do serviço no ECS, verificar se foi atribuído o grupo de segurança da API e não do banco em RDS, e se a permissão do grupo de segurança não tem restrições na porta da aplicação.
Eu erroneamente restringi acessos na porta da aplicação para apenas meu IP, só que agora a aplicação estaria containerizada e por trás de um balanceador de carga que precisa ter permissão para acessar a API.
Também verificar se a imagem Docker está ok, ou seja, se está executando sem erros.