Como soar como um especialista em nuvem

Publicados: 2022-03-10
Resumo rápido ↬ Fornecer serviços escaláveis ​​e resilientes para uma base de clientes crescente na Internet é muito complexo. No final das contas, é seu trabalho tomar boas decisões sobre como usar seus serviços.

Seu código está escrito e o design parece ótimo. O novo projeto está quase pronto para ser executado quando o cliente pergunta: “Isso deve ser executado na nuvem?”

Você começa a suar frio. A questão é enorme. Regiões e zonas , alta disponibilidade , balanceamento de carga — a nuvem tem sua própria linguagem.

Não se preocupe; você tem isso. Este artigo irá ensiná-lo a tomar decisões inteligentes sobre a nuvem e responder às perguntas sobre a nuvem do seu cliente.

Quatro Grandes Perguntas

Antes que você e seu cliente possam saber que tipo de nuvem você deseja, você precisa discutir quatro questões:

  • Quão complexo é o software que você precisa para executar?
  • Quanto ele precisa para escalar?
  • Qual a importância de nunca cair?
  • Quão rápido ele precisa ser executado para usuários em todo o mundo?

Este artigo fornece o histórico e as informações necessárias para responder a essas perguntas e parecer um especialista em nuvem.

Vamos começar.

  1. O que é uma nuvem?
  2. Por que seu cliente se importa com a nuvem
  3. Como uma nuvem é diferente de um serviço de hospedagem?
  4. Por que as máquinas virtuais são tão importantes
  5. Vamos falar um pouco sobre redes
  6. Os diferentes tipos de nuvens
  7. As peças básicas de uma nuvem
  8. Perguntas que seus clientes provavelmente farão
Mais depois do salto! Continue lendo abaixo ↓

O que é uma nuvem?

Quando falamos de computação em nuvem , queremos dizer realmente a capacidade de alugar um pedaço de um computador de outra pessoa. Isso é tudo o que há para isso.

Empresas como Amazon e Google têm muitos computadores e estão dispostas a alugar partes deles para você. Alugar computadores com eles é econômico porque você não precisa construir seus próprios data centers ou contratar sua própria equipe de especialistas para executá-los.

Quando você aluga uma parte de um computador, precisa que ele pareça um computador inteiro para poder executar qualquer software que desejar. É por isso que os provedores oferecem uma máquina virtual (VM) — software que faz parecer que você está executando em seu próprio computador separado.

Por que seu cliente se importa com a nuvem

Antes de aprender mais sobre a nuvem, é importante entender por que seu cliente se importa. Não vamos descartar o fascínio de chavões; a nuvem está realmente na moda agora. Seu cliente pode estar apenas perguntando porque todas as crianças legais estão fazendo isso, mas há razões pelas quais as crianças legais estão fazendo isso.

Vamos começar com o básico. Hospedar seu próprio data center seria uma dor de cabeça. Você teria que se preocupar com o consumo de energia, manter o hardware atualizado, contratar uma equipe de especialistas para executá-lo e mil outros problemas que nada têm a ver com o seu negócio. O que aconteceria se a energia acabasse, houvesse uma inundação ou o telhado desabasse? Estas são todas as razões para não hospedar seu site em um servidor rodando em sua sala de estar.

Você não apenas pode passar todas as dores de cabeça para outra pessoa, mas fazer com que ela execute o data center oferece três grandes vantagens:

  1. As nuvens são globais .
    Eles existem em data centers em todo o mundo, incluindo um próximo ao seu cliente. Isso significa velocidade . Você não quer clientes na China esperando o carregamento de dados dos Estados Unidos. Quando vou ao Google.com, recebo um data center diferente em Boston do que em Chicago ou LA, e isso é apenas nos EUA. Isso é uma grande parte do que torna possível a velocidade do Google.
  2. As nuvens crescem e encolhem .
    Se compro um servidor, tenho um servidor; mesmo que meu aplicativo não precise de todo o computador, ainda preciso pagar por esse servidor. Quando meu aplicativo fica muito popular, preciso comprar mais servidores rapidamente. A nuvem não funciona assim. Alugar compartilhamentos de servidores significa que posso alterar o quanto estou alugando: posso aumentar o pedido quando estou ocupado e reduzi-lo quando não precisar tanto.
  3. As nuvens nunca descem .
    Nunca diga nunca... mas quase nunca. Os provedores de nuvem falam em “cinco noves” – isso significa estar 99,999% do tempo em atividade (com apenas 5,26 minutos de inatividade por ano). Você pode tornar isso ainda menor com serviços como balanceamento de carga e failover.

Essas são todas as razões pelas quais as nuvens podem ser legais, mas você pode obter algumas delas em um serviço de hospedagem simples. Se o seu cliente está perguntando sobre a nuvem, você precisa saber a diferença.

Como uma nuvem é diferente de um serviço de hospedagem?

Eu tenho um site pessoal em um serviço de hospedagem chamado Media Temple. Meu site roda o WordPress, então precisa de algumas coisas:

  • Um diretório para colocar meus arquivos
  • Um servidor HTTP
  • Um banco de dados
  • PHP

Meu diretório roda em Linux, meu servidor HTTP é Apache, meu banco de dados é MySQL, e tudo roda em PHP; é por isso que eles chamam de pilha LAMP (Linux-Apache-MySQL-PHP). Isso pode soar como um monte de peças, mas elas são limitadas. Por exemplo, não consigo instalar um novo software. Se eu quiser rodar meu banco de dados no PostgreSQL, estou sem sorte. Não consigo executar outras linguagens como Python ou Go; Não consigo escrever meus próprios programas separados. Só recebo um conjunto muito limitado e pré-configurado de coisas que tenho permissão para fazer.

Meu site também só funciona em um servidor em um só lugar. Onde fica esse servidor? Eu não faço ideia. Eu acho que é em algum lugar nos Estados Unidos, mas fora isso eu não sei, e eu realmente não me importo. O provedor de hospedagem me dá um único servidor, eu digito uma URL e meu site aparece (na maioria das vezes).

Os provedores de hospedagem simplificam. Alguns deles hospedam outras pilhas e alguns permitem um pouco mais de configuração, mas é sempre um pacote definido.

A diferença fundamental entre um serviço de hospedagem e uma nuvem é a máquina virtual. Um serviço de hospedagem apenas me dá parte de um sistema operacional existente. Uma máquina virtual me dá um sistema operacional inteiro só para mim.

Por que as máquinas virtuais são tão importantes

Uma máquina virtual funciona como uma máquina real. Ele pode rodar Linux ou Windows e pode fazer qualquer coisa que um computador normal pode fazer. A Apple não permite que você execute o OS X em uma máquina virtual (embora algumas pessoas tenham feito isso funcionar, construindo um “Hackintosh”).

Quando você tem uma máquina virtual, você tem controle total. Você pode executar o que quiser lá - bancos de dados, servidores de e-mail, criptografia e até pesquisas de extraterrestres. A máquina virtual permite que você faça o que quiser.

Ter um sistema operacional inteiro só para você é realmente poderoso, mas antes que você possa fazer qualquer coisa útil, você precisa acessar a VM.

Vamos falar um pouco sobre redes

As máquinas virtuais são inúteis se você não puder acessá-las. Você precisa de rede, embora a rede possa ficar um pouco complexa.

Imagem de cabos de rede em nuvem
Networking não é tão difícil. (Visualização grande)

Mas esses conceitos básicos lhe darão o que você precisa para começar. Vamos começar com um exemplo com o qual você estará familiarizado. Provavelmente está rodando na sua casa agora.

Diagrama da rede doméstica
Minha rede doméstica (visualização grande)

Tenho Comcast em casa. Comcast me dá um modem a cabo com um endereço IP como 10.0.0.89 . Embora me dê apenas um IP, tenho dois laptops, um iPad e um telefone; minha esposa e filha têm ainda mais dispositivos. Para fazer isso funcionar, eu tenho um roteador sem fio que se conecta ao meu modem a cabo. Meu roteador sem fio fornece a cada dispositivo que tenho um endereço IP como 192.168.0.100 , 192.168.0.101 e assim por diante, mas esses endereços são privados para minha rede.

O termo técnico para esses endereços privados é não roteável . Existem alguns endereços configurados para uso privado; a maioria começa com 10. ou 192.168 , como um sinal para os roteadores da Internet de que esses endereços não são permitidos na natureza. Estou usando esses endereços especiais porque eles são reutilizáveis.

Cada endereço IP deve ser único em uma determinada rede; caso contrário, o roteador não saberia a qual computador eu queria me conectar. Existem 4.294.967.296 endereços IP possíveis. Embora os designers de rede pensassem que era muito quando tudo isso começou na década de 1970, agora estamos ficando sem. Existem alguns outros protocolos, como o IPv6, que podem resolver esse problema no futuro, mas hoje resolvemos esse problema com o Network Address Translation (NAT). Deixe-me mostrar-lhe como funciona.

Os dispositivos da minha casa têm endereços únicos na minha casa, mas não no mundo inteiro. Quando quero sair para a Internet, preciso que o roteador sem fio os traduza para mim. Toda vez que clico em um link, meu laptop fala com meu roteador sem fio para fazer a solicitação para mim; por sua vez, o roteador sem fio fala com o mundo em meu nome, mas usando seu próprio endereço. Então meu modem a cabo faz a mesma coisa quando fala com a Comcast, e a Comcast faz a mesma coisa novamente em uma escala muito maior quando envia minha solicitação para a Internet em geral. Cada roteador está traduzindo o endereço IP do anterior. Tudo isso significa que muitos computadores podem reutilizar um endereço IP como 192.168.0.101 , e tudo funciona sem conflitos.

Então, qual é o meu endereço IP real na Internet real? No momento, meu endereço IP real é 66.30.118.150 e meu endereço IP privado é 192.168.0.103 .

De onde veio o endereço 66.30.118.150 ? É um endereço IP que a Comcast possui. Deixa claro que estou em Cambridge, Massachusetts, no nordeste dos Estados Unidos. Não preciso dos detalhes; tudo o que preciso saber é que é um endereço público real que a Comcast gerencia para mim. A Comcast provavelmente usa o mesmo endereço para centenas ou milhares de outras pessoas.

Toda essa tradução de endereços faz outra coisa muito importante. Dá-me um único ponto de acesso que controla tudo o que entra na minha rede doméstica. Ninguém de fora pode acessar 192.168.0.103 ; para eles, é um endereço diferente. Consigo muita segurança controlando o tráfego que pode entrar e sair. Meu roteador sem fio é um ponto de aperto onde posso controlar o que acontece.

A maioria das nuvens funciona exatamente como minha rede doméstica. Os computadores são virtuais, as redes são chamadas de sub- redes e o roteador sem fio é chamado de gateway , mas é tudo a mesma coisa. Eles têm máquinas virtuais com endereços privados e gateways que os traduzem para endereços públicos. Eles também têm um espaço de endereços que podem usar como meu roteador sem fio em casa. Assim:

Um diagrama de uma rede em nuvem
Minha rede na nuvem (visualização grande)

Pode parecer complicado, mas não é muito difícil. Uma nuvem é uma maneira de alugar computadores de outra pessoa e configurá-los para parecerem com minha rede doméstica.

As coisas mais importantes a serem lembradas são:

  • IPs privados estão disponíveis apenas em sua rede privada;
  • IPs públicos estão disponíveis na Internet;
  • O NAT permite que IPs privados pareçam IPs públicos.

Isso não é tudo o que acontece com a rede em nuvem, mas é mais do que suficiente para começar a trabalhar e acessar sua nuvem. Agora você precisa decidir que tipo de nuvem você deseja.

Os diferentes tipos de nuvens

Nuvem é um termo amorfo – as pessoas o usam para significar muitas coisas diferentes. Existem realmente três categorias diferentes de nuvens.

Nuvens de infraestrutura

A máquina virtual e a rede são os blocos de construção de uma nuvem de infraestrutura , também conhecida como Infraestrutura como Serviço ( IaaS ). Eles fornecem a infraestrutura virtualizada, sobre a qual você tem controle total. Você decide sobre o sistema operacional e tudo o mais que é executado em cima dele.

Você obtém flexibilidade e controle, mas é responsável por gerenciar e dar suporte a tudo o que instala.

As nuvens de infraestrutura são estáticas ou elásticas . Uma nuvem estática funciona como minha rede doméstica: tenho um conjunto de máquinas virtuais executando o que eu precisar. Eles vivem em uma rede privada, com um gateway público que lhes dá acesso à Internet. Nuvens estáticas são ótimas para processar dados, ter algum poder de computação extra ou hospedar um site mais complexo do que um provedor de hospedagem pode lidar. Você também pode replicar sua nuvem estática para outros data centers em todo o mundo.

Nuvens elásticas funcionam como nuvens estáticas, mas são dinâmicas. Em vez de um conjunto fixo de servidores virtuais, você tem um conjunto que pode aumentar ou diminuir dependendo de suas necessidades. Sua nuvem se expande quando você tem alta demanda em seu site ou serviço e volta ao tamanho normal quando não há. Toda a expansão e redução economiza dinheiro. Você devolve o poder de computação que não precisa quando não precisa.

A Netflix usa IaaS. A Amazon Web Services fornece a infraestrutura e a Netflix implementa todo o seu sistema em cima; ela escreveu seu próprio software para fornecer suporte altamente personalizado para streaming de conteúdo de alta definição. A Weather Company é outro exemplo — ela é executada em cima da IBM Cloud.

Nuvens de plataforma

Uma nuvem de plataforma , também conhecida como Plataforma como Serviço ( PaaS ), é uma nuvem especializada que fornece blocos de construção de software para seu aplicativo enquanto o provedor de nuvem gerencia a infraestrutura e a pilha de software para você.

Por exemplo, se você precisasse de um aplicativo da Web, o PaaS poderia fornecer WordPress ou Drupal para você usar. Se você precisasse de um banco de dados, você poderia escolher MySQL ou PostgreSQL. Se precisar de ferramentas de desenvolvimento, você pode escolher entre Node, Java ou PHP. Você não precisa se preocupar com qual sistema operacional está sendo executado ou se um patch de segurança do MySQL precisa ser aplicado - o provedor de nuvem cuida disso para você.

Heroku é uma nuvem PaaS. Ele fornece o software por baixo e você apenas escreve o que deseja em cima disso. Ele oferece alguma flexibilidade, mas faz muito mais gerenciamento do que uma nuvem IaaS.

Nuvens de software

Uma nuvem de software , também conhecida como Software como Serviço ( SaaS ), é um tipo muito especializado de nuvem que fornece um serviço online bem definido. Os provedores de hospedagem são um tipo especial de nuvem SaaS nos bastidores; eles trabalham de uma forma muito limitada.

Wix é outro exemplo de SaaS. Ele fornece um serviço completo de hospedagem de aplicativos da Web com um ótimo editor, suporte para login e pagamento de usuários e uma ampla variedade de modelos para escolher. O Wix se concentra em apenas um trabalho. É muito limitado em funcionalidade, mas também mais fácil de usar.

As peças básicas de uma nuvem

Falamos sobre os diferentes tipos de nuvens e por que você precisa delas. Antes de realmente parecer um especialista em nuvem, você precisa conhecer os diferentes componentes que compõem uma nuvem.

Máquinas virtuais

Uma máquina virtual é um software que funciona como um hardware, agindo como uma máquina real sem precisar de um servidor separado em nenhum lugar. Você pode fazer o que quiser com a VM e ela passará no teste do pato - anda e grasna como um servidor real. Seu software nunca saberá a diferença.

Essa flexibilidade tem um preço. Você é responsável por manter sua máquina virtual. O provedor de nuvem garantirá que o hardware esteja nas melhores condições, mas você terá que selecionar seu sistema operacional e tudo o mais que é executado nele - patches de segurança, atualizações de software, configuração. É tudo em você.

E se você não estiver em uma nuvem elástica, é melhor lembrar de liberar todas as máquinas virtuais das quais não precisa mais. O provedor cobrará se a VM estiver funcionando ou não.

Sub-redes

Já cobrimos a rede em nuvem. As sub-redes são redes que são executadas na nuvem.

IPs privados e IPs públicos

A rede na nuvem atribuirá um endereço IP não roteável às máquinas virtuais na sub-rede. Esses são conhecidos como IPs privados porque são privados da minha rede. Quando uma máquina virtual envia solicitações para a Internet, o gateway público traduz essas solicitações. Isso é chamado de tráfego de saída pelos provedores de nuvem.

Assim como não consigo acessar minha impressora doméstica de uma cafeteria, na nuvem preciso de um IP público para acessar uma máquina virtual.

IPs públicos podem ser atribuídos a máquinas virtuais para permitir o tráfego de entrada (tráfego vindo da Internet roteado para máquinas virtuais). Isso é importante porque os provedores de nuvem cobrarão de você de forma diferente pelo tráfego de entrada e saída.

Chaves SSH

Uma chave SSH é uma informação privada que permite acessar sua nuvem. É composto por dois arquivos. Há uma chave pública que se parece com isso:

 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5b8xmtjUd1taP4svy9FM/WZc/n5gkqKVkhIsqW27hw2WuhfTVNLA6IBBOs9+br+HlqGYwgYB3DSh0Zm/3Bok1uQhinH77FmKsrPGDpvtJv16weIvGiTMVp+Mct8DVKl48KZxvQKa0Hp6MxEc7cQ9WPvzWn9BPLHERSkSNwXSUobqpFBgIPy9UBWr5DsI2Li5HeMgMgTcbuVVdO/8I/rhKoIyTqkhY4CZcyssmWhMvPmk6+9IcOr0O4SyW9TL+CZgDH1mW2dUypT+1j6HgFjr9H8NfJ4EKnWnFkQXo8HZ4oh6lSTaIfDQfnbrjVUO14N7FW9ZgXbL9cJVx5FLw3ny9 [email protected]

E há uma chave privada que se parece com isso:

 -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAuW/MZrY1HdbWj+LL8vRTP1mXP5+YJKilZISLKltu4cNlroX0 1TSwOiAQTrPfm6/h5ahmMIGAdw0odGZv9waJNbkIYpx++xZirKzxg6b7Sb9esHiL xokzFafjHLfA1SpePCmcb0CmtB6ejMRHO3EPVj781p/QTyxxEUpEjcF0lKG6qRQY CD8vVAVq+Q7CNi4uR3jIDIE3G7lVXTv/CP64SqCMk6pIWOAmXMrLJloTLz5pOvvS HDq9DuEslvUy/gmYAx9ZltnVMqU/tY+h4BY6/R/DXyeBCp1pxZEF6PB2eKIepUk2 iHw0H52641VDteDexVvWYF2y/XCVceRS8N58vQIDAQABAoIBAHU7UKW+m2X55Dui zf0SqW5rXUtDwhOq6qTZhoGIvFjOBwKGfXosjRyyGJ0o6jyqvM1L4Q7ZUDXzg5fT CwXIhAYKrFprRXvHcypnS2hHsKW27k3yZ6tkIX+XW+VT5fzdhCXUyKks3jcRBHtJ ux7BI0kLGR02e6MSHYkowp47p1Auukx1saRkFTwvy+znABgqVETvtHBxAiElXndL JfQntaQacgWWDjl2qUj+06IB/Qzd9/Mo1Vtdb8SUZxv/Qc2raSi3LL0N4aSJGLGU pq395ggv9NdhUQf+DN9uGaOC4hYeGdO8gm27yysZ4rTT5iln5wOaCAcMTMrGL4+k GoU/nKECgYEA7AP/Mh9sUi9AX/17a3A/zxNAO1ZrvM+Caj/X/t/pt3HEOhqLz7o5 z3g8/Z+H0CJLZNiP9XbMak2wvOiqRj0y+FihX/ESll6XgIEPTBUcFSirWMe4f9og FltrnelUjHG9MTDW0P4jmmp1E5V8RgnCCv2VjN40ulP5zHPXXdU2FP8CgYEAySNs /qlFL7DTB/A851y6cUzQC5kiKlr/T8aUtOHeBo626jlnHDy/VY9vIJ0ttsYyHCdM OSdqZh5wRwvshr94tpOBQNnDTI4Xv7t2couHl7q2xTOYeWViwGyZaatNYlWWFh/u YSCTd2jn6cvBZOZP3BAiWoF9nzLcsjfpNLdzAkMCgYAx8TaTOKsHSRBqP41aUspt 2zkAVW0+6vpB2Xivalpegyhu0yc6scGB8YOWd6eZl2g00s7DtnvTEtWPY/yEGHcs rjSXxL+WKjYM70J5aw4iPBTmGH0mMNYRZQ8Ev1cw0PCj9B3A48ZM6rITjtJZT79L 7BU1Vd/6fcKiTPEJ3hAvqQKBgBKOQBnmR8m0iGNtGFFHzrNxIKhRQkOiDXewnDtr su3r8Jf/H7INMKGWD+x0U6lO84SBY5jKOBifqkADq5hqxZoiVYREEq5XVX2Mr8q1 cJbg1MewkNpyLgAOhMCo2wS9XJFB9N3lAXW8qdh5waerT6a/nku3Mn2jVZTjb5I7 clK9AoGAZLuvLAJpFOf/mweajULV+oFMGzIArvbk1c+cGySeI5uZwfQ9lv2MOb0N DuFTXZt6QpKV9Nix/8KgBIP2Vac6gSAeF6kIXk2+nV6gXm5tojYrf6gG1jY8ceRD IFSeGlnBhYVrFcQ79fYwJtSQgGde4PtNF1yq9ipluAyLuy1cLUc= -----END RSA PRIVATE KEY-----

Você usa esses dois arquivos juntos em vez de uma senha.

A autenticação de chave pública SSH é uma maneira robusta de fazer login em um sistema remoto, mais seguro do que o nome de usuário e a senha padrão. (SSH significa “shell seguro”.) Você provavelmente já viu chaves SSH antes na forma de sua chave do Github.

As chaves SSH contam com criptografia de chave pública e autenticação de resposta de desafio para evitar ataques de força bruta e outras ameaças.

Essas chaves garantem que somente você tenha acesso às suas máquinas virtuais e funcionam muito bem com scripts e outras tarefas automatizadas.

Centros de dados

Um data center é um grande edifício cheio de computadores. Os provedores de nuvem alugam partes deles para você.

Uma imagem de um data center em nuvem tirada na IBM
Um data center em nuvem da IBM (visualização grande)

Os computadores são servidores poderosos que podem hospedar várias máquinas virtuais ao mesmo tempo. Esses servidores consomem muita energia e geram muito calor, e precisam estar fisicamente próximos para que a rede seja rápida. Portanto, um data center é a instalação na qual um provedor de nuvem hospeda todo o hardware físico que executa uma parte de sua nuvem. O data center requer refrigeração adequada, fonte de alimentação redundante, largura de banda de rede massiva, acesso controlado e equipe qualificada para manter todas as máquinas funcionando.

Um data center pode lidar com muita carga, mas está em apenas um lugar. Um provedor de nuvem global precisa espalhar data centers pelo mundo para garantir que os clientes em todos os lugares tenham uma latência aceitável de acesso à rede para seus servidores.

Regiões e zonas

Um provedor de nuvem precisa organizar seus data centers para garantir que possa continuar atendendo às solicitações durante quedas de energia, inundações, furacões e outros desastres. Os provedores chamam isso de Qualidade de Serviço e tudo faz parte de garantir que a nuvem nunca caia.

Uma região é uma área geográfica com uma latência de rede de ida e volta específica (de onde para onde?). As regiões têm nomes como Dallas, Tóquio ou Frankfurt. Você tem a garantia de obter a latência de rede pela qual está pagando dentro dessa área.

Uma região é composta por uma ou mais zonas. As zonas são um data center isolado em uma região com infraestrutura elétrica, mecânica e de rede independente projetada para garantir nenhum ponto único de falha compartilhado entre outras zonas. Isso permite que você crie aplicativos tolerantes a falhas altamente disponíveis, implantando em várias zonas em uma região. A região pode continuar se uma zona falhar, mas é muito ruim quando todas as zonas caem.

Um data center hospeda uma zona. Vários data centers são agrupados em cluster para criar uma região de várias zonas. As zonas têm nomes como us-south-1, us-south-2 e us-south-3. Uma pequena região pode ser atendida por um único data center robusto, enquanto uma região populosa pode exigir vários data centers para lidar com a demanda de rede e computação.

Recuperação de desastres, alta disponibilidade e tolerância a falhas

Esses conceitos fazem até mesmo os arquitetos de TI mais talentosos suarem. Eles ficam acordados à noite imaginando como vão garantir que a nuvem nunca desça.

Mas você tem isso! A nuvem (quase) nunca desce e é fácil garantir que você esteja coberto se isso acontecer. Vamos rever esses conceitos um por um:

A recuperação de desastres (DR) é um conjunto de políticas e procedimentos que detalham o que fazer durante e após um grande incidente. Projete seu sistema para que ele falhe normalmente (o que significa que seus usuários entenderão que algo está errado, mas você o terá coberto) e, após um incidente, você saberá como recuperá-lo o mais rápido possível. Você precisa de DR quando uma região inteira fica inativa, seu serviço está sob ataque cibernético ou está vulnerável e você precisa derrubá-lo.

Alta disponibilidade (HA) é apenas uma meta – os “cinco noves” sobre os quais falamos anteriormente. Você deseja que seu aplicativo seja resiliente a falhas. Isso é quase impossível se você executar um servidor em sua sala de estar, mas é possível com a nuvem. Você atinge a meta de alta disponibilidade confiando na infraestrutura tolerante a falhas da nuvem — tudo é cuidado para você.

Uma infraestrutura tolerante a falhas é um design que garante que um backup assuma o controle se algo der errado. A nuvem é um sistema tolerante a falhas. Se uma zona dentro de uma região falhar, as outras zonas garantirão a continuidade do serviço. Você precisa aproveitar essa tolerância a falhas usando componentes como balanceadores de carga.

Balanceadores de carga

A alta disponibilidade vem da execução de várias instâncias do seu aplicativo ao mesmo tempo. Um balanceador de carga é um equipamento que roteará o tráfego de seus usuários para uma de suas instâncias que está ativa e funcionando; ele recebe solicitações e as envia para o próximo servidor íntegro.

O balanceador de carga monitora a integridade de suas máquinas virtuais e pode levar em consideração diferentes parâmetros. Ele pode detectar se sua máquina virtual ou aplicativo trava, mas também pode verificar a latência da rede, dados específicos nos cabeçalhos de solicitação e muito mais.

Perguntas que seus clientes provavelmente farão

Portanto, seu aplicativo está funcionando muito bem, mas seu cliente está pensando em adotar a nuvem. você está pronto para isto? Aqui estão perguntas comuns que você deve ser capaz de responder para parecer um especialista em nuvem.

Quando eu quero mais do que um provedor de hospedagem?

Seu cliente pode estar engajado a toda velocidade na migração de todos os serviços para a nuvem. Com maior flexibilidade, resiliência e uma presença geograficamente distribuída, a nuvem facilita o entusiasmo.

Mas, embora a nuvem seja mais rápida, flexível e confiável, também é mais cara; pode até exigir suporte de TI adicional para manter o sistema do seu cliente funcionando. A nuvem não é para todos.

Se o sistema do seu cliente estiver sendo executado em um provedor de hospedagem, você deve migrar para a nuvem?

Considere as necessidades presentes e futuras: se o seu cliente estiver procurando por alta disponibilidade para cumprir os regulamentos, mude para a nuvem. Se o seu cliente estiver segmentando um público global, mude para a nuvem. Se forem esperados aumentos drásticos na demanda ao longo do ano, mude para a nuvem.

Se o sistema for acessado principalmente por usuários locais em uma geografia específica, ou se não for de missão crítica para o seu cliente, não mude para a nuvem.

A conclusão importante: se o sistema do seu cliente funcionar bem em um provedor de hospedagem, você deve considerar as ofertas de SaaS existentes que forneceriam a resiliência e o desempenho da nuvem, ao mesmo tempo em que isolam seu cliente de despesas de TI desnecessárias. Existem provedores de hospedagem tradicionais, como o Bluehost, que oferecem serviços baseados em nuvem, e existem provedores de nuvem que oferecem serviços de hospedagem.

Que tipo de nuvem devo usar?

Encontrar o tipo certo de nuvem pode ser difícil, pois cada provedor oferece uma ampla variedade de serviços e opções. As primeiras coisas a serem consideradas são a complexidade da pilha de software do seu cliente e o hardware em que está sendo executado no momento.

Se toda a pilha for altamente personalizada com bibliotecas de código aberto recompiladas, kernels Linux personalizados ou otimizações de armazenamento especiais, você deve analisar primeiro o IaaS. Alguns provedores permitem que seu cliente misture e combine, usando IaaS para componentes altamente personalizados enquanto escolhe PaaS para outras partes.

No entanto, se as necessidades do seu cliente forem criadas principalmente em bibliotecas prontas para uso, o PaaS provavelmente é um ponto de partida melhor; o provedor de nuvem garantirá que o código do seu cliente sempre seja executado em cima das dependências atualizadas.

Assim que o modelo de nuvem certo for identificado, os requisitos e critérios de avaliação serão exclusivos para o seu cliente. Mas sempre vale a pena prestar atenção aos requisitos não funcionais: seu cliente precisa cumprir regulamentações, certificações ou padrões específicos de domínio? Eles têm alguma dependência ou parceria com fornecedores específicos?

Por fim, pense no suporte à migração do provedor de nuvem e no aprisionamento do fornecedor – quão difícil é para o seu cliente migrar para um concorrente depois que o sistema estiver em execução. Considere um plano de saída, mesmo que seu cliente não esteja planejando sair.

Como posso garantir que meu site nunca fique inativo?

Digamos que seu cliente esteja trabalhando no setor de saúde dos EUA. A HIPAA exige que toda organização tenha algum tipo de plano de recuperação de desastres, e isso inclui seu site. O negócio do seu cliente falhará se o site cair, então você precisa da resiliência da nuvem.

A nuvem oferece as ferramentas necessárias para garantir que seu site nunca fique inativo. Você precisará de várias instâncias do seu aplicativo em execução ao mesmo tempo e uma forma de controlar o tráfego para que seus usuários nunca acessem uma instância inválida.

Se seu cliente estiver implantando seu site em uma nuvem IaaS, você precisará de várias instâncias de seu aplicativo e um balanceador de carga para controlar o tráfego. Se o seu cliente tiver uma nuvem PaaS, apenas certifique-se de ter várias instâncias em execução, pois a nuvem fornecerá a parte de roteamento automaticamente.

Se o seu site usa um banco de dados, certifique-se de que a nuvem do seu cliente esteja configurada para dar suporte à afinidade de sessão (também chamada de sessões fixas ), uma forma de garantir que todo o tráfego do usuário seja roteado para a mesma máquina virtual.

Como faço meu site rápido para todos no mundo?

Se o seu cliente está se tornando global e exige que seu aplicativo forneça serviço rápido para usuários finais em todo o mundo, você precisa da flexibilidade e do alcance geográfico da nuvem.

Mesmo que a nuvem seja global, você precisa que as instâncias do seu aplicativo sejam executadas perto de onde seus usuários estão.

Trabalhe com seu cliente para identificar quais regiões de nuvem atenderiam melhor à sua base de usuários e onde seu cliente está hospedando as APIs que suportam seu site — suas instâncias devem estar próximas de ambas. Você também pode discutir a configuração de um proxy global que roteia o tráfego para diferentes áreas geográficas com base na localização do usuário.

Conclusão

Fornecer um serviço escalável e resiliente a uma base de clientes crescente na Internet é muito complexo; nós mal arranhamos a superfície aqui. É por isso que queremos deixar os detalhes para Amazon, Google e outros provedores de nuvem. Seu trabalho é tomar boas decisões sobre como usar seus serviços.

Lembre-se, quando seu cliente perguntar se algo deve ser executado na nuvem, você precisa fazer quatro perguntas:

  • Quão complexo é o software que você precisa para executar?
  • Quanto ele precisa para escalar?
  • Qual a importância de nunca cair?
  • Quão rápido ele precisa ser executado para usuários em todo o mundo?

Comece com essas quatro perguntas simples e você parecerá um especialista em nuvem. Trabalhe com seus clientes para entender o que as respostas a essas perguntas significam para eles, considerando os diferentes tipos de nuvem, e você será uma grande parte da solução de suas necessidades.