Desenvolvimento

13 out, 2017

Rodando Magento autoescalável em containers: implementação instantânea de cluster para a nuvem

Publicidade

Ao construir um projeto de comércio eletrônico que exija uma plataforma rica em recursos, o Magento CMS é um dos sistemas mais adequados e eficientes para gerenciá-lo. Devido à sua arquitetura modular flexível e ao seu ecossistema ágil, você pode adaptar, personalizar e ampliar o seu site continuamente, beneficiando-se de uma grande variedade de recursos incorporados, como gerenciamento de catálogo de dados, ferramentas de marketing, anatytics, otimização de mecanismos de SEO, relatórios, etc.

Outro ponto importante a ser considerado quando executar um projeto de comércio eletrônico, é garantir sua disponibilidade constante para muitos usuários simultâneos. Assim, para permitir que você lance essa solução com um esforço mínimo, a equipe Jelastic desenvolveu um pacote Magento agrupado, autoescalável e dedicado.

Sendo implementado em quase um clique, o Magento Cluster JPS da Jelastic roda uma complexa topologia de failover baseada em container com um par de nodes do Magento interconectados, balanceador de carga na frente deles e dois servidores de banco de dados replicados. Além disso, ele inclui uma série de componentes complementares, como o armazenamento de sessão do usuário para aumentar a tolerância a falhas, o serviço de cache do Redis e o node de administração baseado em NGINX para distribuir conteúdo estático e gerenciar configurações de cluster. Com todos juntos, essa topologia de ambiente fornece a sustentabilidade de que seu projeto precisa.

Abaixo, você encontrará alguns detalhes sobre cada função de componente do cluster, configurações pré-configuradas de escala automática e um passo a passo simples descrevendo como obter sua própria plataforma Magento clusterizada altamente disponível, em minutos, dentro e fora da nuvem.

Topologia containerizada de clusters Magento

Geralmente, a estrutura da solução autoescalável do Magento Cluster da Jelastic pode ser exibida da seguinte forma:

Aqui, as seguintes imagens do Docker são utilizadas para unificar e simplificar o provisionamento de componentes de aplicação: Aqui, as seguintes imagens do Docker são utilizadas para unificar e simplificar o provisionamento de componentes de aplicação:

  • Load Balancer (LB) – Varnish 4.1.5 (jelastic/varnish)
    • Dois balanceadores de carga do Vernish para distribuir o tráfego recebido dentro de um cluster e armazenar em cache todo o conteúdo estático; são complementados com servidores NGINX que são executados como um proxy HTTPS.
  • Application Server (AS) –  NGINX 1.10.1 com PHP 7.0.10 (jelastic/nginxphp)
    • Dois servidores de aplicação PHP NGINX para lidar com o próprio mecanismo do Magento; são automaticamente dimensionados com base na quantidade de tráfego recebido.
  • Admin Node (AN) – NGINX 1.10.1 com PHP 7.0.10 (jelastic/nginxphp)
    • Node de administração PHP NGINX para fornecer acesso ao Magento Admin Panel para gerenciar pedidos, catálogos, conteúdo, configurações de cluster etc. e compartilhar conteúdo estático entre instâncias de servidor de aplicação via NFS.
  • Session Storage (SS) – Redis 3.2.9 (devbeta/redis)
    • Node de armazenamento Redis para manter os parâmetros da sessão do usuário, de modo que no caso de um node do servidor de aplicativos falhar, o segundo pode recuperar os dados necessários e continuar a servir os clientes sem qualquer interrupção notável.
  • Cache (CH) – Redis 3.2.9 (devbeta/redis)
    • Node Redis para armazenar o cache do Magento que ajuda a melhorar o tempo de resposta da aplicação devido ao carregamento mais rápido da página ao processar solicitações subsequentes semelhantes.
  • Database (DB) – MySQL 5.7.latest (jelastic/mysql)
    • Dois servidores de banco de dados MySQL com replicação assíncrona mestre-escravo entre eles para alcançar alta disponibilidade, melhorar a proteção de dados e aliviar falhas do sistema.

Aqui, cada container dentro de um cluster recebe o limite de escala vertical padrão até 8 cloudlets (igual a 1 GiB de RAM e 3,2 GHz de CPU) e um conjunto de alertas de carga (para notificá-lo quando o consumo de recursos estiver próximo do limite).

Além disso, vale a pena admitir que, ao escalar a camada Load Balancer ou Application Server, as configurações LB apropriadas (nas instâncias recém-criadas ou já existentes) são automaticamente ajustadas para incluir os dados em todos os nodes do servidor de aplicação em que a carga deve ser distribuída. Além disso, a camada AS é automaticamente escalada pelo sistema com base na quantidade de tráfego recebido para lidar com a carga variável – consideremos essa abordagem em mais detalhes.

Configurações de autoescala do servidor de aplicação do Magento

Como foi mencionado acima, o número de nodes do servidor de aplicação no Magento Cluster é ajustado dinamicamente com base na carga recebida por meio de escala horizontal automática. Essa alteração de tamanho de cluster é definida com as seguintes condições:

  • +1 node se o uso de CPU for mais de 70% por pelo menos 1 minuto
  • -1 node se o uso de CPU for menos de 20% por pelo menos 1 minuto

As modificações apropriadas são aplicadas automaticamente para adicionar/remover nodes do servidor de aplicação, enquanto você recebe a mensagem de e-mail correspondente em cada operação de escala. Cada nova instância do servidor de aplicação é adicionada automaticamente às configurações do balanceador de carga, enquanto os nodes dentro da camada LB são reiniciados para aplicar as configurações atualizadas.

Aqui, as condições de escala automática padrão podem ser facilmente ajustadas através do ajuste das configurações de disparo apropriadas de acordo com o guia Automatic Horizontal Scaling.

Instalação do cluster Magento com um clique

Finalmente, vamos saber como iniciar a plataforma de comércio eletrônico baseada em Magento autoescalável e confiável acima descrita. Para isso, faça login no painel Jelastic Cloud e execute as próximas etapas simples.

1. O pacote pode ser instalado em uma destas formas:

 

  • Através da seção Marketplace – abra o frame apropriado com o mesmo botão nomeado no painel superior e procure o pacote Auto-Scalable Magento Cluster dentro da guia Apps>Clusters.

Clique em Install na prancha mostrada para iniciar a caixa de diálogo de implantação.Clique em Install na prancha mostrada para iniciar a caixa de diálogo de implantação.

  • Através da funcionalidade Import – acesse o frame correspondente e cole um link direto para o arquivo manifest.jps  do Magento Cluster a partir do repositório de pacotes apropriado no GitHub.

https://github.com/jelastic-jps/magento/blob/master/magento19-php7-varnish-mysql-redis-storage/manifest.jps

Clique em Import para continuar.

Dica: visite Jelastic JPS Collection para explorar outras soluções úteis pré-empacotadas que podem ser facilmente instaladas na plataforma em um clique. Basta importar qualquer uma delas usando o link para o arquivo manifest.jps dentro do repositório apropriado.

2. Na caixa de instalação, digite o nome Environment e o Display Name opcional (environment alias), e selecione a região preferível (se houver várias disponíveis) e clique em Install.

3. A instalação do ambiente e a configuração do cluster levarão alguns minutos até você ver uma caixa exibindo suas credenciais do Magento Admin.

4. Clique em Open in browser e faça login no Magento Admin Panel com os dados de administração recebidos.

Aqui você pode encontrar uma grande variedade de ferramentas de gerenciamento de lojas, categorizadas em guias separadas de acordo com as opções provisionadas – por exemplo, Vendas, Catálogo, Clientes, Promoções etc.

5. Para começar, você pode criar um catálogo para sua loja online como a base de qualquer serviço de comércio eletrônico. Para isso, você precisará compor a estrutura de catálogo necessária e preenchê-la com os itens de merchandising proposto.

Dica: De forma alternativa, o Magento permite a importação da coleção de bens já existente – por exemplo, para transferir um catálogo da plataforma Magento similar em outro host. No entanto, esse procedimento pode exigir uma série de configurações adicionais – vamos descrevê-las em detalhes no próximo artigo da série sobre Magento Cluster para fornecer uma orientação mais completa.
Se decidir construir o catálogo a partir do zero, mude para a guia Catalog > Manage Categories do Magento Admin Panel para criar as categorias de produtos apropriadas e definir uma categoria raiz para sua loja.

Se decidir construir o catálogo a partir do zero, mude para a guia Catalog>Manage Categories do Magento Admin Panel para criar as categorias de produtos apropriadas e definir uma categoria raiz para sua loja.

Depois disso, você pode prosseguir com a adição de subcategorias de catálogo para definir uma estrutura hierárquica de seções mais precisa e preenchê-las com os produtos criados para que seus clientes possam facilmente encontrá-los e comprá-los.

Use esse painel para monitorar as vendas e as atividades do cliente, gerenciar seu catálogo e seu conteúdo, criar promoções e newsletters etc. – em resumo, para implementar todos os funcionários que constituem um serviço de alta qualidade e exigido. E, agora, vá em frente e explore isso na prática em qualquer Jelastic Public Cloud Platforms – nós fornecemos para todos os usuários recém-registrados um período de teste de duas semanas para garantir que os serviços de hospedagem Jelastic sejam a melhor opção para você.

***

Este artigo é do Jelastic Blog. Ele foi escrito por Tetiana Markova. A tradução foi feita pela Redação iMasters com autorização e você pode conferir o original em: https://blog.jelastic.com/2017/08/31/auto-scalable-magento-cluster-in-containers/