Com a explosão das Startups de tecnologia no Brasil brigando por um lugar ao sol, muitos optaram por adotar uma infra-estrutura 100% baseada em Cloud Computing para hospedar seus serviços. Para muitos dos projetos baseados no famoso e consolidado LAMP (Linux + Apache + Mysql + PHP) e suas variantes, um único e modesto servidor pode ser suficiente.

Mas quando seu projeto necessita de um banco de dados dedicado, balanceadores de carga, servidores web, serviços de mensageria, websockets, APIs, workers, servidores de busca, armazenamento de arquivos, etc, o que fazer? Rodar tudo na nuvem? O custo para deixar o serviço rodando pode ficar astronômico!

Vamos analisar o seguinte cenário de uma rede social fictícia:

hibrid-infra1

Na proposta acima, o serviço é utilizado via aplicativo móvel e também via página web. As requisições chegam no load-balancer que encaminha para o servidor correspondente, de acordo com o serviço. No aplicativo móvel, o usuário tem acesso ao chat (websockets), postagens de texto (API) e conteúdo multimídia (www). Na aplicação web, o usuário tem acesso aos mesmos recursos do aplicativo móvel, porém o front-end é provido pelo servidor web (www).

Digamos que estes servidores tenham as seguintes especificações:

  • Load Balancer, www, api, websockets, message broker (2 vcpu, 4gb ram, 20gb disco) *cada servidor
  • File Server/Storage (4 vcpu, 16gb ram, 1tb disco)
  • Database (4 vcpu, 8gb ram, 300gb disco)
  • Worker X, Worker Y, Worker Z (1 vcpu, 1gb ram, 10gb disco) *cada servidor
  • Key-Value In-Memory Storage (8 vcpu, 16gb ram, 30gb disco)

Para simplificar o artigo, vou utilizar a Amazon AWS neste exemplo por escolha pessoal, sem entrar em méritos de melhor ou pior. Levando como base ao pé da letra, se fossemos rodar essa aplicação na forma como descrita na arquitetura, chegariamos no seguinte cálculo básico:

calc1

 

 

Screen Shot 2015-10-30 at 11.27.08

Screen Shot 2015-10-30 at 11.21.36

Somente de serviços, sem contabilizar IOF e demais taxas do cartão, sem levar em consideração o tráfego excedente e possíveis contra-tempos resultamos no valor de R$6.624,76 por mês. Uma verdadeira fortuna para quem está começando um negócio e não dispõe de muito cash para o começo. A brincadeira vai longe…

Obviamente em se tratando de AWS, esta não seria a melhor configuração, pois temos a possibilidade de rodar alguns destes serviços em produtos como S3, RDS, DynamoDB caso você utilize tecnologias suportadas.

Reduzir o número de servidores dedicados por menos máquinas mais potentes, executar automações para instanciar serviços em horários de pico, e “enxugar” a arquitetura pode contribuir para a redução de custos, mas quando toda sua infra-estrutura roda na nuvem e você paga em dólar…como faz?

Segue a cotação do dólar americano no último ano (30/10/2014 – 30/10/2015)

Screen Shot 2015-10-30 at 11.54.34

No dia 30/10/2014 a cotação do dólar estava a exatos R$2,40. 

Hoje, dia 30/10/2015 estamos na casa dos R$3,85.

Se você rodava sua infra na nuvem desde o ano passado e precisou escalar o hardware devido ao crescimento do seu negócio, deve ter sentido no bolso a “mascada”.

Como podemos contornar a crise e deixar de depender tanto do dólar?

A resposta é: Rodando seus próprios serviços em suas próprias máquinas!

A idéia foi semeada, na continuação deste artigo vou mostrar na prática como executar uma implementação distribuída. Espero que tenham curtido o assunto!

 

About the author
Leave Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

clear formSubmit