Seu produto está preparado para a nuvem?

Essa é uma pergunta que não é feita por muitas pessoas, então estou aqui para colocar uma pulga atrás de sua orelha. Leia o post e veja se seu produto está preparado para a nuvem e confira algumas dicas para tornar seu software “escalável”.

[wp_ad_camp_3]

O que é a nuvem?

Em computação, computação em nuvem (cloud computing, do inglês) se refere á uma utilização de memória e capacidade de armazenamento e processamento de computadores e servidores interligados pela internet.

E meu produto precisa estar preparado?

Sim! Algo muito bom na nuvem é que você pode “escalar” o uso de seus recursos computacionais. Hoje existe duas maneiras para se fazer a escalabilidade, são elas a escalabilidade vertical, e a horizontal.

[wp_ad_camp_1]

A escalabilidade vertical trata-se de elevar os recursos de seu servidor, um exemplo disso é você possuir um servidor com 4 núcleos de processamento e eles não darem conta de uma grande demanda, então se faz necessário fazer um upgrade aumentando os recursos da máquina, mas vai chegar um dia que nem o mais potente dos computadores vai aguentar essa malha de processamento.

Já a escalabilidade horizontal veio para resolver esse tipo de problema. A sua proposta é de escalar mais servidores para dividir o processamento, ou seja, você pode ter quantos servidores for necessário e eles são adicionados e removidos de acordo com a demanda.

Resumindo: Se você possui um e-commerce hoje e ele não gera muito processamento, pode ser que por algum motivo específicos (uma promoção, uma blackfriday) uma grande malha de acessos pode vir a aparecer e se a sua infra-estrutura não for escalável seu serviço vai ficar indisponível.

Como preparo meu produto?

Existem vários fatores e eles estão na área de desenvolvimento do seu produto. O investimento para desenvolver um produto escalável e preparado para a nuvem pode parecer alto, mas o retorno compensa.

[wp_ad_camp_2]

Mas vamos falar um pouco mais sobre isso em outros posts, enquanto isso deixo aqui algumas dicas:

  1. Não guarde os arquivos enviados (upload’s) no seu servidor de aplicação, lembre-se pode haver um servidor hoje, 300 amanhã e 10 depois de amanhã. Essas máquinas servem para processar, não para armazenar! Para isso use servidores de arquivos compartilhados, ou serviços como o Amazon S3.
  2. Não guarde sessão localmente, a requisição de um usuário autenticado em sua máquina de aplicação 1 pode cair na maquina de aplicação 2 em algum momento. Procure armazenar as sessões no banco de dados ou em uma solução própria para isso.
  3. Lembre-se o cache pode ser seu inimigo na hora de desenvolver, mas é muito importante para redução de custos e para fornecer maior velocidade para o usuário. Então desenvolva seu produto, projetando um modelo de cache.
  4. Use soluções de PaaS para seu banco de dados. Você só precisa seguir a instruções do serviço e apontar para os servidores de banco dados.
  5. Não execute processos pesados em foreground, crie filas para ele e libere as conexões. O máximo que vai acontecer é demorar para a operação ser concluída, porém isso nunca vai deixar alguém que esteja esperando uma operação mais simples, esperando… Um bom exemplo de empresa que faz isso é o facebook, quando você faz o post de um vídeo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *