This post is sponsored by VMware. Learn about VMware virtualization and cloud solutions for small & mid-size business visit info.vmware.com



This article is available in other languages:

Germany Virtualização vs Nuvem: Como decidir?France Virtualização vs Nuvem: Como decidir?China Virtualização vs Nuvem: Como decidir?Netherlands Virtualização vs Nuvem: Como decidir?England Virtualização vs Nuvem: Como decidir?Portugal Virtualização vs Nuvem: Como decidir?

Imagine que está no comando da tecnologia para uma nova web startup quente. Progrediu para lá do seu produto mínimo viável, teve grande sucesso na sua versão beta privada, e agora precisa de criar o ambiente de produção onde o aplicativo será implantado que irá satisfazer os seus milhões de clientes hipotéticos.

O meu palpite é que imediatamente pensou em “implantar esse aplicativo na nuvem”. Nuvem de hospedagem de comodidade tem recebido muita atenção da imprensa ao longo dos últimos anos, de modo que seria perdoado por pensar que é a única opção sensata estes dias.

Mas eu quero falar sobre a implantação da sua própria “nuvem privada” através da construção de um ambiente virtualizado por cima de hardware comprado ou alugado num simples datacenter convencional, e por que é que pode ser a opção certa para sua aplicação.

Eu não quero dar a impressão de que eu sou contra a nuvem de hospedagem de comodidade em geral. A startup para a qual eu trabalho agora, uma rede social para cinéfilos, está hospedada numa nuvem pública.

Antes de co-fundar esta empresa, eu era encarregado de tecnologia para um hospedeiro de um mercado online. O nosso produto mais popular era um modelo de site de mercado, mas quando saímos estávamos a hospedar nove mercados diferentes fora do mesmo código e ambiente de hospedagem.

Com a startup de mercado, nós até fomos contra a tendência, tirando a nossa aplicação da nuvem para um ambiente (principalmente) virtualizado em hardware físico sob o nosso controle. Então, eu quero comparar estas duas decisões, e espero ajudá-lo a identificar se a sua aplicação poderia ser mais adequada à implantação na sua nuvem privada.

Um ambiente virtualizado é obrigatório

Quer vá para a nuvem, ou inaugure o seu próprio ambiente virtualizado, de uma forma ou de outra, deveria estar a implantar em servidores virtuais. Para mim, há dois principais benefícios da hospedagem virtualizada sem os quais eu não posso viver.

O primeiro é que ele transforma versões de aplicativos de servidor (ou reconstrói) num problema de software. A melhor práctica comum em operações web é reconstruir, em vez de reparar ou modificar os seus servidores. Uma boa parte da complexidade na gestão de um grupo de servidores está no acréscimo de pequenas alterações à configuração do servidor ao longo do tempo, especialmente se eles são aplicados à mão.

No passado, precisava de um grande orçamento para ter os servidores extra disponíveis para que pudesse construir o seu novo banco de dados, ligá-lo, mudar o antigo, e reconstruir esse. Agora pode simplesmente criar um “servidor” novo em questão de minutos, aplicar a sua configuração e acabar com alguns cliques ou scripts shell.

O segundo é que ele permite que faça planeamento de capacidade “Mesmo A Tempo”. Desde que a capacidade física subjacente esteja presente (algo para vigiar quer vá pela nuvem pública ou privada), pode criar novos servidores de qualquer especificações que precise, quando precisar.

Então vamos supor que está de acordo, os servidores virtuais são uma boa idéia. Agora vai para a nuvem ou lançar os seus próprios?

As principais diferenças entre nuvem e ambientes virtualizados

A nuvem de hospedagem pública dá-lhe benefícios imediatos nas áreas de custos iniciais e flexibilidade, ao custo de menor desempenho bruto, altas taxas de instâncias de falhas individuais, e o risco de que tenha um ou dois maus vizinhos no ambiente compartilhado.

Executar o seu próprio ambiente virtualizado envolve um maior custo inicial, e a necessidade de gerenciar o hardware subjacente (ou encontrar alguém para fazer isso por si). Mas, em troca, obtém um desempenho mais previsível, maior instância de disponibilidade individual e controle total sobre seu ambiente.

Como é que o seu negócio cresce?

A primeira coisa para a qual eu olho ao tomar esta decisão é “como é que este negócio vai crescer?”.
Antes de qualquer outra consideração técnica, é preciso lembrar que a sua instalação de produção é um sistema para transformar dólares em tráfego na web. Está a procurar o melhor valor a curto prazo e a longo prazo, tendo em conta não apenas o dinheiro que gasta com hardware, mas o custo de oportunidade em tempo de engenharia a trabalhar nessa pilha.

Para a rede de espectadores, não tínhamos a certeza de quando íamos começar a tracção. Iniciar os servidores de leasing imediatamente significaria gastar dinheiro desnecessariamente cedo. Flexibilidade superou todas as outras preocupações para nós. Em troca, nós sacrificamos algum desempenho e alguma disponibilidade. Para esta fase do negócio, estamos felizes com isso.

Para a startup de mercado, a situação era completamente diferente. O nosso produto estabilizou-se, mas muito do nosso crescimento ainda estava para vir. Crescimento da receita estava muito previsivelmente ligado ao crescimento do tráfego, e depois de alguns anos de actividade, compreendemos como o tráfego mudava sazonalmente.

Com um ambiente dedicado virtualizado, pudémos manter a flexibilidade ao nível micro que tínhamos numa nuvem pública podendo ao mesmo tempo ter um “plano mestre” a nível macro, que nos deu vantagens de custo significativas.

O que significa desempenho e disponibilidade para o seu negócio?

Pergunte ao seu CEO, e ele provavelmente lhe dirá “eu quero cinco noves de disponibilidade e ter o site mais rápido no nosso segmento de mercado”. Diga-lhe o quanto isso lhe vai custar, e é provável que obtenha uma resposta mais matizada.

Como mencionado acima, para a nossa rede social, flexibilidade acima de tudo. Estamos a receber desempenho perfeitamente aceitável e tempo de actividade comparável com os nossos concorrentes mais próximos, e estamos felizes com isso.

Para a empresa de mercado, a situação era muito mais complexa. Os mercados são para os criadores de conteúdo digital venderem os seus produtos a quem quiser comprá-los. Isto significava que tínhamos todos os requisitos normais de um aplicativo de e-commerce, combinados com a necessidade de desempenho IO alta (por causa de todos os grandes bens digitais com que estávamos a lidar – temas web, vídeos, fotos, modelos de design, etc)

Na frente de E-commerce, o desempenho para o usuário final é muito importante. Ao mesmo tempo que a concorrência no seu mercado sobe, cresce também a importância do seu desempenho front-end. Disponibilidade também é extremamente importante, cada minuto que o site nāo está ligado representa dinheiro que não está a ganhar.

Devido à forma como as instâncias e, por vezes zonas de disponibilidade inteiras falham, precisa de arquitectar a sua maneira de contornar esses problemas na nuvem. Netflix faz um excelente trabalho nisto. Os artigos da empresa sobre arquitectura para a nuvem são o padrão ouro sobre o assunto.

O problema da nossa empresa de mercado era de que estávamos fortemente limitados em recursos de engenharia. Em vez de mudar a natureza do nosso aplicativo para se adapter à nuvem, tivemos que mudar a natureza da nossa nuvem para se adaptar ao nosso aplicativo.

Por termos controle total sobre o que passava pelas nossas redes, tivemos um desempenho muito mais previsível. Fomos capazes de personalizar o nosso armazenamento de arquivos subjacente para nos dar o melhor desempenho IO para a nossa carga de trabalho específica. Quando os nossos bancos de dados tiveram maiores necessidades de desempenho do que os nossos servidores virtuais podiam segurar, mudamo-los para simples servidores de metal, e estacionamo-los bem ao lado do nosso ambiente virtual, que manteve baixa latência. Como tínhamos o controle total das máquinas subjacentes, nós sabíamos que o risco de falha de instância era baixa, e manutenção da disponibilidade era simplificada.

Tudo o que tivemos que fazer para conseguir isto tudo foi gastar um pouco mais no princípio (e pagou-se a si próprio ao longo do tempo), e ter a certeza de que continuamos a adicionar caixas físicas ao grupo rapidamente o suficiente para que tivéssemos a capacidade de adicionar novos servidores virtuais sempre que quisessemos.

Conclusão

De uma forma ou de outra, a virtualização deve ser uma parte do seu próximo stack de produção, quer esteja agora a construir uma nova aplicação ou a migrar uma já existente.

Se o seu tráfego futuro é incerto – este pode ir para cima e para baixo de forma dramática, certamente considere nuvem de hospedagem de comodidade.

Se tem um perfil de carga mais previsível, tem desempenho específico ou necessidade de disponibilidade, ou um pouco de excesso de controle, deve definitivamente considerar a criação da sua própria nuvem privada.