loader

Construa um ambiente PHP à prova de bomba nuclear

Construir um ambiente PHP que ofereça total segurança é algo que pode levar tempo e dinheiro, ainda mais quando se começa do zero e precisa das ferramentas certas para garantir uma melhora nos desempenhos do seu projeto. Mas o que poucos sabem é que a migração de um servidor local para a nuvem pode ser um grande passo em relação a essa mudança

Para que haja um melhor entendimento a respeito do assunto, perguntamos aos Especialistas em Soluções Cloud, Daniel Guidolin e Fábio Vieira, alguns dos pontos cruciais para montar um ambiente escalável de alta disponibilidade PHP, e como os diferenciais presentes na nossa plataforma tem contribuído para uma melhoria significativa, além de proporcionar uma redução considerável nos custos relacionados.

Essa é uma necessidade que vem de muitos clientes. A comunidade PHP é muito grande aí no Brasil e no mundo, e muitas pessoas vêem ainda uma modelagem um pouco mais antiga, e quando o negócio escala começam a vir os problemas de  instabilidade, alguns Picos, inclusive, de uso que uma aplicação tenha gera problemas de lentidão e de instabilidade”, relata Fábio.

Confira também: Cloud PHP da SaveinCloud

Ambiente escalável e de alta disponibilidade em PHP

Conforme os apontamentos realizados por Fábio, a melhor sugestão seria tornar a aplicação baseada em camadas, como por exemplo, separando o servidor de balanceamento de carga, o servidor de aplicação PHP e o servidor de banco de dados separado de arquivos, criando uma modelagem conhecida como microsserviços, que faz com que elas se comuniquem entre si. O maior problema de colocá-las juntas em um único servidor é que pode fazer com que os serviços disputem entre si por recursos de máquina, o que dificulta a estruturação da escalabilidade.

Para que seja possível tornar sua escalação em alta disponibilidade, são necessárias pelo menos duas zonas de disponibilidades separadas entre si. “Basicamente é ter a estrutura desenhada em dois data Centers físicos separadamente. Então você consegue muitas vezes escalar em máquinas em hardwares separados no mesmo data center… mas o ideal, se for mesmo a prova de bomba, seria estar em ambientes em zonas de faculdade separadas, ou seja, montar isso em dois ou mais Data Centers fisicamente separados”, afirma o especialista.

Confira também: Escalabilidade e Alta Disponibilidade no PHP com NGINX

Camadas que viabilizam o projeto

As camadas em arquitetura viabilizam a organização de um sistema de conjunto fragmentado em diferentes serviços, propiciando um modelo de desenvolvimento incremental. O primeiro ponto fundamental a ser levado em consideração é a camada de DNS, responsável por alterar a forma de acesso dos recursos que utilizam o endereço de rede do servidor.

Fábio destaca que para o exemplo foi utilizado o CloudFlare, uma vez que dentre as demais concorrentes é a que entrega mais em termos de custo, confiabilidade e robustez. “Nós vamos usar como exemplo o CloudFlare que, na minha opinião é um serviço Global muito robusto que te traz diversas vantagens a um preço bem competitivo… existem contas gratuitas que te dão bastante poder ali de ter um DNS redundante, diversas funcionalidades, e dentro desse desse plano gratuito você tem um adicional de cinco dólares por mês para fazer o balanceamento de carga e o failover”, salienta o profissional. 

Seguindo o exemplo montado pelos profissionais, outra camada importante é a camada de balanceamento de carga, responsável pela melhora da disponibilidade e escalabilidade, uma vez que controla e direciona o tráfego entre servidores e seus visitantes/clientes. 

php cloud

Quando o usuário bate no load balancer um ou dois, a princípio ele distribui a carga para o usuários – quem faz essa distribuição é um CloudFlare – desde que as duas zonas de disponibilidade estejam disponíveis. No momento que uma delas esteja disponível, vamos supor que o Nordeste caiu aqui, o CloudFlare consegue entender isso e direcionar toda a carga de acesso para a estrutura em São Paulo”, salienta Fábio.

A replicação é a camada que mais se aproxima do usuário, pois serve como o limiar para o sistema ou rede. Ela oferece um conjunto de funções que serão utilizadas pelo aplicativo para a realização de tarefas diversas. “A camada o Balancer de São Paulo distribui essas aquisições entre as aplicações em São Paulo e o de Fortaleza, então eles ficam numa segunda camada aqui. Lembrando que o load balancer que já está em São Paulo também testa a disponibilidade entre as instâncias de aplicação aqui no nosso. Por exemplo, a gente vai construir duas instâncias de aplicação em São Paulo e duas em Fortaleza. Então o que acontece se o server um de São Paulo caí? O balancer consegue reconhecer essa queda e manteria funcionando desde que o server 2 estivesse em funcionamento, consequentemente o balancer de cada região também tem o failover dele e identifica se há alguma falha entre essas camadas de aplicação”, resume o especialista. 

Por fim, a camada de storage é o sistema voltado para o armazenamento de dados, que permite mapear pastas e uploads de imagens, entre outros. Fábio pontua que é possível replicá-las entre as regiões, permitindo que todas as camadas de aplicação enxerguem os mesmos arquivos.

Como conciliar uma infra robusta com menor custo

Quando se trata de valores, obter alta disponibilidade para sua aplicação pode demandar custos elevados. No caso de qualquer contratação, paga-se por recursos computacionais, e o que determinará o valor a ser pago é a quantidade de recursos necessários para suprir suas necessidades. Contudo, a empresa escolhida para contratação pode ser um fator determinante para a variação desses valores. 

Antes de mais nada, é importante haver uma dimensão dos recursos necessários que ajude a entender o consumo de cada uma das camadas. Assim sendo, um bom exemplo a ser considerado é a questão das camadas de balancer e replicação em storage apresentarem uso de recursos flutuante. Tendo tal ideia como base, a possibilidade de investir em uma licença do Lightspeed pode ser uma opção viável, em vista de que a solução apresenta baixa latência e ajuda a reduzir o consumo de CPU e memória, gerando economia no custo de infra .

O comportamento diferente do banco de dados em relação ao Servidor Web e o balancer também deve ser levado em consideração. Por consumir maior quantidade de memória para performar melhor e o CPU e disco que os demais, optar por fazer a melhor configuração possível para que não falte recursos computacionais mas também não sobre a ponto de serem desperdiçados é a solução ideal.

Como conseguir essa versatilidade para sua aplicação? Muito simples. A SaveinCloud oferece um formato de cobrança que é um diferencial no mercado de trabalho. Com ele você gera maior economia sem precisar abrir mão do recurso computacional. O modelo billing permite que você pague proporcionalmente pelo consumo, sem sofrimento com estabilidade e diminuindo consideravelmente os custos pelo uso

Construindo uma infraestrutura robusta para PHP

Construir uma infra do zero em nossa plataforma pode ser mais simples do que você imagina. Para comprovar esse argumento, o Diretor de Tecnologia da SaveinCloud e especialista em soluções Cloud, Daniel Guidolin, contribuiu com seus conhecimentos e preparou pessoalmente um conteúdo com todo o processo de criação do ambiente, além de realizar diversos testes que comprovam as vantagens de estar na Nuvem. Você pode conferir a demonstração completa clicando no vídeo a seguir:

Gostou? Conheça nossa plataforma e experimente a tecnologia ideal para o seu projeto. Teste grátis por 14 dias!