Agendador de atividades recorrentes ou pontuais que rodam em containers, feito para propósito de testes.
VPC:
VPC scheduler.local, utilizada pelo master e workers para comunicaço usando endereços privados, porem possui apenas redes públicas para acesso as instancias.
Route53:
Domínio sheduler.local, utilizado pelo workers para retornar o status dos jobs ao master.scheduler.local
Master:
Instância EC2 onde roda container da aplicação scheduler, fornece os endpoint para adicionar, deletar, listar e mostrar os status das atividades. O servidor master faz parte de um role chamado SchedulerMaster que possui privilegios para lançar instancias chamadas de workers.
Workers:
São instâncias EC2 lançadas na VPC, são provisionadas via user-data, rodam determinado container e parâmetros especificados pelo master. Os workers normalmente serão do tipo spot, lançados na Availability Zones de menor custo, porém o master pode lançar istancia on-demand quando o valor de spot instance for maior que ondemand.
IMPORTANTE: Nessa primeira versão funciona apenas região us-west-2 e não esta parametrizado.
1 - Provisionar a infra-estrutura
git clone [email protected]:Luizm/scheduler.git<
cd scheduler/terraform/master
terraform get
terraform apply
2 - Acessar a interface da amazon, regio us-weast-2 e conectar pelo EIP ao master.scheduler.local
3 - Setar corretamente as configurações do worker:
vi /scheduler/worker_config.yml
http://localhost:5000/scheduler/add
Exemplos:
curl -X POST http://localhost:5000/scheduler/add?job_name=Teste&docker_image=hello-world&day_of_week=mon&hour=10&minute=01&end_data=*'
curl -X POST 'http://localhost:5000/scheduler/add?job_name=Teste&docker_image=hello-world&docker_env_keys=env1,ev2&docker_env_values=value1,value2&day_of_week=mon-fri&hour=10&minute=01&end_data=2017-12-01'
http://localhost:5000/scheduler/delete
Exemplo
curl -X DELETE 'http://localhost:5000/scheduler/delete?job_name=Teste'
http://localhost:5000/scheduler/list
Lista atividades ainda não executadas Exemplo
curl -X GET http://localhost:5000/scheduler/list
Mostrar status das atividades:
curl -X GET http://localhost:5000/status
Content type
Image
Digest
Size
34.2 MB
Last updated
over 9 years ago
docker pull luizm/scheduler