De tempos em tempos, um dos meus artigos irá descrever uma maneira de fazer uso de dois produtos ou serviços da AWS juntos. Neste artigo, nos aprofundaremos em um deles e mostraremos como fazer com que o seguinte trio de itens trabalhem simultaneamente:
- O Amazon Simple Workflow (SWF) pode ajudá-lo a construir, executar e escalar tarefas em segundo plano que possuam etapas paralelas ou sequenciais. O SWF é um rastreador de estado e coordenador de tarefas totalmente gerenciado executado na nuvem AWS. Para saber mais sobre o SWF, acesse o artigo: Amazon Simple Workflow – Cloud-Based Workflow Management.
- O AWS OpsWorks ajuda a implementar e operar aplicações de todas as formas e tamanhos. É possível definir a arquitetura da aplicação usando qualquer combinação desejada de modelos OpsWorks predefinidos e templates personalizados construídos pelo usuário. O OpsWorks também auxilia no escalonamento (com base no tempo ou carga do sistema) e configuração dinâmica, como parte das operações de escalonamento. Para saber mais, leia: AWS OpsWorks – Flexible Application Management in the Cloud Using Chef.
- O AWS Flow Framework for Ruby (também conhecido como Ruby Flow) simplifica e agiliza o processo de criação de aplicativos para o Simple Workflow. O Ruby Flow elimina a necessidade de glue code e state machines e permite que o usuário se concentre em sua lógica de negócios. Comentamos pela primeira vez sobre o Ruby Gem no AWS Flow Framework para o Simple Workflow Service.
Com este lançamento, agora é ainda mais fácil criar, hospedar e escalar aplicativos SWF em Ruby. Uma nova camada dedicada em OpsWorks simplifica a implementação de workflows e atividades escritas no AWS Flow Framework for Ruby. Ao combinar OpsWorks AWS e SWF, podemos facilmente configurar uma cadeia de trabalho que executa na nuvem, escala automaticamente e faz uso de recursos avançados do Amazon Elastic Compute Cloud (EC2).
Essa nova camada é acessível a partir do AWS Management Console. Como parte desse lançamento, também estamos lançando um novo utilitário de linha de comando chamado runner. Use-o para testar o workflow localmente antes de transportá-lo para a nuvem. O runner usa informações fornecidas em um novo arquivo de configuração baseado em JSON para registrar tipos de workflow e de atividade, e iniciar os executores.
Suporte para o Console
Uma camada Ruby Flow pode ser adicionada a qualquer pilha OpsWorks que execute a versão 11.10 (ou mais recente) do Chef. Adicione uma nova camada escolhendo AWS Flow (Ruby) a partir do menu:
É possível personalizar a camada, se necessário (o padrão irá funcionar bem para a maioria das aplicações):
A camada será criada imediatamente e incluirá quatro receitas do Chef que são específicas para o Ruby Flow (as receitas estão disponíveis no GitHub):
Runner
Como parte deste lançamento, incluímos um novo utilitário de linha de comando, aws-flow-ruby, também conhecido como runner. Esse utilitário é usado pelo AWS OpsWorks para executar o código workflow. Também é possível usá-lo para testar aplicativos SWF localmente antes de transportá-los para a nuvem.
O runner é configurado usando um arquivo JSON que se parece com:
{ "domains": [{ "name": "BookingSample", }], "workflow_workers": [{ "task_list": "workflow_tasklist" }], "activity_workers": [{ "task_list": "activity_tasklist" }] }
O novo tipo de camada Ruby Flow já está disponível e pode ser utilizado imediatamente. Para aprender mais sobre ela, acesse a nova seção OpsWorks do AWS Flow Framework for Ruby User Guide.
***
Este artigo faz parte do AWSHUB, rede de profissionais AWS gerenciado pelo iMasters.