É hora de pensar em soluções portáveis na Cloud!
por Isaac Souza (Autor Convidado)


Postado em 18/05/2017



A Cloud é uma realidade e hoje não há mais dúvidas com relação a capacidade de manter serviços e empresas no ar sem a necessidade de que estas invistam tempo e dinheiro na construção de “sua própria infraestrutura”.

O sucesso e evolução deste modelo tem feito surgir todos os anos no mercado novos provedores de Cloud que inovam e oferecem aos clientes serviços e recursos diferenciados para que estes clientes se fidelizem e consumam sua infraestrutura por grande tempo.

Com tantas Clouds, cito rapidamente algumas (IaaS, PaaS): Amazon WS, Azure, Google Cloud, Oracle Cloud, Digital Ocean, Heroku, OpenShift, IBM Cloud (Bluemix), HP (Stackato), dentre tantas outras… as perguntas que surgem agora são:

Qual melhor provedor? Qual mais barato? Qual é mais estável e seguro? Enfim, qual provedor escolher?

A resposta não é tão simples e chegar a conclusão demanda uma análise muitas vezes complexa que acaba tomando dos times de TI um tempo e conhecimento aos quais justamente os times desejam evitar ao optar por irem para a Cloud.

Mas como é preciso colocar a solução no ar, uma escolha será feita, porém uma surpresa pode ocorrer pouco tempo depois, ao escolher uma Cloud você provavelmente se amarrará a ela e se surgir uma alternativa melhor no mercado você não conseguirá migrar facilmente para essa nova opção.

Chegamos então ao ponto que é necessário pensar em soluções portáveis no mundo Cloud, ao velho estilo MultiPlataforma!

Assim como já precisamos pensar no passado no modelo MultiPlataforma para Sistemas Operacionais, para Browsers, para aparelhos celulares, agora a chegou a hora de pensar assim para a Cloud. MultiPlataforma é um conceito antigo mas que a cada nova geração de tecnologias ganha novos membros, pois inevitávelmente precisamos pensar em portabilidade de nossas soluções.

Agora precisamos então nos preocupar com questões como: forma de fazer build, forma de empacotar minha solução, forma de publicar e fazer deploy e ainda eventos como: pré e pós build, pré e pós deploy, dentre outros. Há ainda coisas como Health Checks, agendamento de processos, integração com outros serviços como banco de dados, serviços de mensageria, servidores de cache, etc.

São bastante coisas, então ser portável a vários provedores de Cloud não é tão simples, principalmente porque cada provedor acaba criando a sua forma de trabalhar com todos os assuntos citados.

Mas como no mundo da TI nada é impossível, há sim como tentar ficar agnóstico a tudo isso. Técnicas e ferramentas vêm surgindo no mercado e elas possibilitam com que suas soluções sejam mais independentes e possam rodar na maioria das Clouds existentes.

No mundo das técnicas, destaca-se o “The Twelve-Facor App”, que agrupa um conjunto de 12 fatores que podem ser aplicados no desenvolvimento da sua solução. Aplicando-os você certamente estará muito mais portável a qualquer Cloud e isso permitirá você escolher com mais tranquilidade e maturidade qual Cloud irá usar, incluindo trocar entre várias se encontrar melhores. Abaixo segue os doze fatores que estão detalhados no site 12factor.net:

  • I. Base de Código
  • II. Dependências
  • III. Configurações
  • IV. Serviços de Apoio
  • V. Build, release, run
  • VI. Processos
  • VII. Vínculo de porta
  • VIII. Concorrência
  • IX. Descartabilidade
  • X. Dev/prod semelhantes
  • XI. Logs
  • XII. Processos de Admin

Já na área das ferramentas que podem tornar você mais portável, destaca-se o Docker, ferramenta que ganhou grande espaço nos últimos anos e permite encapsular sua solução em um Container junto com todas suas dependências e então enviar esse container para a Cloud desejada. Cada container é executado de forma isolada e permite que sua solução seja facilmente colocada ou retirada do ar.

Atualmente as Clouds tem se adaptado rapidamente para dar suporte à deploy de Containers Docker e isso tem possibilitado um avanço significativo com relação a tornar as soluções portáveis.

Na velocidade em que estamos evoluindo certamente há muitas outras técnicas e ferramentas que auxiliam você ter suas soluções portáveis e ser MultiPlataforma no mundo Cloud, o mais importante é ter a consciência e estar atento a esse assunto ao desenvolver suas soluções. Afinal, novas Clouds e melhores preços surgem a todo momento e você vai preferir estar preparado para poder escolher livremente qual Cloud usar.



Para conhecer mais sobre Isaac Souza (Autor Convidado) clique aqui