AWS

4 nov, 2014

Use o AWS OpsWorks & Ruby para construir e escalar aplicações simples de workflow

Publicidade

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:

aws-1

É possível personalizar a camada, se necessário (o padrão irá funcionar bem para a maioria das aplicações):

aws-2

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):

aws-3

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.