Prévia do material em texto
E-Book CLOUD COMPUTING CLOUD COMPUTING 2 SUMÁRIO UNIDADE I .................................................................................................................... 4 INTRODUÇÃO ............................................................................................................ 5 1.1. Definição de nuvem .......................................................................................... 5 1.2. Modelos de serviços em nuvens ....................................................................... 7 1.3. Modelos de implantação em nuvem ................................................................ 10 1.4. Vantagens oferecidas pela computação em nuvem ......................................... 11 1.5. Medidas de segurança e conformidade da Nuvem ........................................... 13 UNIDADE II .................................................................................................................. 15 CONCEITO BÁSICO ................................................................................................... 16 2.1. Conhecendo os recursos, zonas e regiões ....................................................... 16 2.2. Virtual Private Cloud (VPC) .............................................................................. 17 2.3. Elastic Compute Cloud .................................................................................. 22 2.4. Computação Serverless ................................................................................. 23 2.5. Edge Computing & Elastic Beanstalk ............................................................. 26 UNIDADE III ................................................................................................................ 28 ARMAZENAMENTO .................................................................................................. 29 3.1. Armazenamento ............................................................................................ 29 3.2. Requisitos do armazenamento em nuvem...................................................... 29 3.3. Tipos de armazenamento em nuvem .............................................................. 30 3.4. Banco de dados em nuvem ............................................................................ 30 3.5. Banco de Dados Não Relacional ..................................................................... 32 UNIDADE IV ................................................................................................................ 35 ARQUITETURA E SERVIÇOS ..................................................................................... 36 4.1. Arquitetura .................................................................................................... 36 4.2. Estilos de arquitetura .................................................................................... 39 4.3. Principais conceitos relacionados ao Balanceador de Carga .......................... 40 4.4. Monitoramento: CloudWatch......................................................................... 44 4.5. Auto Scaling .................................................................................................. 44 REFERÊNCIAS ........................................................................................................ 50 ANEXO I - Zé Delivery cria serviço de entrega de bebidas na AWS e sustenta seu crescimento exponencial. ........................................................................................ 51 ANEXO II - Estudo de Caso Hess Corporation ........................................................... 54 CLOUD COMPUTING 3 ANEXO III - Samsung reacomoda 1,1 bilhão de usuários de três continentes migrando do Oracle para o Amazon Aurora com o AWS Database Migration Service ................. 59 CLOUD COMPUTING 4 UNIDADE I CLOUD COMPUTING 5 INTRODUÇÃO 1.1. DEFINIÇÃO DE NUVEM Para que seja compreendido o conceito de computação em nuvem, é primordial que se entenda, inicialmente, o conceito de servidor on-premise, no qual a própria empresa é responsável pela gestão do seu hardware e de seu software. Isso significa que ela é responsável por toda a infraestrutura do servidor on-premise que será implantada. Boa parte dessa infraestrutura está representada na figura a seguir (Figura 1). Figura 1: Infraestrutura necessária para servidor on-premise Fonte: autoria própria. Toda essa infraestrutura gera gastos que nem sempre são acessíveis a todas as empresas e pessoas físicas, o que acaba dificultando o acesso à tecnologia de ponta. Colocando como hipótese a aquisição de um servidor físico, o primeiro passo seria iniciar o planejamento dos recursos necessários para o servidor, o que é bastante trabalhoso. Em seguida, seria necessário passar pelo processo da área comercial da empresa (Figura 2). Figura 2: Passos burocráticos para aquisição do servidor Fonte: autoria própria. Ryan Ferreira Destacar CLOUD COMPUTING 6 Como pode ser observado, esse processo atual demanda muita paciência, sem contar quando se faz necessário trocar um recurso como memória, HD, processador ou realizar alguma atualização de software. Na maioria das vezes, isso acaba “parando” o servidor para que se possa efetuar a manutenção do recurso ou atualização do software. A computação em nuvem tem superado em muitos aspectos a computação tradicional ou on-premise, e isso se dá não somente por causa dos avanços tecnológicos. Na computação em nuvem, todos ganham com a redução de custo e agilidade, gerando a possibilidade de qualquer empresa, independente do porte, ter acesso aos recursos tecnológicos, igualando, dessa forma, a competição entre as empresas. Atualmente existem empresas como a Amazon (AWS), Google (GCP) e Microsoft (Azure) que tomaram a frente para oferecer esses serviços de forma a minimizar os trabalhos e reduzir os custos necessários para implementação de servidor e serviços em várias empresas. A seguir estão algumas definições dessas empresas, começando pela AWS: Computação em nuvem é a entrega sob demanda de poder computacional, banco de dados, armazenamento, aplicativos e outros recursos de TI pela Internet com uma definição de preço conforme o uso. Esses recursos são executados em computadores servidores localizados em grandes datacenters em todo o mundo. Quando você usa um provedor de serviços em nuvem como a AWS, ele é o proprietário dos computadores que você está usando. Esses recursos podem ser usados em conjunto, como componentes básicos, para criar soluções que ajudam a cumprir metas de negócios e requisitos de tecnologia (AWS, 2022). Segundo a Microsoft: ... a computação em nuvem é o fornecimento de serviços de computação, incluindo servidores, armazenamento, bancos de dados, rede, software, análise e inteligência pela Internet (“a nuvem”) para oferecer inovações mais rápidas, recursos flexíveis e economias de escala. Você normalmente paga apenas pelos serviços de nuvem que usa, ajudando a reduzir os custos operacionais, a executar sua infraestrutura com mais eficiência e a escalonar conforme as necessidades da sua empresa mudam. (MICROSOFT, 2022) Percebe-se que as definições são bem parecidas. A ideia é ter um modelo que permita um acesso de rede onipresente e sob demanda com os recursos de computação (redes, servidores, armazenamento, aplicativos e serviços) configuráveis que possa ser rapidamente alocado e liberado com o mínimo de esforço e gerenciamento com o provedor de serviços (MELL e GRANCE, 2011). Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 7 Figura 3: Diagrama ilustrando Computação em Nuvem Fonte: Sam Johnston - http://upload.wikimedia.org/wikipedia/commons/b/b5/Cloud_computing.svg 1.2. MODELOS DESERVIÇOS EM NUVENS O modelo de serviço ou computação em nuvem refere-se ao nível de controle de recursos de TI. Existem três modelos principais, que são: I. Infraestrutura como serviço (IaaS, Figura 4): nela são encontrados os serviços básicos da TI em nuvem que vão fornecer acesso aos recursos de redes, com- putadores e armazenamento de dados. Nesse modelo é possível implantar e executar software, o que pode incluir sistemas operacionais e aplicativos. En- contram-se aqui um alto nível de flexibilidade e controle de recursos de TI em relação ao gerenciamento, assemelhando-se bastante ao que se encontra na maioria dos departamentos de TI e equipes de desenvolvimento. A res- ponsabilidade do usuário é escolha do sistema operacional e manutenção de Ryan Ferreira Destacar CLOUD COMPUTING 8 todos os dados, aplicações, componentes de middleware e ambientes de execução. Já o provedor de serviços será responsável pelo acesso à rede, servidores e recursos de virtualização e armazenamento necessários. Dessa forma, pode ser dispensada a utilização e manutenção de um provedor local, com a administração sendo feita através de um painel de controle ou uma interface de programação de aplicações (API) oferecida pela maioria dos provedores de serviços. Vantagens da IaaS: ✓ Flexibilidade para adquirir somente recursos computacionais necessários, podendo expandi-los ou reduzi-los conforme a necessidade; ✓ Possibilidade de criar e desativar ambientes de desenvolvimento e teste de maneira rápida e flexível; ✓ Possibilidade de usar apenas a infraestrutura necessária para criar um ambiente de desenvolvimento e escalá-lo pelo período que precisar; e ✓ Pagar somente por aquilo que for utilizado. Desvantagens ✓ Segurança do provedor; ✓ Utilização de sistemas com multilocação em que os recursos de infraestrutura são compartilhados com vários clientes; e ✓ Confiabilidade do serviço dependendo do provedor. Figura 4: Serviços oferecidos pelo modelo IaaS Fonte da imagem: Red Hat. Ryan Ferreira Destacar CLOUD COMPUTING 9 II. Plataforma como serviço (PaaS, Figura 5): nesse nível, a camada inferior de software e hardware deixa de ser uma preocupação, dando espaço para se concentrar no gerenciamento de aplicativos. As empresas também não pre- cisam se preocupar em gerenciar a infraestrutura, permitindo que a equipe se concentre na implantação e no gerenciamento das aplicações, tornando eficiente a execução da sua aplicação. Ela é muito utilizada por desenvolve- dores e programadores, permitindo ao usuário desenvolver, executar e ge- renciar aplicações sem ter a necessidade de criar a infraestrutura para esse processo. Figura 5: Serviços oferecidos pelo modelo PaaS Fonte da imagem: Red Hat. III. Software como serviço (SaaS, Figura 6): nesse nível serão encontrados os serviços de software voltados para o usuário final, não havendo preocupação com a manutenção ou gerenciamento de serviço dos modelos anteriores. Há somente o planejamento e uso do software específico, e nessa categoria, o webmail entra como aplicação comum do SaaS. Como um serviço, o software oferece produtos completos voltados para o usuário final, sendo a única preocupação saber como utilizá-lo. Um exemplo comum de aplicação do SaaS é o Google Sala de Aula, que é um sistema de gerenciamento de conteúdo para escolas que procuram simplificar a criação, a distribuição e a avaliação de trabalhos. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 10 Figura 6: Serviços oferecidos pelo modelo IaaS (em vermelho) Fonte da imagem: Red Hat. 1.3. MODELOS DE IMPLANTAÇÃO EM NUVEM Quando se fala de modelo de implantação, representa o ambiente de nuvem em que os aplicativos serão implantados, sendo eles: Nuvem: nesse modelo de implantação, os aplicativos foram criados totalmente na nuvem ou migraram por completo para uma estrutura nela, obtendo, dessa forma, todos os benefícios da computação em nuvens. Sendo assim, podem seguir o padrão de arquitetura e escalabilidade da infraestrutura principal. O que faz a nuvem ser pública? ✓ Alocação de recursos: usuários locatários fora do provedor de serviços com- partilham recursos virtuais e serviços de nuvem. ✓ Acordo de uso: não há um modelo de pagamento e os recursos são distribuídos de acordo com a necessidade. CLOUD COMPUTING 11 ✓ Gerenciamento: o fornecedor cuida da manutenção do hardware, rede e pelo gerenciamento do software de virtualização. Híbrida: nesse modelo de implantação há um aproveitamento da infraestrutura local com recursos baseados na nuvem. Dessa forma, é possível ampliar a infraestrutura local para a nuvem conectada a recursos internos. Todas as nuvens hibridas devem: ✓ Conectar vários computadores por meio de uma rede; ✓ Consolidar recursos de TI; ✓ Escalar horizontalmente e provisionar novos recursos com rapidez; ✓ Permitir a migração de cargas de trabalho entre ambientes; ✓ Incorporar uma ferramenta unificada de gerenciamento; e ✓ Orquestrar processos com a ajuda da automação. No local: apesar de não ser o ideal, é possível oferecer localmente recursos dedi- cados através tecnologias que possam virtualizar e gerenciar recursos dedicados. Na maioria das vezes, acaba sendo igual ao modelo on-premise. Figura 7: Modelo de implantação na nuvem Fonte da imagem: https://br.freepik.com/ 1.4. VANTAGENS OFERECIDAS PELA COMPUTAÇÃO EM NUVEM No modelo on-premise ou modelo de computação tradicional, podemos pensar na infraestrutura basicamente composta por hardware. Dessa forma, há a associação do pensamento às soluções físicas que envolvem utilização de espaço, equipe técnica, segurança física dos equipamentos e planejamento de compras do material. Um problema encontrado é no ciclo de manutenção da infraestrutura do hardware visto que, na maioria das vezes, envolve etapas de cotação, aprovação gerencial, aprovação financeira etc. Outro problema encontrado no modelo on-premise é a possibilidade de se projetar os recursos necessários para picos máximos sazonais de forma correta. Caso o pico máximo não seja atingido, haverá uma máquina com recursos ociosos ou, do contrário, Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 12 se as necessidades excederem o que foi projetado, será necessário gastar novamente recursos de tempo, dinheiro e projeto para ter uma solução. No entanto, como já mencionado, a infraestrutura da nuvem parte de uma visão de software, e não de hardware, tornando assim as soluções mais flexíveis. É o que o NIST1 caracteriza por Self-Service sob demanda: Um consumidor pode provisionar unilateralmente recursos de computação, como tempo do servidor e armazenamento de rede, conforme necessário automaticamente sem exigir interação com cada prestador de serviço. (MELL e GRANCE, 2011) Segundo Gonzaga (2022, p. 16-17), outras características (Figura 8) apresentadas pela infraestrutura da nuvem são: • Amplo acesso à rede: os recursos estão disponíveis na rede e são acessados por meio de mecanismos que promovem o uso por plataformas heterogêneas de clientes finos ou grossos; • Pool de recursos: os recursos de computação do provedor são agrupados para atender a vários consumidores usando um modelo multi-inquilinos, com dife- rentes recursos físicos e virtuais dinamicamente atribuídos e reatribuídos de acordo com a demanda do consumidor; • Elasticidade rápida: os recursos podem ser provisionados e liberados elasti- camente e, em alguns casos, automaticamente, para escalar, de forma rápida, para dentro e para fora de acordo com a demanda; e • Serviços medidos: os usos de recursos podem ser monitorados, controlados e reportados, proporcionando transparência tanto para o provedor quanto para o consumidor do serviço utilizado. Figura 8: Características da computação em nuvem Fonte da imagem: https://www.nist.gov Com essas características, é possívelelencar algumas das vantagens da compu- tação em nuvens que faz cada vez mais empresas migrarem para esse modelo, sendo elas: 1 National Institute of Standards and Technology - Instituto Nacional de Padrões e Tecnologia Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 13 • Pagar somente pelo que usar: na computação tradicional é necessário montar o servidor ou empilhar recursos em um data center e fazer o gerenciamento, muitas vezes pagando independentemente de estar usando ou não. Na computação em nuvem, paga-se somente pelos recursos consumidos e pela quantidade de recursos utilizados. Dessa forma, há a economia do investimento em tecnologia e o acesso a aplicativos em minutos, concentrando-se nas regras de negócio da empresa. • Economia em escala: o fato de gigantes como a AWS, AZURE e GCP terem milhares de clientes contribui para a redução do custo computacional para todos. • Facilidade para projetar: não há risco de ficar com capacidade limitada ou recursos ociosos ao implantar um aplicativo. Pode-se ajustar a escala em poucos minutos. • Mudança de mentalidade: enquanto no modelo on-premise os recursos computacionais eram pensados fortemente em hardware, no qual a implantação poderia levar semanas, o ambiente computacional com recursos à escolha do usuário está disponível a um clique. • Fim de manutenção de hacks e servidores: a computação em nuvem acaba com a necessidade de contratar empresas para manutenção, alocação de espaço, cuidados com segurança física dentre outros. • Alcance Global: seus aplicativos podem estar disponíveis em qualquer parte do mundo, diminuindo, dessa forma, a latência e ofertando uma melhor experiência para o usuário. 1.5. MEDIDAS DE SEGURANÇA E CONFORMIDADE DA NUVEM Quando a empresa decide migrar para a nuvem, três são os pilares que devem es- tar alinhados para o sucesso dessa migração: pessoas, processos e tecnologia. Vistos a partir de uma determinada perspectiva, tornam-se um conjunto de recursos relaciona- dos. De forma geral, essas perspectivas dividem-se em dois focos: empresariais e técnicos. Na perspectiva empresarial existem os negócios, pessoas e governança, enquanto na perspectiva técnica enquadram-se plataforma, segurança e operações. Por exemplo: na perspectiva empresarial, gerentes de negócios e gerentes financeiros devem garantir o alinhamento entre as estratégias e metas de negócio com as estratégias e objetivos de TI. Já na perspectiva das pessoas, a análise deve ser feita para priorizar alterações organizacionais, tornando-a, assim, mais ágil. As partes interessadas da perspectiva de segurança podem estruturar e implantar controles de segurança de acordo com a necessidade da organização. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 14 RESUMO ✓ Associe sempre o termo “computação em nuvem” com a entrega de recursos de TI sobre demanda e utilizando a internet, que você vai pagar conforme o uso. ✓ Na computação em nuvem você usa e pensa na infraestrutura de TI como software. ✓ Existem três modelos de serviços em nuvem: IaaS, PaaS e SaaS. ✓ Existem três modelos de implantação em nuvem: nuvem, híbrida e no local (ou nuvem privada). ✓ Vantagens da computação em nuvem: pagar só pelo que usa, economia em escala, facilidade de projetar, mudança de mentalidade e alcance global. ✓ Para migrar para a nuvem é necessário, nas organizações, estratégia e alinhamento do que será feito. ✓ Para melhorar a estratégia de migração, as empresas podem se concentrar em seis perspectivas: negócios, pessoas, governança, plataforma, segurança, operações. CLOUD COMPUTING 15 UNIDADE II CLOUD COMPUTING 16 CONCEITO BÁSICO 2.1. CONHECENDO OS RECURSOS, ZONAS E REGIÕES Antes de começar a tratar dos principais recursos encontrados na maioria dos provedores de serviços em nuvem, é necessário abordar alguns conceitos dos locais onde essa infraestrutura será criada. O primeiro conceito chama-se região: cada provedor de serviço como a AWS, Azure e GCP possui regiões onde a infraestrutura da nuvem é criada. Uma região é uma localização geográfica física com uma ou mais zonas de disponibilidade. As zonas de disponibilidade, por sua vez, consistem em um ou mais datacenters (AWS, 2022) como apresentado na figura 9. Figura 9: Regiões da AWS na América do Norte Fonte da imagem: https://aws.amazon.com/pt/about-aws/global-infrastructure/regions_az/ Atualmente, tomando como exemplo a estrutura da AWS, ela possui 25 regiões espalhadas pelo mundo, sendo que a maior concentração de regiões se encontra na Ásia e no Pacífico. A necessidade de haver tantas regiões é para que, quando ocorra algum tipo de falha ou instabilidade, deve-se preparar uma estrutura. Como as regiões são isoladas, não é possível replicar os recursos de uma para a outra de forma automática. Como serão abordados os recursos, é importante considerar qual região será se- lecionada, ou qual delas será ideal para, por exemplo, armazenar um dado ou usar outro serviço do provedor. Além disso, há a governança de dados que devem se adequar às leis Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 17 locais de cada país, limitando qual conteúdo pode ser oferecido. Outra preocupação é oferecer e armazenar seus aplicativos o mais próximo do usuário, diminuindo, dessa forma, a latência. Alguns provedores de serviços oferecem ferramentas para testar a la- tência entre o seu local atual e as regiões. Um exemplo é o CloudPing: um site que retorna um teste de latência entre usuário e algumas regiões da AWS (Figura 10). Figura 10: Tela de retorno de latência Fonte da imagem: https://www.cloudping.info/ Além disso, cada região possui vários locais, os quais são chamados de zona de disponibilidade. Cada uma dessas zonas pode incluir vários data centers, que por sua vez inclui centenas de milhares de servidores. É possível, dessa forma, ter serviços disponí- veis, pois eles ficam particionados em várias zonas, permitindo a replicação de informa- ções, o que torna muito mais seguro. 2.2. VIRTUAL PRIVATE CLOUD (VPC) O conceito de uma VPC começa bem antes com o conceito de redes de computadores: Uma rede de computadores são duas ou mais máquinas cliente conectadas para compartilhar recursos. Uma rede pode ser particionada logicamente em sub- redes. A rede requer um dispositivo de rede (como um roteador ou switch) para conectar todos os clientes e permitir a comunicação entre eles”. FOROUZAN (2008) Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 18 Figura 11: Rede de computadores Fonte da imagem: Forouzan (2008). Para cada cliente é adicionado um endereço IP (Internet Protocol) para identifica- ção exclusiva. Por padrão, o endereço IP está no formato decimal que, posteriormente, é convertido em uma numeração binária. Se, por exemplo, existir o endereço IP 192.168.0.1, cada um dos quatro números separados representa 8 bits no formato octal, podendo ter até 32 bits no conjunto dos quatro números. ENDEREÇO IP Decimal 192 168 0 1 Conversão ↓ ↓ ↓ ↓ Binário 11000000 10101000 00000000 00000001 Mais uma vez, é necessário fazer esse nivelamento, pois muitos dos conceitos de uma rede local são utilizados na rede baseada na nuvem, sendo que boa parte da complexidade é abstraída sem perder a segurança, controle e usabilidade. O VPC é um serviço que permite controlar os recursos de rede virtual, endereça- mento IP, criação de sub-redes, dentre outras, permitindo um acesso seguro aos aplica- tivos e recursos, assim como provisionar nuvens privadas virtuais. Cada VPC pertence a uma única região, podendo abranger várias zonas de disponibilidade, como mostra a Figura 12. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 19Figura 12: Diagrama de funcionamento da VPC (Amazon) Fonte da imagem: https://aws.amazon.com/pt/vpc/ Para cada região pode haver várias VPCs, cada uma pertencendo a uma única re- gião, podendo abranger várias zonas de disponibilidade. Criar uma sub-rede em diferen- tes zonas significa passar a ter alta disponibilidade. Quando uma VPC é criada, cada uma recebe um IP privado de forma automática. Veja como ocorre o conceito de elasticidade: Uma interface de rede elástica é uma interface de rede virtual que você pode anexar ou desanexar de uma instância em uma VPC. Os atributos de uma interface de rede a seguem quando ela é reanexada a outra instância. Quando você move uma interface de rede de uma instância para outra, o tráfego de rede é redirecionado para a nova instância. (AWS, 2022) Tudo isso porque podem existir várias instâncias em diversas zonas. Gateway Um gateway é um computador que trabalha em todas as camadas da arquitetura, podendo ser no modelo TCP/IP (cinco camadas) ou no modelo OSI (sete camadas). Funciona da seguinte forma: a aplicação do computador manda uma mensagem para o gateway, ele a lê e a interpreta. Isso significa que não é preciso haver comunicação com o tipo de arquitetura, pois uma rede desenvolvida no conjunto TCP/IP pode tranquilamente se conectar a outra rede utilizando a arquitetura do modelo OSI. Deve-se lembrar que, em outras situações, o termo gateway pode não significar a mesma coisa (GONZAGA, 2022, p. 21). O gateway vai permitir que essas instâncias se conectem à internet ou outros serviços do seu provedor, sendo também criado através da especificação da rede pública. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 20 Figura 13: Diagrama de funcionamento do Gateway Fonte da imagem: https://aws.amazon.com/pt/vpc/ É o gateway que, como um componente da VPC escalável, vai permitir a comunicação entre instancias na VPC e na internet, tendo como finalidades principais fornecer um destino nas tabelas de rotas da VPC para tráfego roteável pela Internet e executar a conversão de endereços de rede para instâncias que receberam endereços IPv4 públicos. Compartilhamento de VPC O compartilhamento de VPC permite que os clientes criem aplicativos, banco de dados e funções de forma mais centralizada. Basta uma rede proprietária da VPC compartilhar uma ou mais sub-redes com outros participantes e todos poderão visualizar, criar, modificar e excluir seus recursos de aplicativo compartilhados com eles. Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 21 Figura 14: Diagrama de funcionamento do compartilhamento Fonte da imagem: https://aws.amazon.com/pt/vpc/ Além disso, ao compartilhar a VPC é possível dissociar contas e redes. Dessa forma, as VPCs ficam menores se gerenciadas centralmente, gerenciando aplicativos que são altamente interconectados. Segurança da VPC As VPCs possuem um grupo de segurança que vai atuar como firewall virtual da instância e vai controlar o tráfego de entrada e saída. Cada instância em uma sub-rede na VPC poderá ser atribuída a um grupo de segurança, como mostra a Figura 15. Figura 15: Grupo de Segurança atuando em instâncias diferentes Fonte da imagem: https://aws.amazon.com/pt/vpc/ Ryan Ferreira Destacar CLOUD COMPUTING 22 Por padrão, ao ser criado, os grupos de segurança só possuem regras de saída, logo, nenhum tráfego de entrada é permitido até que sejam criadas as próprias regras ao grupo de segurança. 2.3. ELASTIC COMPUTE CLOUD O sucesso da nuvem se dá por oferecer diversos serviços e práticas de computa- ção para diferentes casos de usos, beneficiando uma diversidade de pessoas. Em rela- ção às práticas, é possível citar: ✓ Ter um leque de opções de computação disponível; ✓ Conhecer as configurações computacionais existentes; ✓ Acompanhar métricas do projeto computacional; e ✓ Usar os recursos disponíveis de forma elástica. Muitas das vezes o projeto computacional é iniciado e, depois de acompanhar as métricas, pode ser percebida a necessidade de alteração de design. Isso só é possível por conta do conceito de elasticidade que será apresentado a seguir. Subir um servidor em uma empresa é muito caro, uma vez que seu processo de desenvolvimento vai desde o projeto, passando pela aquisição do hardware e equipe especializada na manutenção dos datacenters até o provisionamento de hardware, caso ocorra pico de carga de trabalho. Após a implantação, pode ocorrer desperdício de recurso por conta de a capacidade do servidor estar sendo parcialmente utilizada. Figura 16: Criando várias instâncias através do conceito de elasticidade Fonte – AWS. O conceito Elastic Compute Cloud é a utilização de máquinas virtuais para os mesmos aplicativos que poderiam ser utilizados on-premise, podendo ser utilizado para os seguintes servidores: ✓ Servidores de aplicativos; ✓ Servidores Web; ✓ Servidores de banco de dados; ✓ Servidores de jogos; ✓ Servidor de e-mail; ✓ Servidores de mídia; Ryan Ferreira Destacar CLOUD COMPUTING 23 ✓ Servidores de catálogo; ✓ Servidores de arquivos; ✓ Servidores de computação; e ✓ Servidores de proxy. O que significa Elastic Compute Cloud O termo elastic é por conta da possibilidade de poder facilmente, diante da demanda de um aplicativo, aumentar ou diminuir a quantidade de servidores que estão trabalhando para este, assim como a quantidade de servidores existentes. Compute refere-se aos serviços e recursos computacionais que são utilizados para a execução do aplicativo como potência de processamento (CPU) e memória (RAM). Cloud, por sua vez, faz referência às máquinas virtuais ou instâncias que estão hospeda- das na nuvem. Tipos de armazenamento no EC2 ✓ Elastic Block Store: no EBS, os volumes de armazenamento se apresentam em blocos brutos e não formatados. Cria-se um sistema de arquivos sobre esses volumes de armazenamento de maneira que possam ser utilizados como um disco rígido, podendo alterar de forma dinâmica a configuração do volume. O EBS é recomendado quando se trata de acesso rápido e armazenamento de longo prazo para sistemas de arquivos e bancos de dados. ✓ Armazenamento de instâncias: esse tipo é um modelo de armazenamento temporário. Localizado em discos que estão anexados fisicamente ao compu- tador host, é ideal para informações que são alteradas frequentemente, como cachês, buffers, dados de rascunho ou para um grupo com balanceamento de carga de servidores Web. ✓ Armazenamento de arquivos: nesse modelo de armazenamento, os dados são acessados por meio de sistema de arquivos compartilhados na nuvem. É um método de armazenamento que permite aos servidores e aplicações acessa- rem os dados por meio de sistemas de arquivos compartilhados. 2.4. COMPUTAÇÃO SERVERLESS Serverless é um modelo de desenvolvimento nativo em nuvem para criação e execução de aplicações sem o gerenciamento de servidores (HAT, 2017). O nome serverless significa sem servidor, porém, a verdade é que eles estão sendo usados, mas são abstraídos do desenvolvimento de aplicações. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 24 Rotinas de manutenção, provisionamento e infraestrutura do servidor ficam por conta do provedor de nuvem (AWS, Azure, Red Hat), ficando a cargo dos desenvolvedores somente o empacotamento do código em containers para realizar a implantação. A partir daí, as demandas vão sendo atendidas com a escala aumentando e diminuindo automaticamente pela aplicação serverless. Arquitetura serverless Diferentemente das arquiteturas dos modelos de cloud computing, nas quais é responsabilidade do provedor gerenciar a infraestrutura e escalar as aplicações na nuvem, as aplicações serverless (ou Lambda na AWS, como mostrado na Figura 17)são inseridas em containers que são iniciados de forma automática quando chamados. No IaaS padrão da computação em nuvem, os servidores estão sempre ativos, prontos para a execução de aplicativos, aumentado ou reduzindo sua capacidade de acordo com a demanda e a necessidade e, mesmo quando utiliza o mínimo de infraestrutura, esta continua ativa. Na arquitetura serverless, as aplicações são iniciadas apenas quando necessárias e encerram a utilização dos recursos do servidor quando termina a execução do código. Dessa forma, ocorre um aumento da eficiência e economia. O provedor de nuvem na computação serverless As soluções serverless são divididas em duas categorias: back-end, como serviço (BaaS), e função, como serviço (FaaS). Cabe ao provedor executar e alocar serviços do servidor para que os desenvolvedores possam implantar código no container da produção. Com o BaaS, o desenvolvedor acessa aplicativos e serviços de terceiros através de APIs2, tendo acesso a vários de seus serviços e aplicações. Por exemplo, talvez um provedor de nuvem ofereça serviços de reconhecimento facial com toda implementação necessária, a qual o programador chama utilizando somente as APIs. O FaaS é o modelo mais puro de serverless, pois nele há uma interação maior do programador gravando sua própria lógica no servidor e sendo executada nos containers gerenciados pelo provedor de serviços de nuvem. Todos os principais provedores de nuvem pública oferecem pelo menos uma solução de FaaS, podendo ser: ✓ Amazon Web Services, com o AWS Lambda; ✓ Microsoft Azure, com o Azure Functions; ✓ IBM Cloud, com o IBM Cloud Functions; e ✓ Red Hat OpenShift Serverless. 2 Interfaces de Programação de Aplicações Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 25 O que é função como serviço (FaaS) Nesse modelo, a computação é orientada a eventos. A lógica desenvolvida por programadores é inserida em containers gerenciados por uma plataforma e executada somente quando necessário. O FaaS permite um maior controle aos desenvolvedores, permitindo a criação de aplicativos personalizados sem ter dependência com serviços de bibliotecas preexistentes. Os containers que recebem o código a ser implantados são: ✓ Sem estado, o que simplifica a integração dos dados; ✓ Passageiros, para que eles sejam executados por muito pouco tempo; ✓ Acionados por eventos, para que eles sejam executados automaticamente quando necessário; e ✓ Totalmente gerenciados por um provedor de nuvem. Assim é pago somente o necessário, não os servidores e aplicações "sempre ativos". Prós e contras da computação serverless Prós: ✓ Aumentar a produtividade dos desenvolvedores; ✓ Reduzir os custos operacionais (é pago o tempo de computação baseado em nuvem conforme necessário); ✓ Livrar os desenvolvedores das tarefas rotineiras de provisionamento e gerenciamento de servidores; ✓ Focar mais no cliente; e ✓ Utilizar componentes completos de soluções de BaaS de terceiros. Contras: ✓ Não executar o seu próprio servidor; ✓ Não controlar sua própria lógica, se for BaaS; ✓ Haver restrições por conta dos provedores; ✓ Depender do fornecedor; e ✓ Haver geração de custos por conta da troca de provedor. Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 26 Figura 17: Modelo de computação sem servidor Fonte da imagem: https://docs.aws.amazon.com/pt_br/pt_br/lambda É pago apenas o tempo de computação consumido, não havendo cobrança quando o código não está em execução. Estudo de Caso Zé Delivery (Leia no Anexo I) - Pg.50 2.5. EDGE COMPUTING & ELASTIC BEANSTALK Na edge computing, ou computação de borda, o processamento de dados ocorre junto ao local físico do usuário. Dessa forma, a execução dos serviços ocorre de forma mais rápida, reduzindo o período de latência, e confiável através da computação hibrida. Isso ocorre porque as empresas podem executar o processamento de dados no próprio datacenter e na infraestrutura de uma nuvem pública. A Red Hat exemplifica bem com um caso de uso: No chão da fábrica, os sensores de Internet das Coisas (IoT) geram um fluxo contínuo de dados que pode ser usado para evitar interrupções e melhorar as operações. Estima-se que uma fábrica moderna com 2.000 equipamentos possa gerar 2.200 terabytes de dados por mês. Portanto, é mais rápido e econômico processar esse volume de dados quando ele está mais próximo do equipamento, em vez de transmiti-lo para um datacenter remoto primeiro. No entanto, é recomendável que o equipamento esteja conectado por meio de uma plataforma de dados centralizada. Assim, o equipamento pode, por exemplo, receber atualizações de software padronizadas e compartilhar dados filtrados que ajudam a melhorar as operações em outros locais da fábrica. (HAT, 2021) Dessa forma, a grande parte do processamento ocorre junto ao cliente, tornando mais rápido a execução da carga de trabalho. Benefícios da Edge Computing ✓ Alta disponibilidade de serviços, trazendo uma experiência mais rica para os usuários em termos de velocidade e consistência; ✓ Redução de custos de redes, redução de latência no tempo de transmissão e melhor controle sobre dados confidenciais; e Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 27 ✓ Aplicações de realidade virtual e aumentada ganham vantagem na edge computing. Elastic Beanstalk O Elastic Beanstalk é uma plataforma como serviço que permite a implantação e gerenciamento de aplicativos e serviços web. Com a plataforma já criada, a única necessidade é fazer upload do código, podendo escolher o tipo de banco de dados, qual instância será utilizada, habilitação de HTTPS e muito mais. O próprio Elastic Beanstalk gerencia a implantação dos recursos, cabendo a quem o utiliza o controle sobre esses recursos implantados. Características do Beanstalk Rápido e Simples: capacidade de provisionamento, balanceamento de carga, dimensionamento automático e monitoramento de integridade do aplicativo são feitas de forma automáticas pelo Elastic Beanstalk. Controle total de Recursos: o usuário escolhe e controla os recursos que pretende utilizar com seu aplicativo, podendo também assumir o controle dos recursos da sua infraestrutura. Produtividade do desenvolvedor: o desenvolvedor se preocupa somente com o desenvolvimento do código, não sendo necessário gerenciar servidor e banco de dados. Dificuldade de superar: picos de carga de trabalho ou tráfego podem ocorrer a qualquer momento. O Elastic Beanstalk gerencia tudo com o Auto Scaling. RESUMO: ✓ Uma VPC é uma divisão isolada logicamente da Nuvem AWS. ✓ Uma VPC pode ser subdividida em sub-redes. ✓ Uma sub-rede pertence a uma zona de disponibilidade. ✓ Grupos de segurança são opções de firewall de proteção para VPC. ✓ No Elastic Computer Cloud você sobe máquinas virtuais Windows e Linux na nuvem. ✓ Você pode combinar vários recursos (CPU, RAM, armazenamento e recursos de rede) ✓ A importância da computação serverless para uma redução ainda maior de custos. Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 28 UNIDADE III CLOUD COMPUTING 29 ARMAZENAMENTO 3.1. ARMAZENAMENTO O armazenamento na nuvem é mais um modelo de serviço que reduz muito as preocupações: retira o peso de gerenciar e armazenar os dados físicos, ficando isso por conta do provedor. Como a maioria dos serviços em nuvem, o serviço é oferecido on- demand, e isso significa que se pode ajustar a capacidade e custos no momento que for preciso. Dessa forma, é obtido acesso global de armazenamento de dados em qualquer lugar ou momento. Benefícios do armazenamento em nuvem O armazenamento de dados na nuvem muda o paradigma de três áreas dos departamentos de TI, que são: 1. Custo total de propriedade: com o armazenamentona nuvem, a aquisição de hardware, espaço de armazenamento e provisionamento de capital para aquisições futuras não se fazem mais necessárias. Há a possibilidade de adicionar recursos, remover recursos sob demanda e alterar rapidamente a escalabilidade e desempenho, sem contar a possibilidade de transferir os dados acessados com menor frequência para locais de armazenamento com menor custo. 2. Tempo de implantação: com a infraestrutura “terceirizada”, o time de desenvolvimento está livre para desempenhar sua tarefa. Com a possibilidade de disponibilizar a quantidade exata de armazenamento, no momento que for preciso, a equipe de desenvolvimento pode se preocupar com situações relacionadas ao desenvolvimento de software, eliminando o problema de ter que gerenciar sistemas de armazenamento. 3. Gerenciamento de informações: a centralização do armazenamento permite a extração e bloqueio de dados com maior facilidade. 3.2. REQUISITOS DO ARMAZENAMENTO EM NUVEM Dados são bens da empresa que devem estar seguros e disponíveis a qualquer momento. Os requisitos fundamentais que devem ser avaliados ao se considerar o armazenamento dos seus dados na nuvem são: • Durabilidade: desastres naturais, falhas humanas e problemas mecânicos são passíveis de acontecer, portanto, redundância é a palavra-chave. Os dados devem estar armazenados em várias zonas e, se possível, em outras regiões. • Disponibilidade: é muito importante a velocidade em que os dados solicitados estejam disponíveis, mas isso envolve custo. É então importante haver um equilíbrio entre o custo e o tempo de disponibilização. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 30 • Segurança: independente dos dados estarem ativos (em trânsito) ou inativos, eles são criptografados. Permissões e controles de acesso não deixam de existir na nuvem. 3.3. TIPOS DE ARMAZENAMENTO EM NUVEM Os tipos de armazenamento físico de dados na nuvem são três: armazenamento de objetos, de arquivos e de blocos. Cada um vai fornecer vantagens que se adequam de acordo com a necessidade de um determinado projeto. Armazenamento de objetos: quando o aplicativo exige escalabilidade e flexi- bilidade, a melhor solução é o metadados de armazenamento de objetos. Como esse modelo de armazenamento não é estruturado, ele pega parte dos dados e os transforma em objetos. Outra facilidade encontrada no tipo de armazenamento físico está quando é feita a importação de datastores para a realização de serviços de análise, backup ou arquivamento. Armazenamento de arquivos: para aplicativos que necessitam de acessar arquivos compartilhados, exigindo um grande volume de dados, o tipo ideal é o de armazenamento de arquivos. Quando se necessita de grandes repositórios de conteúdo, armazenamento de mídia é o modelo recomendado. Armazenamento em blocos: esse modelo oferece latência muito baixa para altas cargas de trabalho que exigem alto desempenho. Logo, é benéfico para aplicativos empresariais como ERP e banco de dados. Estudo de Caso Hess Corporation (Leia no Anexo II) - Pg. 53 3.4. BANCO DE DADOS EM NUVEM Na nuvem é possível implementar os seguintes dois modelos de bancos de dados: • Tradicional: bem semelhante ao que se conhece na computação on-premise, diferencia-se apenas sobre como sua infraestrutura é provisionada. Um espaço é adquirido em um provedor e a implementação do banco de dados ocorre na nuvem, por parte da equipe da empresa. • Banco de dados como serviço (DBaaS): nele, o provedor fornece uma terceiri- zação de serviços como a automação nas áreas de provisionamento, backup, dimensionamento, alta disponibilidade, segurança, patches e monitoramento de integridade. Esses serviços são oferecidos em tempo real para o usuário final (ORACLE, 2022). Benefícios de um banco de dados em nuvem Os benefícios do banco de dados em nuvem acompanham os benefícios de outros serviços em nuvem, sendo: Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 31 • Maior agilidade e inovação: a configuração dos bancos de dados em nuvem flui com maior rapidez. As novas ideias são validadas e operacionalizadas de forma rápida e segura. Caso o projeto não compense ser operacionalizado, basta descartar e passar para o novo projeto. • Menor tempo de lançamento no mercado: compra de hardware, espera de material, preparação de infraestrutura, instalação e configuração de rede deixam de ser preocupação e o acesso ao banco fica disponível em poucos minutos. • Riscos reduzidos: por si só os modelos em nuvem já reduzem o risco. Quando se trata do modelo DBaaS, a utilização de automação promove as melhores práticas, diminuindo o risco de erro humano. Com o conceito de elasticidade, a previsão de capacidade deixa de ser um fantasma por conta dos serviços on- demand. • Custos reduzidos: com o dimensionamento dinâmico, os usuários podem provisionar o mínimo, assim como aumentar e diminuir a demanda de acordo com o pico de maior movimentação da empresa. Outro ponto interessante de redução de custo é a possibilidade de literalmente desligar serviços desnecessários. Relational Database Service (RDS) A definição de banco de dados relacional praticamente é autoexplicativa pelo próprio nome: banco de dados (coleção de itens de dados) relacional (que mantém um relacionamento entre si). Esses itens de dados ficam dispostos em linhas e colunas3, onde as informações sobre o objeto serão representadas no banco de dados. Cada coluna vai armazenar um determinado tipo de dado, enquanto o campo armazena o valor do atributo. O acesso aos dados ocorre de diversas formas, sem haver a necessidade de reorganizar a tabela do banco de dados (AWS, 2022). Aspectos importantes dos bancos de dados relacionais SQL O SQL, ou Structured Query Language, é o padrão utilizado por todos os bancos de dados de categoria relacional. É usado para gerenciar todos os aspectos do banco de dados e funcionalidades, como adicionar, atualizar ou excluir linhas de dados, recuperar subconjuntos de dados para processamento de transações e aplicativos de análise, gerenciando um grande volume de informações e várias tabelas. Integridade de dados Falar que dados são importantes para qualquer empresa chega a ser um pleo - nasmo. Dados precisam manter a precisão e confiabilidade, e integridade significa justamente isso: manter a perfeição, precisão e consistência gerais dos dados. As 3 O cruzamento entre linhas e colunas é denominado campo. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 32 restrições do banco de dados relacionais colaboram para manter essa integridade. Restrições como chaves primárias, chaves estrangeiras, restrição "Exclusiva", restrições de "Verificação", restrição "Padrão" e restrição "Não Nula" garantem a precisão e a confiabilidade dos dados. Transações Uma transação é a execução de vários itens em uma única unidade lógica de trabalho através de instruções SQL, resultando em COMMIT ou ROLLBACK. O COMMIT ocorre quando toda a transação está completa, caso contrário, nenhum componente da transação passa e tudo volta ao ROLLBACK, ou estado anterior. Conformidade com o ACID As transações de banco de dados devem seguir a regra ACID, ou seja, devem ser atômicas, uniformes, isoladas e duráveis, garantindo a integridade dos dados, da seguinte forma: a. Atomicidade: significa que a transação deve ser executada sem falhas. Caso ocorra alguma falha, toda a transação é encerrada e invalidada; b. Consistência: os dados gravados devem estar consistentes com todas as regras definidas; c. Isolamento: toda transação deve ser independente por si só, garantindo o controle da concorrência; e d. Durabilidade: após a transação ser concluída com êxito, as alterações feitas no banco de dados devem ser permanentes. 3.5. BANCO DE DADOS NÃO RELACIONALA criação de aplicativos modernos exige modelos de dados e esquemas mais flexíveis do que o encontrado no modelo tradicional. Os bancos de dados NoSQL facilitam o desenvolvimento para esses aplicativos, melhorando a funcionalidade e performance (AWS, 2022). Funcionamento de um banco de dados NoSQL Enquanto os bancos de dados relacionais são conhecidos pelo alto grau de restrições de consistência, os bancos de dados NoSQL dispensam alguma dessas exigências em favor de modelos de dados otimizados para aplicativos que consomem grande volume de dados, exigindo baixa latência e alta flexibilidade. Esses requisitos são atendidos mediante o relaxamento de algumas restrições de consistência de dados dos outros bancos. Para um entendimento prático, há o exemplo didático da AWS (Figura 18), a qual mostra a modelagem do esquema para um banco de dados simples de livros: Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 33 Em um banco de dados relacional, um registro de livro é normalmente disfarçado (ou “normalizado”) e armazenado em tabelas separadas, e os relacionamentos são definidos por restrições de chave primária e externa. Neste exemplo, a tabela Livros tem colunas para ISBN, Título do livro e Número da edição, a tabela Autores tem colunas para AuthorID e Nome do autor e, finalmente, a tabela Author-ISBN tem colunas para AuthorID e ISBN. O modelo relacional é projetado para permitir que o banco de dados imponha a integridade referencial entre as tabelas no banco de dados, normalizadas para reduzir a redundância e geralmente otimizadas para armazenamento. Em um banco de dados NoSQL, um registro de livro é normalmente armazenado como um documento JSON. Para cada livro, o item, o ISBN, o Título do livro, o Número de edição, o Nome do autor e o AuthorID são armazenados como atributos em um único documento. Neste modelo, os dados são otimizados para desenvolvimento intuitivo e escalabilidade horizontal. (AWS, 2022) Figura 18: Banco de dados relacionais X não relacionais Fonte da imagem: AWS. Utilidade de um banco de dados NoSQL Aplicativos que proporcionam excelentes experiências aos usuários, em que são necessários os quesitos de bancos de dados flexíveis, escaláveis e de alta performance (encontrados principalmente em jogos e na Web) são os principais motivos para utilizar o NoSQl. Esses quesitos são assim caracterizados: • Flexibilidade: dados semiestruturados e não estruturados são ideais e bem adaptados no NoSQL; • Escalabilidade: a utilização dos bancos de dados NoSQL a partir de clusters distribuídos facilita o gerenciamento; • Alta performance: o banco de dados NoSQL tem otimização que permite uma maior performance em relação com bancos de dados relacionais; Ryan Ferreira Destacar CLOUD COMPUTING 34 • Altamente funcional: as APIs dos bancos de dados NoSQL, por serem criadas especificamente para seus modelos de dados, tornam-se altamente funcionais. Estudo de Caso Samsung (Leia no Anexo III) – Pg. 58 CLOUD COMPUTING 35 UNIDADE IV CLOUD COMPUTING 36 ARQUITETURA E SERVIÇOS 4.1. ARQUITETURA Arquitetura é a arte e a ciência de projetar e modelar artificialmente o meio físico. Sistemas computacionais grandes e complexos também precisam de arquitetos para modelar o meio físico na nuvem. Características do arquiteto de nuvem: ✓ Envolvimento com os stakeholders para identificação do objetivo comercial e os recursos que precisam ser aprimorados; ✓ Garantia do alinhamento Resultados TI X Objetivos Empresariais; e ✓ Garantia de que a implementação da equipe seja apropriada para os recursos de TI. Dessa forma, com o sistema bem arquitetado, as chances do sucesso empresarial aumentam significativamente. Princípios básicos da arquitetura da Nuvem AWS (2022) e Azure (2022) concordam que os serviços na Arquitetura de Nuvem apresentam alguns padrões de excelência relacionados à arquitetura que devem ser ob- servados para poder atingi-la. São a base ou pilares da arquitetura da nuvem: excelência operacional, segurança, confiabilidade, eficiência de desempenho, otimização de custos e sustentabilidade. Pilar da Excelência Operacional O foco nesse pilar é a melhoria contínua de processos, procedimentos, execução e monitoramento de sistemas. Para atingir a excelência, muitas vezes deve-se cuidar da automação de alguns processos, de forma a tirar a carga de trabalho de alguém e direcionar o processo para o autômato. Gerenciamento de operações diárias cabe nesta mesma situação ou no processo de reação a eventos. Existem seis princípios de design para a excelência operacional na nuvem, que são: • Executar operações como código: definir e atualizar a carga de trabalho como código. Procedimentos operacionais devem ser orientados a eventos e configurados para serem acionados automaticamente, limitando, assim, o erro humano. • Anotar a documentação: faz parte da cultura de criação automática de docu- mentação, após cada compilação, para dar acesso a outras pessoas e sistemas. • Fazer alterações frequentes, pequenas e reversíveis: efetuar pequenas car- gas de trabalhos para uma atualização mais regular, fazendo, dessa forma, pe- quenos incrementos e evitando ao máximo afetar os clientes. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 37 • Refinar os procedimentos operacionais com frequência: melhorar cada vez mais os procedimentos operacionais e evoluir seus procedimentos de acordo com a evolução da carga. • Prever falhas: antecipar fontes de falha para que elas possam ser removidas por validar todos os cenários e verificar como cada um impacta em caso de falha, verificando também seus procedimentos para todas as situações nos eventos simulados. • Aprender com as falhas operacionais: a partir do erro cometido, promover melhorias e compartilhar experiências com a equipe para promover um aprendizado. Pilar da Segurança O foco nesse pilar é proteger as informações, sistemas e ativos sem deixar de entregar valor comercial por meio de avaliações de risco. A seguir estão os três pilares da segurança da informação: confidencialidade, integridade e disponibilidade: ✓ Confidencialidade: está ligada a quanto os dados estão seguros, de forma que eles não estejam espalhados e disponibilizados sem a devida autorização. Algumas medidas são necessárias para garantir a confidencialidade: somente pessoas autorizadas podem ter acesso às informações, consciência sobre as regras de segurança da empresa e proteção contra vírus e ciberataques; ✓ Integridade: a integridade se refere à garantia da preservação dos dados, ou seja, que não haja corrupção externa e nem interna dos dados da empresa. Para garantir isso, é necessário trabalhar na infraestrutura de lógica dos dados, como controle de acesso para os colaboradores, regras de permissão de arquivo e rotinas de backups diários. ✓ Disponibilidade: refere-se à capacidade dos detentores das informações terem acesso a qualquer instante. Dentro desses parâmetros existem sete princípios de design que podem melhorar a segurança, os quais são: ✓ Implementar uma base de identidade forte: começar com o mínimo de privilé- gio, impondo separação de responsabilidades. ✓ Habilitar a rastreabilidade: o monitoramento, auditorias e alertas de altera- ções devem ocorrer em tempo real com logs e métricas. ✓ Aplicar segurança em todas as camadas: aplicar a segurança em todas as camadas da arquitetura. ✓ Automatizar as melhores práticas de segurança: ao automatizar os mecanis- mos de segurança, ganha-se rapidez e economia. Arquiteturas cujos códigos são criados e gerenciados por versionamento tendem a ser mais seguras. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira DestacarRyan Ferreira Destacar CLOUD COMPUTING 38 ✓ Proteger dados em trânsito e ociosos: rotular seus dados em níveis de confi- dencialidade e usar mecanismos como criptografia, tokenização e controle de acesso. ✓ Manter as pessoas longe dos dados: evitar o processamento manual de dados para reduzir o risco de perda ou modificação de dados confidenciais devido a erros humanos. ✓ Preparar-se para eventos de segurança: gerenciar incidentes alinhados aos requisitos organizacionais por executar simulações de resposta a esses incidentes. Pilar da Confiabilidade A arquitetura será confiável tanto quanto aguentar a variação de carga de trabalho e processamento de acordo com a demanda, de forma rápida e sem falhas. Nesse pilar, pontos importantes a serem observados são o projeto de sistemas distribuídos, planeja- mento de recuperação e requisitos de adaptação a mudanças. Em relação ao design, podem ser citados estes cinco princípios para aumentar a confiabilidade: 1. Testar procedimentos de recuperação: usando a automação, fazer simulação de falha e recuperação dos sistemas de diferentes formas e cenários. Após isso, validar procedimentos de recuperação, o que facilita reações para um cenário real. 2. Recuperar automaticamente de falhas: indicadores com limites bem ajustados permitem uma recuperação quando essa barreira for transpassada, permitindo a notificação imediata e reparação de falhas. 3. Escalar horizontalmente para aumentar a disponibilidade agregada do sis- tema: o recurso grande deve ser substituído por microsserviços como forma de redução de impacto caso esse recurso falhe. 4. Parar de adivinhar a capacidade: automatizar a demanda de recursos. 5. Gerenciar alterações na automação: fazer da automação uma aliada para a realização de alterações na infraestrutura. Pilar da Eficiência de performance Neste pilar, rege a máxima do design minimalista: menos é mais. A estrutura inicial a ser alocada deve ser simplificada a partir de recursos de TI, com seleção de tipos e tamanhos certos. Há também a necessidade de monitoramento a fim de manter a eficiência de acordo com as necessidades comerciais. Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 39 Pilar da Otimização de custos Neste pilar é muito importante o conceito de serviços medidos, os quais propor- cionam o uso de recursos que podem ser monitorados, controlados e reportados, pro- porcionando transparência tanto para o provedor quanto para o consumidor do serviço utilizado, assim evitando gastos desnecessários. Pilar da Sustentabilidade Este pilar tem como foco reduzir o impacto ambiental devido à necessidade de expansão da nuvem, seguindo o modelo de responsabilidade compartilhada e máxima utilização dos recursos de forma a reduzir os impactos. 4.2. ESTILOS DE ARQUITETURA Em se tratando de arquitetura de nuvem, há o compartilhamento de algumas ca- racterísticas específicas. Algumas tecnologias são adequadas a determinadas arquite- turas, entretanto a arquitetura não exige a utilização de uma tecnologia específica. N camadas Normalmente utilizada em aplicativos empresariais, as dependências nas N camadas são gerenciadas dividindo o aplicativo de acordo com a execução de suas funções lógicas: acesso a dados, lógica de negócios e apresentação. Entretanto, esse estilo é fortemente acoplado, o que torna difícil manter uma camada sem interromper o serviço das demais, reduzindo a velocidade de atualização de novos recursos. Por ser muito utilizada em soluções já existentes, a arquitetura em camadas está presente em soluções de Infraestrutura como Serviço (IaaS). Trabalhador de Fila da Web Soluções de Plataforma como Serviço (PaaS) utilizam muito essa arquitetura por ser adequada para domínios simples com intensivo uso de recursos. A comunicação do aplicativo se dá nessa arquitetura através de um front-end do aplicativo, o qual manda requisições para seu back-end, processando então as tarefas através de uma fila de mensagens assíncronas. Quanto maior o domínio, mais difícil será gerenciar as depen- dências, dificultando assim a manutenção e atualização e, consequentemente, reduzir as inovações e atualizações. Microsserviços O ideal para domínios mais complexos são os microsserviços, que nada mais são do que a composição de vários serviços menores, cada um deles implementando um recurso de negócio e se comunicando através de contratos de API. Dessa forma, cada serviço pode ser criado, mantido e atualizado por uma pequena equipe de trabalho com mais experiência em desenvolvimento. Feito de forma correta, esse estilo promove velocidade na distribuição, inovação e arquitetura mais resiliente. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 40 Big Data, Computação Intensa Quando se necessita de alto desempenho na computação, cálculos paralelos, ren- derização, modelagem, simulações, são esses são os estilos de arquitetura adequados para computação intensa. 4.3. PRINCIPAIS CONCEITOS RELACIONADOS AO BALANCEADOR DE CARGA O Balanceador de carga (Figura 19) tem a função de distribuir o tráfego de entrada entre vários destinos, monitorando a integridade dos destinos por usar e rotear apenas para destinos íntegros, podendo ser dimensionado automaticamente. Ao utilizar o um balanceador de carga, a disponibilidade e tolerância à falha de aplicativos aumenta. Figura 19: Tipos de balanceador de carga Fonte da imagem: AWS. Balanceador de aplicativos O balanceador de aplicativos é recomendado quando se utiliza aplicativos com tráfego HTTP e HTTPS. Esse modelo de load balancer possui roteamento, microsservi- ços e contêineres, distribuição round robin do tráfego de entrada, entre outros. O Gate- way de Aplicativo pode facilmente, através de configuração, substituir um gateway voltado para a Internet. O balanceador de aplicativos opera na camada de aplicativo, ro- teando o tráfego para contêineres, endereços IP (Internet Protocol) e funções Lambda. Atualmente ele traz mais segurança ao garantir a utilização de criptografias e dos protocolos (SSL/TLS), muito utilizados atualmente. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 41 Figura 20: Modelo conceitual do Balanceador de carga Fonte da imagem: AWS Balanceador de rede O Network Load Balancer (Figura 21) opera a nível da conexão, permitindo um desempenho muito alto com suporte a endereços IPs e UDP. Figura 21: Modelo do balanceador de redes Fonte da imagem: AWS. Gateway Load Balancer O Gateway Load Balancer (Figura 22) é utilizado para ampliar a política de segurança e os controles de conformidade para dispositivos virtuais. Nele é possível mapear conexões de entrada e destinos por utilizar regras através das opções de serviço TCP e HTTP. Ryan Ferreira Destacar CLOUD COMPUTING 42 Figura 22: Modelo de balanceador de gateway Fonte da imagem: AWS. Técnicas de Load Balancer A aplicação do load balancer pode ocorrer em hardware, software ou em ambos. A seguir estão as duas técnicas mais utilizadas no mercado de TI para distribuição de requisições: Figura 23: Representação gráfica do load balancer Fonte da imagem: https://br.freepik.com/ Master/Slave: Nessa técnica (figura 24) pode haver um ou mais servidores intermediários, tam- bém conhecidos como Slave, que entram em ação quando o principal, chamado de Master, apresenta alguma instabilidade, problema ou deixa operar. Para garantir a estabilidade, há um data center para cada servidor. Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 43 Figura 24: Modelo Master/Slave Fonte da imagem: https://br.freepik.com/ Round Robin Neste modelo não existe o Slave, e todos os servidores disponíveis são conside- radosMaster. Sendo assim, quando um apresenta problema no funcionamento, o outro, já funcionando, assume as requisições do servidor que apresentou algum tipo de problema. Figura 25: Modelo Round Robin Fonte da imagem: https://br.freepik.com/ Ryan Ferreira Destacar CLOUD COMPUTING 44 Vantagens do Load Balance Por si só essa distribuição de carga já é uma enorme vantagem, porém, o load balance traz outras vantagens, como: • Eficiência: a distribuição de informação e de carga de trabalho torna eficiente o processamento de dados, melhorando, dessa forma, as operações das em- presas que utilizam dessa tecnologia. • Agilidade: com a técnica load balance, o sistema nunca fica inoperante e man- têm o bom desempenho da aplicação. • Escalabilidade: o load balance pode trazer melhorias nos seus sistemas de hardware e software. Com tudo em funcionamento, isso é uma operação escalável. • Flexibilidade: se o sistema é escalável, ele é flexível. • Redundância: caso ocorra a queda de um servidor, o servidor reserva entra em ação para que nenhum serviço fique fora do ar. 4.4. MONITORAMENTO: CLOUDWATCH A função de um aplicativo CloudWatch é monitorar e observar os recursos e as aplicações da nuvem que são executados em tempo real. A atividade desse tipo de aplicativo vai desde coletar até monitorar os recursos mensuráveis de um aplicativo. Pode-se criar alarmes quando o recurso de uma CPU estiver aquém ou além da necessidade, cobrança de faturas, taxa de transferência e até para aplicativos. Outra al- ternativa desses modelos de aplicativos é bem parecida com a ideia de firewall, na qual é possível definir regras de eventos de entrada/saída. CloudWatch é uma das ferramen- tas que permite visibilidade durante todo o processo do aplicativo. Alguns exemplos práticos desse aplicativo são: ✓ A utilização da média da CPU é superior a 60% por mais de 5 minutos; ✓ O número de conexões simultâneas é maior que 10 por mais de 1 minutos; e ✓ O número de hosts íntegros é menor que 5 por mais de 10 minutos. 4.5. AUTO SCALING Notadamente, a quantidade de informações que transita pela web passa de centenas de milhares, que são solicitações de cliente e retorno de dados confiáveis de textos, vídeos, imagens e aplicativos. Quando se executa aplicativos na nuvem, é necessário a garantia de que a arquitetura mude de acordo com necessidade da demanda de forma automática. Essa capacidade de aumentar ou diminuir a quantidade de recursos para seu apli- cativo é denominada escalabilidade. Imagine, por exemplo, uma loja que possui demanda de carga variável: sua maior carga ocorre em períodos sazonais como Dia das Mães ou Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 45 Natal. Nesse modelo, a maior quantidade de recursos é necessária nessas duas datas, e a menor quantidade nos demais períodos. A primeira opção seria atender a maior neces- sidade de demanda, mas os recursos durante o resto do ano ficariam simplesmente subutilizados. Dessa forma, haveria custos altos para pouca demanda em relação ao período anual. Caso fosse alocada uma menor capacidade de recursos, significaria que haveria, na melhor época de venda para a loja, uma baixa performance do aplicativo web justa- mente no período quando a perspectiva de venda é a melhor possível, correndo até a possibilidade de incorrer indisponibilidade para o cliente. Na nuvem há a possibilidade de programar o recurso e a capacidade computacional tornando possível a escalabilidade de forma. O Auto Scaling encontrado na maioria dos provedores permite manter a disponibilidade de recursos com seu respectivo aumento ou redução de recursos de acordo com a necessidade. Há várias possibilidades de forma a melhorar a performance do aplicativo, como adicionar novas instancias ou removê-las de forma programada. Para melhorar a perfor- mance, é possível criar um grupo de Auto Scaling, que nada mais é que um conjunto de instâncias Auto Scaling. Da mesma forma, será possível aumentar ou diminuir as instâncias de acordo com a necessidade. Tipos de escalabilidade • Escalabilidade manual: é especificada a escalabilidade anual com as altera- ções mínimas e máximas desejadas. • Escalabilidade programada: a partir de uma data e hora pré-estipulada irá ocorrer, em função delas, a escalabilidade. É muito útil para necessidade de recursos previsíveis. • Escalabilidade dinâmica sob demanda: é possível programar a escalabilidade a partir do consumo de recursos. Sua aplicação, inicialmente, precisa de duas instâncias: quando a utilização da CPU ultrapassar 50%, pode ser programada a entrada de outra instancia. É uma boa estratégia quando não se tem noção de quando será necessário a utilização de mais recursos. • Escalabilidade preditiva: é a utilização de modelos de Machine Learning que acompanham os padrões de tráfego existente. Ryan Ferreira Destacar CLOUD COMPUTING 46 Contêineres Quando se cria um aplicativo, junto a ele há bibliotecas e dependências que auxi- liam o código. Um contêiner nada mais é que o empacotamento do aplicativo, bibliotecas e dependências para que a execução ocorra em várias plataformas, como desktop, on- premises ou em cloud. Isso ocorre através de um modelo de virtualização do sistema operacional do host, tornando-o rápido e portátil, pois não é necessário incluir nele o sistema operacional (IBM, 2021). A diferença entre um contêiner e uma máquina virtual (VM) é que na VM ocorre a virtualização do hardware, do sistema operacional e do aplicativo com suas bibliotecas e dependência. Já nos contêineres há a virtualização do sistema operacional convidado, contendo apenas o aplicativo, suas bibliotecas e dependências, trazendo assim portabi- lidade, leveza e velocidade para eles. Vantagens dos contêineres • Leve: ao compartilhar o kernel do sistema operacional da máquina, reduz a utilização completa de uma instância do sistema operacional, tornando os contêineres menores e de fácil utilização; • Portátil: ao carregar suas próprias dependências e bibliotecas, não há neces- sidade de adaptação em outros ambientes de computação; • Desenvolvimento moderno: aplicativos modernos se beneficiam das tecnolo- gias serverless (sem servidor) e microsserviços; • Otimização de recursos: os contêineres otimizam a utilização dos recursos da máquina física (CPU, Memória). Kubernetes Com o crescimento dos aplicativos no modelo de contêiner, torna-se complexo a operacionalização desses contêineres. O Kubernete é uma API que gerencia o local e como esses contêineres serão executados: Aplicativos modernos são cada vez mais criados usando contêineres, que são microsserviços empacotados com suas dependências e configurações. O Kubernetes (pronúncia: /"koo-ber-net-ees/") é um software open-source para implantar e gerenciar esses contêineres em escala – além de ser a palavra grega para o timoneiro de um navio ou um piloto. Crie, entregue e dimensione aplicativos em contêiner mais rapidamente com o Kubernetes. (AZURE, 2022) Kubernetes gerenciam balanceamento de carga, alocam e dimensionam recursos de acordo com o uso computacional dos recursos e verificam a integridade dos aplicativos, reiniciando os contêineres automaticamente, caso seja necessário. Para entender ainda melhor a tecnologia, deve-se preste atenção no antes e depois da tecnologia kubernete (KUBERNETES, 2022): Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 47 Figura 26: Evolução dos modelos de implantação Fonte da imagem: Kubernetes. Implantação tradicional (Traditional Deployment): aplicações são executadas em servidores locais, causando problemas no dimensionamento de recursos computacio- nais. Ao executar várias aplicações ao mesmo tempo, incorre a possibilidade de uma aplicação ocupar a maior parte dos recursos emrelação a outra. Implantação virtualizada (Virtualized Deployment): as aplicações podem funcio- nar de forma isolada nas máquinas virtuais (VMs) de uma única CPU do servidor físico, permitindo a melhor alocação dos recursos. Implantação em contêineres (Container Deployment): são semelhantes às VMs- Contêineres, porém isolados em relação ao sistema operacional (SO) e as aplicações. A Azure lista alguns novos termos que surgiram com a utilização dos Kubernetes (AZURE, 2022), a saber: • Master: a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas se originam; • Nó: são máquinas que realizam as tarefas solicitadas e atribuídas. A máquina mestre do Kubernetes controla os nós; • Pod: um grupo de um ou mais containers implantados em um único nó. Todos os containers em um pod compartilham o mesmo endereço IP, IPC, nome do host e outros recursos. Os pods separam a rede e o armazenamento do contai- ner subjacente, e isso facilita a movimentação dos containers pelo cluster; • Controlador de replicações: controla quantas cópias idênticas de um pod devem ser executadas em um determinado local do cluster; • Serviço: desacopla as definições de trabalho dos pods. Os proxies de serviço do Kubernetes automaticamente levam as solicitações de serviço para o pod correto, independentemente do local do pod no cluster ou se este foi substituído; Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 48 • Kubelet: um serviço executado nos nós e que lê os manifestos do container, garantindo que os containers definidos foram iniciados e estão em execução; • Kubectl: a ferramenta de configuração da linha de comando do Kubernetes. Figura 27: Diagrama do Kubernete Fonte da imagem: AWS. Segurança da nuvem A maioria dos provedores trabalha a segurança de forma compartilhada. Dessa forma é possível reduzir a carga operacional ao mesmo tempo que pode oferecer flexibilidade e controle durante a implantação de aplicativos pelo cliente. Os provedores são responsáveis pela infraestrutura e segurança física das instalações. Já o cliente é responsável pela segurança na rede, criptografia e grupos de segurança. Na parte de segurança da nuvem, os recursos incluem segurança física dos datacenters, dispositivos de armazenamento, hospedagem dos sistemas operacionais, aplicativos, serviços de virtualização e, principalmente a infraestrutura de rede como roteadores e cabeamento. Governança de TI É a forma dos administradores controlarem os produtos e serviços operados na nuvem como controle de acesso, serviços e aplicações. Com a Governança de TI é pos- sível que os administradores possam automatizar a utilização de recursos. As ferramen- tas de Governança de TI permitem que o administrador controle a infraestrutura de forma geral. Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 49 O gerenciamento de nuvem é feito a partir de aplicativos já existentes, como máquina virtual (VM), banco de dados ou servidor. Tudo isso é sustentado pelo sistema operacional, por isso este deve funcionar em qualquer nuvem que se deseje utilizar. Não se deve confundir gerenciamento de nuvem com computação em nuvem. As nuvens são o conjunto de recursos disponíveis como armazenamento e serviços gerenci- ados. Tudo isso permite a combinação de políticas de governança, armazenamento e serviços sejam gerenciados por um software. Deve-se adequar a plataforma de acordo com a necessidade do administrador, mas, principalmente, a mudanças rápidas e itens a serem observados em uma plataforma de gerenciamento de útil. A plataforma de gerenciamento de TI deve integrar-se com a TI já proposta no ambiente corporativo, contendo: ✓ Capacidade de flexibilidade de automação, eliminando assim a redução de interação humana; ✓ Transparência necessária nos custos e recursos a serem visualizados; ✓ Acesso à internet e compatibilidade com uma variedade de tipos de nuvem (privada, pública e híbrida); e ✓ Manter o máximo controle sobre tudo. TCO na governança de TI É possível comparar qual é a melhor opção em termos de gastos quando se trata de uma solução na nuvem ou local. O TCO, ou Custo Total de Propriedade, é usado para aferir e estimar as necessidades financeiras que ajudam o administrador a compreender os custos indiretos e diretos dos custos associados ao serviço. Na nuvem, utiliza-se a relação infraestrutura x carga de trabalho tal qual se usaria em uma solução local. Quando se trata de custos ligados a um datacenter local, inclui-se: ✓ Custo de instalação para hardware e software onde serão provisionados esses equipamentos; ✓ Custo de administração desse equipamento e suas atualizações; e ✓ Custo de mão de obra especializada. As avalições dos serviços em nuvem são bem mais práticas devido à transparên- cia envolvida em relação as métricas de usos de RAM, armazenamento em disco e largura de banda. Dessa forma, o cliente pode fazer uma estimativa de custos com várias possi- bilidades e de forma bem rápida. Em uma avaliação de serviços local é necessário calcular custos diretos, como energia, operações de TI, e outros indiretos, como a infraestrutura de rede, sem contar os custos de software como banco de dados, segurança e administração de aplicativos. Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar Ryan Ferreira Destacar CLOUD COMPUTING 50 REFERÊNCIAS AWS. Amazon Virtual Private Cloud. AWS, 2022. Disponível em: https://docs.aws.ama- zon.com/pt_br/vpc/latest/userguide/how-it-works.html. Acesso em: 10 maio 2022. AWS. Infraestrutura Global. AWS, 2022. Disponível em: https://aws.amazon.com/pt/about- aws/globalinfrastructure/regions_az/?p=ngi&loc=2. Acesso em: 09 maio 2022. AWS. O que é a computação em nuvem? AWS, 03 maio 2022. Disponível em: https://aws.amazon.com/pt/what-is-cloud-computing/. Acesso em: 03 maio 2022. AWS. O que é banco de dados relacional? AWS, 2022. Disponível em: https://aws.ama- zon.com/pt/relational-database/. Acesso em: 13 maio 2022. AWS. O que é NoSQL? AWS, 2022. Disponível em: https://aws.amazon.com/pt/nosql/. Acesso em: 14 maio 2022. AWS. Seis Pilares da arquitetura de nuvem. AWS, 2022. Disponível em: https://aws.ama- zon.com/pt/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additi- onalFields.sortDate&wa-lens-whitepapers.sort-order=desc. Acesso em: 16 maio 2022. AZURE. Conceitos básicos da arquitetura de aplicativos do Azure. Azure, 2022. Disponí- vel em: https://docs.microsoft.com/pt-br/azure/architecture/guide/. Acesso em: 16 maio 2022. FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4ª. ed. Porto Alegre: Bookman, 2008. GONZAGA, Sergio. Computação em Nuvem. In: GONZAGA, Sergio Plataformas como Serviços (PaaS). Manaus: [s.n.], 2022. p. 46. HAT, Red. O que é Serverless. Red Hat, 2017. Disponível em: https://www.redhat.com/pt- br/topics/cloud-native-apps/what-is-serverless. Acesso em: 18 maio 2022. MELL, Peter M.; GRANCE, Timothy. The NIST Definition of Cloud Computing. The NIST Definition of Cloud Computing, 2011. Disponível em: https://www.nist.gov/publica- tions/nist-definition-cloud-computing. Acesso em: 19 fev. 2022. MICROSOFT. O que é computação em nuvem? Um guia para iniciantes. Azure, 2022. Dis- ponível em: https://azure.microsoft.com/pt-br/overview/what-is-cloud-computing/. Acesso em: 03 maio 2022. ORACLE. Banco de dados em nuvem. Oracle, 2022. Disponível em: https://www.ora- cle.com/br/database/what-is-a-cloud-database/. Acesso em: 14 maio 2022. CLOUD COMPUTING 51 ANEXO I - ZÉ DELIVERY CRIA SERVIÇO DE ENTREGA DE BEBIDAS NA AWS E SUSTENTA SEU CRESCIMENTO EXPONENCIAL4. Mais pessoas do que nunca estão usando seus telefones para encomendar cer- veja e outras bebidas para entrega em domicílio. Seguindo essa tendência, a Zé Delivery, uma subsidiária da produtora internacional de bebidas Anheuser-Busch