Como construir aplicativos da nuvem da maneira correta

Como construir aplicativos da nuvem da maneira correta
Author

Bernard Golden

Last updated August 17, 2017


  • 694 Views

Não há como negar que a computação em nuvem atingiu um ponto de inflexão. No futuro, novos aplicativos terão como alvo os ambientes de nuvem como a opção de implantação preferencial.

Isso levanta alguns problemas:

  • Suas aplicações são adequadas para a nuvem?
  • Eles oferecerão alta disponibilidade?
  • Eles respondem bem a cargas de trabalho erráticas e populações de usuários?

Todas essas questões abordam a questão subjacente de se as arquiteturas de aplicativos tradicionais operam efetivamente na nuvem ou não e precisam ser modificadas à luz de como os ambientes de nuvem operam?

A resposta simples é não, as arquiteturas de aplicativos tradicionais não operam efetivamente na nuvem e, sim, precisam ser modificadas.

Por que isso e o que você deve fazer para criar aplicativos em nuvem da maneira certa?

Aqui estão quatro recomendações para criar aplicativos em nuvem da maneira certa.

1. Compreenda a infraestrutura

A primeira e mais importante coisa a ser entendida sobre aplicativos em nuvem é a natureza da infraestrutura em nuvem.

A AWS notoriamente proclama que “ tudo falha o tempo todo ”. Isso significa que, diferentemente da infraestrutura tradicional, que é considerada robusta e à prova de falhas (embora, na verdade, falha frequentemente), ao usar a infraestrutura de nuvem, os desenvolvedores de aplicativos devem assumir recursos pode falhar.

As razões para a falha podem variar, desde interrupções de rede, queda de servidores ou até mesmo serviços da AWS se tornando indisponíveis.

O ponto é que, ao planejar um aplicativo em nuvem, deve-se esperar que alguns recursos do aplicativo falharão inesperadamente. Consequentemente, é crítico para isolar o aplicativo da falha subjacente.

Como você faz isso?

2. Design para falha

Claramente, o caminho certo para abordar essa questão de falha de infra-estrutura é reconhecer que isso acontecerá. Em vez de tratar o fracasso como uma surpresa e, em seguida, ficar bravo porque o aplicativo residente nele também falha - o padrão com a infraestrutura tradicional - deve-se projetar aplicativos para que sejam resilientes em caso de falha.

O que isso significa?

A melhor maneira de lidar com infraestrutura não confiável é projetar com redundância. Certifique-se de que cada parte operacional do aplicativo seja executada em pelo menos uma topologia emparelhada: Dois servidores da Web; duas camadas lógicas de aplicação; servidores de banco de dados espelhados.

Em seguida, disperse as partes redundantes do aplicativo. Coloque-os em diferentes data centers. Ou mesmo em diferentes regiões. Coloque-os de tal forma que mesmo uma queda de energia significativa não diminua toda a aplicação.

Não há dúvida de que isso torna o design do aplicativo mais complexo e o desenvolvimento e as operações mais funcionam, mas protege o aplicativo contra falhas de infra-estrutura. E no mundo atual, onde os aplicativos costumam ser a principal interface para os clientes, o tempo de atividade do aplicativo não é muito bom, é um requisito.

3. Espere variação de carga

Agora que os aplicativos são a principal interface do cliente, os dias de populações de usuários previsíveis associados a aplicativos focados no funcionário desapareceram. Deve-se esperar cargas erráticas, tanto porque a contagem de clientes inevitavelmente cresce (espera-se), mas também porque o uso do cliente pode variar de acordo com o capricho da hora.

Alguma celebridade mencionou aos seus 3 milhões de seguidores no Twitter que ela apenas remortgaged sua casa? Se você é uma instituição financeira, pode esperar um enorme fluxo de tráfego, pois as pessoas acham que devem considerar o refinanciamento.

Você começa a deriva. Cargas de trabalho na nuvem são altamente erráticas e seu aplicativo deve estar pronto para lidar com eles.

Você já tem redundância no lugar, certo? A próxima etapa é projetar seu aplicativo para que os recursos de aplicativo adicionais possam ingressar e abandonar o conjunto de recursos em execução.

Portanto, você deve poder adicionar três (ou 30) servidores da Web ao par redundante que você está executando para lidar com o tráfego direcionado por celebridades.

4. Aproveite os serviços em nuvem

Um grande erro que as organizações de TI cometem é pensar na computação em nuvem como pura infraestrutura de computação. Com frequência, você verá grupos de TI falando sobre a adoção de IaaS para aliviar a pressão interna do data center ou o uso de máquinas virtuais em nuvem para operar aplicativos.

Isso pressupõe que, para todo o software executado no aplicativo, a organização de TI irá instalá-lo, configurá-lo e gerenciá-lo. Precisa de um banco de dados? Bem, o DBA irá instalar o MySQL, configurá-lo, conectá-lo ao armazenamento e, em seguida, um grupo de operações assumirá a responsabilidade de manter o sistema MySQL em funcionamento.

Essa abordagem ignora completamente a realidade de que todos os provedores de nuvem da AAG criaram serviços avançados além de suas ofertas de IaaS.

Todos eles oferecem serviços de banco de dados gerenciados. Na verdade, a AWS apenas enriqueceu seu serviço DynamoDB de chave / valor (um serviço gerenciado) colocando o cache na frente dele (outro serviço gerenciado) para melhorar o desempenho. A Microsoft acaba de lançar o CosmoDB , um serviço inovador de banco de dados e documentos combinados de chave / valor. E, claro, o Google lançou o Spanner , um banco de dados SQL global altamente consistente e de alto desempenho.

Tipo de coloca sua instalação do MySQL para vergonha, hein? (Não se preocupe, todos eles oferecem um serviço gerenciado MySQL, se essa é a sua fantasia).

E esta é apenas uma categoria. Eles gerenciaram sistemas de IoT, data warehouses, aprendizado de máquina.

É essencial estender seu pensamento além da “nuvem como infraestrutura” para reconhecer que é realmente “nuvem como capacidade de computação” oferecida de várias formas diferentes.

Conclusão

Construir aplicativos em nuvem da maneira certa não é trivial. Requer conhecimento, persistência e disposição para descartar suposições antigas.

O que isso torna possível, por sua vez, é a capacidade de criar aplicações muito mais poderosas que são muito melhores do que suas contrapartes tradicionais.

About the Author

Bernard Golden is the CEO of Navica & serves as advisor for CIO magazine. As the author of 4 books on virtualization and cloud computing, Bernard is a highly-regarded speaker and has keynoted cloud conferences around the world. Bernard is also among the ten most influential persons in cloud computing according to Wired.com

Recommended articles for you

What a Day in the Life of an AWS Solutions Architect Looks L...

Article

Top AWS Solution Architect Job Interview Questions and Answe...

Article

New Changes to AWS Certification Exam Focus on Architecting...

Article