Como usar uma nuvem para hospedar sites?

1

Para hospedar sites da web atualmente, estamos usando caixas dedicadas de linux hospedadas no Reino Unido. Mas gerenciá-los é um pesadelo, backups, cargas massivas, tempo de inatividade, etc ...

Eu estava olhando para o OpenStack, que foi desenvolvido pelo RackSpace. Seria possível usar uma plataforma de nuvem que hospedamos em nossos servidores para hospedar sites?

Entendo que a plataforma de nuvem permite expandir sua infraestrutura, exatamente o que precisamos. Mas como podemos usá-lo para executar o MySQL e o Apache? Para sites principalmente Wordpress?

Edit: Os sites são apenas sites normais do Wordpress usando uma pilha LAMP padrão.

    
por David Maitland 03.10.2011 / 14:26

3 respostas

4

A maioria dos provedores 'cloud' fornece IaaS. Isso significa que você obtém um conjunto de máquinas virtuais que você pode gerenciar livremente. Em suma, estes são apenas serviços VPS, com a facilidade adicional de uma API para criar novos servidores quando você quiser. Às vezes, você pode vincular essa API a algumas métricas simples (carga da CPU, tráfego etc.), facilitando-a um pouco.

Mas não é mágica. Isso não tornará seu site escalável sem o trabalho de sua parte. O que você precisa fazer é projetar seu sistema para que você possa adicionar mais máquinas (similares) para distribuir a carga e que ela possa sobreviver à perda de algumas dessas máquinas.

Os primeiros passos são:

  • um aplicativo da web 'nada compartilhado': garanta que todas as páginas estejam o menos apátridas possível. Qualquer persistência entre solicitações HTTP deve ser armazenada não localmente. Inicialmente, isso significa que tudo "crítico" deve ir para um banco de dados e qualquer coisa não crítica para algo como o memcached.

  • um balanceador de carga, distribuidor tolerante a falhas. Seja fornecido pela hospedagem ou pelo seu próprio (HAProxy, verniz, NginX) sendo executado na frente de seus aplicativos (certifique-se de torná-lo redundante também).

  • um banco de dados replicado. por exemplo, o MySQL em um mecanismo mestre / escravo e algum failover que migra um número IP 'flutuante' para o escravo se o mestre falhar. ou um mestre / mestre, que também pode fornecer uma taxa de transferência extra às custas da latência. A Amazon também oferece um banco de dados compatível com o MySQL, com toda a redundância que você provavelmente precisará. Ou vá a algo completamente diferente, como riak, cassandra ... na verdade, essa é a parte mais difícil; mas apenas replicar o MySQL em duas instâncias maiores é um longo caminho; especialmente se você for esperto na camada de cache.

por 03.10.2011 / 16:05
1

Parece que o que você está procurando é Plataforma como um serviço , ou PaaS. Com PaaS, o provedor cuida de todos os detalhes operacionais. A implantação de seu aplicativo pode ser tão simples quanto fornecer ao provedor uma URL para o seu repositório de código-fonte.

Alguns que suportam PHP são

Aqui é uma comparação dos três produtos, escritos pelos desenvolvedores de cada um.

    
por 04.10.2011 / 00:39
0

Você pode fazer algumas coisas na nuvem. Entrarei em detalhes sobre o que meu provedor suporta. Eu uso o Linode ( link ) que tem seis data centers em todo o mundo (incluindo um em Londres). Eles são ótimos, com preços razoáveis, têm um grande conjunto de recursos e são muito rápidos no tempo de resposta do ticket de suporte. Um "Linode" é uma máquina virtual que você compra (sua terminologia).

A infraestrutura baseada em nuvem do Linode oferece suporte ao provisionamento e desprovisionamento de "Linodes" on the fly. Isso significa que se você precisar de uma máquina para brincar com uma hora / dia / semana / mês / ano, pagará apenas pelo que usa.

O Linode suporta os chamados StackScripts, que permitem automatizar o processo pelo qual você pode provisionar um servidor. Eu não sei os detalhes, mas AFAIk você pode especificar o sistema operacional, layout de disco, swap em arquivos de configuração, etc.

O Linode também possui uma extensa API para faturamento, provisionamento, etc.

O Linode também suporta o balanceamento de carga na forma de um NodeBalancer.

Esses quatro recursos vinculados podem permitir que você configure algo como o seguinte:

Você tem um Linode para Web "coisas" como Apache / PHP e um Linode para MySQL. Se você tiver tudo configurado corretamente, poderá ter scripts que monitoram o uso de recursos em suas máquinas e automaticamente compram, provisionam, inicializam e adicionam ao seu cluster MySQL ou NodeBalancer automaticamente. Isso significa que, se você receber um grande aumento no tráfego (digamos, você é slashdotted), você será dimensionado automaticamente para o que for necessário para atender aos requisitos de tráfego / processamento / largura de banda / qualquer necessidade. Você teria um cluster MySQL replicando e mantendo muitos servidores MySQL em sincronia, então você teria um monte de servidores web balanceando a carga do PHP.

O Linode também oferece um pouco de redundância no que diz respeito a failover de IP, bem como pooling de largura de banda, IPv6, etc. Eu também gostaria de dizer que não sou afiliado da Linode, apenas um cliente feliz. / p>     

por 04.10.2011 / 00:04