Monday, 18 April 2016

Docker 3-Tier Java App (Nginx, Tomcat, MySQL) Automation On Any Cloud


DCHQ simplifica a conteinerização de aplicações empresariais e torna possível para replicar ambientes de aplicativos muito complexos em vários hosts através de um clique com o botão de implementação. DCHQ não apenas automatizar as implantações de aplicativos, mas também se integra com 12 provedores de nuvem diferentes para automatizar o provisionamento e auto-scaling de clusters permitiu-Weave que consistem em máquinas virtuais distribuídas.
Neste blog, vamos falar sobre a automação de implementação e gestão de ciclo de vida de um aplicativo Java 3-tier com base em Docker implantado em servidores Tomcat com Nginx para balanceamento de carga e MySQL para o banco de dados.
Isso pode ser feito ao navegar para a biblioteca de Self-Service e em seguida, clicando em Personalizar para solicitar uma aplicação multi-tier. Neste exemplo, temos uma aplicação multi-tier consiste em Nginx (para balanceamento de carga), Tomcat (o servidor de aplicativos em cluster) e MySQL (como o banco de dados). Você vai notar Nginx está invocando um plug-in script BASH para adicionar o recipiente IP de um dos servidores de aplicativos no arquivo default.conf dinamicamente (ou no momento do pedido). Tomcat também está invocando um plug-in script BASH para implantar um arquivo Java WAR de uma URL específica. Você vai notar que o CLUSTER_SIZE parâmetro permite especificar o número de recipientes para lançar (com as mesmas dependências de aplicativos). O anfitrião parâmetro permite que você especifique o host que você gostaria de usar para implementações de contêineres. Estes são os valores suportados para o parâmetro host:
  • host1, host2, host3 , etc. - seleciona uma série aleatoriamente dentro de um centro de dados (ou cluster) para implementações de contêiner
  • <IP endereço 1, endereço IP 2, etc.> - permite que um usuário para especificar os endereços IP real para usar para implementações de contêiner
  • <Hostname 1, Host 2, etc.> - permite que um usuário para especificar os nomes de host reais a ser usado para implantações de contentores
  • Wildcards (por exemplo, "db- *", ou "app-srv- *") - para especificar os wildcards para uso dentro de um nome de host
Além disso, um usuário pode criar cross-imagem ligações de variáveis ​​de ambiente, fazendo uma referência a variável de ambiente de outra imagem. Aqui está uma lista de variáveis ​​de ambiente suportadas:
  • {{alphanumeric | 8}} - cria um 8 caracteres seqüência alfanumérica aleatória. Isso é mais útil para criar senhas aleatórias.
  • {{<Image Name> | ip}} - permite que você digite o endereço IP do host de um modelo como um valor para uma variável de ambiente. Isto é muito útil para permitir que a camada de middleware para estabelecer uma ligação com o banco de dados.
  • {{<Image Name> | container_ip}} - permite que você insira o nome do contêiner (ou IP interno) de um modelo como um valor para uma variável de ambiente. Isto é muito útil para permitir que a camada de middleware para estabelecer uma ligação segura com o banco de dados (sem expor a porta de base de dados).
  • {{<Image Name> | port _<Port Number>}} - permite que você digite o número da porta de um modelo como um valor para uma variável de ambiente. Isto é muito útil para permitir que a camada de middleware para estabelecer uma ligação com o banco de dados. Neste caso, o número de porta especificado deve ser o número da porta interna - ou seja, não a porta externa que é atribuído ao recipiente. Por exemplo, {{PostgreSQL | port_5432}} irá ser traduzido para a porta externa real que vai permitir que a camada de middleware para estabelecer uma ligação com o banco de dados.
  • {{<Image Name> | <Environment Variable Name>}} - permite que você insira o valor variável de ambiente de uma imagem em variável de ambiente de outra imagem. Os casos de uso aqui são infinitas - como a maioria das aplicações multi-tier terá dependências cross-imagem.
Um usuário pode selecionar um Tag Ambiente (como DEV ou QE) e um centro de dados habilitado para tecer antes de clicar em Executar.

fotografia
Uma vez que o aplicativo está instalado e funcionando, o usuário pode monitorar a CPU, memória, & I O Utilização / dos recipientes de funcionamento e realizar dia 2-operações, como backup, Container Updates usando bash plug-ins, Escala In / Out e Distribuição Contínua .
Na demo gravada, nós escalado fora do cluster de servidor de aplicação de 2 a 3. Um usuário pode programar a escala para fora durante o horário comercial e da escala em durante a semana. Em seguida, usamos o plug-in bash para atualizar o arquivo default.conf do Nginx para que seja consciente do novo servidor de aplicativos acrescentou. Os plug-ins bash script também pode ser programado para acomodar os casos de uso, como a limpeza de registros ou atualizar configurações em frequências definidas. Um pedido de tempo-line está disponível para acompanhar todas as mudanças feitas ao pedido de auditoria e diagnósticos.
Alertas e notificações estão disponíveis para quando recipientes ou anfitriões são para baixo ou quando a CPU & Memória Utilização de qualquer hosts ou recipientes exceder um limite definido.
Registe-se já na DCHQ.io Hospedado PaaS ( http://dchq.io ) para obter este modelo junto com Ruby, Python, PHP, MEAN.JS, cluster MongoDB, e muitos outros modelos.


No comments:

Post a Comment