Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Automatização de implementações
Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Automatização de implementações

Associação de implementações em grande escala

Atualizado por Julio Castanar em dez 28, 2018
Código do artigo: kb/1208

Neste artigo:

Visão geral

Este artigo se destina a auxiliar os clientes do Cloud Application Manager que desejam criar e gerenciar caixas.
Ele explica como usar as vinculações.

As vinculações associam diferentes partes de um aplicativo de várias camadas através da rede. Esses componentes podem ser partes de uma stack de aplicativos, um pool de balanceamento de carga, um cluster e muito mais. As vinculações permitem que os serviços façam detecções automáticas e conexões dinâmicas em escala. Elas também reconfiguram as instâncias que precisam manter a própria configuração atualizada.

Público

Usuários do Cloud Application Manager que utilizam recursos de Application Lifecycle Management (ALM - gerenciamento de ciclo de vida de aplicativos).

Pré-requisitos

  • Acesso ao site Applications (módulo Application Lifecycle Management) do Cloud Application Manager como um usuário autorizado de uma conta ativa do Cloud Application Manager.

O que são vinculações

As vinculações são variáveis que você pode adicionar às caixas. Elas representam uma conexão entre uma caixa implementada e outras instâncias. As vinculações são usadas para personalizar seus scripts de evento ou arquivos de configuração de modo que funcionem com outras instâncias.

A quais instâncias uma associações se conecta

As instâncias indicadas por uma variável de associação são definidas pelos critérios que você configura. Você refina os critérios ao definir um tipo de caixa específico para a associação e ao especificar tags correspondentes.

A instância de destino estará na associação da instância de origem se:

  • A instância for compartilhada com o proprietário do espaço de trabalho da instância de origem.
  • Ela tiver informações de conexão disponíveis, o que normalmente significa que os endereços estão disponíveis.
  • A instância de destino não for encerrada.
  • A instância de destino tiver uma caixa do tipo na variável de associação.
  • A instância de destino tiver pelo menos todas as tags na variável de associação.

Veja aqui como as instâncias vinculadas são exibidas depois que a instância fica on-line.

Associação de implementações em grande escala

Como usar vinculações na configuração

As informações de associações são fornecidas nos scripts de eventos (exceto os scripts de instalação) e nos arquivos de configuração (via elasticbox conf).

A associação é uma lista jinja2 que contém muitas informações da instância de destino a serem usadas. As informações usadas com mais frequência são endereços e variáveis.

Para acessar uma variável na caixa da instância de destino, basta usar seu nome de variável. Por exemplo, acesso de binding[0].varName à variável varName da primeira instância na associação (binding).

Para acessar os endereços da instância de destino, você pode usar binding[1].address.private ou binding[1].public.

Isso lhe permite acessar o endereço privado ou, caso ele não esteja disponível, o endereço público.

Para fazer algo para cada instância na associação, você pode usar um loop jinja2. Por exemplo, para imprimir um IP por instância de associação, você pode usar:

{% for i in binding %}
{{ i.address.public or i.address.private }}
{% endfor %}

Por fim, a lista de vinculações concede acesso direto aos atributos da primeira instância. Por exemplo,

{{ binding.varName }}

é equivalente a

{{ binding[0].varName }}

Reconfiguração automática de vinculações

As vinculações são calculadas após qualquer evento de instalação e antes da reconfiguração. Nesse ponto, todas as instâncias correspondentes são salvas e serão disponibilizadas nos diferentes eventos. Manter as vinculações atualizadas implica reconfigurar as instâncias para atualizar as vinculações e todos os arquivos e scripts de configuração. Para ajudar nessa tarefa, o Cloud Application Manager reconfigura automaticamente as instâncias que exigem isso após algumas alterações. Você pode confiar no Cloud Application Manager para manter atualizadas as seguintes informações:

  • As instâncias de destino em cada associação. Isso significa que implementar ou encerrar instâncias ou alterar suas tags reconfigurará automaticamente as instâncias que exigem isso para manter as informações atualizadas.
  • As informações de IP mostradas pelo Cloud Application Manager. Sempre que detectamos uma alteração de IP, as instâncias que indicam essa instância são reconfiguradas. A detecção de IP é específica ao provedor.

Isso cobre quase todos os casos de reconfiguração, mas há dois detalhes a serem considerados.
Primeiro, não fazemos a reconfiguração se uma variável é alterada via elasticbox.set ou com o editor de ciclo de vida. Se outras instâncias estiverem acessando essa variável por meio de vinculação, você também deverá reconfigurá-las.
Em segundo lugar, após obter uma versão em uma instância, você deve reconfigurar todas as instâncias que indicam essa instância para que elas obtenham a mais recente versão das variáveis da caixa.

Uso de vinculações em três etapas

Há três etapas para fazer com que as vinculações funcionem. Suponha que um aplicativo Node.js precise de MongoDB e precise se tornar membro do pool de balanceamento de carga de front-end Nginx. Para habilitar as conexões com o banco de dados e o balanceador de carga neste exemplo, usamos vinculações.

1. Definir variáveis de associação

As variáveis de associação são definidas na automatização da caixa. Neste exemplo, definimos duas variáveis de associação:

  • Uma na caixa do balanceador de carga Nginx para a conexão com as instâncias do aplicativo Node.js.
  • outra na application box Node.js para a conexão com o banco de dados MongoDB.

Nos dois casos, as vinculações indicam um tipo de caixa, que permite aos serviços fazer a vinculação apenas com instâncias do tipo de caixa no momento da implementação.

Definir variável de associação na caixa Node

Definir variável de associação na caixa MongoDB

2. Configurar vinculações para seu aplicativo

Para estabelecer a conectividade com um serviço remoto, devemos configurar as vinculações na caixa. Isso é feito no script de configuração da caixa.

Veja aqui um exemplo de conexão do balanceador de carga Nginx com as instâncias do aplicativo Node.js. Configuramos as vinculações da seguinte forma:
No script de configuração da caixa do balanceador de carga Nginx, executamos o comando config do Cloud Application Manager para executar uma variável de arquivo (nginx.conf) que tem a cadeia de conexão.

Edição do script de associação da configuração no nó da caixa

Edição do script de associação da configuração em nginx

Aqui, a variável de associação "services" consulta cada instância que atende aos critérios de associação. Como você sabe, quando definimos a associação, os critérios se referiam à conexão de todas as instâncias do tipo de application box Node.js.

upstream services {
{% for binding in services %}
    server {{ binding.address.public or binding.address.private }}:{{ binding.PORT }};
{% endfor %}
}

Na cadeia de conexão, cada elemento consulta os valores das variáveis da application box Node.js, como a porta.
Os endereços IP são variáveis padrão do sistema disponíveis para todas as instâncias.
Além dos endereços IP, as vinculações fornecem muitos dados úteis sobre os serviços remotos. Você pode consultar as portas ou quaisquer outras variáveis definidas na automatização da caixa por meio de vinculações.

3. Marcar vinculações para a conectividade das instâncias

Marcar as vinculações permite que os serviços detectem uns aos outros automaticamente. No momento da implementação, para as vinculações definidas nas caixas, precisamos aplicar tags de instâncias às quais elas podem ser vinculadas.
Neste exemplo, queremos que o balanceador de carga Nginx se vincule às instâncias marcadas com "production" e "nodejs". Quando isso acontece, a associação procura as instâncias de um tipo de caixa específico conforme definido na caixa, bem como assegura que as instâncias correspondam a essas tags. A associação tem efeito apenas quando as duas condições são atendidas. É dessa forma que as vinculações marcadas permitem que as instâncias se conectem automaticamente com um ou muitos serviços em escala.

Marcar vinculações para a conectividade das instâncias

Como outro exemplo, iniciamos aqui o aplicativo Node.js especificando sua conexão de associação com as instâncias MongoDB marcadas com "production" e "mongodb". É importante observar que marcamos também a instância Node.js como "production" e "nodejs" para que o Nginx possa se vincular a ela.

Marcar vinculações entre Node e MongoDB

Guia de introdução

O Cloud Application Manager integra automação de microsserviços, gestão de configuração e muitas ferramentas para implementações com um único clique. Este tutorial em vídeo com instruções passo a passo mostra a implementação contínua de uma aplicação Node.js multinível em nuvens híbridas.

Como contatar o suporte do Cloud Application Manager

Lamentamos que você tenha encontrado um problema com o Cloud Application Manager. Consulte as dicas de troubleshooting ou entre em contato com o suporte do Cloud Application Manager e apresente detalhes e capturas de tela, conforme possível.

Para problemas relacionados a chamadas de API, envie o corpo da solicitação junto com os detalhes referentes ao problema.

Em caso de erro de caixa, compartilhe a caixa no espaço de trabalho que sua organização e o Cloud Application Manager podem acessar e anexe os registros.

  • Linux: SSH e localize o registro em /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP na instância para localizar o registro em \ProgramData\ElasticBox\Logs\elasticbox-agent.log
Powered by Translations.com GlobalLink OneLink SoftwarePowered By OneLink