Prévia do material em texto
Disciplina COMPUTAÇÃO EM NUVEM Unidade 1 Fundamentos de Computação em Nuvem Aula 1 Conceitos básicos em Computação em Nuvem Conceitos em Computação em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, você irá conhecer conceitos básicos em computação em nuvem. A computação em nuvem refere-se ao uso de recursos computacionais, como armazenamento, processamento de dados e redes, que são fornecidos pela Internet. A ideia principal é fornecer acesso a recursos de computação sob demanda pela Internet, em vez de depender de recursos locais ou de servidores físicos. Esse conteúdo é importante para a sua prática pro�ssional, devido a uma série de benefícios e transformações que ela proporciona, como, por exemplo: Escalabilidade e elasticidade: permite escalar recursos de computação de acordo com as necessidades, evitando a necessidade de investir em hardware adicional. Custo-e�ciência: elimina a necessidade de investir em infraestrutura física, reduzindo custos iniciais e permitindo que as organizações paguem apenas pelos recursos que consomem. Acessibilidade remota: facilita o acesso a recursos computacionais de qualquer lugar com conexão à Internet, promovendo a �exibilidade e o trabalho remoto. Inovação rápida: permite o rápido desenvolvimento, teste e implantação de aplicativos, acelerando os ciclos de inovação e reduzindo o tempo de chegada ao mercado. Disciplina COMPUTAÇÃO EM NUVEM A computação em nuvem oferece oportunidades para otimizar operações, impulsionar a inovação e fornecer soluções e�cientes. É fundamental que os pro�ssionais estejam familiarizados com os conceitos e práticas relacionados à nuvem para tirar o máximo proveito desses benefícios. Prepare-se para esta jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante! Nesta unidade, veremos os conceitos de computação em nuvem. Atualmente, no mercado de Tecnologia da Informação (TI), o modelo de computação em nuvem é muito utilizado para a disponibilização de soluções de software escaláveis na internet. Portanto, é imprescindível conhecer as características e as tecnologias envolvidas. O conceito de nuvem é uma metáfora para um cenário no qual as aplicações podem ser acessadas remotamente, de qualquer lugar e dispositivo com conexão à Internet. O paradigma de computação em nuvem revolucionou a maneira como as organizações alocam e gerenciam recursos de Tecnologia da Informação (TI). Nesse novo modelo, recursos computacionais, como capacidade de processamento e armazenamento de dados disponíveis em provedores, podem ser alocados sob demanda, com pagamento de acordo com a quantidade e o tempo de uso. A possibilidade de redução de custos e �exibilidade no uso dos recursos de TI motivaram uma rápida migração de servidores e aplicações para provedores de computação em nuvem. Nesse contexto, é essencial o entendimento sobre como os serviços de computação em nuvem são provisionados, suas características e benefícios. Bons estudos! Vamos Começar! De�nição de computação em nuvem A computação em nuvem é um modelo de entrega de serviços de computação pela internet, permitindo o acesso sob demanda a recursos computacionais, como armazenamento, processamento, redes, software e outros, sem a necessidade de que o usuário tenha conhecimento ou controle direto sobre a infraestrutura subjacente. Computação em nuvem é um modelo para possibilitar acesso remoto, de modo ubíquo, conveniente e sob demanda, a um conjunto compartilhado de recursos computacionais con�guráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que Disciplina COMPUTAÇÃO EM NUVEM podem ser rapidamente alocados e liberados com mínimo esforço gerencial ou interação com o provedor de serviços (Mell; Grance, 2011, p. 2). Observe que os recursos computacionais disponíveis na nuvem podem ser os mais diversos e a alocação ou liberação dos recursos deve ser dinâmica. Isso foi possível, principalmente, em decorrência dos avanços nas tecnologias de virtualização e de redes de comunicação de dados. O conceito de virtualização permite que, em um mesmo computador, sejam criadas uma ou mais máquinas virtuais. Uma máquina virtual é um software que emula o funcionamento de um computador, ou seja, ela é capaz de executar programas como um computador real emulando, inclusive os componentes de uma máquina física, como disco, processador, monitor e placa de rede. A Figura 1 ilustra um provedor de serviços de computação em nuvem com diversas máquinas virtuais (VMs – virtual machines) instanciadas na infraestrutura de máquinas físicas. O uso de virtualização permite o compartilhamento da infraestrutura entre vários clientes e também viabiliza a alocação dinâmica. Não seria possível instanciar rapidamente um servidor físico, mas isso pode ser feito em instantes para uma máquina virtual. Os avanços nas tecnologias de rede e de serviços Web resultaram em um modelo de amplo acesso aos serviços. Os clientes podem usar os recursos computacionais remotamente a qualquer momento. Figura 1 | Máquinas Virtuais. Sousa, Moreira e Machado (2009) apresentam uma perspectiva interessante, que mostra a computação em nuvem como uma evolução do conceito de Utility Computing. Um serviço de Disciplina COMPUTAÇÃO EM NUVEM utilidade é aquele distribuído amplamente ao público geral com pagamento baseado no uso, por exemplo, a distribuição de energia elétrica e outros serviços de utilidade pública. Assim, a Utility Computing é uma visão da TI como um serviço de utilidade pago de acordo com a quantidade de recursos utilizados. Nesse contexto, temos serviços de TI sob demanda com pagamento baseado no uso. Esses serviços abrangem vários níveis, desde aplicações para usuários �nais, até grandes infraestruturas computacionais para empresas. Existem vários modelos de serviço na computação em nuvem, sendo os três principais: Infraestrutura como Serviço (IaaS): fornece acesso virtualizado a recursos de hardware, como capacidade de processamento, armazenamento e redes. Os usuários podem controlar e gerenciar sistemas operacionais, aplicativos e, em alguns casos, con�gurações de rede. Plataforma como Serviço (PaaS): oferece uma plataforma de desenvolvimento completa, na qual os desenvolvedores podem criar, implantar e gerenciar aplicativos sem se preocupar com a infraestrutura subjacente. Essa abordagem simpli�ca o processo de desenvolvimento. Software como Serviço (SaaS): fornece aplicativos baseados na web que são acessados por meio de um navegador da web. Os usuários não precisam se preocupar com a manutenção, atualização ou gerenciamento do software, já que isso é tratado pelo provedor de serviços em nuvem. A computação em nuvem oferece uma série de benefícios, incluindo escalabilidade, �exibilidade, e�ciência de custos, acesso remoto e maior facilidade de gerenciamento. Empresas e usuários podem aproveitar esses recursos sem a necessidade de investir em hardware e infraestrutura física signi�cativos. Além disso, a nuvem permite o pagamento com base no uso real, proporcionando maior e�ciência �nanceira. Principais características da computação em nuvem (elasticidade, escalabilidade, provisionamento sob demanda, etc.) Os serviços em nuvem podem ser acessados e gerenciados por uma aplicação Web. No entanto, não podemos a�rmar que toda aplicação disponível na Web é uma aplicação em nuvem. A seguir, algumas das características essenciais de serviços de computação em nuvem, conforme explicado em (Sousa; Moreira; Machado, 2009): Self-service: o próprio cliente gerencia a alocação dos recursos, com mínima interação com o provedor, na verdade, a alocação e uso dos serviços pode ser automatizada. Amplo acesso: os recursos podem ser acessados remotamente,sistemas na nuvem, proporcionando �exibilidade e e�ciência operacional. Siga em Frente... Como a elasticidade e a escalabilidade contribuem para a otimização do uso de recursos e a redução de custos Elasticidade e escalabilidade são conceitos-chave na otimização do uso de recursos e na redução de custos na computação em nuvem. Ambos permitem que as organizações ajustem dinamicamente seus ambientes de TI para atender à demanda �utuante, resultando em e�ciência operacional e �nanceira. Aqui estão algumas maneiras pelas quais esses conceitos contribuem para a otimização de recursos e redução de custos: Uso e�ciente de recursos: Elasticidade: permite a alocação dinâmica e automática de recursos conforme a demanda, evitando subutilização durante períodos de baixa demanda e provisionando automaticamente mais recursos quando necessário. Escalabilidade: permite adicionar ou remover recursos de maneira e�ciente, distribuindo a carga de trabalho de maneira equitativa entre instâncias ou ajustando verticalmente as instâncias conforme a necessidade. Pagamento por uso: Elasticidade: os modelos de elasticidade geralmente são baseados em pagamento por uso, em que os recursos consumidos são proporcionais à demanda real. Isso evita gastos desnecessários em recursos não utilizados. Escalabilidade: a escalabilidade permite ajustar os recursos de acordo com as necessidades especí�cas, evitando a necessidade de investimentos antecipados em infraestrutura que podem não ser totalmente utilizados. Disciplina COMPUTAÇÃO EM NUVEM Resposta dinâmica a mudanças de carga: Elasticidade: a resposta automática às mudanças na carga de trabalho garante que os recursos estejam sempre alinhados com a demanda real, otimizando a e�ciência operacional. Escalabilidade: permite que os sistemas respondam proativamente a picos de tráfego, garantindo que os recursos estejam disponíveis quando necessário e evitando interrupções ou degradação de desempenho. Redução de custos operacionais: Elasticidade: ao ajustar dinamicamente os recursos, as operações manuais de provisionamento e desaprovisionamento são reduzidas, resultando em menor carga operacional e menor probabilidade de erros humanos. Escalabilidade: a automação e a capacidade de escalonamento horizontal reduzem a necessidade de intervenção manual, tornando as operações mais e�cientes. Otimização de infraestrutura subutilizada: Elasticidade: evita a subutilização de recursos durante períodos de baixa demanda, garantindo que apenas os recursos necessários estejam em operação. Escalabilidade: permite a expansão ou redução rápida e e�ciente de recursos, otimizando a infraestrutura para atender às necessidades atuais. Flexibilidade e agilidade: Elasticidade: proporciona �exibilidade para adaptar rapidamente os recursos à medida que os requisitos do negócio mudam. Escalabilidade: oferece agilidade na expansão ou contratação de recursos, permitindo que as organizações respondam rapidamente às mudanças nas condições do mercado. Ao implementar estratégias e�cazes de elasticidade e escalabilidade, as organizações podem garantir que estão utilizando seus recursos de maneira e�ciente, otimizando os custos operacionais e proporcionando uma infraestrutura ágil e adaptável às demandas do ambiente de negócios. Vamos Exercitar? Venda de produtos online Descrição da situação-problema Disciplina COMPUTAÇÃO EM NUVEM Imagine uma empresa de comércio eletrônico que vende produtos online. Durante a Black Friday, a demanda por seus produtos aumenta signi�cativamente, resultando em picos de tráfego no site. A infraestrutura atual não é dimensionada para lidar com esses picos, e a equipe de TI está preocupada com a possibilidade de a experiência do usuário ser prejudicada devido à lentidão ou falhas no site. Resolução da situação-problema A ideia é implementar uma estratégia de elasticidade para ajustar dinamicamente os recursos com base na demanda. A infraestrutura existente não é facilmente escalável devido à falta de automação. Utilizar serviços de nuvem que oferecem recursos de elasticidade automática, por exemplo, adotar instâncias autoescaláveis em uma plataforma de nuvem como AWS, Azure ou Google Cloud. Fazer um monitoramento em tempo real: a equipe precisa estar ciente dos picos de tráfego para acionar a elasticidade e implementar ferramentas de monitoramento que rastreiem métricas como utilização de CPU, tráfego de rede e desempenho do site. Con�gurar alertas para acionar automaticamente o provisionamento adicional de recursos. Saiba mais Para saber mais, leia sobre elasticidade em computação em nuvem: o que é, qual a sua função? Referências CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à Computação, 2017. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.] Prentice Hall, 2013. MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing, 2020. Aula 5 Encerramento da Unidade Videoaula de Encerramento Este conteúdo é um vídeo! https://blog.saphir.com.br/elasticidade-em-cloud-computing-o-que-e/ Disciplina COMPUTAÇÃO EM NUVEM Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, exploraremos os diversos modelos de serviços em nuvem, destacando suas características distintas, benefícios e desa�os associados. Compreender esses modelos é essencial para tomar decisões informadas ao escolher a abordagem de nuvem mais adequada para atender às necessidades especí�cas de uma organização. Vamos mergulhar nos três principais modelos: Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço (SaaS). 1. Infraestrutura como Serviço (IaaS): Características: Fornece recursos de infraestrutura virtualizados, como máquinas virtuais, armazenamento e redes. Os usuários têm controle total sobre o sistema operacional, aplicativos e con�gurações. Benefícios: Escalabilidade e �exibilidade para provisionar recursos conforme necessário. Controle granular sobre a infraestrutura, adequado para cargas de trabalho personalizadas. Desvantagens: Requer habilidades técnicas para gerenciar e con�gurar a infraestrutura. Maior responsabilidade do usuário em termos de manutenção e atualizações. 2. Plataforma como Serviço (PaaS): Características: Oferece uma plataforma completa para desenvolvimento e implantação de aplicativos. Abstrai a complexidade da infraestrutura subjacente, permitindo que os desenvolvedores foquem no código. Benefícios: Acelera o desenvolvimento de aplicativos, reduzindo a complexidade operacional. Menos preocupações com con�gurações de infraestrutura, permitindo foco no código e na lógica do aplicativo. Desvantagens: Menos controle sobre a infraestrutura comparado ao IaaS. Disciplina COMPUTAÇÃO EM NUVEM Restrições nas tecnologias e ferramentas disponíveis podem ser limitantes. 3. Software como Serviço (SaaS): Características: Oferece aplicativos prontos para uso através da internet, sem a necessidade de instalação local. A manutenção e atualizações são gerenciadas pelo provedor de serviços. Benefícios: Acesso imediato a aplicativos sem a necessidade de instalação ou con�guração. Menor carga de gerenciamento para os usuários, pois as atualizações são automáticas. Desvantagens: Personalização limitada em comparação com soluções locais. Dependência da conectividade com a internet para acessar os serviços. Ao entender as nuances de cada modelo de serviço em nuvem, os pro�ssionais podem tomar decisões informadas ao planejar a transição para a nuvem. A escolha entre IaaS, PaaS ou SaaS dependerá das necessidades especí�cas de uma organização em termos de controle, �exibilidade e complexidade operacional. Esses modelos oferecem um panorama abrangente das opções disponíveis, capacitando as organizaçõesa alavancar os benefícios da computação em nuvem de maneira e�caz. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Chegada Olá, estudante! Para desenvolver a competência desta Unidade, que é conhecer e exempli�car os fundamentos, os modelos e as características essenciais da oferta de serviços em um ambiente de computação nuvem, você deverá primeiramente conhecer os conceitos fundamentais de computação em nuvem, modelos de serviços, modelos de implantação e elasticidade e escalabilidade. Vamos explorar cada componente: Fundamentos da computação em nuvem: A computação em nuvem refere-se à entrega de serviços de computação, como armazenamento, processamento, rede e software, pela internet. Características essenciais: Autoatendimento sob demanda: os usuários podem provisionar recursos conforme necessário, sem a necessidade de intervenção humana. Disciplina COMPUTAÇÃO EM NUVEM Acesso amplo à rede: os serviços são acessíveis pela internet, proporcionando disponibilidade global. Agrupamento de recursos: os recursos em nuvem são agrupados e compartilhados para atender a múltiplos clientes. Modelos de serviço em computação em nuvem: IaaS (Infraestrutura como Serviço): fornece recursos de infraestrutura, como servidores virtuais e armazenamento, permitindo que os usuários construam e gerenciem suas próprias plataformas. PaaS (Plataforma como Serviço): oferece uma plataforma completa para desenvolvimento e execução de aplicativos, eliminando a necessidade de gerenciar a infraestrutura subjacente. SaaS (Software como Serviço): oferece aplicativos prontos para uso por meio da internet, sem a necessidade de instalação local. Modelos de implantação em computação em nuvem: Nuvem pública: recursos são oferecidos por provedores de serviços em nuvem e compartilhados por múltiplos clientes. Nuvem privada: recursos são dedicados a uma única organização, oferecendo maior controle e privacidade. Nuvem híbrida: combina elementos de nuvens públicas e privadas, permitindo a transferência de dados e aplicativos entre os ambientes. Características essenciais da oferta de serviços em nuvem: Elasticidade: a capacidade de dimensionar recursos para cima ou para baixo conforme a demanda, proporcionando �exibilidade. Escalabilidade: a capacidade de lidar com aumentos ou diminuições na demanda mantendo o desempenho. Automação: a utilização de recursos automatizados para provisionamento, gerenciamento e otimização. Medição de serviços: a capacidade de medir e monitorar o uso de recursos, permitindo a cobrança com base no consumo. É Hora de Praticar! Disciplina COMPUTAÇÃO EM NUVEM Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Utilizando a Computação em Nuvem na Empresa Alfa LTDA. Descrição da situação-problema A Empresa Alfa Ltda., uma empresa de consultoria de pequeno porte, enfrenta desa�os relacionados à sua infraestrutura de TI desatualizada. Com a crescente demanda por �exibilidade, escalabilidade e inovação, a liderança da empresa reconhece a necessidade de explorar soluções de computação em nuvem. No entanto, eles estão incertos sobre como iniciar essa transição de maneira e�caz. Desa�os identi�cados: Infraestrutura desatualizada: a infraestrutura atual da Empresa Alfa é composta por servidores locais e sistemas herdados, tornando-a menos adaptável às demandas dinâmicas do mercado. Limitações de escalabilidade: a capacidade limitada de escalabilidade da infraestrutura existente impede a empresa de atender e�cientemente a picos de demanda ou expandir suas operações. Di�culdades em inovar rapidamente: a infraestrutura legada di�culta a implementação rápida de novas tecnologias, impedindo a empresa de se manter competitiva e inovadora. Diante desses desa�os, a liderança da Empresa Alfa se pergunta: como a adoção da computação em nuvem pode ajudar a modernizar nossa infraestrutura de TI, promover a escalabilidade e permitir uma inovação mais ágil? Como a computação em nuvem transformou a abordagem tradicional de provisionamento de recursos de TI e quais são os impactos dessa transformação nas organizações? Quais são os desa�os éticos e de segurança associados ao armazenamento e processamento de dados sensíveis em ambientes de computação em nuvem, e como as organizações podem abordar essas preocupações de maneira e�caz? Considere as implicações éticas e de segurança relacionadas à con�ança e privacidade dos dados em nuvem, destacando estratégias e práticas recomendadas para mitigar esses desa�os. De que forma a computação em nuvem está moldando a inovação tecnológica e possibilitando o desenvolvimento de novas aplicações e serviços? Resolução da situação-problema Estratégia de adoção da computação em nuvem: Disciplina COMPUTAÇÃO EM NUVEM 1. Avaliação da infraestrutura atual: realizar uma análise abrangente da infraestrutura atual para identi�car sistemas críticos e requisitos especí�cos. 2. Planejamento de migração gradual: desenvolver um plano de migração gradual, começando por transferir cargas de trabalho menos críticas para a nuvem. Isso permite testar a viabilidade da nuvem antes de migrar a sistemas mais sensíveis. 3. Escolha de serviços adequados: avaliar os modelos de serviço em nuvem (IaaS, PaaS, SaaS) para determinar qual se alinha melhor com as necessidades especí�cas da Empresa Alfa. 4. Controle de custos e otimização: implementar ferramentas de monitoramento de custos para garantir que a migração para a nuvem seja economicamente viável e otimizada. 5. Capacitação da equipe: oferecer treinamento à equipe de TI para adquirir as habilidades necessárias para gerenciar efetivamente a infraestrutura em nuvem. A Empresa Alfa Ltda. espera modernizar sua infraestrutura de TI, ganhando �exibilidade e escalabilidade, permitindo uma resposta mais rápida às demandas do mercado e promovendo uma cultura de inovação contínua. Os conceitos fundamentais fornecem uma base sólida para compreender a computação em nuvem. A Figura a seguir, mostra os conceitos de computação em nuvem. Disciplina COMPUTAÇÃO EM NUVEM CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à Computação, 2017. Disciplina COMPUTAÇÃO EM NUVEM ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.] Prentice Hall, 2013. MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing, 2020. , Unidade 2 Ofertas de Serviço em Computação em Nuvem Aula 1 Serviços de Processamento de Dados Serviços de Processamento de Dados Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, exploraremos os serviços de processamento de dados oferecidos pela computação em nuvem. Vamos abordar os principais conceitos, benefícios e cenários de uso desses serviços, fornecendo uma visão abrangente das capacidades que a nuvem oferece para o processamento e�ciente e escalável de dados. Esse conteúdo é importante para a sua prática pro�ssional, pois a adoção de serviços de processamento de dados em nuvem pode trazer e�ciência, �exibilidade e poder computacional para sua prática pro�ssional, independentemente do campo em que você atua. Esses serviços são uma parte essencial da infraestrutura tecnológica moderna. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Disciplina COMPUTAÇÃO EM NUVEM Caro estudante, nosso foco é compreender os serviços de processamento de dados que se referem a um conjunto de recursos e ferramentas oferecidos por provedores de serviços em nuvem para processar, transformar e analisar dados de maneira e�ciente e escalável. Esses serviços são projetados paralidar com grandes volumes de informações, executar tarefas de processamento distribuído e fornecer soluções para análise de dados. Ao migrar um sistema computacional para a nuvem, temos que escolher os serviços adequados para implantar cada um dos componentes do sistema. Vamos começar a nossa abordagem com a descrição de serviços de processamentos de dados, ou seja, instâncias que podem ser alocadas para execução de aplicações ou serviços web. Bons estudos! Vamos Começar! Serviços de rede em provedores de computação em nuvem Os provedores de computação em nuvem oferecem uma variedade de serviços de rede que permitem a criação, gerenciamento e otimização de infraestruturas de rede em ambientes de nuvem. Esses serviços são projetados para atender às necessidades de conectividade, segurança, desempenho e escalabilidade. Alguns dos principais serviços de rede oferecidos pelos provedores de nuvem: Virtual Private Cloud (VPC): é um serviço que permite aos usuários criar redes virtuais isoladas em uma nuvem pública. Ela fornece controle total sobre a con�guração da rede, como de�nição de sub-redes, criação de gateways e con�guração de regras de �rewall. Route 53 (Serviço de DNS): fornece registro de domínio, resolução de DNS e serviços de saúde para garantir alta disponibilidade e con�abilidade para aplicativos na nuvem. Virtual Private Network (VPN): permite a criação de conexões seguras entre a infraestrutura na nuvem e recursos locais. Isso é útil para estabelecer redes híbridas, conectando ambientes locais e em nuvem. Firewall de Rede: em nuvem, permite a de�nição de regras de segurança para controlar o tráfego de entrada e saída da rede, protegendo as instâncias e os recursos na nuvem. Serviço de Logs e Monitoramento: permite aos usuários rastrear e analisar o desempenho e a segurança de suas infraestruturas de rede. Esses são apenas alguns exemplos de serviços de rede disponíveis em provedores de nuvem, e a gama de ofertas pode variar de acordo com o provedor especí�co. A escolha dos serviços depende das necessidades especí�cas de conectividade, segurança e desempenho de uma aplicação ou sistema implantado na nuvem. Serviços para instanciar e gerenciar containers Disciplina COMPUTAÇÃO EM NUVEM Outro tipo importante de serviço para execução de aplicações é a instanciação de contêineres. Assim, quando uma empresa cliente precisa executar uma aplicação em um provedor, ela pode criar um contêiner para executar essa aplicação, em vez de criar uma máquina virtual. Além de escalonamento automático, os serviços de contêineres facilitam a replicação das instâncias de execução pois eles exigem menos recursos que as máquinas virtuais. Isso também implica em custos mais baixos. Quando uma empresa precisa executar uma aplicação em um provedor, ela pode criar um contêiner para executar essa aplicação, em vez de criar uma máquina virtual. Apesar de oferecer um nível mais baixo de isolamento e proteção se comprada às máquinas virtuais, a instanciação por contêineres oferece: Escalonamento automático. Exigência de menos recursos. Facilidade na replicação das instâncias de execução. Custos mais baixos. Para instanciar e gerenciar containers, diversos provedores de computação em nuvem oferecem serviços especí�cos que facilitam a orquestração, a implantação e o gerenciamento e�cientes desses ambientes isolados. A seguir, veja exemplos de serviços para gerenciamento de contêineres em provedores de nuvem pública: Amazon Elastic Container Service (Amazon ECS) (AWS, 2019b). Azure Container Instances (MICROSOFT, 2019a). Google Kubernetes Engine (GOOGLE, 2019d). IBM Cloud Kubernetes Service (IBM, 2019b). Em geral, as aplicações de TI são sistemas complexos, compostos por vários componentes, como bancos de dados, front-end web, entre outros. Cada um deles pode ser encapsulado em um contêiner e, para isso, são necessárias ferramentas para o gerenciamento. A partir disso, surgiu o conceito de orquestração de contêineres que corresponde ao processo de automatizar a implantação, o escalonamento e o gerenciamento dessas aplicações (Yegulalp, 2019). Ao escolher um serviço de nuvem para instanciar e gerenciar containers, é importante considerar os requisitos especí�cos do projeto, a familiaridade da equipe com a tecnologia e a integração com outros serviços do provedor de nuvem. Cada serviço tem suas próprias características e vantagens, e a escolha dependerá das necessidades especí�cas de cada aplicativo ou sistema. Siga em Frente... Instâncias de servidores virtuais na nuvem As instâncias de servidores virtuais na nuvem são máquinas virtuais (VM) provisionadas em ambientes de computação em nuvem. Essas instâncias oferecem poder computacional, Disciplina COMPUTAÇÃO EM NUVEM memória, armazenamento e outros recursos necessários para executar aplicativos e serviços. Cada provedor de nuvem tem seus próprios termos para essas instâncias. Por exemplo, se uma empresa precisa executar uma aplicação, ela deve alocar um servidor com capacidade computacional para isso, podendo criar uma máquina virtual na nuvem em que essa aplicação será executada. Para provisionamento de serviços em nuvem, os provedores fazem uso de sistemas de gerenciamento dos recursos computacionais. Um dos mecanismos mais importantes de tais sistemas é o Gerenciador de Infraestrutura Virtual (VIM – Virtual Infrastructure Manager), que coordena a criação de instâncias de máquinas virtuais a partir dos recursos computacionais disponíveis no provedor (Erl; Puttini; Mahmood, 2013). Em geral, o VIM mantém um repositório com imagens de máquinas virtuais, que são modelos pré-con�gurados a partir dos quais são criadas as instâncias solicitadas pelos clientes. Cada imagem possui uma determinada capacidade, em termos do número de núcleos de processamento e da quantidade de memória, e um sistema operacional especí�co já instalado e con�gurado. Alguns provedores permitem também a customização de VM, isto é, em vez de usar em um modelo prede�nido, o cliente pode con�gurar sua própria VM. Com a �nalidade de dar suporte a aplicações com diferentes requisitos, cada provedor oferece vários modelos de máquinas virtuais, além de especi�car o preço de cada um deles. Dessa forma, o cliente pode criar quantas instâncias forem necessárias para atender a sua demanda de TI. Um fator que in�uencia muito os preços é o tipo de alocação, sendo os dois principais: alocação de instâncias sob demanda e alocação de instâncias reservadas (Erl; Puttini; Mahmood, 2013). A alocação sob demanda é caracterizada pelo provisionamento dinâmico da máquina virtual no instante da solicitação, caso existam recursos disponíveis. Já a alocação de instâncias reservadas exige que o cliente especi�que previamente um compromisso de uso dos recursos. Os provedores cobram um preço menor para as instâncias reservadas, pois a solicitação antecipada permite melhor planejamento e otimização do uso da infraestrutura. Além disso, as instâncias sob demanda podem ser liberadas a qualquer momento, enquanto as reservadas têm o tempo de uso previamente especi�cado. Assim, é oferecido um preço menor para as instâncias reservadas com o objetivo de que os clientes as utilizem por um período de tempo maior, o que resulta em menos recursos ociosos no provedor. Nesse caso, o pagamento é feito de acordo com o tempo reservado e não pelo tempo efetivo de uso. Suponha que você precise de uma máquina com sistema Linux para executar um servidor de e- mail ou uma máquina com sistema Windows para executar uma aplicação web. Você conhece os serviços de computação disponíveis no mercado para alocação de máquinas virtuais? Entre eles, podemos citar: Amazon Elastic Compute Cloud (Amazon EC2) (AWS, 2019): é o serviço de instâncias de máquinas virtuais da AWS. Os usuários podem escolher entre uma variedade de tipos de instâncias, cada uma otimizada para diferentes casos de uso, como computação de propósito geral, otimização para CPU, otimização para memória, etc. Google Cloud Compute Enginte (Google, 2019a): fornece instânciasde máquinas virtuais como parte de seu serviço de computação em nuvem. Os usuários podem selecionar Disciplina COMPUTAÇÃO EM NUVEM instâncias otimizadas para computação, memória, armazenamento etc. IBM Cloud Virtual Servers (IBM, 2019c): oferece servidores virtuais que os usuários podem provisionar de acordo com suas necessidades de carga de trabalho. Eles podem ser dimensionados vertical ou horizontalmente, conforme necessário. Azure Virtual Machines (Microsoft, 2019): oferece máquinas VM que podem ser dimensionadas conforme a demanda. Os usuários podem escolher entre diferentes séries de VM, como Séries Básicas, Gerais, de Memória Otimizada, etc. Essas instâncias de servidores virtuais na nuvem oferecem várias vantagens, incluindo escalabilidade, �exibilidade, pagamento por uso, provisionamento rápido e a capacidade de adaptar recursos de acordo com as demandas da carga de trabalho. Os usuários podem escolher o tipo de instância que melhor atende às necessidades especí�cas de seus aplicativos, levando em consideração requisitos de desempenho, memória, armazenamento e outros fatores. As empresas podem usar esses serviços para alocar máquinas virtuais e, assim, construir uma infraestrutura virtualizada na nuvem de acordo com sua demanda de capacidade computacional. Os serviços de instanciação de máquinas virtuais oferecem mecanismos de autoescalonamento. Isso signi�ca que é possível habilitar a alocação automática de mais instâncias quando a demanda aumentar ou diminuir. Vamos Exercitar? Desa�os com a Infraestrutura de Servidores Locais Descrição da situação-problema Uma empresa de e-commerce está enfrentando desa�os com sua infraestrutura de servidores locais devido a picos imprevisíveis de tráfego durante promoções sazonais. A infraestrutura existente não é escalável e não consegue lidar e�cientemente com os aumentos repentinos de demanda, resultando em tempo de inatividade, experiência do usuário prejudicada e perda de receita. A equipe de TI busca uma solução para melhorar a escalabilidade, �exibilidade e con�abilidade de sua infraestrutura de servidores. Resolução da situação-problema: Para melhorar a escalabilidade, �exibilidade e con�abilidade, algumas ações são necessárias, como: Escolha do provedor de nuvem: analisar os serviços de instâncias de servidores virtuais oferecidos por provedores líderes, como AWS, Azure ou Google Cloud, levando em consideração requisitos especí�cos de desempenho, segurança e custo. Migração para instâncias de servidores virtuais: planejar e executar uma migração gradual, transferindo cargas de trabalho para instâncias de servidores virtuais na nuvem. Utilizar ferramentas e serviços oferecidos pelos provedores para facilitar a migração. Disciplina COMPUTAÇÃO EM NUVEM Dimensionamento automático: con�gurar instâncias de servidores virtuais com escalabilidade automática, permitindo que a infraestrutura seja expandida ou reduzida dinamicamente com base na demanda. Monitoramento e otimização: implementar ferramentas de monitoramento em tempo real para avaliar o desempenho das instâncias de servidores virtuais. Otimizar recursos conforme necessário para garantir e�ciência e reduzir custos. Backup e recuperação: con�gurar procedimentos robustos de backup e recuperação, usando serviços disponíveis na nuvem para garantir a integridade dos dados e a rápida recuperação em caso de falhas. Testes de resiliência: realizar testes regulares de resiliência, como simulações de falhas e recuperações, para garantir a con�abilidade e disponibilidade contínua do ambiente de instâncias de servidores virtuais. A migração para instâncias de servidores virtuais na nuvem permite à empresa de e-commerce melhorar signi�cativamente sua escalabilidade, �exibilidade e con�abilidade. A infraestrutura agora é capaz de lidar e�cientemente com picos de tráfego, garantindo uma experiência do usuário consistente durante promoções sazonais. Além disso, a empresa se bene�cia da �exibilidade de pagamento por uso e da capacidade de ajustar recursos conforme necessário para otimizar custos operacionais. Saiba mais Com a alocação dinâmica de máquinas virtuais, o provedor pode chegar a um cenário no qual há servidores físicos sobrecarregados (com muitas máquinas virtuais), enquanto outros servidores permanecem subutilizados (com poucas máquinas virtuais). Então, pode ser necessário realizar a migração de máquinas virtuais entre servidores físicos, a �m de otimizar desempenho e economizar energia. Para saber mais sobre migração de máquinas virtuais para economia de energia, acesse o artigo Migração de máquinas virtuais para economia de energia. Referências CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. Rio de Janeiro: Prentice Hall, 2013. MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020. Aula 2 Serviços de Armazenamento e Análise de Dados https://www.gta.ufrj.br/ftp/gta/TechReports/CFD14.pdf Disciplina COMPUTAÇÃO EM NUVEM Serviços de Armazenamento e Análise de Dados Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, exploraremos os serviços de armazenamento e análise de dados oferecidos na computação em nuvem. Vamos abordar os fundamentos dos serviços de banco de dados em nuvem, serviços em nuvem para análise de dados e serviços em nuvem de armazenamento de blocos e objetos. A importância dos serviços de armazenamento e análise de dados na nuvem impulsiona a inovação, a tomada de decisões e a e�ciência operacional em diversos setores. Esse conteúdo é importante para a sua prática pro�ssional, pois a adoção de serviços de armazenamento e análise de dados na nuvem é fundamental para pro�ssionais que buscam e�ciência, inovação e tomada de decisões baseadas em dados em um ambiente de trabalho cada vez mais orientado por informações. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante, vamos continuar nossos estudos explorando novos tipos de serviços de computação em nuvem. Nosso objetivo é conhecer serviços de armazenamento e análise de dados para empresas e pro�ssionais que desejam aproveitar ao máximo a capacidade da computação em nuvem. Esses serviços fornecem soluções escaláveis, e�cientes e seguras para lidar com grandes volumes de dados, permitindo armazenamento, processamento e análise de informações críticas para os negócios. Esse é um grande desa�o e, para tomar a decisão correta sobre a melhor solução para os dados em nuvem, é preciso conhecer serviços de banco de dados, análise de dados e armazenamento em nuvem. Ao �nal, você será capaz de identi�car os cenários de uso para os principais tipos de serviços de processamento e armazenamento de dados na nuvem. Bons estudos! Disciplina COMPUTAÇÃO EM NUVEM Vamos Começar! Serviços de banco de dados em nuvem Os serviços de banco de dados em nuvem oferecem opções �exíveis e escaláveis para armazenar, gerenciar e acessar dados em ambientes de computação em nuvem. Esses serviços eliminam a necessidade de gerenciamento de infraestrutura física e simpli�cam tarefas como backup, recuperação, escalabilidade e manutenção. A utilização de serviços de armazenamento de dados em nuvem traz uma série de vantagens, como redução de custos; delegação (para o provedor) das tarefas de gerenciamento e otimização dos bancos de dados e escalabilidade (Sousa et al., 2010). Além disso, devido à elasticidade dos serviços em nuvem, a alocação de recursos de armazenamento de dados pode ser feita de forma incremental, com o pagamento pelo uso. Assim, um cliente pode alocar mais capacidade de armazenamento à medida quemais dados são gerados pelas aplicações. A seguir, listamos alguns dos serviços de banco de dados em nuvem oferecidos por importantes provedores de nuvem: Amazon RDS (Relational Database Service): oferecido pela AWS, o Amazon RDS é um serviço totalmente gerenciado que suporta diversos bancos de dados relacionais, como MySQL, PostgreSQL, Oracle, SQL Server e MariaDB. Microsoft Azure SQL Database: o serviço de banco de dados relacional da Microsoft Azure oferece suporte a SQL Server e MySQL. Ele fornece um ambiente totalmente gerenciado, escalável e seguro. Google Cloud SQL: oferecido pelo Google Cloud Platform, o Cloud SQL oferece suporte a MySQL, PostgreSQL e SQL Server. Ele fornece um ambiente gerenciado para implantação e manutenção de bancos de dados. Amazon DynamoDB: é um serviço de banco de dados NoSQL oferecido pela AWS. Ele fornece armazenamento de chave-valor e é conhecido por sua escalabilidade e baixa latência. Microsoft Azure Cosmos DB: é um serviço de banco de dados globalmente distribuído, multi-modelo e multi-API na plataforma Azure. Ele suporta modelos de dados como documentos, grá�cos, chaves e famílias de colunas. Esses serviços de banco de dados em nuvem oferecem várias opções para atender a diferentes necessidades, desde bancos de dados relacionais tradicionais até soluções NoSQL e serviços especializados para aplicativos especí�cos. Ao escolher um serviço, os desenvolvedores e arquitetos precisam considerar requisitos especí�cos de seus aplicativos, como desempenho, modelo de dados, necessidades de escalabilidade e requisitos de segurança. Serviços em nuvem para análise de dados Disciplina COMPUTAÇÃO EM NUVEM Os serviços em nuvem para análise de dados fornecem soluções escaláveis e e�cientes para processamento, armazenamento e visualização de grandes conjuntos de dados. Esses serviços facilitam a realização de análises complexas, aprendizado de máquina e geração de insights a partir de dados. Os serviços de banco de dados em nuvem oferecem opções �exíveis e escaláveis para armazenar, gerenciar e acessar dados em ambientes de computação em nuvem. Em se tratando de armazenamento de dados em nuvem, não podemos deixar de falar no conceito de Big Data, que corresponde ao estudo e desenvolvimento de soluções para armazenamento, transferência e análise de grandes volumes de dados (Costa, 2012). O que caracteriza o cenário de Big Data é a velocidade que grandes massas de dados são geradas e também a variedades dos tipos de dados que, na maioria das vezes, não são estruturados. Isso é o resultado do crescimento exponencial de dados na Internet, com cada vez mais aplicações em escala mundial, aplicações de streaming multimídia, soluções de Internet das Coisas, entre outras fontes que geram dados a uma taxa crescente. Por exemplo, o sistema de vendas da maior empresa varejista dos EUA gera um volume de 2,5 PB (Petabyte) de dados por hora (Oussous, 2018). O ambiente de nuvem apresenta diversas vantagens para o desenvolvimento de soluções de Big Data, entre as quais podemos destacar: elasticidade, redução de custos e agilidade na alocação de recursos computacionais em larga escala (Costa, 2012). De fato, há argumentos de que Computação em Nuvem e Big Data são paradigmas inseparáveis (Hashem et al., 2015). A razão disso é que as infraestruturas de computação em nuvem representam o ambiente computacional que atende aos requisitos para implementação de soluções de Big Data, que exigem o processamento distribuído de grandes volumes de dados de forma e�ciente. Essas soluções, em geral, envolvem três tarefas principais: armazenamento, análise e visualização de dados. No Quadro 1, são descritos exemplos de serviços para análise de dados oferecidos pelos principais provedores de nuvem pública. Provedor Serviço Descrição AWS Amazon EMR (AWS, 2019d) O Amazon Elastic MapReduce (ERM) permite a criação dinâmica de um cluster com instâncias de máquinas virtuais para processamento distribuído de dados utilizando tecnologias como Hadoop (Apache, 2019), Hive Disciplina COMPUTAÇÃO EM NUVEM (Huai et al., 2014) e Spark (Zaharia, 2016). Amazon Kinesis (AWS, 2019g) Solução para análise em tempo real de dados de streaming, como dados de telemetria da IoT, logs de aplicativos e streaming de vídeo. Google Cloud BigQuery (Google, 2019a) Solução escalável no modelo serverless para aplicações de inteligência de negócios (BI – Business Intelligence). Cloud Data Fusion (Google, 2019b) Serviço para extração, transformação e integração de dados. Microsoft Azure HDInsight (Microsoft, 2019g) Serviço de alta disponibilidade e escalabilidade para processamento distribuído de dados utilizando frameworks de código aberto, como Spark, Kafha e Hadoop. Data Factory (Microsoft, 2019f) Serviço para extração, transformação e integração de dados. Quadro 1 | Exemplos de serviços para análise de dados. Esses serviços fornecem uma variedade de opções para empresas que desejam realizar análises de Big Data na nuvem, permitindo processar grandes volumes de dados de maneira e�ciente e extrair insights valiosos. A escolha do serviço dependerá dos requisitos especí�cos do projeto, dos frameworks preferidos e das integrações com outros serviços em nuvem. Siga em Frente... Disciplina COMPUTAÇÃO EM NUVEM Serviços em nuvem para armazenamento em blocos e de objetos Existe uma grande variedade de serviços de armazenamento de dados em nuvem. Para escolher o mais adequado, é importante avaliar como os dados devem ser estruturados, o volume de dados a ser manipulado e os requisitos da aplicação. De acordo com Erl, Puttini e Mahmood (2013), existem quatro tipos de serviços de armazenamento de dados em ambientes de computação em nuvem: Armazenamento em blocos: Alocação de blocos em discos de armazenamento disponibilizados na infraestrutura do provedor. Permite ao cliente alocar blocos em unidades de armazenamento gerenciadas pelo provedor. As unidades podem ser acessadas remotamente por meio de uma rede de alto desempenho dedicada para interconexão de equipa- mentos de armazenamento de dados. Esse tipo de rede é denominado Redes de Armazenamento de Dados (SAN- Storage Area Network) (Neto, 2007). Armazenamento de arquivos: Leitura e escrita em diretórios com sistema de arquivos gerenciado pelo provedor. O cliente do provedor de nuvem pode manipular arquivos remotamente, utilizando tecnologias para sistemas de arquivos distribuídos, como o Network File System (NFS) (Tanenbaum, 2008) ou Server Message Block (SMB) (Gonçalves, 2018). Armazenamento de objetos: Repositório para itens de dados binários (como vídeos, imagens, etc.). Solução para acesso a arquivos binários, como áudios ou fotos, por meio de um serviço web gerenciado pelo provedor. Armazenamento de bases de dados: Sistemas de gerenciamento de banco de dados (SGBDs) mantidos pelo provedor. Há suporte tanto para SBGBs relacionais, quanto não relacionais. Disciplina COMPUTAÇÃO EM NUVEM Figura 1 | Tipos de serviços de armazenamento em nuvem. O armazenamento em blocos é o modelo com menor nível de abstração entre as alternativas para persistência de dados em provedores de nuvem (Erl; Puttini; Mahmood, 2013). De fato, o bloco é a unidade lógica mínima de armazenamento de dados oferecida por um sistema operacional, em se tratando de gerenciamento de unidades de memória secundária. No ambiente de nuvem, o provedor utiliza também técnicas de virtualização para criar unidades de armazenamento virtuais em dispositivos físicos de armazenamento, da mesma maneira como as máquinas virtuais podem ser criadas em servidores físicos. Os dispositivos de armazenamento físicos utilizados pelos provedores incluem HDs (Hard Disks) tradicionais, do tipo disco magnético, e também unidades do tipo SSD (solid-state drive). As unidades virtuais de armazenamento em bloco oferecidas pelos provedores são criadas sobre esses recursos físicos para servir como discos das máquinas virtuais ou contêineres. Em geral, a principal �nalidade dos serviços de armazenamento em blocona nuvem é servir como discos para instâncias como máquinas virtuais (VM) ou contêineres, como ilustrado na Figura 2. Essas instâncias precisam de capacidade de armazenamento de dados para executar as aplicações. Então, quando a criação de uma instância é solicitada, o provedor cria automaticamente uma unidade virtual de armazenamento em bloco, que é usada como disco dessa instância, ou seja, a unidade de armazenamento em bloco é o disco da máquina virtual. Disciplina COMPUTAÇÃO EM NUVEM Figura 2 | Tipos de serviços de armazenamento em nuvem. No entanto, as unidades de armazenamento em bloco também podem ser usadas em outras soluções, por exemplo, para implantação de algum mecanismo automático de backup de dados na nuvem. No Quadro 2, são apresentados alguns serviços em nuvem de armazenamento em bloco. Provedor Serviço AWS Amazon Elastic Block Store (Amazon EBS) (AWS, 2019b). Google Cloud Persistent Disk (Google, 2019c). Microsoft Azure Azure Disk Storage (Microsoft, 2019b). Quadro 2 | Exemplos de serviços de armazenamento em bloco. Disciplina COMPUTAÇÃO EM NUVEM O segundo tipo de serviço é o armazenamento de arquivos em nuvem. Nesse caso, a unidade de armazenamento são os próprios arquivos (Erl; Puttini; Mahmood, 2013). O acesso ao serviço de armazenamento é feito por meio de alguma tecnologia de sistema de arquivos distribuídos, como NFS ou SMB. Esse tipo de serviço é bastante utilizado para compartilhamento de arquivos em rede, por exemplo, para manter o diretório home dos usuários de uma rede corporativa, com as vantagens da escalabilidade e disponibilidade do armazenamento em nuvem. Assim, os usuários podem acessar seus arquivos de qualquer dispositivo com acesso à Internet. Exemplos de serviços em nuvem para armazenamento de arquivos são relacionados no Quadro 3. Provedor Serviço AWS Amazon Elastic File System (Amazon EFS) (AWS, 2019c). Google Cloud Cloud Filestore (Google, 2019d). Microsoft Azure Azure Files (Microsoft, 2019b). Quadro 3 | Exemplos de serviços de armazenamento arquivo. O terceiro tipo de serviço de armazenamento em nuvem é o armazenamento de objetos. Nesse caso, as unidades de armazenamento são objetos gerenciados como recursos web (Erl; Puttini; Mahmood, 2013). Isso signi�ca que o acesso aos dados pode ser feito na forma de requisições HTTP. Os provedores suportam armazenamento de objetos de vários tipos, como imagens, arquivos executáveis, vídeos, entre outros. Além disso, os provedores oferecem uma API para que as aplicações possam manipular os objetos por meio de requisições na web, em vez de usar linguagens de consultas comuns em gerenciadores de bancos de dados. Provedor Serviço AWS Amazon Simple Storage Service (Amazon S3) (AWS, 2019h) Google Cloud Google Cloud Storage (Google, 2019i) Microsoft Azure Azure Blob Storage (Microsoft, 2019a) Quadro 4 | Exemplos de serviços de armazenamento de objetos. Por �m, o quarto tipo de serviço de armazenamento em nuvem é o armazenamento de bases de dados. Esse modelo corresponde aos serviços de banco de dados em nuvem ou Banco de Dados Disciplina COMPUTAÇÃO EM NUVEM como Serviço (DBaaS - Database as a Service). São serviços que, em geral, suportam algum tipo de linguagem de consulta, além de operações básicas de escrita ou leitura de dados (Erl; Puttini; Mahmood, 2013). No Quadro 5, são apresentados exemplos de serviços de banco de dados em nuvem para duas categorias de Sistema Gerenciador de Banco de Dados (SGBD): relacional e não relacional. Como explica Souza et al. (2014), os bancos de dados relacionais são aqueles que utilizam a álgebra relacional para suporte à consistência forme, armazenam dados de forma estruturada e implementam alguma linguagem de consulta estruturada (SQL - Structured Query Language). Provedor Categoria Serv iço AWS Relacional Amazon RDS (AWS, 2019g) Não relacional Amazon DynamoDB (AWS, 2019a) Google Cloud Relacional Cloud SQL (Google, 2019e) Não relacional Cloud Firestore (Google, 2019d) Microsoft Azure Relacional Azure SQL Database (Microsoft, 2019e) Não relacional Azure Cosmos DB (Microsoft, 2019d) MongoDB Não relacional MongoDB Atlas (Mongodb, 2019) Quadro 5 | Exemplos de serviços de banco de dados em nuvem. O baixo desempenho dos bancos de dados relacionais para gerenciamento de grandes volumes de dados motivou o desenvolvimento dos bancos de dados não relacionais, também denominados “não apenas SQL” (NoSQL – not only SQL) (Souza et al., 2014). Os bancos não relacionais apresentam desempenho e escalabilidade signi�cativamente superior para lidar com grandes volumes de dados não estruturados, o que é muito importante, por exemplo, para aplicações web em larga escala. Vamos Exercitar? Disciplina COMPUTAÇÃO EM NUVEM Serviços para Backup Descrição da situação-problema Considere que você é um analista de TI em uma empresa que atua no mercado de telecomunicações. Para melhorar a con�abilidade dos serviços, essa empresa pretende implantar um novo software de backup de dados. Para essa solução de backup, os requisitos mais importantes são custo e escalabilidade, pois o volume de dados da empresa está crescendo devido a uma expansão da sua área de atuação. Seu papel é determinar um modelo de armazenamento para o software de backup dos dados da empresa. Resolução da situação-problema: Em geral, as soluções de backup exigem crescente capacidade de recursos computacionais. Isso resulta em altos investimentos, principalmente em dispositivo de armazenamento de dados. Como os principais requisitos são escalabilidade e redução de custos, uma alternativa atraente seria utilizar serviços de armazenamento em nuvem. A razão é que a capacidade de armazenamento pode ser contratada de forma incremental, de acordo com a demanda, além disso, não seriam necessários investimentos para adquirir e manter a infraestrutura de unidades de armazenamento. Entre os tipos de serviços de armazenamento em nuvem, deve-se escolher algum caracterizado por um alto nível de controle por parte do cliente. Isso é necessário porque o software de backup precisa formatar as unidades lógicas de armazenamento. Essa caraterística é própria dos serviços de armazenamento em blocos. A empresa pode, então, contratar algum serviço desse tipo, por exemplo, o Amazon EBS, Google Persistent Disk ou Azure Disk Storage. O volume contratado seria, então, disponibilizado como uma unidade lógica de armazenamento para o software de backup, que poderia ser formatada e utilizada para armazenar os arquivos de backup gerados pelo software. O volume poderia ter sua capacidade expandida, conforme necessário. Nesse caso, é importante usar criptogra�a para garantir sigilo dos dados de backup enviados para a unidade de armazenamento no provedor e também veri�car a qualidade da rede para que o backup seja realizado de forma rápida. É importante, ainda, salientar que existem serviços gerenciados de backup em nuvem, o que pode ser interessante para muitas empresas que querem um serviço de mais alto nível de abstração, gerenciados pelo provedor. Exemplos desse serviço são: AWS Backup e Azure Backup. Saiba mais Embora o backup na nuvem ofereça muitos benefícios, também apresenta desa�os especí�cos. Para conhecer mais sobre esses desa�os, acesse o artigo 5 desa�os do backup na nuvem que você precisa conhecer. https://www.controle.net/faq/5-desafios-do-backup-na-nuvem#:~:text=O%20problema%20%C3%A9%20que%20como,no%20servidor%20tamb%C3%A9m%20ser%C3%A3o%20tarifadas https://www.controle.net/faq/5-desafios-do-backup-na-nuvem#:~:text=O%20problema%20%C3%A9%20que%20como,no%20servidor%20tamb%C3%A9m%20ser%C3%A3o%20tarifadas Disciplina COMPUTAÇÃO EM NUVEM Referências DE SOUZA, Alexandre Morais; PRADO, Edmir P. V.; SUN, Violeta; FANTINATO, Marcelo. Critérios para Seleção de SGBD NoSQL: o Ponto de Vista de Especialistas com base na Literatura. In: SIMPÓSIO BRASILEIRO DE SISTEMAS DE INFORMAÇÃO (SBSI), 10. , 2014, Londrina. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2014. p. 149-160. DOI: https://doi.org/10.5753/sbsi.2014.6109.OUSSOUS, A. et al. Big Data technologies: A survey. Revista da King Saud University - Ciências da Computação e Informação. v. 30, 4. ed. Outubro de 2018 , p. 431-448. Disponível em: http://www.sciencedirect.com/science/article/pii/S1319157817300034. Acesso em: 24 jan. 2024. TANENBAUM, A. S.; STEEN, M. V. Sistemas Distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2008. Aula 3 Solução em Nuvem Solução em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, vamos explorar o conceito de soluções em nuvem, abordando o que são, como funcionam e os benefícios que oferecem. Vamos mergulhar nos principais elementos que compõem uma solução em nuvem e discutir casos de uso práticos para demonstrar como essas soluções podem transformar a maneira como as organizações gerenciam recursos e serviços. Esse conteúdo é importante para a sua prática pro�ssional, pois a adoção de soluções em nuvem é fundamental para pro�ssionais que buscam e�ciência operacional, inovação tecnológica e adaptação às demandas dinâmicas do mercado. Essa abordagem permite que os https://doi.org/10.5753/sbsi.2014.6109 https://www.sciencedirect.com/journal/journal-of-king-saud-university-computer-and-information-sciences https://www.sciencedirect.com/journal/journal-of-king-saud-university-computer-and-information-sciences https://www.sciencedirect.com/journal/journal-of-king-saud-university-computer-and-information-sciences/vol/30/issue/4 http://www.sciencedirect.com/science/article/pii/S1319157817300034 Disciplina COMPUTAÇÃO EM NUVEM pro�ssionais alcancem melhores resultados e permaneçam competitivos em seus campos de atuação. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante, já estudamos vários tipos de serviços de computação em nuvem. Esta seção dá continuidade ao nosso estudo sobre a solução em nuvem, que se refere a um conjunto de serviços, recursos e aplicativos hospedados em ambientes de computação em nuvem. Essa abordagem envolve o uso de servidores remotos, armazenamento, redes e outros serviços baseados na internet para atender a necessidades especí�cas de uma organização ou usuário. Vamos começar com uma descrição sobre a grande variedade de serviços quem podem ser utilizados para enriquecer e so�sticar as funcionalidades, assim como as soluções em nuvem para tornar o processo de desenvolvimento de software mais produtivo. Em seguida, vamos abordar aplicações multimídia e, por �m, serviços relacionados à Internet das Coisas (IoT – Internet of Things). Bons estudos! Vamos Começar! Soluções em nuvem para desenvolvimento de software Há várias soluções em nuvem projetadas para facilitar o desenvolvimento de software, proporcionando uma infraestrutura escalável, ferramentas de colaboração e ambientes integrados. Os provedores oferecem soluções para diversas etapas do processo de desenvolvimento, desde a codi�cação até a implantação e o teste de aplicações em ambientes de produção nos provedores de computação em nuvem. Essas soluções permitem automatizar todo o ciclo de criação, teste e implantação de aplicações em uma infraestrutura gerenciada pelo provedor. O Quadro 1 relaciona exemplos de serviços voltados para equipes de desenvolvimento de software. A AWS oferece serviços como o AWS X-Ray e o CodePipeline. O AWS X-Ray serve para avaliar o desempenho de aplicações, tanto na fase de testes (para aplicações em desenvolvimento) como na fase de manutenção (para aplicações que já foram implantadas em ambiente de produção). Essa solução permite o diagnóstico de problemas de desempenho nos componentes de aplicações distribuídas. O CodePipeline é um serviço para automatizar o lançamento de novas versões de uma aplicação; nesse caso, uma vez que o código é alterado e testado, o processo de implantação da nova versão no ambiente de nuvem passa a ser automático. Entre os serviços oferecidos pelo Google Cloud, podemos citar a ferramenta para Disciplina COMPUTAÇÃO EM NUVEM gerenciamento de código-fonte denominada Cloud Source Repositories, que permite automatizar a alocação de recursos para implantação de aplicações. O provedor Microsoft Azure oferece um conjunto de serviços de gestão de projetos de software agrupados em uma plataforma denominada Azure Devops. Entre esses serviços, podemos citar o Azure Boards, para gerenciamento de tarefas seguindo o paradigma de metodologias ágeis (Balle, 2011), e o Azure Test Plans, que permite a con�guração e a execução de testes de software de forma automatizada. Serviço Descrição Caso de Uso AWS X-Ray (AWS, 2019g) Ferramenta para identi�car e solucionar problemas de desempenho em aplicações distribuídas. Identi�cação automática das partes de uma aplicação web que apresentam problemas de desempenho (alta latência por exemplo), assim como a causa dos problemas. AWS CodePipeline (AWS, 2019b). Solução para integração contínua e entrega contínua a �m de automatizar o gerenciamento das atualizações de aplicações. Especi�cação de eventos para fazer a implantação (deployment) automático de uma aplicação quando o código-fonte é alterado. Cloud Source Repositories (Google, 2019b) Repositório para gerenciamento de código fonte com suporte a controle de versões e busca. Controle de diversas versões do código fonte de uma aplicação por uma equipe de desenvolvimento. Azure Test Plans (Microsoft, 2019b) Ferramenta para automação de testes de software. Gerar grá�cos de resultados de testes em uma aplicação web (por exemplo, número de testes bem-sucedidos e fa lhas), assim como veri�car a compatibilidade com diferentes navegadores web. Disciplina COMPUTAÇÃO EM NUVEM Azure Boards (Microsoft, 2019a) Ferramenta para gerenciamento de projetos utilizando metodologias ágeis. Criar painéis de bordo (dashboards) para acompanhamento das atividades de um projeto de desenvolvimento de software. Quadro 1 | Exemplos de serviços para desenvolvimento de software. Essas são apenas algumas das soluções em nuvem disponíveis para desenvolvimento de software. A escolha depende das necessidades especí�cas do projeto, preferências da equipe de desenvolvimento e requisitos de escalabilidade e colaboração. Serviços para aplicações multimídia em nuvem Para aplicações multimídia em nuvem, que envolvem processamento, armazenamento e entrega de conteúdo de mídia, existem diversos serviços e ferramentas disponíveis. Esses serviços podem ser úteis para lidar com vídeos, áudio, imagens e outros tipos de conteúdo multimídia. Vamos estudar exemplos voltados para aplicações que incluem conteúdo multimídia. Esses serviços são muito importantes para facilitar o desenvolvimento de aplicações de streaming de vídeo, por exemplo. Vejamos alguns deles: Provedor AWS: oferece vários serviços de mídia. Elemental MediaConvert: é importante como recurso para promover a portabilidade das soluções, pois permite gerar mídias em diferentes formatos. AWS Elemental MediaConnect: é uma plataforma escalável e �exível para transmissão de vídeo ao vivo. O Microsoft Azure também disponibiliza serviços para aplicações multimídia. O serviço Content Protection inclui mecanismos para garantir que somente dispositivos autorizados possam reproduzir �uxos (streaming) de mídia distribuídos por uma aplicação. Para streaming de vídeo ao vivo ou sob demanda, o Azure oferece o serviço Live and On-Demand Streaming. Serviço Descrição Caso de Uso AWS Elemental MediaConvert (AWS, 2019d) Mecanismos para converter um vídeo de entrada em diferentes formatos de saída a �m de oferecer suporte para várias plataformas e dispositivos. Um caso de uso para esses serviços são as aplicações de streaming de áudio, como o Spotify, que precisam gerar arquivos de áudioem vários formatos e Disciplina COMPUTAÇÃO EM NUVEM qualidades para atender a diferentes dispositivos dos usuários. AWS Elemental MediaConnect (AWS, 2019c) Solução para transmissão de vídeo ao vivo escalável, con�ável e segura. Aplicação de transmissão ao vivo de eventos esportivos. Live and on-demand streaming (Microsoft, 2019f) Serviço com recursos para codi�cação e distribuição escalável de vídeo (ao vivo ou sob demanda). Transmissão ao vivo de eventos na forma de webcasts. Quadro 2 | Exemplos de serviços para aplicações multimídia. Esses serviços são apenas alguns exemplos e podem ser combinados para criar soluções personalizadas para diferentes casos de uso em aplicações multimídia em nuvem. A escolha dos serviços dependerá dos requisitos especí�cos da aplicação e das preferências tecnológicas. Siga em Frente... Serviços para aplicações de IoT na nuvem A Internet das Coisas pode ser entendida como um cenário no qual qualquer objeto com capacidade computacional e de comunicação pode se conectar à Internet (Santos et al., 2016), que possibilitou o surgimento de novas aplicações que envolvem a comunicação com ou entre esses objetos inteligentes. Podemos mencionar, inclusive, novos importantes conceitos decorrentes dos avanços em IoT, como Cidades Inteligentes (Kon; Santana, 2016) e a Indústria 4.0 (Azevedo, 2017). O conceito de Cidades Inteligentes consiste no uso de tecnologias da informação e comunicação para tornar mais e�ciente a gestão dos centros urbanos, por exemplo, com soluções para mobilidade e controle de iluminação pública. De forma análoga, o paradigma da Indústria 4.0 envolve o uso de tecnologias para inovação nos processos industriais, por exemplo, em soluções de monitoramento e manutenção preventiva de equipamentos em fábricas ou soluções de logística e rastreamento de produtos. Existem diversos serviços em nuvem para a implementação de aplicações de IoT. Para entender a sua utilidade, precisamos conhecer a arquitetura geral de aplicações IoT que utilizam recursos na nuvem, como ilustra a Figura 1. Os dispositivos IoT são equipados com sensores, processadores e interfaces de comunicação sem �o. Um gateway é utilizado para gerenciar um canal seguro de comunicação entre os dispositivos e os serviços em nuvem. Os dados coletados podem ser utilizados de várias formas, inclusive por meio de integração com outras aplicações. Disciplina COMPUTAÇÃO EM NUVEM Os provedores em nuvem oferecem, por exemplo, serviços para coleta, análise e visualização de dados dos dispositivos conectados. Figura 1 | Visão geral da arquitetura de uma aplicação IoT. O Quadro 3 descreve alguns serviços em nuvem para suporte a aplicações de IoT. Por exemplo, o serviço AWS IoT SiteWise é voltado para o suporte a soluções para Indústria 4.0, a �m de aprimorar a e�ciência de equipamentos e processos. Um caso de uso típico é a coleta de dados de máquinas e robôs em linhas de produção e montagem, enviando-os para análise na nuvem. Relatórios com diagnóstico e indicadores de desempenho podem ser gerados para previsão de falhas nos equipamentos e identi�cação de oportunidades de otimização dos processos. Outro caso é uma empresa de distribuição de energia elétrica que poderia usar esse serviço para construir uma aplicação de monitoramento remoto dos equipamentos da rede. Para aplicações de IoT que usam dados de localização, uma opção de serviço é o Azure Maps, que pode ser usado na área de mobilidade urbana e sistemas de rastreamento de objetos ou veículos. O serviço Google IoT Core pode ser utilizado como um IoT Gateway para gerenciamento dos dispositivos e coleta de dados. Serviço Descrição AWS IoT SiteWise (AWS, 2019f) Serviço para análise de dados e monitoramento de instalações industriais. AWS IoT Device Defender (AWS, 2019e) Solução para con�guração de mecanismos de segurança na comunicação de dispositivos de IoT entre si e com a nuvem. Pode ser utilizado para implementação de estratégias de autenticação de Disciplina COMPUTAÇÃO EM NUVEM dispositivos e criptogra�a de dados em uma aplicação de IoT. Cloud IoT Core (Google, 2019) Plataforma para coleta, análise e visualização de dados de dispositivos IoT em tempo real. Azure Maps (Microsoft, 2019c) Mecanismos para manipulação de dados geoespaciais para suporte à inteligência baseada em localização. Azure Time Series Insights (Microsoft, 2019b) Análise de dados de séries temporais coletados por aplicações IoT em larga escala. Esses recursos são importantes, por exemplo, para aplicações de sensoriamento remoto ou aplicações que trabalham com previsões e identi�cação de tendências em grandes volumes de dados. Quadro 3 | Exemplos de serviços para aplicações de IoT. Esses exemplos mostram como serviços em nuvem podem ser utilizados no suporte a aplicações de IoT. Diversos estudos mostram como a IoT e a computação em nuvem são complementares e como a integração desses conceitos viabilizou o surgimento de aplicações inovadoras (Botta et al., 2016). No Quadro 4, alguns aspectos da computação em nuvem e da IoT são comparados, para mostrar como elas se relacionam de forma complementar. Enquanto a computação em nuvem centraliza uma capacidade computacional virtualmente ilimitada, a IoT viabiliza capilaridade na coleta de dados e controle de dispositivos na borda da rede. Computação em Nuvem IoT Arquitetura Centralizada Distribuída Alcance Limitado Ubíquo (pervasivo) Componentes Recursos virtualizados Objetos do mundo real Quadro 4 | Relação entre IoT e computação em nuvem. Fonte: adaptado de Botta (2016). Disciplina COMPUTAÇÃO EM NUVEM A IoT está desempenhando um papel crescente na transformação digital, oferecendo oportunidades e�cientes, criar novos modelos de negócios e proporcionar benefícios signi�cativos para as organizações. Vamos Exercitar? Manutenção preventiva de equipamentos Descrição da situação-problema Observamos nos últimos anos uma revolução na Indústria. Com capacidade computacional embarcada nos mais diversos dispositivos, máquinas e veículos, viabilizaram-se processos avançados de manufatura e logística de produção. Os equipamentos das plantas industriais têm recursos para processamento e transmissão de dados, de forma que podem interagir entre si e com sistemas em nuvem para tornar os processos produtivos mais e�cientes e con�áveis. Considere uma fábrica que opera com equipamentos muito especializados, cuja compra só pode ser feita por encomenda. Assim, se um equipamento for dani�cado, sua substituição pode demorar muito, o que acarreta signi�cativo prejuízo �nanceiro. Por isso, essa fábrica pretende implementar uma solução com sensores e transmissores nos equipamentos, a �m de coletar dados para um sistema responsável por monitorar a planta da fábrica, prever falhas e planejar a manutenção e a reposição dos equipamentos a �m de diminuir a probabilidade de um equipamento �car inutilizado por defeito. Avalie quais serviços em nuvem poderiam ser usados na implementação de tal solução para manutenção preventiva dos equipamentos. Resolução da situação-problema: Os provedores de nuvem pública oferecem várias soluções gerenciadas para aplicações de IoT, como é o caso de soluções para gerenciamento de instalações industriais. Nesse caso, podemos identi�car duas tarefas principais: o gerenciamento da coleta de dados dos sensores e a análise desses dados para diagnóstico e tomada de decisão sobre manutenção dos equipamentos. Uma primeira estratégia seria escolher um serviço para auxiliar cada uma das tarefas. Podemos utilizar um serviço básico de coleta e armazenamento de dados para aplicações de IoT, como o Cloud IoT Core, e utilizar um serviço de Aprendizado de Máquina, como o Azure Machine Learning para a tarefa de análise de dados. Uma segunda estratégia poderia ser um serviço para aplicações IoT que já contempla as duas funcionalidades, como é o caso do AWS IoT SiteWise ou do Azure Time Series Insights. Ambos os serviços já incluem mecanismos para gerar estimativas e fazer previsões em função dosdados coletados ao longo do tempo, assim como ferramentas para visualização dos dados que favorecem o gerenciamento e�ciente dos recursos. A Figura 2 ilustra como seria o processo utilizando o serviço AWS IoT SiteWise. Disciplina COMPUTAÇÃO EM NUVEM Figura 2 | Exemplo de serviços para aplicação de streaming de áudio. Fonte: adaptada de AWS (2019a). Saiba mais Cada aplicação em nuvem é um sistema complexo que envolve vários componentes. O projeto de uma aplicação pode incluir diversos serviços, até mesmo aqueles oferecidos por provedores diferentes. Em particular, as aplicações de streaming de áudio e vídeo envolvem requisitos severos de desempenho, por exemplo, baixo atraso médio e altas taxas de transmissão de dados, para desenvolver aplicações desse tipo, podem ser combinados serviços de mídia e serviços de rede. Por exemplo, os serviços CDN podem ser utilizados para replicar o conteúdo multimídia em vários servidores dispersos em escala mundial para otimizar o desempenho. Assim, um usuário de um aplicativo de streaming de áudio, por exemplo, vai obter o conteúdo do servidor mais próximo da sua rede de acesso, o que melhora o desempenho da aplicação. Referências BALLE, A. R. Análise de metodologias ágeis: conceitos, aplicações e relatos sobre XP e Scrum. 2011. Trabalho de Conclusão de Curso (Bacharelado) – Universidade Federal do Rio Grande do Sul, Porto Alegre, 2011. KON, F.; SANTANA, E. F. Z. Cidades Inteligentes: tecnologias, aplicações, iniciativas e desa�os. Disponível em: https://sol.sbc.org.br/livros/index.php/sbc/catalog/view/6/6/17-1. Acesso em: 26 jan. 2024. MORAES, A.; HAYASHI, V. T. Segurança em IoT. Rio de Janeiro: Alta Books, 2021. Aula 4 Gerenciamento de Dados em Nuvem https://sol.sbc.org.br/livros/index.php/sbc/catalog/view/6/6/17-1 Disciplina COMPUTAÇÃO EM NUVEM Gerenciamento de Dados em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Esta videoaula oferecerá uma visão abrangente do gerenciamento de dados em nuvem, capacitando você a compreender e implementar práticas e�cazes para lidar com os desa�os da gestão de dados em ambientes de nuvem. Esse conteúdo é importante para a sua prática pro�ssional, pois o gerenciamento de dados em nuvem é essencial para pro�ssionais que buscam manter a competitividade, promover a e�ciência operacional e utilizar dados como um ativo estratégico em suas organizações. Essa abordagem permite lidar com os desa�os da era digital de maneira mais e�caz e inovadora. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante, o gerenciamento de dados em nuvem é a prática de armazenar, organizar, processar e acessar dados na nuvem, em oposição a ambientes locais ou em servidores físicos. A computação em nuvem permite que os dados sejam armazenados em servidores remotos, geralmente mantidos por provedores de serviços em nuvem, e acessados pela Internet. Ao adotar o Gerenciamento de Dados em Nuvem, as organizações podem aproveitar os benefícios da �exibilidade, e�ciência e acessibilidade oferecidos pela computação em nuvem para otimizar o gerenciamento e o uso de seus dados. Nesta seção, vamos aprender sobre armazenamento em nuvem, banco de dados em nuvem e Big Data. A combinação de Big Data e análise de dados na nuvem permite que as organizações processem e analisem grandes volumes de dados de maneira e�ciente, obtendo insights valiosos que podem ser utilizados para tomada de decisões estratégicas, identi�cação de padrões e tendências e otimização de processos. Bons estudos! Disciplina COMPUTAÇÃO EM NUVEM Vamos Começar! Armazenamento em nuvem No caso do item ligado ao armazenamento, a computação em nuvem nos desa�a a distinguir as expressões “nuvem de armazenamento” e “armazenamento para a nuvem”, respectivamente, que está relacionado à utilização que se dá à capacidade de armazenamento. Essa variação assemelha-se à diferença existente na TI tradicional entre dados do sistema (arquivos, bibliotecas, utilitários, etc.) e dados de aplicativos e arquivos de usuários, e tem re�exos na alocação de armazenamento em implementações de servidores virtuais. A capacidade de armazenamento é direcionada a dados do cliente, compreendendo, portanto, uma visão natural da nuvem, um local em que dados de terceiros são guardados e mantidos por um provedor de serviços. Aqui, são requeridas as funcionalidades de interatividade com os serviços por meio de uma interface, relatórios de uso do armazenamento e facilidade para alterar uma ou outra característica do armazenamento, incluindo, por exemplo, o tamanho do disco, funcionalidade que guarda uma estreita relação com a primeira. Assim, uma nuvem de armazenamento é um ambiente em que não se consideram tipos de armazenamentos voltados à con�guração do serviço ou ao funcionamento de uma máquina virtual. Nela, o armazenamento pode ser categorizado como descrito a seguir. Armazenamento hospedado: principal categoria de armazenamento, para a qual os principais recursos da infraestrutura são direcionados, o que confere a ela maior desempenho e disponibilidade. A�nal, é nessa estrutura de armazenamento que os dados de uso do cliente �cam mantidos. Armazenamento de referência: parte do ambiente de armazenamento em que são guardados, via de regra, arquivos de log e outros tipos de arquivos que, uma vez gravados, servirão como referência para alguma consulta ou con�guração adicional. Os tipos de armazenamento provisionado para um serviço em nuvem podem ser classi�cados como descrito a seguir. Armazenamento transitório: como o próprio nome sugere, esse armazenamento é necessário apenas enquanto uma máquina virtual está em execução, sendo liberado quando da interrupção do funcionamento da máquina virtual. Exemplos dessa categoria de armazenamento incluem volumes de inicialização e arquivos temporários. Armazenamento persistente: de caráter permanente, os dados mantidos nesse tipo de armazenamento são necessários nas reinicializações da máquina virtual e mantidos mesmo quando ela é interrompida. Nesse tipo, incluem-se, por exemplo, arquivos de personalização de ambiente e dados de usuário. O armazenamento em nuvem é amplamente utilizado tanto por usuários individuais quanto por organizações, proporcionando uma maneira e�ciente e �exível de gerenciar dados e garantir a acessibilidade aos arquivos de qualquer lugar. Bancos de dados em nuvem Disciplina COMPUTAÇÃO EM NUVEM Bancos de dados em nuvem referem-se a sistemas de gerenciamento de banco de dados (DBMS) que são hospedados e operados em ambientes de nuvem. Esses serviços oferecem funcionalidades tradicionais de banco de dados, como armazenamento, recuperação, consulta e gerenciamento de dados, mas com a vantagem de serem acessíveis pela internet. Veja os conceitos e características relacionados a bancos de dados em nuvem: Características dos Bancos de Dados em Nuvem: Escalabilidade elástica: os bancos de dados em nuvem oferecem escalabilidade elástica, permitindo que os recursos sejam dimensionados conforme a demanda, facilitando lidar com grandes volumes de dados. Gerenciamento de recursos automático: muitos serviços de banco de dados em nuvem proporcionam recursos de gerenciamento automático, como ajuste dinâmico de recursos, backup automático e atualizações de software. Acessibilidade remota: os bancos de dados em nuvem podem ser acessados remotamente de qualquer lugar com conexão à internet, proporcionando �exibilidade na gestão e acesso aos dados. Modelo de pagamento por uso: muitos serviços de banco de dados na nuvem operam em um modelo de pagamento conforme o uso, permitindo que os usuários paguem apenas pelos recursos que consomem. Alta disponibilidade e tolerância a falhas: os serviços de nuvemsão projetados para oferecer alta disponibilidade e são frequentemente distribuídos globalmente para garantir tolerância a falhas. Tipos de bancos de dados em nuvem: Bancos de dados relacionais: suportam o modelo relacional e são adequados para aplicações que requerem integridade referencial. Exemplos: Amazon RDS, Azure SQL Database, Google Cloud SQL. Bancos de dados NoSQL: projetados para lidar com grandes volumes de dados e diferentes modelos de dados, como documentos, chave-valor e grafos. Exemplos: Amazon DynamoDB, Azure Cosmos DB, Google Cloud Firestore. Bancos de dados de grafos: especializados em armazenar e consultar dados em formato de grafo, sendo úteis para relacionamentos complexos. Exemplos: Amazon Neptune, Azure Cosmos DB (com suporte a Gremlin), Google Cloud Firestore. Bancos de dados de séries temporais: otimizados para armazenar e analisar dados temporais, como registros de sensores. Exemplos: Amazon Timestream, Azure Time Series Insights, Google Cloud Bigtable. A escolha de um banco de dados em nuvem dependerá dos requisitos especí�cos do aplicativo, como modelo de dados, escalabilidade, desempenho e preferências tecnológicas. Siga em Frente... Disciplina COMPUTAÇÃO EM NUVEM Big Data e análise de dados na nuvem Big Data e análise de dados na nuvem são duas áreas inter-relacionadas que aproveitam a escalabilidade, �exibilidade e poder computacional dos ambientes de nuvem para lidar com grandes volumes de dados e realizar análises avançadas. As técnicas de big data tornaram-se um grande diferencial competitivo para as empresas, mas não têm aplicação somente nessa área. Um exemplo de uso do big data foi a eleição presidencial dos Estados Unidos, em 2016, em que foram utilizados os termos mais pesquisados para que se conseguisse atingir o maior número de delegados para alguns presidenciáveis. Mas o que, de fato, vem a ser o big data? Segundo Morais et al. (2018), o termo big data refere-se a uma base de dados com uma quantidade enorme de dados, que pode estar alocada em múltiplos servidores, e não necessariamente esses dados precisam estar estruturados (como ocorre nos bancos de dados do tipo relacional). Tipos de dados em um sistema de gerenciamento de banco de dados Os dados dentro do sistema de gerenciamento de banco de dados (SGBD) podem estar organizados de três formas: estruturados, não estruturados ou semiestruturados, conforme descrito a seguir. Dados estruturados: são aqueles com tamanhos de�nidos em seu desenvolvimento. Em grande parte, correspondem a números, datas e palavras. Geralmente são utilizados em bancos de dados do tipo relacional, em que a estrutura precisa estar de�nida por tipos e tamanhos, o que de�ne o relacionamento por meio das chaves. Dados não estruturados: são dados que não possuem formatos e cujo tamanho pode variar. São bastante utilizados, principalmente aqueles relacionados a imagens. Os dados não estruturados são encontrados em fotogra�as, vídeos, imagens de satélites, dados cientí�cos e mídias sociais, entre outros. Dados semiestruturados: são considerados por especialistas da área como um meio termo entre os dados estruturados e os dados não estruturados. O seu uso está ligado a aplicações web, em que os dados são convertidos em tags (etiquetas — termo utilizado na linguagem de marcação utilizada por navegadores). Vantagens da utilização da nuvem para big data e análise de dados: Elasticidade e escalabilidade: os recursos na nuvem podem ser escalados sob demanda, permitindo lidar com grandes volumes de dados de maneira e�ciente. Facilidade de integração: diversos serviços na nuvem oferecem integração fácil entre armazenamento, processamento e ferramentas de análise. Pagamento por uso: muitos serviços de nuvem operam em um modelo de pagamento conforme o uso, oferecendo custos mais �exíveis. Disciplina COMPUTAÇÃO EM NUVEM Segurança e conformidade: os provedores de nuvem implementam medidas rigorosas de segurança e conformidade para proteger dados sensíveis. Agilidade e velocidade: a nuvem permite a rápida implementação de soluções e acelera o tempo de análise. A combinação de Big Data e análise de dados na nuvem capacita as organizações a extrair insights valiosos de grandes conjuntos de dados, proporcionando uma vantagem competitiva e suportando decisões informadas. A �exibilidade e a capacidade de dimensionar recursos conforme necessário são elementos cruciais nesse cenário. Vamos Exercitar? Gerenciamento em grandes volumes de dados Descrição da situação-problema Uma empresa de comércio eletrônico está enfrentando desa�os em gerenciar e analisar grandes volumes de dados de transações, comportamento do cliente e interações online. A quantidade de dados cresceu signi�cativamente à medida que a empresa expandiu seus negócios, resultando em gargalos no processamento, di�culdades na análise e�ciente e lentidão na obtenção de novos processos. Além disso, a equipe de TI enfrenta desa�os para manter a infraestrutura tradicional, que não consegue lidar com a escala e a complexidade dos dados. Resolução da situação-problema: A empresa decide migrar para uma solução de Big Data na nuvem para enfrentar esses desa�os e aproveitar os benefícios da escalabilidade, �exibilidade e poder de processamento oferecidos pelos serviços de nuvem. Vejamos os passos para a resolução do problema: Escolha da plataforma de big data na nuvem: avaliação de provedores de nuvem, como AWS, Azure e Google Cloud, para determinar a melhor plataforma de Big Data com base nas necessidades especí�cas da empresa. Migração de dados: migração dos grandes volumes de dados existentes para a nuvem, utilizando ferramentas e serviços especí�cos para transferência e�ciente. Implementação de armazenamento escalável: utilização de serviços de armazenamento na nuvem, como Amazon S3, Azure Data Lake Storage ou Google Cloud Storage. Processamento distribuído: implementação de frameworks de processamento distribuído, como Apache Spark ou Apache Flink, para realizar análises complexas em grandes conjuntos de dados. Utilização de ferramentas de análise na nuvem: adoção de serviços de análise de dados na nuvem, como Amazon Redshift, Azure Synapse Analytics ou Google BigQuery, para executar consultas SQL complexas e gerar insights em tempo real. Disciplina COMPUTAÇÃO EM NUVEM Ao migrar para uma solução de Big Data na nuvem, a empresa supera os desa�os de escala, acelera a análise de dados, reduz custos operacionais e está mais bem posicionada para tomar decisões estratégicas com base em insights obtidos a partir de seus grandes volumes de dados. Saiba mais O uso de Big Data tem revolucionado a gestão de muitas empresas. Isso acontece porque ela oferece uma maior visibilidade de informações, impactando diretamente na qualidade da análise dos dados e em uma maior assertividade para a tomada de decisões. Para saber mais sobre esse assunto, acesse o artigo Big Data. Referências CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017. MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Revisão técnica de Adriano José Vogel. Porto Alegre: SAGAH, 2020. MONTEIRO, E. R. et al. Sistemas distribuídos, internet das coisas. Porto Alegre: SAGAH, 2020. Aula 5 Encerramento da Unidade Videoaula de Encerramento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, exploraremos os vários tipos de serviços oferecidos por plataformas/provedores de computação em nuvem. https://pt.wikipedia.org/wiki/Big_data Disciplina COMPUTAÇÃO EM NUVEM A computação em nuvem refere-se à entrega de serviços de computação, como armazenamento, processamento, servidores e software, pela internet. Em vez de depender de servidores locais ou dispositivosde qualquer lugar, por meio de tecnologias baseadas em padrões abertos, consequentemente, têm soluções multiplataforma, ou seja, soluções que não dependem do tipo do dispositivo ou sistema operacional, por exemplo. Disciplina COMPUTAÇÃO EM NUVEM Pooling de recursos: o provedor mantém um robusto conjunto de recursos que são compartilhados entre os clientes, de forma que a localização e a manutenção dos equipamentos é transparente para os clientes. Elasticidade rápida: os clientes podem alocar mais recursos diante de um aumento de demanda ou liberar recursos em uso no caso de diminuição da demanda; a alocação ou liberação de recursos deve ser feita rapidamente, inclusive de forma automatizada, por exemplo, por meio de um script que monitora a demanda e reage de acordo com as mudanças. Serviço medido: o uso dos recursos pelos clientes é detalhadamente contabilizado para �ns de tarifação e também para monitoramento da qualidade do serviço. Conforme Coutinho (2013), a elasticidade é uma das principais características dos serviços disponibilizados em ambientes de computação em nuvem. Essa caraterística cria a ilusão de que os recursos na nuvem são ilimitados, uma vez que é possível aumentar ou diminuir a quantidade de recursos sob demanda. A elasticidade rápida depende das tecnologias de virtualização. Por exemplo, devido a um aumento brusco nas requisições a um serviço, diversas máquinas virtuais podem ser rapidamente instanciadas para atender ao aumento na carga de trabalho. Essa facilidade de alterar dinamicamente a quantidade de recursos alocados facilita o planejamento de capacidade computacional para o cliente, o que representa um dos principais benefícios que fomentaram o rápido desenvolvimento de soluções de computação em nuvem. Além disso, existe uma série de outros benefícios, entre os quais pode-se destacar a redução de custos e a abstração da complexidade (Erl, Puttini, Mahmood; 2013). A redução de custos pode ser observada de várias formas. Uma delas é que o uso de recursos computacionais na nuvem sob demanda evita a necessidade do investimento inicial para montar uma infraestrutura de TI. A �exibilidade da alocação dinâmica de recursos permite que os investimentos em TI sejam realizados de acordo com o crescimento do negócio do cliente. Além disso, o compartilhamento de recursos entre os vários clientes de um provedor diminui os custos relacionados com a manutenção dos equipamentos e com equipe de pro�ssionais especializados. Outro ponto importante que você não pode esquecer é que componentes de software e hardware �cam obsoletos rapidamente. Quando um cliente acessa os recursos na forma de serviço em nuvem, os custos de atualização �cam por conta do provedor. De fato, a gestão de infraestrutura de equipamentos e pro�ssionais de TI é complexa e tem alto custo. As soluções em nuvem permitem que um cliente tenha acesso aos recursos computacionais com pagamento de acordo com o uso, em vez de ter que implantar sua própria infraestrutura de TI. Siga em Frente... Benefícios e desa�os da computação em nuvem Disciplina COMPUTAÇÃO EM NUVEM A computação em nuvem oferece diversos benefícios para organizações e usuários, impulsionando a e�ciência operacional, a �exibilidade e a inovação: Economia de custos: a computação em nuvem permite que as organizações reduzam custos signi�cativos, eliminando a necessidade de investir em hardware, instalações físicas e equipes especializadas para gerenciar a infraestrutura. Escalabilidade: a capacidade de escalar recursos de maneira rápida e e�ciente permite que as organizações atendam às �utuações na demanda sem a necessidade de investir antecipadamente em infraestrutura adicional. Agilidade e velocidade: a nuvem permite o provisionamento rápido de recursos, acelerando o tempo de implementação de aplicativos e serviços. Isso é particularmente vantajoso para desenvolvimento e lançamento de produtos mais rápidos. Flexibilidade e acessibilidade: os usuários podem acessar recursos da nuvem de qualquer lugar com uma conexão à internet, proporcionando �exibilidade no trabalho remoto e facilitando a colaboração entre equipes distribuídas. Atualizações automáticas: muitos serviços em nuvem oferecem atualizações automáticas de software, garantindo que os usuários tenham acesso às últimas funcionalidades e correções de segurança sem a necessidade de intervenção manual. Modelo de pagamento por uso: o pagamento por uso permite que as organizações paguem apenas pelos recursos que consomem, proporcionando e�ciência �nanceira e eliminando custos �xos. Entre os benefícios da computação em nuvem, a redução de custos é um dos destaques. Por exemplo, em vez de investir na instalação de sua própria infraestrutura de TI, um cliente pode “alugar” servidores em um provedor. Desa�os da computação em nuvem Vamos então discutir eventuais barreiras que podem di�cultar a adoção de soluções em nuvem. Entre os principais desa�os da computação em nuvem, podemos citar: Segurança: a segurança dos dados ainda é uma preocupação signi�cativa. Embora os provedores de nuvem invistam em medidas de segurança robustas, os usuários também têm a responsabilidade de implementar práticas adequadas de segurança. Disponibilidade e con�abilidade: a dependência de serviços em nuvem signi�ca que a disponibilidade está fora do controle direto da organização. Interrupções nos serviços do provedor podem impactar as operações dos usuários. Privacidade e conformidade: em alguns casos, regulamentações e requisitos de conformidade podem restringir o armazenamento e o processamento de dados em nuvem. Garantir a conformidade é crucial, especialmente em setores altamente regulamentados. Integração de sistemas: migrar sistemas existentes para a nuvem e garantir uma integração e�ciente pode ser um desa�o. A interoperabilidade entre sistemas locais e serviços em nuvem pode exigir esforço adicional. Latência e desempenho: dependendo da localização dos centros de dados do provedor de nuvem, pode haver latência na comunicação, afetando o desempenho em tempo real de Disciplina COMPUTAÇÃO EM NUVEM certas aplicações. Gestão de custos: embora a nuvem ofereça e�ciência de custos, a gestão adequada dos custos pode ser desa�adora. Sem monitoramento cuidadoso, os custos podem aumentar à medida que os recursos são consumidos. Dependência de fornecedores: as organizações que dependem exclusivamente de um provedor de nuvem podem enfrentar desa�os em termos de �exibilidade e portabilidade. Evitar um bloqueio de fornecedor é uma consideração importante. Vimos que há algumas preocupações relevantes que precisam ser consideradas quando da migração de uma aplicação para uma nuvem ou da contratação de um serviço. Por outro lado, esses desa�os podem ser vistos como oportunidades (Armbrust, 2010). O mercado de computação em nuvem continua crescendo e novas tecnologias e modelos têm sido utilizados para atenuar essas barreiras. Depois da apresentação dos conceitos básicos nesta seção, nas próximas, vamos aprofundar nosso estudo e descrever os principais modelos de serviço em nuvem, assim como as abordagens para implantação da infraestrutura dos provedores. Em geral, a computação em nuvem oferece muitos benefícios, mas é importante que as organizações considerem e gerenciem cuidadosamente esses desa�os para garantir uma implementação bem-sucedida e segura. Vamos Exercitar? Desa�os para sistema de prontuário eletrônico na nuvem Descrição da situação-problema Considere uma rede pública de hospitais que faz uso de um sistema de prontuário eletrônico para atender os pacientes de forma mais ágil e e�ciente. A rede conta com pro�ssionais de TI e infraestrutura própria na qual está implantado o sistema há alguns anos. O sistema inclui uma base com grande volume de dados sobre o histórico médico dos pacientes. A �m de reduzir os gastos com os recursos de TI, a rede hospitalar decidiu migrar o sistema para um provedor de computação em nuvem. No entanto, como analista de TI da rede hospitalar, você sugere a necessidade depessoais para processar e armazenar dados, os usuários podem acessar e utilizar recursos computacionais remotos, geralmente mantidos por provedores de serviços em nuvem. A computação em nuvem transformou a forma como as empresas e indivíduos utilizam recursos computacionais, proporcionando benefícios signi�cativos em termos de e�ciência, �exibilidade e inovação. As ofertas de serviço em nuvem são importantes para a sua prática pro�ssional, pois proporcionam uma série de benefícios e recursos que impactam positivamente diversas áreas do seu trabalho. Também capacitam pro�ssionais a serem mais e�cientes, inovadores e adaptáveis em suas práticas pro�ssionais. Essa tecnologia é fundamental para a evolução e competitividade em diversos setores. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Chegada Olá, estudante! Para desenvolver a competência desta unidade, que é conhecer e classi�car os vários tipos de serviços oferecidos por plataformas/provedores de computação em nuvem é importante compreender os modelos e categorias fundamentais. Modelos de serviço: 1. Infraestrutura como Serviço (IaaS): neste modelo, são fornecidos recursos de infraestrutura virtualizada, como máquinas virtuais, armazenamento e redes. Exemplos: Amazon EC2, Microsoft Azure Virtual Machines, Google Compute Engine. 2. Plataforma como Serviço (PaaS): Fornece uma plataforma completa para o desenvolvimento, teste e implantação de aplicações, sem se preocupar com a infraestrutura subjacente. Exemplos: Google App Engine, Microsoft Azure App Service, Heroku. 3. Software como Serviço (SaaS): Oferece aplicativos de software totalmente gerenciados e acessíveis via navegador web, sem a necessidade de instalação local. Exemplos: Salesforce, Google Workspace, Microsoft 365. Categorias de Serviço: 1. Armazenamento em nuvem: oferece espaço para armazenar dados, arquivos e backups na nuvem, com diferentes tipos de armazenamento, como armazenamento de blocos, objetos e arquivos. Exemplos: Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage. 2. Bancos de dados em nuvem: fornece serviços de banco de dados gerenciados, incluindo bancos de dados relacionais e não relacionais. Exemplos: Amazon RDS, Google Cloud SQL, Microsoft Azure Cosmos DB. 3. Redes em nuvem: permite con�gurar e gerenciar redes virtuais, balanceadores de carga e serviços de entrega de conteúdo. Exemplos: Amazon VPC, Google Cloud Virtual Network, Disciplina COMPUTAÇÃO EM NUVEM Azure Virtual Network. 4. Serviços de contêineres: suporta a criação, implantação e gerenciamento de containers para aplicações, com orquestração para escalabilidade e resiliência. Exemplos: Amazon ECS, Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS). 5. Serviços de Inteligência Arti�cial e Machine Learning: fornece ferramentas e API para integrar inteligência arti�cial e aprendizado de máquina em aplicações. Exemplos: Amazon SageMaker, Google AI Platform, Azure Machine Learning. �. Serviços de segurança em nuvem: oferece recursos para proteção de dados, identidade e acesso, incluindo �rewalls, monitoramento de segurança e serviços de conformidade. Exemplos: AWS Identity and Access Management (IAM), Google Cloud Identity and Access Management, Azure Active Directory. 7. Serviços de monitoramento e log em nuvem:fornece ferramentas para monitorar o desempenho, rastrear eventos e analisar logs, otimizando recursos e detectando problemas. Exemplos: Amazon CloudWatch, Google Cloud Monitoring, Azure Monitor. É Hora de Praticar! Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Gestão da infraestrutura da empresa XYZ Descrição da situação-problema A empresa XYZ, uma empresa de médio porte no setor de tecnologia, enfrenta desa�os signi�cativos relacionados à gestão de sua infraestrutura de TI. A infraestrutura atual, baseada em servidores locais, está enfrentando limitações em termos de escalabilidade, �exibilidade e e�ciência operacional. Além disso, os custos de manutenção e atualização da infraestrutura local estão se tornando cada vez mais onerosos. A equipe de TI da XYZ percebe que a transição para um ambiente de computação em nuvem pode resolver muitos dos problemas enfrentados atualmente. No entanto, eles enfrentam a complexidade de escolher as ofertas de serviço em computação em nuvem mais adequadas para suas necessidades especí�cas. A seleção errada de serviços pode resultar em excesso de custos, subutilização de recursos ou falta de recursos essenciais para as operações da empresa. Como a arquitetura multi-cloud pode ser implementada de forma e�caz para maximizar a �exibilidade e a resiliência das operações em um ambiente empresarial? Quais são os desa�os especí�cos de segurança associados à implementação de serviços em nuvem? Disciplina COMPUTAÇÃO EM NUVEM Como estabelecer e manter políticas e�cazes de governança de dados em uma infraestrutura distribuída em nuvem? Resolução da situação-problema 1. Avaliação das necessidades: a equipe de TI realiza uma análise abrangente das necessidades da empresa, identi�cando os requisitos de armazenamento, processamento, segurança e escalabilidade. 2. Modelo de serviço adequado: com base nas necessidades identi�cadas, a equipe determina o modelo de serviço em nuvem mais apropriado. Se a empresa precisa de controle total sobre a infraestrutura, eles podem optar por uma solução IaaS. Se a prioridade é a agilidade no desenvolvimento, PaaS pode ser a escolha certa. 3. Escolha do provedor: com base na análise de requisitos e orçamento, a equipe escolhe um provedor de nuvem con�ável. Considerações incluem recursos oferecidos, preços, suporte ao cliente e conformidade com regulamentações especí�cas do setor. 4. Migração gradual: a migração para a nuvem é planejada de forma gradual e cuidadosa. Inicialmente, cargas de trabalho menos críticas são migradas para a nuvem para avaliar o desempenho e garantir a continuidade dos negócios. 5. Integração de serviços: a empresa integra serviços em nuvem para atender às diversas necessidades, como armazenamento, banco de dados, redes, segurança e análise de dados. Ferramentas de gerenciamento de nuvem são utilizadas para otimizar e monitorar o ambiente em tempo real. �. Treinamento da equipe: a equipe de TI é treinada para gerenciar e operar e�cientemente os serviços em nuvem. Isso inclui a compreensão das melhores práticas de segurança, monitoramento de desempenho e utilização e�ciente dos recursos disponíveis. 7. Avaliação contínua: a empresa realiza avaliações regulares para garantir que a solução em nuvem atenda continuamente às suas necessidades. Isso inclui a análise de custos, desempenho e a implementação de melhorias conforme necessário. Ao seguir esse plano de resolução, a empresa XYZ consegue superar seus desa�os de infraestrutura, bene�ciando-se da �exibilidade, escalabilidade e e�ciência proporcionadas pelas ofertas de serviço em computação em nuvem. A transição para a nuvem não apenas resolve os problemas atuais, mas também prepara a empresa para um ambiente de TI mais dinâmico e adaptável às futuras demandas do mercado. As ofertas de serviços em computação em nuvem abrangem uma ampla gama de recursos e soluções fornecidos por provedores de nuvem para atender às necessidades de empresas, desenvolvedores e usuários �nais. Esses serviços fornecem um conjunto diversi�cado de recursos para atender a uma variedade de necessidades de negócios, oferecendo benefícios, como �exibilidade, escalabilidade, e�ciência e redução de custos. Eles capacitam organizações a focarem em suas atividades principais, enquanto aproveitam a infraestrutura e os recursos gerenciados pelos provedores de nuvem. Disciplina COMPUTAÇÃO EM NUVEM CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017. KOLBE JR., A. Computação em nuvem. 1. ed. Curitiba: Contentus, 2020. DisciplinaCOMPUTAÇÃO EM NUVEM MEIRELES A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020. , Unidade 3 Tecnologias e Soluções de Computação em Nuvem Aula 1 Tecnologias de suporte a nuvem Tecnologias de suporte a nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, exploraremos tecnologias de containerização de aplicações, exploração de tecnologias-chave, como Docker e container. Também abordaremos as tecnologias de virtualização de servidores, explicação sobre virtualização de servidores e seu papel na criação de ambientes virtuais e a evolução de tecnologias de redes, como a visão geral da evolução das tecnologias de redes. Ao seguir esse esboço, você terá uma visão abrangente e prática das tecnologias essenciais em containerização, virtualização de servidores e evolução de redes e datacenters. Isso o preparará para compreender e aplicar efetivamente esses conceitos em ambientes reais de TI. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante, estudar tecnologias de suporte a nuvem é fundamental devido à crescente adoção de computação em nuvem em organizações de todos os tamanhos e setores. Aqui estão algumas razões pelas quais estudar essas tecnologias é valioso. Disciplina COMPUTAÇÃO EM NUVEM Nesta aula você irá aprender sobre containerização de aplicações e virtualização de servidores. Os containers encapsulam aplicações e suas dependências, tornando-as portáteis entre ambientes de desenvolvimento, teste e produção. Isso simpli�ca o processo de implantação e reduz problemas relacionados a diferenças de ambiente. A virtualização de servidores isola aplicações e sistemas operacionais em máquinas virtuais distintas, o que contribui para a segurança e con�abilidade. Estudar essas tecnologias não só atende às demandas do mercado de trabalho, mas também capacita os pro�ssionais de TI a projetar, implementar e gerenciar infraestruturas de maneira mais e�ciente, segura e ágil. As organizações modernas frequentemente buscam pro�ssionais com habilidades nessas áreas para impulsionar a inovação e otimizar operações. Bons estudos! Vamos Começar! Tecnologias de containerização de aplicações A containerização de aplicações é uma tecnologia que permite empacotar e distribuir aplicações juntamente com suas dependências e con�gurações em um ambiente isolado. Isso oferece consistência no ambiente de execução, facilita a implantação e escalabilidade das aplicações. Duas tecnologias de containerização amplamente utilizadas são Docker e Kubernetes. Um modelo alternativo à virtualização baseada em hypervisor é a virtualização baseada em contêiner, que ocorre no nível do sistema operacional (Bachiega; Souza; Bruschi, 2017). Nesse caso, um conceito importante é o contêiner de aplicação (Application Container), que pode ser entendido como um componente de software autossu�ciente, no sentido em que ele encapsula uma aplicação e todas as suas dependências (como bibliotecas, arquivos de con�guração, etc.) (Silva, 2017). Diferentemente de uma máquina virtual, o contêiner não inclui um sistema operacional. Na verdade, o sistema operacional do servidor é compartilhado entre os contêineres em execução. A Figura 1 ilustra o esquema de contêineres em um servidor físico. Com uma ferramenta de gerenciamento de contêineres (container engine), pode-se instanciar vários contêineres em uma única máquina física. O hardware e o sistema operacional dessa máquina são compartilhados entre os contêineres (Silva, 2017). Disciplina COMPUTAÇÃO EM NUVEM Figura 1 | Contêineres em um servidor físico. Uma vez que a imagem de uma máquina virtual inclui um sistema operacional, ela é maior que a imagem de um contêiner que envolve somente software no nível de usuário (aplicações, bibliotecas, etc.). Portanto, em termos de desempenho, o uso de contêineres pode oferecer vantagens em relação ao uso de máquina virtuais (Silva, 2017). Por ser mais leve, um contêiner demora menos tempo para inicializar ou para ser transmitido de um servidor para outro. Entretanto, uma vez que os contêineres compartilham o sistema operacional subjacente, o nível de isolamento e segurança é menor, quando comparado às máquinas virtuais, que emulam um ambiente computacional completo e independente, com seu próprio sistema operacional. A principal característica do contêiner é permitir que o ambiente de execução da aplicação seja sempre o mesmo, pois tudo que a aplicação precisa é estar encapsulada no contêiner, independentemente da plataforma subjacente (Docker, 2019). Isso favorece a portabilidade e facilita a replicação da aplicação em vários servidores. Basta, para isso, que um gerenciador de contêiner compatível esteja instalado em cada servidor e uma cópia do contêiner seja copiada e executada em cada um deles. Essa agilidade para replicar aplicações ou migrar aplicações de um servidor para outro é muito importante em um ambiente de computação em nuvem, do qual se espera o escalonamento dinâmico de aplicações. Disciplina COMPUTAÇÃO EM NUVEM Docker O Docker é uma plataforma de código aberto para desenvolvimento, envio e execução de aplicações em containers. Ele utiliza contêineres para empacotar e distribuir aplicações, incluindo suas bibliotecas e dependências. Os benefícios são portabilidade, consistência entre ambientes de desenvolvimento e produção, isolamento de recursos, rapidez no provisionamento. Kubernetes O Kubernetes (também conhecido como K8s) é um sistema de orquestração de contêineres de código aberto para automatizar o deploy, escala e gerenciamento de aplicações em contêineres. O Kubernetes gerencia a distribuição e o escalonamento de contêineres em um cluster, garantindo alta disponibilidade e resiliência. Os benefícios são orquestração e�ciente, autoescalonamento, automação de implantação, gerenciamento de recursos, atualizações sem tempo de inatividade. A combinação de Docker e Kubernetes é frequentemente utilizada para desenvolvimento, empacotamento, distribuição e orquestração e�cientes de aplicações em ambientes de contêineres. Essas tecnologias desempenham um papel signi�cativo na modernização de infraestruturas e no desenvolvimento de aplicações em escala. Tecnologias de virtualização de servidores A virtualização de servidores é uma tecnologia que permite a criação de máquinas virtuais (VM), cada uma das quais opera como um servidor independente, em um único hardware físico. Essa abstração do hardware facilita a consolidação de recursos, aumenta a e�ciência do servidor e oferece �exibilidade na implantação de aplicações. Como explicado em (ERL, 2013), os softwares de virtualização permitem a criação de múltiplas instâncias lógicas de um recurso computacional, de forma que esse recurso possa ser compartilhado entre diversos usuários. O conceito de virtualização não é recente, mas, somente com os ganhos em termos de desempenho e con�abilidade das ferramentas de virtualização modernas, foi possível viabilizar características como a elasticidade rápida e self-service sob demanda, próprias dos serviços de computação em nuvem. As plataformas de computação em nuvem, como o OpenStack, utilizam as ferramentas de virtualização para gerenciar o compartilhamento de recursos computacionais disponíveis na infraestrutura do ambiente de computação em nuvem. Por exemplo, a criação de máquinas virtuais no OpenStack pode ser realizada por meio de diversas ferramentas de virtualização, como VMware ESXi, XenServer ou Hyper-V (MICROSOFT, 2019). Os centros de dados (data centers) modernos fazem uso de tecnologias de virtualização para obter e�ciência e �exibilidade na administração da infraestrutura de TI. As ferramentas de virtualização, também denominadasHypervisor, abstraem os recursos computacionais (como servidores e equipamentos de rede) na forma de componentes virtualizados que podem, então, Disciplina COMPUTAÇÃO EM NUVEM ser facilmente alocados ou liberados (Erl; Puttini; Mahmood, 2013). Isso é fundamental para a elasticidade rápida dos ambientes de computação em nuvem. A virtualização pode ser de�nida como “uma tecnologia que permite criar vários ambientes simulados ou recursos dedicados a partir de um único sistema de hardware físico” (Redhat, 2019). Como ilustrado na Figura 2, o ambiente lógico criado sobre o equipamento físico é denominado máquina virtual (VM – Virtual Machine). A virtualização permite, por exemplo, que um mesmo servidor seja compartilhado por várias aplicações (Apps) de diferentes usuários, de forma isolada e segura, pois cada aplicação pode ser executada em uma máquina virtual diferente no mesmo servidor. Observe que cada máquina virtual tem seu próprio sistema operacional (SO), então, é possível ter máquinas virtuais com sistemas operacionais diferentes no mesmo servidor. Figura 2 | Máquinas virtuais em um servidor físico. Disciplina COMPUTAÇÃO EM NUVEM A virtualização viabiliza três fatores fundamentais para a computação em nuvem: independência de hardware, possibilidade de consolidação de servidores e facilidade de replicação de recursos (Erl, 2013). Independência de hardware: a ferramenta de virtualização abstrai as peculiaridades dos recursos físicos, de forma que problemas de compatibilidade são minimizados. Assim, a migração de uma aplicação em uma máquina virtual não depende das características do hardware do equipamento de destino, desde que o formato da máquina virtual seja suportado pelo hypervisor. Consolidação de servidores: a consolidação de servidores é um processo para aumentar a taxa de utilização dos servidores em um centro de dados a �m reduzir custos e economizar energia (Ahmad, 2015). Uma das formas de consolidação de servidores é migrar as máquinas virtuais para o menor número possível de servidores. Por exemplo, se existe apenas uma máquina virtual em um servidor, ela pode ser migrada para outro servidor que ainda tem recursos disponíveis para que o primeiro servidor, agora sem nenhuma máquina virtual, possa ser desligado. Facilidade de replicação: o terceiro fator importante é a facilidade na replicação das instâncias de máquinas virtuais. Isso decorre do fato de que a máquina virtual é software e pode ser replicada com operações simples de manipulação de arquivos. Assim, é mais fácil instanciar e replicar máquinas virtuais do que servidores físicos. Siga em Frente... Evolução de tecnologias de redes e datacenter A evolução das tecnologias de redes e data centers tem sido signi�cativa nas últimas décadas, impulsionada por avanços na computação, armazenamento, virtualização, automação e demandas crescentes por desempenho, escalabilidade e e�ciência. Redes As redes desempenham um papel fundamental na computação em nuvem, fornecendo a infraestrutura necessária para conectar usuários, aplicativos e serviços distribuídos em ambientes em nuvem. Aspectos importantes das redes: Infraestrutura de rede em nuvem: os provedores de nuvem, como Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP), oferecem infraestrutura de rede virtualizada. Isso inclui serviços como redes virtuais, sub-redes, balanceadores de carga, gateways e �rewalls. Redes virtuais: as redes virtuais permitem a criação de ambientes de rede isolados e personalizados para diferentes aplicativos ou ambientes de clientes dentro da infraestrutura em nuvem. Isso facilita a segmentação e o isolamento de recursos. Conectividade: as soluções em nuvem oferecem conectividade global. Empresas podem interconectar diferentes regiões ou data centers de maneira e�ciente, permitindo alta Disciplina COMPUTAÇÃO EM NUVEM disponibilidade e recuperação de desastres. Load Balancing: serviços de balanceamento de carga distribuem o tráfego entre instâncias de aplicativos, garantindo uma distribuição uniforme da carga para otimizar o desempenho e a con�abilidade. Gateway de rede (Nuvem para On-Premises): muitas organizações mantêm parte de sua infraestrutura on-premise. Os gateways de rede em nuvem facilitam a conexão segura e e�ciente entre ambientes locais e a nuvem. Serviços de DNS: os serviços de Sistema de Nomes de Domínio (DNS) em nuvem facilitam a administração e resolução de nomes de domínio, garantindo uma comunicação e�ciente entre os serviços hospedados na nuvem. Redes Privadas Virtuais (VPN): em nuvem, permitem a criação de conexões seguras entre redes corporativas e ambientes em nuvem, garantindo comunicações seguras através da Internet. Controle de acesso: soluções de controle de acesso ajudam a garantir a segurança da rede em nuvem, controlando quem pode acessar recursos especí�cos e aplicando políticas de segurança. Serviços de CDN (Content Delivery Network): em nuvem, distribuem conteúdo de maneira e�ciente, melhorando o desempenho e a entrega de conteúdo aos usuários �nais, reduzindo a latência. Monitoramento e gerenciamento: plataformas em nuvem oferecem ferramentas robustas para monitoramento de desempenho, gerenciamento de tráfego, análise de registros e diagnóstico de problemas de rede. Escalabilidade dinâmica: as redes em nuvem são projetadas para serem altamente escaláveis. Elas podem se ajustar dinamicamente às demandas de tráfego, permitindo que os recursos de rede cresçam ou diminuam conforme necessário. Segurança: é uma consideração crítica nas redes em nuvem. Isso inclui a proteção contra ameaças, criptogra�a de dados em trânsito e em repouso, além de controles de acesso granulares. Ao adotar a computação em nuvem, as organizações podem aproveitar essas capacidades de rede para melhorar a �exibilidade, a e�ciência operacional e a escalabilidade de seus aplicativos e serviços. A nuvem oferece um modelo mais dinâmico e ágil para as redes, alinhado às necessidades modernas de negócios. Data Center Os data centers desempenham um papel fundamental na computação em nuvem, fornecendo a infraestrutura física necessária para suportar serviços em nuvem, armazenamento de dados, processamento e rede. Aspectos importantes dos data centers: Infraestrutura física: os data centers em nuvem consistem em servidores físicos, armazenamento, dispositivos de rede, switches, roteadores, sistemas de refrigeração, sistemas de alimentação elétrica redundantes e outros componentes necessários para suportar operações contínuas. Escalabilidade: os data centers em nuvem são projetados para serem altamente escaláveis, permitindo que os provedores de nuvem adicionem recursos de hardware conforme a Disciplina COMPUTAÇÃO EM NUVEM demanda aumenta. Essa capacidade de escalabilidade permite acomodar um grande número de usuários e cargas de trabalho variáveis. Virtualização: é uma tecnologia-chave nos data centers em nuvem. Permite a criação de máquinas virtuais e contêineres, para que múltiplos ambientes de computação sejam executados em um único servidor físico. Distribuição geográ�ca: muitos provedores de nuvem têm data centers distribuídos globalmente. Isso permite que eles ofereçam serviços mais próximos dos usuários �nais, reduzindo a latência e melhorando o desempenho. Alta disponibilidade: inclui cópias de dados em vários locais, sistemas de energia redundantes e sistemas de resfriamento para garantir operações ininterruptas. Recuperação de desastres: os provedores de nuvem implementam estratégias de recuperação de desastres para garantir a continuidade dos negócios em caso de falhas. Isso pode incluir a replicação de dados entre data centers e a capacidade de restaurar serviços rapidamente. E�ciência energética: os data centers em nuvem estão focados na e�ciência energética para reduzir os custos operacionais e minimizar o impacto ambiental. Isso envolve o uso de hardware e�ciente, técnicas de resfriamento avançadas e práticas de gerenciamento de energia. Segurança física e lógica: a segurança é uma prioridadenos data centers em nuvem. Isso inclui medidas físicas, como controle de acesso e vigilância, bem como medidas lógicas, como criptogra�a de dados, �rewalls e detecção de ameaças. Automação e orquestração: a automação desempenha um papel crucial nos data centers em nuvem. Ferramentas de orquestração automatizam tarefas operacionais, como provisionamento de recursos, gerenciamento de carga de trabalho e manutenção. API (Interfaces de Programação de Aplicações): são fundamentais para a integração e automação em ambientes de nuvem. Elas permitem que os desenvolvedores interajam com os serviços em nuvem e automatizem processos. Modelo de pagamento sob demanda: operam em um modelo de pagamento sob demanda, no qual os usuários pagam apenas pelos recursos que consomem. Isso proporciona �exibilidade �nanceira e evita a necessidade de investimentos signi�cativos em infraestrutura. Os data centers na computação em nuvem são a espinha dorsal que sustenta a entrega de serviços em nuvem. Eles são projetados para oferecer escalabilidade, �exibilidade, con�abilidade e e�ciência operacional para atender às crescentes demandas das organizações modernas. Vamos Exercitar? Nível de Virtualização Descrição da situação-problema Uma empresa vai lançar um novo aplicativo para gestão de tarefas colaborativas. O objetivo é promover aumento de produtividade para pequenas empresas e pro�ssionais liberais. O sistema Disciplina COMPUTAÇÃO EM NUVEM inclui um serviço web e um banco de dados no qual são compartilhados os dados das tarefas. O aplicativo conecta-se no serviço web por meio de requisições HTTP para manipular os recursos do sistema. A empresa está com grande expectativa de sucesso. Para atender muitos clientes, já escolheu um grande provedor de nuvem pública para hospedar o sistema. Você foi contratado como consultor para de�nir a melhor estratégia de implantação do serviço web e do banco de dados nesse provedor especí�co que oferece apenas serviços nos modelos PaaS e IaaS. Você precisa determinar qual a melhor opção para implantação do serviço web e do banco de dados em termos do modelo de serviço e tecnologia de virtualização. Resolução da situação-problema: O Quadro 1 apresenta um resumo comparativo das tecnologias de virtualização. A máquina virtual é considerada um modelo de virtualização ao nível de hardware. Já o contêiner é considerado um modelo de virtualização ao nível de sistema operacional. Por isso, a imagem da máquina virtual é muito grande, comparada à do contêiner, pois a imagem da máquina virtual precisa conter seu próprio sistema operacional. Por outro lado, os contêineres compartilham o sistema operacional da máquina física no qual executam. A desvantagem é que a aplicação incluída no contêiner tem que ter sido implementada para o mesmo sistema operacional no qual o gerenciador de contêiner está executando. Máquina Virtual Contêineres Abordagem Virtualização no nível de hardware Virtualização no nível de sistema operacional Denominação da ferramenta de virtualização Hypervisor Container Engine Vantagens Maior nível de isolamento e segurança. Permite mais de um sistema operacional no mesmo hardware. Permite compartilhamen to do sistema operacional. Mais “leve” (exige menos recursos e ocupa menos espaço). Quadro 1 | Comparação entre contêineres e máquinas virtuais. Vamos avaliar cada componente do sistema para determinar qual dos dois modelos de virtualização é mais adequado. O banco de dados pode conter dados sobre os quais os clientes desejam privacidade, portanto a proteção e o isolamento dos dados é um critério relevante. Além Disciplina COMPUTAÇÃO EM NUVEM disso, o banco de dados possui uma ou apenas algumas réplicas, não há necessidade de escalar para um número elevado de instâncias dos SGBD. Portanto, a melhor estratégia é implantar o banco de dados em uma máquina virtual alocada no modelo IaaS. O outro componente do sistema é o serviço web, que podem necessitar de replicação em escala para balanceamento de carga. O serviço web se bene�cia de tecnologias abertas e padronizadas disponíveis em plataformas pré-con�guradas na maioria dos provedores, sem necessidade de gerenciamento de infraestrutura. Nesse caso, a opção mais adequada para implantar o serviço web seria um serviço PaaS baseado em contêiner para agilizar a replicação das instâncias. Saiba mais É importante salientar que contêineres e máquinas virtuais não são necessariamente tecnologias concorrentes. Na verdade, essas tecnologias podem ser utilizadas de forma complementar para compartilhar a infraestrutura dos provedores entre vários clientes. Isso é possível porque um gerenciador de contêineres, como o Docker (Docker, 2019c), pode ser instalado em uma máquina virtual, que então poderia suportar a execução de contêineres. Além disso, existem aplicações para as quais a implantação em máquina virtual é mais interessante, por exemplo, devido a requisitos de segurança. Em outros cenários, a implantação de contêineres é mais indicada, por exemplo, no caso da replicação automática de aplicações web em provedores de Plataforma como Serviço (Silva, 2017; Pereira, 2019). Referências AHMAD, R. W. et al. A survey on virtual machine migration and server consolidation frameworks for cloud data centers. Journal of Network and Computer Applications, v. 52, p. 11–25, 2015. BACHIEGA, N. G.; SOUZA, P. S. L. de; BRUSCHI, S. M. Avaliação de desempenho de virtualização baseada em contêiner. In: Escola Regional de Alto Desempenho de São Paulo - ERAD-SP, SBC, 2017. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013. SILVA, E. A. N. da. Uma abordagem dirigida por modelos para portabilidade entre plataformas de computação em nuvem. 2013. Dissertação (Mestrado em Ciências Exatas e da Terra) – Universidade Federal de São Carlos, São Carlos, 2013. Aula 2 Provedores de Computação em Nuvem Disciplina COMPUTAÇÃO EM NUVEM Provedores de computação em nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, exploraremos os principais provedores, como Amazon Web Services (AWS), Microsoft Azure e Google Cloud. Vamos abordar os recursos oferecidos pelos provedores e os modelos de tarifação de serviços em nuvem. Esse conteúdo é importante para a sua prática pro�ssional, pois a utilização de provedores de computação em nuvem é vital para a prática pro�ssional, oferecendo vantagens signi�cativas em termos de e�ciência, agilidade, segurança e inovação. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante, vamos começar mais uma etapa de nosso estudo sobre as tecnologias e soluções empregadas nos provedores de computação em nuvem. Você conhece os modelos utilizados pelos provedores para determinar os preços dos serviços? Sabe quais são as métricas utilizadas para contabilizar o uso dos recursos de TI? Nesta aula, você estudará os principais provedores de computação em nuvem no mundo, as métricas de custo, modelos de tarifação e principais provedores de nuvem pública. Bons estudos! Vamos Começar! Métricas de custo de serviços em nuvem O gerenciamento dos custos de serviços em nuvem é uma tarefa difícil, uma vez que o cálculo do custo total envolve várias métricas e os preços dos recursos computacionais podem variar de Disciplina COMPUTAÇÃO EM NUVEM acordo com a localização da infraestrutura ou a forma de tarifação (Rodamilans, 2014). Além disso, as empresas podem utilizar serviços de diferentes provedores para implementar uma solução, o que caracteriza um cenário denominado multicloud (Petcu, 2013). Assim, mesmo que cada provedor ofereça uma ferramenta de gerenciamento de custos, faz-se necessáriauma solução adicional centralizada para agregar os custos dos diferentes provedores. Uma das características dos serviços de computação em nuvem é o pagamento baseado no uso. Na prática, existem diversas métricas que são utilizadas para calcular os custos para o tempo de uso de cada tipo de recurso computacional. Em geral, três métricas básicas são consideradas na determinação do custo de serviços em nuvem: Uso de recursos de processamento é uma métrica calculada a partir do tempo de uso de núcleos de processamento de máquinas virtuais. Em geral esse custo é proporcional à quantidade de memória RAM. O provedor tem a sua calculadora de custos, para estimar os custos e a economia em escolher cada um deles; um exemplo é a calculadora da Amazon. Uso de recursos de armazenamento serve para tarifar o espaço utilizado para armazenamento persistente de dados e, em geral, é uma cobrança mensal para cada gigabyte de dados armazenados. Uso de recursos de transmissão de dados serve para tarifar os dados transferidos entre a rede do provedor e outras redes. Como a transmissão pode ocorrer nos dois sentidos, o provedor pode de�nir preços diferentes para tráfego de saída e de entrada. Assim, se você aloca uma máquina virtual, além de pagar pelo uso da máquina e do armazenamento, também poderá ser cobrado pelos dados que foram enviados para essa máquina ou dessa máquina para outro computador qualquer. Além das métricas básicas, existem também métricas adicionais, associadas ao uso de componentes de software. Nesse caso, é usual a preci�cação por evento, e não pelo tempo de uso. Assim, um provedor poderia tarifar o cliente pelo número de operações de escrita em um SGBD ou pelo número de requisições a uma aplicação web. Por exemplo, um provedor poderia cobrar do cliente R$ 2,00 para cada 1.000 requisições a um serviço web. O gerenciamento e�ciente dos custos é uma consideração crítica ao utilizar serviços em nuvem. Existem várias métricas e estratégias que podem ser empregadas para monitorar e otimizar os custos associados aos serviços em nuvem. Algumas métricas importantes: Custo por hora/minuto: pode fornecer uma visão detalhada dos gastos e ajudar na otimização. Custo por transação: em serviços baseados em transações, como armazenamento de dados ou transferência de dados, monitorar o custo por transação pode ser útil para identi�car padrões de uso e otimizar o que for possível. Custo por armazenamento: monitorar o custo associado ao armazenamento de dados, incluindo armazenamento em blocos, objetos e serviços de banco de dados, permite identi�car oportunidades para reduzir custos ou otimizar a utilização. Além de monitorar essas métricas, é importante implementar práticas de otimização contínua, como o uso e�ciente de instâncias reservadas, dimensionamento automático, política de desativação de recursos ociosos e a implementação de estratégias de custo personalizadas para Disciplina COMPUTAÇÃO EM NUVEM atender às necessidades especí�cas da sua aplicação e negócio. Utilizar ferramentas de gerenciamento de custos fornecidas pelos provedores de nuvem também é uma prática comum para monitoramento e controle mais e�cazes. O Quadro 1 apresenta um resumo das métricas básicas para tarifação de serviços de computação em nuvem. Métrica Descrição Tipo de cobrança Exemplo Uso de recursos de processamento. Medida da capacidade de processamento alocada. Representa o pagamento pelo uso de núcleos de processamento e memória RAM. Por tempo (em geral, por hora). R$ 0,80 por hora de uso de máquina virtual com 2 núcleos de processamento e 4 GB de memória RAM Uso de recursos de armazenamento . Medida da capacidade de armazenamento alocada. Representa o pagamento pelo uso espaço de memória secundária (armazenament o persistente). Por tempo (em geral, por mês). R$ 0,60 por mês para cada 1 GB de dados armazenados em uma unidade de armazenamento (disco virtual). Uso de recursos de transmissão de dados. Medida do volume de dados transferidos. Representa o pagamento pela transferência de dados para ou da rede do provedor. Por evento (em geral, por GB transferido). R$ 0,05 para cada 1 GB de dados transferido de/para uma máquina virtual. Quadro 1 | Principais provedores de serviços de computação em nuvem. Disciplina COMPUTAÇÃO EM NUVEM Para cada tipo de serviço, o provedor pode combinar as três métricas para determinar o custo �nal do serviço. Siga em Frente... Modelos de tarifação de serviços em nuvem Os provedores de serviços em nuvem oferecem diferentes modelos de tarifação para seus serviços, adaptando-se às diversas necessidades dos usuários. Alguns dos modelos de tarifação mais comuns em serviços de nuvem são: Pague pelo uso (Pay-as-You-Go): os usuários pagam apenas pelos recursos que realmente utilizam. É uma abordagem �exível, os custos estão diretamente relacionados ao consumo efetivo de recursos, como tempo de computação, armazenamento ou largura de banda. A vantagem é a �exibilidade para escalar recursos conforme necessário, custos alinhados ao uso real. Reservas (Reserved Instances): os usuários podem optar por reservar capacidade de recursos (como instâncias de máquinas virtuais) antecipadamente por um período �xo. Em troca, recebem descontos signi�cativos em comparação com o pagamento pelo uso. As vantagens são economias substanciais para cargas de trabalho estáveis e previsíveis. Preços por compromisso (Committed Use Discounts): semelhante às reservas, mas oferecendo mais �exibilidade, os usuários comprometem-se a gastar um valor especí�co por mês em recursos especí�cos, obtendo descontos com base nesse compromisso �nanceiro. A vantagem é a maior �exibilidade em comparação com reservas tradicionais. Preços por região: os custos podem variar com base na região geográ�ca em que os recursos são provisionados. Algumas regiões podem ter custos mais altos ou mais baixos, dependendo da oferta e demanda local. A vantagem é permitir otimizar custos escolhendo regiões com preços mais competitivos. Cada modelo de tarifação tem seus prós e contras e a escolha depende das características especí�cas da carga de trabalho, dos requisitos de negócios e das preferências orçamentárias da organização. É importante entender os detalhes da tarifação de cada provedor para otimizar os custos e escolher o modelo mais adequado. Principais provedores de nuvem pública (por exemplo, AWS, Azure, Google Cloud) Considerando os provedores de nuvem pública de serviços de infraestrutura e plataforma (IaaS e PaaS), podemos mencionar a AWS (Amazon Web Services), o Microsoft Azure e o Google Cloud Platform (RANGER, 2019). Disciplina COMPUTAÇÃO EM NUVEM Em se tratando de soluções corporativas de software como serviço (SaaS), podemos citar a Microsoft Salesforce, Adobe, Oracle e SAP (Columbus, 2018). É importante mencionar que a Salesforce, pioneira em software corporativo em nuvem, também mantém o Heroku, um provedor PaaS, assim como o Openshit da Red Hat e o Cloud Foundry, que é uma plataforma livre originalmente criada pela VMWare e, hoje, mantida pela Cloud Foundry Fundation. O Quadro 2 apresenta um resumo dos principais provedores e respectivos serviços. Modelo de Serviço Provedor Exemplo de serviço ou produto IaaS AWS (AWS, 2019c) AWS Elastic Cloud Computing (EC2): máquinas virtuais (AWS, 2019e). Microsoft Azure (Azure, 2019) Azure Virtual Machines: máquinas virtuais (Azure, 2019c). Google Cloud Platform (Google, 2019) Google Compute Engine: máquinas virtuais (Google, 2019c). PaaS AWS AWS Elastic Beanstalk: ambiente gerenciado para desenvolvimento e im plantação de aplicações (AWS, 2019d). Microsoft Azure Azure App Service: ambiente gerenciado para desenvolvimento e implanta- ção de aplicações (Azure, 2019b). Google Cloud Platform Google App Engine: ambiente gerenciado para desenvolvimento e implantação de aplicações (Google, 2019b). Disciplina COMPUTAÇÃO EM NUVEM Salesforce (Salesforce, 2019) Heroku Platform: ambiente gerenciado para desenvolvimento e implantação de aplicações (Heroku,2019), Red Hat OpenShift (Openshift, 2019) Red Hat OpenShift: ambiente gerenciado para desenvolvimento e implanta- ção de aplicações. Cloud Foundry (Cloud Foundry, 2019) Cloud Foundry: uma plataforma baseada em contêineres, distribuída como software livre, para desenvolvimento e implantação de aplicações. SaaS Microsoft O�ce 365 (Microsoft, 2019) Microsoft O�ce 365: aplicativos de produtividade e colaboração. Salesforce Salesforce Essentials: aplicações de CRM (Customer Relationship Management) (Salesforce, 2019b). Adobe Experience Cloud (Adobe, 2019) Adobe Experience Cloud: aplicações para marketing coorporativo. Oracle Cloud (Oracle, 2019) Oracle Cloud Applications: aplicações para gestão coorporativa (Oracle, 2019b). SAP Cloud Platform (SAP, 2019) Cloud ERP (Enterprise Resource Planning): aplicações para Disciplina COMPUTAÇÃO EM NUVEM gestão corporativa (SAP, 2019b). Quadro 2 | Resumo dos principais provedores e respectivos serviços. Os provedores têm suas próprias características, preços e ecossistemas de serviços exclusivos, e a escolha entre eles, muitas vezes, depende dos requisitos especí�cos do projeto, preferências da empresa e integração com as tecnologias existentes. Outros provedores de nuvem pública, embora em menor escala, também oferecem serviços valiosos e podem ser considerados, dependendo das necessidades especí�cas. Vamos Exercitar? Infraestrutura própria ou na nuvem Descrição da situação-problema Considere o caso de uma empresa que precisa executar uma aplicação de mineração de dados. A execução vai durar 20 meses e requer 8 servidores. A empresa pode montar sua própria infraestrutura ou alocar os servidores virtuais na nuvem. No primeiro caso, a empresa teria que arcar com a compra dos servidores que custam R$ 6.000 cada e também com manutenção da infraestrutura, que custaria R$ 2.500 por mês para gastos com equipe técnica e refrigeração do ambiente. Se optar por um usar um provedor de serviços em nuvem, a empresa tem a opção de alocar servidores virtuais de capacidade compatível pelo valor de R$ 600 por mês cada. Qual opção representa a solução de menor custo para a empresa? E se o prazo do projeto mudasse para 24 meses? Resolução da situação-problema: O custo de manter a infraestrutura própria consiste em adquirir 8 servidores por R$ 6.000 cada, mais um custo de operação mensal de R$ 2.000 por 20 meses. Isso equivale a um total de R$ 98.000 de custo de execução do projeto. O custo de alocar a infraestrutura no provedor consiste em pagar pelo uso de 8 servidores que custam R$ 600 por mês cada por um período total de 20 meses. Isso equivale a um total de R$ 96.000 de custo de execução do projeto. Portanto, a solução em nuvem representa a opção de menor custo. No entanto, se a duração do projeto fosse de 24 meses, a situação se inverteria. O custo da execução do projeto em infraestrutura própria seria de R$ 108.000, enquanto o custo na nuvem seria de R$ 115.200. Isso acontece porque o investimento inicial é maior no caso de Disciplina COMPUTAÇÃO EM NUVEM infraestrutura própria, mas o custo operacional mensal no caso da nuvem é maior. Com um prazo maior, o custo operacional acaba por representar uma parcela mais signi�cativa do custo total. Por outro lado, prazos maiores também levam a uma maior depreciação da infraestrutura própria. De fato, cada caso tem que ser analisado isoladamente para se veri�car qual é mais vantajoso. Saiba mais No artigo indicado a seguir, é feito um estudo que compara o custo da aquisição de servidores físicos com o custo do uso de máquinas virtuais em um provedor de nuvem pública. O cenário hipotético apresentado ilustra diversas variáveis envolvidas na análise dos custos, por exemplo, a taxa de utilização dos servidores. SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Computação em nuvem: Conceitos, tecnologias, aplicações e desa�os. II Escola Regional de Computação Ceará, Maranhão e Piauí (ERCEMAPI), 2009. Referências AMAZON. Amazon Elastic Compute Cloud (Amazon EC2). Disponível em: https://aws.amazon.com/pt/ec2/ Acesso em: 31 jan. 2024. AWS. Migração de dados para a nuvem. Disponível em: https://aws.amazon.com/pt/cloud-data- migration/ Acesso em: 31 jan. 2024. ROSE, C. A. F. D. O que é esta tal de nuvem e o que pode fazer por você? 1. ed. Porto Alegre: PUCRS, 2020. SOUSA NETO, M. V. de. Computação em nuvem. 1. ed. Rio de Janeiro: Brasport, 2015. Aula 3 Migração de Aplicações para a Nuvem Migração de aplicações para a nuvem Este conteúdo é um vídeo! https://www.researchgate.net/profile/Javam-Machado/publication/237644729_Computacao_em_Nuvem_Conceitos_Tecnologias_Aplicacoes_e_Desafios/links/56044f4308aea25fce3121f3/Computacao-em-Nuvem-Conceitos-Tecnologias-Aplicacoes-e-Desafios.pdf https://www.researchgate.net/profile/Javam-Machado/publication/237644729_Computacao_em_Nuvem_Conceitos_Tecnologias_Aplicacoes_e_Desafios/links/56044f4308aea25fce3121f3/Computacao-em-Nuvem-Conceitos-Tecnologias-Aplicacoes-e-Desafios.pdf https://aws.amazon.com/pt/ec2/ https://aws.amazon.com/pt/cloud-data-migration/ https://aws.amazon.com/pt/cloud-data-migration/ Disciplina COMPUTAÇÃO EM NUVEM Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, exploraremos as razões para migrar aplicações para a nuvem, como escalabilidade, redução de custos, maior �exibilidade e acessibilidade global. Vamos abordar o gerenciamento de identidade que é uma parte crítica da segurança e operação e�ciente em ambientes de nuvem, garantindo que apenas usuários autorizados tenham acesso aos recursos apropriados, enquanto também fornece uma trilha de auditoria para monitoramento e conformidade. Esse conteúdo é importante para a sua prática pro�ssional, pois a migração de aplicações para a nuvem é uma estratégia importante para a modernização e e�ciência dos negócios, e pro�ssionais que compreendem e aplicam esses princípios estão em uma posição vantajosa para impulsionar o sucesso de suas organizações. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro estudante, vamos aprender as soluções e tecnologias utilizadas pelos provedores para oferta dos serviços. De que forma podemos acessar os provedores para instanciar e con�gurar serviços? Como as empresas controlam quais usuários podem con�gurar ou acessar cada serviço? Vamos entender essas questões e outros tópicos importantes relacionados à migração de dados e aplicações para ambientes de computação em nuvem. Nesta aula, iremos compreender os diversos fatores associados à migração e acesso a serviços em ambientes de computação em nuvem. Em seguida, serão descritos o conceito de gerenciamento de identidade, o acesso e suas principais funcionalidades. Vamos ainda caracterizar diversas formas de acesso a serviços na nuvem. Por �m, vamos aprender sobre hospedagem de aplicações em nuvem. Bons estudos! Vamos Começar! Disciplina COMPUTAÇÃO EM NUVEM Migração de dados e aplicações para a nuvem Muitas empresas têm adotado soluções de TI baseadas no modelo de computação em nuvem em virtude de vários benefícios, como redução de custos e maior escalabilidade. No caso de novas aplicações, as decisões de projeto já consideram características e tecnologias dos ambientes de computação em nuvem. O que pode ser feito no caso de aplicações já existentes que estão em execução em um ambiente tradicional de TI? Essas aplicações também podem se bene�ciar das tecnologias de computação em nuvem e , para isso, as aplicações que estão em um ambiente tradicional precisam ser reimplantadas em um ambiente de computação em nuvem. Esse processo é denominado migração para a nuvem (Pahl; Xiong, 2013). A migração de aplicações e dados para a nuvem não é uma tarefa simples. Pelo contrário, trata-se de um processo que envolve muitos desa�os, portanto, exige análise e planejamento cuidadosos para garantir o correto funcionamento dos sistemas na infraestrutura de computação em nuvem e assegurar que não haverá violação dos requisitos de segurança e privacidade (Morais, 2015). Para viabilizar a migração, podem ser necessárias, por exemplo, mudanças na arquitetura do sistema ou nas tecnologias utilizadas. No processo de migração de dados e de aplicações para um novo ambiente, o custo é um dos fatores mais relevantes. Entre os principais, podemos citar: Treinamento de pro�ssionais para gerenciamento do ambiente de computação em nuvem. Modi�cação nas aplicações ou necessidade de implementar novos componentes de software. Transferência de grandes volumes de dados. Se a migração envolve uma aplicação com uma base de dados extensa, a transmissão dos dados pode durar semanas ou até meses, de acordo com o desempenho da rede e com o volume de dados (AWS, 2019). Múltiplos processos têm que ser capazes de acessar a informação concorrentemente (a informação deve ser independente de qualquer processo). A portabilidade, pode ser entendida como a facilidade com a qual um sistema pode ser levado de um ambiente para outro (Silva, 2013). O desejável é que a migração possa ser feita com o mínimo de adaptações necessárias nos sistemas. É importante observar que a compatibilidade não é esperada apenas em termos de ambiente de execução ou padrões de comunicação entre componentes de software, mas também em relação às tecnologias de gerenciamento de dados. Esses aspectos são relevantes no processo de migrar sistemas para a nuvem e também na migração entre provedores de nuvem, caso necessário. Em geral, o processo de migração para a nuvem pode ser divido em três etapas (Morais, 2015): Planejamento: envolve atividades como: levantamento de requisitos; análise de riscos; escolha de ferramentas de migração, provedores e modelos de serviço e implantação; análise de custos e viabilidade e de�nição da estratégia de migração. Execução: consiste nas ações para levar o sistema para o novo ambiente, conforme planejado. Essa etapa envolve atividades como: extração, conversão e transferência de Disciplina COMPUTAÇÃO EM NUVEM dados; adaptação na arquitetura do sistema; alterações nas aplicações existentes, substituição ou implementação de novos componentes e bibliotecas. Avaliação: consiste na validação do processo e testes do sistema. Essa etapa inclui atividades como: avaliação de desempenho e segurança; testes de integridade e validação da qualidade de experiência do usuário. Estratégia de migração Uma das tarefas da etapa de planejamento é a de�nição da estratégia de migração. Existem diversas abordagens (AWS, 2018), entre as quais podemos destacar: Re-host: migrar a aplicação sem qualquer mudança arquitetural ou modi�cação de código. Isso é possível, por exemplo, quando a aplicação já executa em ambiente virtualizado, e as máquinas virtuais são copiadas para um provedor de nuvem pública. Os custos são reduzidos, mas a solução não é otimizada para ambiente de nuvem, portanto alguns mecanismos, como balanceamento dinâmico de carga, podem ser inviabilizados. Re-platform: a arquitetura geral do sistema não é alterada, mas os componentes são migrados de forma independente para aproveitar os serviços em nuvem. Por exemplo, instâncias de banco de dados são migradas para um provedor DBaaS (data base as a service) e aplicações são migradas para ambientes PaaS. É uma abordagem intermediária em termos da relação custo-benefício. Re-factor ou Re-architect: a aplicação é remodelada e reimplementada a partir de tecnologias e mecanismos típicos de computação em nuvem. É a estratégia que envolve maior custo e tempo de implementação. Por outro lado, permite aproveitar todo potencial do ambiente de nuvem. Gerenciamento de identidade em provedores de computação em nuvem Uma vez que um sistema é migrado para a nuvem, seus administradores precisam rede�nir como o sistema será gerenciado e utilizado no novo ambiente. Em particular, é necessário determinar como será o acesso remoto aos componentes do sistema que passaram a executar em infraestrutura de computação em nuvem. Isso envolve dois aspectos principais: o controle de permissões e as tecnologias de acesso. Isso é relevante mesmo nos casos em que um sistema é migrado para ambiente de nuvem privada, pois o controle de acesso é parte das plataformas de computação em nuvem usadas tanto em modelo de nuvem pública quanto de nuvem privada. Um dos mecanismos mais importantes para controle é o Gerenciamento de Acesso e Identidade (IAM – Identity and Access Management). Esse mecanismo consiste nos componentes e políticas necessários para veri�car e monitorar a identidade e as permissões de cada usuário em relação ao uso dos recursos computacionais disponíveis no ambiente de nuvem (Erl; Puttini; Mahmood, 2013). Em geral, um mecanismo IAM inclui três funcionalidades principais: Disciplina COMPUTAÇÃO EM NUVEM Autenticação: veri�cação da identidade do usuário, por exemplo, a partir de senha ou certi�cado digital. Mecanismos mais so�sticados incluem uso de biometria, assim como a restrição do acesso de acordo com o dispositivo utilizado pelo usuário ou até mesmo sua localização. Autorização: controle dos níveis de acesso e das permissões concedidas para um usuário em relação aos serviços e recursos disponíveis. Gerenciamento de usuários e credenciais: permite criar ou alterar cadastro de usuários, assim como grupos de usuários, políticas de segurança ou regras de acesso para facilitar o controle de uso dos recursos e lidar com ameaças de segurança e privacidade. Esse mecanismo permite que os administradores do sistema especi�quem os níveis ou permissões de acesso para cada pro�ssional ou grupo de pro�ssionais envolvidos no desenvolvimento e operação da aplicação em ambiente de computação em nuvem e também dos usuários da aplicação. Esse controle é imprescindível, pois o acesso aos serviços de suporte ou à própria aplicação é feito por meio da rede. Por outro lado, um rigoroso controle de acesso leva a uma necessidade de autenticação e veri�cação de permissão de acesso para cada serviço em nuvem utilizado para implantar uma aplicação, ou seja, máquinas virtuais, bancos de dados, componentes de software, etc. A situação pode ser mais complicada no caso em que uma mesma aplicação faz uso de serviços em provedores diferentes. Para lidar com essas questões, foram criados mecanismos de autenticação uni�cada (SSO – Single Sign On). Essa abordagem introduz o papel de um provedor de autenticação, por meio do qual um usuário pode acessar diversos serviços, inclusive em diferentes provedores, mediante um único processo de autenticação (Erl; Puttini; Mahmood, 2013). A Figura 1 ilustra esse cenário. Depois de realizar a autenticação, um cliente pode acessar diversos serviços, inclusive em provedores diferentes, por meio da mesma identidade. Disciplina COMPUTAÇÃO EM NUVEM Figura 1 | Autenticação uni�cada para acesso a serviços em nuvem. Siga em Frente... Hospedagem de aplicações em nuvem A hospedagem de aplicações em nuvem refere-se ao processo de executar e manter aplicativos em servidores remotos, geralmente fornecidos por provedores de serviços de computação em nuvem. Isso permite que as empresas evitem investir em infraestrutura física e se bene�ciem da �exibilidade e escalabilidade oferecidas pela nuvem. Os modelos de serviço comuns para hospedagem em nuvem, são: IaaS (Infraestrutura como Serviço): fornece recursos de infraestrutura, como servidores virtuais e armazenamento. PaaS (Plataforma como Serviço): oferece uma plataforma completa de desenvolvimento, incluindo ferramentas e serviços. Disciplina COMPUTAÇÃO EM NUVEM SaaS (Software como Serviço): disponibiliza aplicativos diretamente aos usuários �nais pela internet. Na prática, a estratégia básica de migração inicial ou empresas de pequeno porte é a estratégia Re-Platform, como explicado anteriormente. Uma forma de usaressa estratégia é migrar os componentes do sistema para serviços PaaS. Isso signi�ca enviar o código já existente da aplicação para um ambiente de desenvolvimento compatível na nuvem e implantar (fazer o deploy) da aplicação. Adicionalmente, um serviço DBaaS pode ser usado para hospedar o banco de dados da aplicação, se for o caso. As principais di�culdades são a portabilidade do código e o paradigma de gerenciamento de dados. Para aplicações feitas em plataformas populares na indústria de TI, como Java, Python ou JavaScritp, a portabilidade não é um problema, pois a maioria dos provedores PaaS suporta essas e outras plataformas como Ruby e PHP. A maioria dos provedores também suporta diversos SGBDs, tanto os que seguem o modelo relacional, quanto os bancos NoSQL (De Souza et al., 2014). Essa abordagem de hospedagem de aplicações e bases de dados na nuvem por meio de provedores PaaS permite a redução de custos, escalabilidade e dispensa a responsabilidade de gerenciamento de máquinas virtuais. O Quadro 1 apresenta alguns entre os principais serviços de hospedagem de aplicações em provedores PaaS. Serviço PaaS Tecnologias Suportadas AWS Elastic Beanstalk. Java, .NET, PHP, Node.js, Python, Ruby, Go e Docker. Google App Engine. Java, PHP, Node.js, Python, C#, .Net, Ruby e Go. Heroku Platform. Node, Ruby, Java, PHP, Python, Go, Scala, Clojure e contêineres customizados. Azure App Service. NET, Java, Node.js, PHP, e Python em Windows, .NET Core, Node.js, PHP ou Ruby em Linux e contêineres. Quadro 1 | Principais serviços de hospedagem de aplicações em nuvem pública. Chegamos ao �nal de mais uma unidade, na qual aprendemos muitos tópicos interessantes, como fatores importantes na migração de sistemas para ambientes de computação em nuvem, gerenciamento de identidade em provedores de computação em nuvem e hospedagem de aplicação em nuvem. Com o conhecimento adquirido até aqui, você será capaz de analisar as melhores estratégias para migrar aplicações para provedores considerando aspectos como a escalabilidade. Disciplina COMPUTAÇÃO EM NUVEM Vamos Exercitar? Migração do banco de dados para as nuvens Descrição da situação-problema Imagine que uma empresa de médio porte está enfrentando desa�os relacionados ao tempo necessário para transferir seu banco de dados para um ambiente de nuvem. O banco de dados contém informações críticas para as operações da empresa, e a migração para a nuvem é vista como uma medida estratégica para melhorar a escalabilidade, a acessibilidade e a segurança dos dados. No entanto, a equipe de TI está preocupada com o tempo que essa migração pode levar, impactando as operações diárias e possivelmente causando interrupções nos serviços. A migração do banco de dados pode resultar em períodos de downtime, afetando a disponibilidade dos sistemas. Baseado no problema relatado, monte um planejamento detalhado para a migração do banco de dados para as nuvens. Resolução da situação-problema: Segue a relação das práticas e estratégias para empresa minimizar o tempo necessário para a transferência do banco de dados para a nuvem, garantindo uma migração suave e e�ciente, com o mínimo impacto nas operações diárias: 1. Inicie com um planejamento detalhado, identi�cando os requisitos de migração, de�nindo metas claras e elaborando um cronograma realista. 2. Utilize ferramentas de migração de dados e�cientes fornecidas pelos provedores de nuvem. Algumas plataformas oferecem serviços que permitem a replicação de dados em tempo real para reduzir o impacto no tempo de inatividade. 3. Divida a migração em etapas menores e menos impactantes. Comece transferindo dados menos críticos e prossiga para dados mais sensíveis à medida que ganha con�ança no processo. 4. Utilize a capacidade de realizar migrações em paralelo, transferindo diferentes conjuntos de dados simultaneamente para acelerar o processo. 5. Antes da migração, otimize o banco de dados, removendo dados obsoletos ou desnecessários. Isso reduzirá o volume de dados a ser transferido. �. Realize testes exaustivos em um ambiente de teste antes da migração completa. Isso ajuda a identi�car possíveis problemas e aprimorar o processo. 7. Comunique-se efetivamente com as partes interessadas, informando sobre o cronograma de migração, possíveis períodos de downtime e as medidas tomadas para minimizar impactos. �. Realize backups completos e veri�cados do banco de dados antes da migração para garantir a possibilidade de restauração em caso de problemas inesperados. Disciplina COMPUTAÇÃO EM NUVEM 9. Implemente ferramentas de monitoramento contínuo durante o processo de migração para identi�car possíveis problemas em tempo real e tomar ações corretivas imediatas. 10. Capacite a equipe para lidar com situações durante a migração. Garanta que a equipe esteja ciente dos procedimentos e possa responder rapidamente a problemas potenciais. Saiba mais Com os avanços das soluções fornecidas pelos ambientes de nuvem, �ca cada vez mais difícil para o gestor escolher a melhor opção para adicionar os seus serviços, se em um ambiente de nuvem ou de forma local. Já que existe a necessidade de analisar minuciosamente cada aspecto das soluções e determinar a que melhor se adéqua aos objetivos da empresa, indicamos a leitura do artigo Uma metodologia para avaliação multicritério da tomada de decisão sobre a adoção de serviços de nuvem SaaS ou local. Referências AMAZON. Amazon Elastic Compute Cloud (Amazon EC2). Disponível em: https://aws.amazon.com/pt/ec2/ Acesso em: 31 jan. 2024. AWS. Migração de dados para a nuvem. Disponível em: https://aws.amazon.com/pt/cloud-data- migration/ Acesso em: 31 jan. 2024. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013. MORAIS, N. S. de. Proposta de modelo de migração de sistemas de ambiente tradicional para nuvem privada para o Polo de Tecnologia da Informação do Exército brasileiro. Dissertação (Mestrado Pro�ssional em Computação Aplicada) – Universidade de Brasília, Brasília, 2015. Disponível em: http://icts.unb.br/jspui/bitstream/10482/18758/1/2015_NathanielSimchMorais.pdf Acesso em: 3 fev. 2024. PAHL, C.; XIONG, H. Migration to PaaS clouds-migration process and architectural concerns. In: Proceedings of the IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems, 2013. Aula 4 Custos e Economia em Nuvem https://repositorio.ufc.br/bitstream/riufc/59041/1/2021_tcc_eclima.pdf https://repositorio.ufc.br/bitstream/riufc/59041/1/2021_tcc_eclima.pdf https://aws.amazon.com/pt/ec2/ https://aws.amazon.com/pt/cloud-data-migration/ https://aws.amazon.com/pt/cloud-data-migration/ http://icts.unb.br/jspui/bitstream/10482/18758/1/2015_NathanielSimchMorais.pdf Disciplina COMPUTAÇÃO EM NUVEM Custos e economia em nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, vamos explorar os custos e economia em nuvem. Vamos abordar os principais conceitos e estratégias que as organizações utilizam para otimizar seus investimentos em serviços em nuvem Esse conteúdo é importante para a sua prática pro�ssional, pois a expertise em custos e economia em nuvem não apenas contribui para a e�ciência operacional, mas também desempenha um papel estratégico na maximização dos benefícios que a computação em nuvem pode oferecer para as organizações. Essa habilidade é valiosa em qualquer função relacionada à implementação e gestão de soluções em nuvem. Vamos lá!!! Ponto de Partida Caro estudante, a computação em nuvem introduziu uma verdadeira mudança de paradigma no escopo da computação. Ao contrário do modelo convencional, a cloud fornece a computação como um serviço entreguesob demanda (Mell; Grance, 2011). Nela, os recursos são gerenciados por provedores e podem ser medidos em volume ou tempo de uso. Nesta aula, você conhecerá modelos de preci�cação em nuvem, e é importante que as organizações compreendam esses modelos para tomar decisões informadas sobre como otimizar custos e escolher a estratégia de preci�cação mais adequada para suas necessidades operacionais e orçamentárias. Depois, veremos a otimização de custos e recursos que é um processo contínuo que requer monitoramento, análise e ajustes regulares. A migração para a nuvem envolve uma análise cuidadosa dos custos associados a �m de garantir uma transição e�ciente e econômica. Bons estudos! Vamos Começar! Disciplina COMPUTAÇÃO EM NUVEM Modelos de preci�cação em nuvem A computação em nuvem surgiu na última década como resultado da convergência de várias tecnologias anteriores e modelos operacionais de TI. Do ponto de vista técnico, ela foi possibilitada por uma combinação de virtualização, computação em cluster, computação em grade, rede de banda larga e data centers em larga escala centralizados em locais de baixo custo. O desenvolvimento de arquiteturas de software para criar processos de negócios entregues como serviços, juntamente a acordos de nível de serviço (Service Level Agreements — SLAs) que especi�cam contratualmente itens como tempo de entrega e requisitos de desempenho, viabiliza ainda mais o fornecimento desse tipo de computação. A adoção acelerada da computação em nuvem decorre principalmente de seus benefícios, pois as empresas foram forçadas a encontrar soluções de TI econômicas para tornar seus produtos competitivos no mercado atual. Quando utilizavam o modelo de computação tradicional, as organizações tinham de investir pesadamente em infraestrutura, mão de obra e treinamento para montar seu departamento de TI. Isso consumia tempo, era relativamente in�exível e caro. Agora, com a evolução da computação em nuvem, ela se tornou a solução ideal para todos os tipos de empresas, pois pode ajudar as organizações a economizar tempo e dinheiro, além de oferecer vários benefícios. Muitos provedores de nuvem con�áveis geralmente fornecem várias con�gurações personalizadas para atender às necessidades de todos os tipos de pequenas ou grandes empresas. Por esse motivo, o retorno do seu investimento em tecnologia costuma ser alto à medida que seus negócios passam para a nuvem. A economia da computação em nuvem lida com o conhecimento sobre os princípios, custos e benefícios que ela pode oferecer. Para qualquer organização obter o maior valor para os seus negócios, ela deve determinar especi�camente como os serviços em nuvem podem afetar o orçamento, a segurança e a infraestrutura de TI. Não existe uma fórmula fácil e rápida para determinar isso; tudo depende da avaliação dos custos relacionados à infraestrutura, ao gerenciamento e à necessidade de pessoal, pesquisa, desenvolvimento, segurança e suporte. Todos esses fatores são analisados para determinar se a migração para a nuvem é o próximo passo lógico, de acordo com as circunstâncias e necessidades especí�cas da organização. De acordo com Bhowmik (2017), os provedores de nuvem geralmente oferecem dois planos de provisionamento de recursos ou modelos de preços diferentes para atender aos requisitos dos consumidores, para atender a diferentes �ns comerciais. Os planos são conhecidos como “plano de curto prazo sob demanda” e “plano de reserva de longo prazo”. A maioria dos provedores comerciais de nuvem oferece ambos os planos. Plano de curto prazo sob demanda Nesse modelo de preci�cação, os recursos são alocados no curto prazo, conforme a demanda. Quando a demanda aumenta, os recursos são provisionados de acordo com a necessidade. Quando a demanda diminui, os recursos alocados são liberados da aplicação e retornados ao pool de recursos livres. Os consumidores são cobrados com base no uso. Portanto, com esse plano sob demanda, a alocação de recursos segue a abordagem de provisionamento dinâmico para atender às demandas que apresentam �utuações e são imprevisíveis em relação ao uso de recursos. No plano sob demanda de curto prazo, é responsabilidade do provedor garantir o Disciplina COMPUTAÇÃO EM NUVEM desempenho da aplicação provisionando recursos durante a alta demanda. Isso requer um planejamento adequado por parte do fornecedor. A estimativa dos requisitos de recursos durante a alta demanda desempenha um papel vital nesse modelo de preços. Plano de reserva de longo prazo No plano de reserva de longo prazo, também conhecido como “provisionamento antecipado”, é realizado um contrato de serviço entre o consumidor e o provedor em relação à necessidade de recursos. O provedor, em seguida, organiza antecipadamente e mantém certo volume de recursos do pool de recursos para atender às necessidades do consumidor em tempo de urgência. Essa reserva de recursos é feita antes do início do serviço. Nesse modelo de provisionamento, o preço não é baseado na demanda. Em vez disso, é cobrada uma taxa única por um período �xo (geralmente contado em meses ou anos). Para o fornecedor, a complexidade computacional e o custo são menores nesse plano em comparação ao plano sob demanda. Isso ocorre porque o provedor toma conhecimento do requisito máximo de recursos do consumidor e mantém o pool de recursos pronto para atender às demandas. Isso reduz o custo do fornecedor e, como efeito, os consumidores podem obter o serviço em uma taxa muito mais barata (geralmente quando é feito um contrato de longo prazo) do que no plano sob demanda (se as taxas de uso por hora forem consideradas). Como um volume �xo de recursos é organizado de acordo com o SLA, há possibilidades de subprovisionamento (provisionamento de recursos inferior ao necessário) ou superprovisionamento (provisionamento de recursos superior à demanda) de recursos. É importante que o consumidor da nuvem estime os requisitos cuidadosamente para que esses problemas possam ser evitados e para que, ao mesmo tempo, o custo de provisionamento de recursos possa ser minimizado. Esse objetivo pode ser alcançado por meio de um plano de gerenciamento de recursos. Para Buyya, Vecchiola e Selvi (2013), em termos dos modelos de preci�cação introduzidos pela computação em nuvem, três estratégias diferentes são adotadas pelos provedores: Preços diferenciados: nesse modelo, os serviços em nuvem são oferecidos em várias camadas. Cada uma delas oferece especi�cação de computação �xa e SLA a um preço especí�co por unidade de tempo. Esse modelo é usado pela Amazon para preci�car o serviço Elastic Compute Cloud (EC2), que disponibiliza diferentes con�gurações de servidor e capacidades de computação, com diferentes custos por hora. Preço por unidade: esse modelo é mais adequado para os casos em que a principal fonte de receita do provedor de nuvem é determinada em termos de unidades de serviços especí�cos, como transferência de dados e alocação de memória. Nesse cenário, os clientes podem con�gurar seus sistemas com mais e�ciência, de acordo com as necessidades da aplicação. Esse modelo é usado, por exemplo, pelo GoGrid; os clientes pagam de acordo com as unidades de Random Access Memory (RAM)/hora pelos servidores implantados na nuvem. Preços baseados em assinaturas: esse é o modelo usado principalmente pelos provedores de SaaS. Os usuários pagam uma taxa de assinatura periódica pelo uso do software ou pelos serviços de componentes especí�cos integrados em suas aplicações. Disciplina COMPUTAÇÃO EM NUVEM Todos esses custos são baseados em um modelo de pagamento conforme o uso, que constitui uma solução mais �exível para dar suporte à entrega sob demanda de serviços de TI. É isso que realmente possibilita a conversão dos custos de capital de TI em custos operacionais, uma vez que o custo de compra de hardware se transforma em um custo para locá-lo, e o custo gerado pela compra de software se transforma em uma taxa de assinatura paga para usá-lo. Siga em Frente... Otimização de custos e recursos A otimização decustos e recursos na computação em nuvem é uma prática essencial para garantir e�ciência operacional e maximizar o valor dos investimentos. Veja algumas estratégias e práticas para otimizar custos e recursos na nuvem: Monitoramento contínuo: implemente ferramentas de monitoramento para acompanhar o uso de recursos em tempo real, identi�car padrões de uso e entender as demandas sazonais ajuda na tomada de decisões informadas. Dimensionamento automático: utilize recursos de dimensionamento automático para ajustar dinamicamente a capacidade de computação com base nas necessidades. Isso permite a expansão ou redução automática de instâncias de acordo com a demanda, evitando subutilização. Escolha de tipos de instância adequados: selecione tipos de instância de acordo com as características especí�cas das cargas de trabalho. Plataformas em nuvem oferecem uma variedade de tipos de instância otimizados para computação, memória, armazenamento, etc. Reservas e commitments: aproveite descontos oferecidos por reservas de instâncias ou compromissos a longo prazo. Esses programas podem resultar em signi�cativas economias de custos para cargas de trabalho estáveis e previsíveis. Desativação de recursos não utilizados: desative ou desligue recursos que não estão sendo utilizados, como instâncias, volumes de armazenamento ou bancos de dados. Isso evita custos desnecessários associados a recursos ociosos. Gerenciamento e�ciente de armazenamento: adote políticas de gerenciamento de armazenamento e�cientes, como a exclusão regular de snapshots não utilizados, a alocação dinâmica de armazenamento e a implementação de políticas de retenção. Escolha de região estratégica: avalie as tarifas em diferentes regiões e escolha a que oferece os melhores preços para os serviços necessários. Algumas regiões podem ter custos mais baixos para tipos especí�cos de recursos. Use serviços gerenciados: utilize serviços gerenciados oferecidos pelos provedores de nuvem para reduzir a carga operacional. Esses serviços geralmente otimizam recursos automaticamente e oferecem manutenção de infraestrutura embutida. Implementação de políticas de orçamento: estabeleça políticas de orçamento para monitorar os gastos e receber alertas quando os custos se aproximarem dos limites de�nidos. Isso ajuda a evitar surpresas desagradáveis nas faturas. Disciplina COMPUTAÇÃO EM NUVEM Análise de dados para tomada de decisões: utilize ferramentas de análise de custos fornecidas pelos provedores de nuvem para identi�car áreas de oportunidade, entender padrões de gastos e tomar decisões informadas para otimização. A otimização de custos e recursos na computação em nuvem é um processo contínuo que requer monitoramento, análise e ajustes regulares. Ao adotar essas práticas, as organizações podem colher os benefícios da e�ciência operacional e da maximização do retorno sobre o investimento em serviços em nuvem. Análise dos custos na migração para nuvem A migração para a nuvem envolve uma análise cuidadosa dos custos associados a �m de garantir uma transição e�ciente e econômica. Veja os principais aspectos a serem considerados ao realizar uma análise de custos na migração para a nuvem: Custo inicial da migração: avalie os custos iniciais relacionados à migração, incluindo aquisição de ferramentas de migração, treinamento da equipe, custos de consultoria e possíveis ajustes necessários nas aplicações existentes. Custos de infraestrutura: compare os custos de infraestrutura entre o ambiente local e a nuvem. Considere fatores como aquisição de hardware, manutenção, espaço físico e custos associados à escalabilidade. Licenciamento de software: avalie os custos de licenciamento de software para garantir conformidade na nuvem. Alguns provedores de nuvem oferecem modelos BYOL (Bring Your Own License), enquanto outros incluem licenças em seus serviços. Custos operacionais: analise os custos operacionais, incluindo monitoramento, backup, segurança e suporte técnico. Em muitos casos, esses custos são incorporados nos serviços em nuvem, mas devem ser considerados na comparação total. Análise de TCO (Custo Total de Propriedade): realize uma análise de TCO para entender os custos totais de propriedade ao longo do tempo. Isso envolve a consideração de custos de capital e operacionais, além de eventuais economias de escala na nuvem. Estratégia de dimensionamento: considere a estratégia de dimensionamento, identi�cando os recursos necessários para atender às demandas da carga de trabalho. A capacidade de ajustar dinamicamente os recursos na nuvem pode in�uenciar signi�cativamente os custos. Gestão de dados: avalie os custos associados à gestão de dados, como armazenamento, transferência de dados e serviços de banco de dados. Escolha estratégias de armazenamento e�cientes e otimize a transferência de dados entre ambientes. Contratos e Acordos de Nível de Serviço (SLA): entenda os termos contratuais e SLAs dos provedores de nuvem em relação aos custos. Algumas empresas oferecem descontos por compromissos a longo prazo, e SLAs podem impactar os custos associados a interrupções ou falhas. Modelos de preci�cação dos provedores: analise os modelos de preci�cação dos provedores de nuvem, compreendendo os custos associados a serviços especí�cos, como instâncias de máquinas virtuais, armazenamento, transferência de dados e outros recursos. Disciplina COMPUTAÇÃO EM NUVEM Previsões de crescimento e escala: projete os custos considerando o crescimento e a escala previstos. Antecipe aumentos de demanda e planeje a capacidade de acordo para evitar surpresas nos custos. Análise de Retorno sobre Investimento (ROI): realize uma análise de ROI para entender quando os benefícios �nanceiros da migração para a nuvem começarão a superar os custos iniciais. Isso é crucial para justi�car o investimento. Uma análise completa dos custos na migração para a nuvem é essencial para garantir uma tomada de decisão informada. Cada organização é única, e a análise deve ser adaptada aos requisitos especí�cos, considerando a infraestrutura existente, as metas de negócios e as características das cargas de trabalho. Vamos Exercitar? Migração para a nuvem Descrição da situação-problema Uma empresa de médio porte que recentemente migrou suas operações para a nuvem está enfrentando desa�os signi�cativos em relação aos custos associados aos serviços em nuvem. A equipe de TI percebeu que, apesar das promessas de e�ciência e economia, os gastos estão aumentando rapidamente, e a empresa está preocupada com a sustentabilidade �nanceira dessa transição. Resolução da situação-problema: Para otimizar os custos em computação em nuvem, a empresa implementa uma série de estratégias e práticas, como: Avaliação abrangente de custos: a equipe de TI realiza uma análise aprofundada dos custos, identi�cando os serviços e recursos que mais contribuem para as despesas. Isso inclui revisar os modelos de preci�cação, uso de instâncias e custos associados a serviços especí�cos. Implementação de monitoramento contínuo: ferramentas de monitoramento são implementadas para rastrear o uso de recursos em tempo real. Isso permite identi�car padrões de uso, identi�car picos de demanda e otimizar a alocação de recursos de acordo. Adoção de estratégias de dimensionamento automático: para evitar subutilização ou falta de recursos, isso garante que a capacidade de computação seja ajustada dinamicamente com base nas demandas reais, evitando custos desnecessários. Revisão e seleção de tipos de instância adequados: a equipe revisa os tipos de instância em uso e seleciona aqueles que melhor se alinham com as necessidades especí�cas de cada carga de trabalho. Tipos de instância otimizados são escolhidos para garantir e�ciência e economia. Disciplina COMPUTAÇÃO EM NUVEM Implementação de políticas de desativação de recursos: para desativar automaticamente recursos não utilizados durante períodos especí�cos. Isso inclui instâncias, bancos de dados e outros serviços que podem ser desligados durante horas não comerciais. Negociaçãoespeci�car um plano de contingência para o caso de ocorrer algum problema, pois os hospitais não podem interromper o atendimento aos pacientes. Dessa forma, um dos diretores do hospital lhe faz o seguinte questionamento: quais são os riscos envolvidos na migração para o ambiente de nuvem? Resolução da situação-problema Existem diversos riscos, entre os quais podemos destacar: Risco de violação de privacidade dos dados médicos dos pacientes. Como os dados serão transmitidos pela rede dos dispositivos de acesso para o provedor, existe a possibilidade de Disciplina COMPUTAÇÃO EM NUVEM que eles sejam interceptados por agentes maliciosos, o que seria um problema crítico. Outra possibilidade ligada à segurança é o eventual compartilhamento de recursos no provedor, por exemplo, se as máquinas virtuais alocadas para a rede hospitalar estiverem no mesmo servidor físico no qual estejam também máquinas virtuais de outros clientes. Caso não haja isolamento e proteção dos dados de forma adequada, os dados médicos podem ser violados. Risco de os dados serem armazenados fora de região permitida. Em geral, os provedores de computação em nuvem possuem vários centros de dados em diferentes regiões, inclusive em países diferentes. Como se trata de uma rede pública e de dados médicos, pode haver restrições legais sobre os dados armazenados em outras regiões. Por exemplo, existem dados de órgãos públicos federais que não podem ser armazenados em outros países. Mesmo que a rede hospitalar escolha um centro de dados em uma região permitida, é preciso estar atento para que réplicas dos dados não sejam criadas em outras regiões. Risco de indisponibilidade do serviço: se houver falha no provedor ou nos enlaces de comunicação, o sistema não poderá ser acessado remotamente. O desempenho da rede e a con�abilidade do provedor são críticos para operação do sistema. Saiba mais Para saber mais sobre a de�nição de computação em nuvem, acesse o material O que é computação na nuvem? da Google Cloud. Referências ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.] Prentice Hall, 2013. MELL, P.; GRANCE, T. The NIST de�nition of cloud computing. [s.L.] National Institute of Standards and Technology, 2011. Disponível em: https://doi.org/10.6028/NIST.SP.800-145 Acesso em: 18 jan. 2024. SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Gerenciamento de dados em nuvem: conceitos, sistemas e desa�os. Disponível em: https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1 Acesso em: 18 jan. 2024. Aula 2 Modelos de Serviço em Computação em Nuvem https://cloud.google.com/learn/what-is-cloud-computing?hl=pt-br https://cloud.google.com/learn/what-is-cloud-computing?hl=pt-br https://doi.org/10.6028/NIST.SP.800-145 https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1 Disciplina COMPUTAÇÃO EM NUVEM Modelos de Serviço em Computação em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, você irá conhecer sobre os modelos de serviço em Computação em Nuvem. Existem três principais modelos: IaaS (Infraestrutura como Serviço), PaaS (Plataforma como Serviço) e SaaS (Software como Serviço). Esses modelos representam diferentes níveis de abstração e responsabilidade, proporcionando �exibilidade aos usuários, dependendo de suas necessidades e capacidades técnicas. A escolha entre esses modelos depende dos requisitos especí�cos do projeto e das preferências de gerenciamento de infraestrutura. Esse conteúdo é importante para a sua prática pro�ssional, pois a compreensão dos modelos de serviço em computação em nuvem é essencial para otimizar a utilização de recursos, garantir segurança e conformidade, e impulsionar a inovação nas organizações. Ela desempenha um papel central na tomada de decisões estratégicas e na e�cácia operacional em um ambiente de nuvem. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro, estudante. Nesta unidade, veremos os modelos de serviço em computação em nuvem. Vamos descrever os principais modelos de serviço no contexto de computação em nuvem: Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço (SaaS). O modelo de serviço de�ne o nível de controle que o cliente tem sobre os recursos alocados no provedor. No modelo IaaS, o cliente pode alocar capacidade computacional na forma de recursos computacionais virtualizados. Assim, o cliente pode alocar, no provedor, uma infraestrutura, por exemplo, com a capacidade desejada de processamento e armazenamento de dados. A alocação desses recursos possibilita que o cliente tenha controle da escolha do sistema operacional que será utilizado nos servidores alocados. No modelo PaaS, o cliente não tem controle sobre a infraestrutura, mas ele recebe do provedor um ambiente já con�gurado, pronto para o desenvolvimento de aplicações. O cliente escolhe apenas a plataforma de desenvolvimento, tal como linguagem de programação e banco de dados. No modelo SaaS, o cliente acessa aplicações e não tem nenhum controle sobre os recursos computacionais Disciplina COMPUTAÇÃO EM NUVEM disponíveis no provedor. Um dos aspectos importantes para escolher o modelo de serviço é entender a relação entre nível de abstração e de controle, conforme os requisitos do cliente. Uma das principais características da computação em nuvem é a abstração da complexidade dos recursos computacionais alocados. O nível de abstração da complexidade está relacionado ao nível de controle do cliente. Por exemplo, ao escolher um modelo de serviço com menor controle do cliente sobre a infraestrutura subjacente, maior é o nível de abstração da complexidade. Para alcançar esse objetivo, nesta aula, você vai aprender os conceitos dos modelos de serviços de computação em nuvem. Vamos discutir, também, alguns modelos de serviços especializados. Assim, com sua capacidade de análise crítica, como poderá escolher o modelo de serviço. Bons estudos! Vamos Começar! Conceito de modelos de serviços (IaaS, SaaS e PaaS) A computação em nuvem oferece diversos benefícios para organizações e usuários, impulsionando a e�ciência operacional, a �exibilidade e a inovação. Vamos descrever os principais modelos de serviço no contexto de computação em nuvem: Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço (SaaS). O modelo de serviço de�ne o nível de controle que o cliente tem sobre os recursos alocados no provedor. No modelo IaaS, o cliente pode alocar capacidade computacional na forma de recursos computacionais virtualizados. Assim, o cliente pode alocar, no provedor, uma infraestrutura, por exemplo, com a capacidade desejada de processamento e armazenamento de dados. A alocação desses recursos possibilita que o cliente tenha controle da escolha do sistema operacional que será utilizado nos servidores alocados. Os provedores de computação em nuvem são as empresas responsáveis por manter a infraestrutura necessária para processar e armazenar dados. Os provedores oferecem vários tipos de serviço, que, em geral, são organizados em modelos de acordo com o nível de controle oferecido aos clientes em relação à gestão e con�guração dos recursos. Por exemplo, um provedor pode provisionar servidores nos quais um cliente pode instalar um banco de dados ou um servidor web. Outros provedores oferecem aplicações para usuários �nais. A taxonomia mais amplamente aceita, como apresentada em (MELL, 2011), de�ne três modelos de serviço: Infraestrutura como Serviço (IaaS – Infrastructure as a Service). Plataforma como Serviço (PaaS – Platform as a Service). Software como Serviço (SaaS – Software as a Service). No modelo IaaS,de contratos e reservas: a equipe de �nanças e TI trabalha em conjunto para negociar contratos mais favoráveis com o provedor de nuvem. Estratégias de reservas são exploradas para obter descontos signi�cativos em compromissos a longo prazo. Implementação de Governança Financeira (FinOps): Práticas são adotadas, promovendo uma abordagem colaborativa entre as equipes �nanceiras e de operações de TI. Essa colaboração visa otimizar custos, melhorar a transparência �nanceira e alinhar os gastos com os objetivos do negócio. Treinamento da equipe e conscientização: A equipe de TI é treinada para entender os modelos de preci�cação, estratégias de otimização e a importância da governança �nanceira. A conscientização é promovida para garantir que todas as partes compreendam a necessidade de otimização de custos. Revisão contínua e melhoria: a empresa adota uma abordagem de melhoria contínua, revisando regularmente as estratégias implementadas, analisando novos serviços oferecidos pelo provedor de nuvem e ajustando as práticas conforme necessário para garantir a otimização contínua. Ao implementar essas estratégias, a empresa consegue otimizar seus custos em computação em nuvem, garantindo que a transição para a nuvem seja não apenas e�ciente do ponto de vista operacional, mas também �nanceiramente sustentável a longo prazo. Saiba mais O conceito de computação em nuvem quase sempre é associado a benefícios em relação ao compartilhamento e segurança de dados. Contudo, ele também pode ser um grande aliado das empresas que buscam maximizar a e�ciência e economia em seus processos. Para saber mais sobre esse assunto, consulte o artigo 5 momentos em que a computação em nuvem reduz os custos da sua empresa. Referências BHOWMIK, S. Cloud computing. Cambridge: Cambridge University Press, 2017. MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Porto Alegre: SAGAH, 2020. SOUSA NETO, M. V. Computação em nuvem. Rio de Janeiro: Brasport, 2015. https://athand.inf.br/blog/5-momentos-em-que-a-computacao-em-nuvem-reduz-os-custos-da-sua-empresa/#:~:text=A%20computa%C3%A7%C3%A3o%20em%20nuvem%20reduz%20custos%20com%20infraestrutura&text=Ao%20inv%C3%A9s%20de%20adquirir%20hardwares,mas%20sem%20gerar%20gastos%20excessivos https://athand.inf.br/blog/5-momentos-em-que-a-computacao-em-nuvem-reduz-os-custos-da-sua-empresa/#:~:text=A%20computa%C3%A7%C3%A3o%20em%20nuvem%20reduz%20custos%20com%20infraestrutura&text=Ao%20inv%C3%A9s%20de%20adquirir%20hardwares,mas%20sem%20gerar%20gastos%20excessivos Disciplina COMPUTAÇÃO EM NUVEM Aula 5 Encerramento da Unidade Videoaula de Encerramento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, você irá conhecer as soluções de computação em nuvem que proporcionam �exibilidade, escalabilidade e e�ciência operacional para organizações, permitindo que se concentrem em suas operações principais sem a necessidade de gerenciar diretamente a infraestrutura de TI. Esse conteúdo é importante para a sua prática pro�ssional, pois ter um entendimento sólido das soluções de computação em nuvem é relevante em um ambiente de negócios cada vez mais digital e dinâmico. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Chegada Olá, estudante! A escolha do hardware e software dependerá dos requisitos e das preferências do provedor de serviços em nuvem. É essencial entender os principais modelos e tipos de serviços oferecidos: Modelos de serviços na nuvem: IaaS (Infraestrutura como Serviço): oferece recursos de infraestrutura virtualizados, como servidores, armazenamento e redes e permite que usuários implantem e gerenciem seus próprios sistemas operacionais e aplicativos. PaaS (Plataforma como Serviço): fornece uma plataforma completa de desenvolvimento, incluindo ferramentas e serviços para facilitar o ciclo de vida do desenvolvimento de aplicativos e elimina a necessidade de gerenciar a infraestrutura subjacente. Disciplina COMPUTAÇÃO EM NUVEM SaaS (Software como Serviço): aplicações de software totalmente hospedadas e gerenciadas pelo provedor de serviços em nuvem e os usuários acessam o software por meio de um navegador da web, sem a necessidade de instalação local. Algumas soluções de computação em nuvem: Infraestrutura como serviço (IaaS): fornece recursos de infraestrutura virtualizada, como máquinas virtuais, armazenamento e redes. Exemplos: Amazon EC2, Microsoft Azure Virtual Machines, Google Compute Engine. Plataforma como serviço (PaaS): oferece uma plataforma completa de desenvolvimento, incluindo ferramentas e serviços, sem a necessidade de gerenciar a infraestrutura subjacente. Exemplos: Heroku, Google App Engine, Microsoft Azure App Service. Software como serviço (SaaS): disponibiliza aplicativos diretamente aos usuários �nais pela internet, sem a necessidade de instalação local. Exemplos: Microsoft 365, Salesforce, Google Workspace. Computação sem servidor (Serverless): permite que os desenvolvedores executem código sem se preocupar com a infraestrutura, pagando apenas pelo tempo de execução. Exemplos: AWS Lambda, Azure Functions, Google Cloud Functions. Armazenamento em nuvem: oferece serviços de armazenamento escalável e seguro para dados. Exemplos: Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage. Bancos de dados em nuvem: fornecem serviços de gerenciamento e armazenamento de dados, permitindo acesso rápido e seguro. Exemplos: Amazon RDS, Google Cloud SQL, Microsoft Azure Cosmos DB. Redes em nuvem: fornece serviços para criar, gerenciar e otimizar redes virtuais. Exemplos: Amazon VPC, Google Cloud Virtual Network, Microsoft Azure Virtual Network. Contêineres e orquestração: facilitam o empacotamento de aplicações e sua implementação consistente, escalável e gerenciada. Exemplos: Kubernetes, Docker, OpenShift. Segurança em nuvem: inclui serviços e ferramentas para garantir a segurança dos dados e aplicações na nuvem. Exemplos: AWS Identity and Access Management (IAM), Azure Active Directory, Google Cloud Identity and Access Management. Analytics e Big Data: oferece serviços para processamento, análise e visualização de grandes conjuntos de dados. Exemplos: Amazon EMR, Google BigQuery, Microsoft Azure HDInsight. Inteligência Arti�cial (IA) e Machine Learning (ML): fornecem serviços e frameworks para desenvolvimento e implantação de modelos de IA e ML. Exemplos: Amazon SageMaker, Google AI Platform, Microsoft Azure Machine Learning. Entender esses conceitos é fundamental para explorar efetivamente os benefícios da computação em nuvem. É Hora de Praticar! Este conteúdo é um vídeo! Disciplina COMPUTAÇÃO EM NUVEM Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Desa�os signi�cativos em sua infraestrutura de TI Descrição da situação-problema Uma empresa de médio porte enfrenta desa�os signi�cativos em sua infraestrutura de TI, que atualmente é baseada em uma abordagem tradicional de data center local. A empresa está enfrentando crescentes demandas de escalabilidade, �exibilidade e custos operacionais mais baixos. A equipe de TI percebe que é necessário modernizar a infraestrutura para acompanhar a dinâmica do mercado e melhorar a e�ciência operacional. O que a empresa poderia fazer para enfrentar esses desa�os? Quais as estratégias e práticas recomendadas para garantir a conformidade e a segurança de dados em um ambiente de nuvem? Como os serviços de computação em nuvem podem ser integrados efetivamente em uma estratégia de Internet das Coisas (IoT)? Qual a importância da orquestração de contêineres na nuvem? Resolução da situação-problema A solução proposta para resolveresses desa�os é migrar para uma arquitetura de computação em nuvem. Seguem os passos para a implementação dessa solução: Avaliação de necessidades: conduzir uma análise detalhada das necessidades de negócios, identi�cando os requisitos de escalabilidade, segurança e conformidade. Seleção de modelo de serviço: escolher o modelo de serviço mais adequado (IaaS, PaaS ou SaaS) com base nos requisitos especí�cos da empresa. Escolha de provedor de nuvem: avaliar diferentes provedores de nuvem (como AWS, Azure ou Google Cloud) e selecionar aquele que melhor atende às necessidades da empresa em termos de serviços, preços e suporte. Migração gradual: planejar para minimizar impactos e garantir a continuidade dos negócios. Começar com aplicativos menos críticos antes de migrar os sistemas essenciais. Implementação de práticas de segurança: implementar medidas robustas, incluindo criptogra�a, controle de acesso e monitoramento constante para proteger dados sensíveis. Treinamento e adoção: oferecer treinamento para a equipe de TI para garantir uma transição suave e uma rápida adoção das novas práticas e tecnologias. Otimização de recursos: utilizar recursos de nuvem de forma e�ciente, otimizando o dimensionamento de recursos conforme necessário para evitar custos desnecessários. Monitoramento contínuo: implementar ferramentas de monitoramento para rastrear o desempenho da infraestrutura, identi�car possíveis problemas e otimizar continuamente a operação. Disciplina COMPUTAÇÃO EM NUVEM Integração de novas tecnologias: avaliar e integrar tecnologias emergentes, como contêineres e orquestração, para melhorar ainda mais a agilidade e a e�ciência operacional. Avaliação pós-migração: realizar uma avaliação pós-migração para medir o sucesso da transição, ajustar estratégias conforme necessário e garantir que os objetivos de negócios sejam alcançados. A empresa poderá aproveitar os benefícios da computação em nuvem, como escalabilidade sob demanda, custos operacionais reduzidos e maior �exibilidade, ao mesmo tempo em que enfrenta os desa�os inerentes à mudança para essa nova abordagem tecnológica. A computação em nuvem é uma revolução na forma como as organizações gerenciam e entregam serviços de TI. As tecnologias e soluções associadas a essa abordagem fornecem �exibilidade, escalabilidade e e�ciência operacional. A �gura a seguir mostra o resumo de tecnologias e soluções em computação em nuvem. Disciplina COMPUTAÇÃO EM NUVEM Figura | Tecnologias e soluções em computação em nuvem. CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017. Disciplina COMPUTAÇÃO EM NUVEM ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. Rio de Janeiro: Prentice Hall, 2013. MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Revisão técnica de Adriano José Vogel. Porto Alegre: SAGAH, 2020. , Unidade 4 Arquitetura de Aplicações em Nuvem Aula 1 Modelos de Arquitetura em Nuvem Modelos de Arquitetura em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, você irá conhecer os conceitos dos modelos de arquitetura em nuvem. A arquitetura em nuvem refere-se à estrutura organizacional dos componentes de nuvem, que inclui servidores, armazenamento, redes, software e outros elementos necessários para suportar as necessidades de computação de uma aplicação ou empresa. Esse conteúdo é importante para a sua prática pro�ssional, pois a compreensão dos modelos de arquitetura em nuvem é essencial para pro�ssionais que desejam alinhar as estratégias de TI com os objetivos de negócios, garantindo e�ciência, segurança e conformidade em ambientes de nuvem. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Disciplina COMPUTAÇÃO EM NUVEM Olá, estudante! Nesta aula, vamos aprender os modelos de arquitetura para aplicações em nuvem, que, em geral, são complexas, pois envolvem diversos componentes que interagem entre si por meio da Internet. O projeto da arquitetura de uma aplicação afeta diversos aspectos, como seu desempenho, disponibilidade e até mesmo o nível de segurança. Portanto, esse é um tópico relevante e que merece muita atenção. As aplicações em nuvem podem incluir diversos componentes de software, como bancos de dados, serviços web e aplicativos. A especi�cação da arquitetura consiste em determinar quais são os componentes, como eles devem se comunicar, como podem ser protegidos de ações maliciosas e como garantir que os requisitos da aplicação sejam alcançados. Além dos conceitos básicos, será discutida a evolução dos modelos de arquitetura, incluindo abordagens como microsserviços, Serverless Computing e Edge Computing. Bons estudos! Vamos Começar! Arquitetura em nuvem As aplicações em nuvem são sistemas de software complexos, na medida em que implementam diversas funcionalidades e fazem uso de variados serviços que são acessados por meio da Internet. Para lidar com essa complexidade, as aplicações podem ser divididas em módulos (ou componentes) funcionais. Por exemplo, uma aplicação web de comércio eletrônico pode incluir vários módulos, como um responsável pela autenticação de usuários ou outro responsável pela geração de relatórios de vendas. Cada um deles pode ser um software independente, capaz de ser executado, por exemplo, em uma máquina virtual ou em um contêiner de um provedor de nuvem pública. A de�nição da arquitetura de uma aplicação consiste em de�nir quais seriam os seus módulos funcionais e como eles devem interagir entre si (Coulouris et al., 2013). O projeto da arquitetura de aplicações em nuvem é um grande desa�o e as decisões nele envolvidas podem in�uenciar vários aspectos da aplicação, como desempenho, escalabilidade e segurança. A fase de projeto é importante para tentar antecipar a identi�cação de possíveis problemas como: gargalos de desempenho, ameaças de segurança e impacto da falha de componentes especí�cos na disponibilidade da aplicação. Componentes críticos podem ser replicados para viabilizar mecanismos de tolerância a falhas e balanceamento de carga. Existem três modelos básicos para a arquitetura de aplicações distribuídas: arquitetura centralizada, descentralizada e híbrida (Tanenbaum; Steen, 2008). A arquitetura centralizada é o modelo tradicional cliente-servidor. Quando um componente requisita um serviço de outro, o que faz a requisição é o cliente e o que responde é o servidor. As aplicações web representam um exemplo típico do modelo de arquitetura centralizada: o servidor web responde as requisições enviadas por navegadores web. Disciplina COMPUTAÇÃO EM NUVEM A arquitetura descentralizada é caracterizada pelo modelo Peer-to-Peer (P2P). Nesse caso, não há distinção entre clientes e servidores, e os componentes de software, por sua vez, podem fazer requisições entre si de forma arbitrária. A Figura 1 ilustra a lógica dos modelos cliente-servidor e P2P. Figura 1 | Comparação do modelo descentralizado com o centralizado. Uma alternativa interessante ao escolher um modelo centralizado ou descentralizado é a arquitetura híbrida, na qual uma mesma aplicação utiliza os dois modelos, ou seja, algumas funcionalidades da aplicação são implementadas na forma cliente-servidor e outras são implementadas na forma P2P. Assim, pode-se aproveitar o melhor de cada arquitetura. Apesar da escalabilidade dos sistemas P2P, esse modelo é muito complexo, pois exige a implementação de mecanismos descentralizados. A maior prova dessa complexidade é que a maioria das aplicações que utilizados, como aplicativos de comunicação instantânea e aplicações web, são sistemas cliente-servidor centralizados. A arquitetura de microsserviços As principais funcionalidades de umaaplicação são implementadas na camada de processamento, por exemplo, na forma de um Serviço Web (Web Service). Esse serviço é denominado monolítico quando todos os seus módulos funcionais estão implementados em um único componente de software. Se a aplicação possui muitas funcionalidades, esse serviço pode apresentar alguns problemas, como: ocupação de muito espaço de memória; di�culdade de implementar correções e de evolução do software; alto custo de replicação, etc. Diante desses problemas, novas arquiteturas de serviços web foram propostas para melhorar o desempenho e a escalabilidade, assim como facilitar a replicação. Essas abordagens baseiam-se na ideia de dividir o serviço web monolítico em diversos componentes de software independentes. Entre as principais abordagens, podemos citar a arquitetura de microsserviços (Dragoni et al., 2017) e a arquitetura Serverless (Computação sem Servidor) (Baldini et al., 2017), cujo principal exemplo é o modelo Função como Serviço (FaaS – Function as a Service). A Figura 2 ilustra a evolução desses modelos, que se re�ete no grau de modularização da aplicação. Disciplina COMPUTAÇÃO EM NUVEM Figura 2 | Evolução dos padrões de arquitetura de software como serviço. No modelo de microsserviços, cada um dos módulos funcionais de uma aplicação monolítica vira um serviço menor e especializado, denominado microsserviço. Cada microsserviço é um componente de software independente. Assim, ele pode ser executado como um serviço web em um contêiner ou máquina virtual. A Figura 3 exempli�ca a arquitetura de microsserviços. Nesse caso, uma aplicação é modularizada em N microsserviços independentes, que podem se comunicar com serviços remotos, como outra aplicação, com sistemas legados ou com um banco de dados (DB – Database). A Figura 3 também ilustra o papel de um API Gateway, que é um componente responsável por redirecionar as requisições dos clientes para o microsserviço apropriado de acordo com a funcionalidade requisitada. A arquitetura de microsserviços é adequada para aplicações complexas, por exemplo, uma aplicação para consolidação de transações �nanceiras com cartão de crédito, pois envolve várias etapas e entidades, como lojas, bancos, adquirentes, etc. Nesse caso, a aplicação pode ser modularizada em vários microsserviços especí�cos que lidam com cada parte do problema. Disciplina COMPUTAÇÃO EM NUVEM Figura 3 | Exemplo de aplicação com arquitetura de microsserviços. De acordo com Dragoni et al., 2017, duas características principais de�nem um microsserviço: o alto grau de coesão das suas funcionalidades e sua capacidade de responder a requisições. A coesão signi�ca que um microsserviço implementa um conjunto de funcionalidades relacionadas, que dependem umas das outras. A capacidade de responder a requisições implica que os microsserviços, de fato, comportam-se como um servidor, ou seja, provêm algum serviço. Eles podem responder a requisições de clientes ou requisições de outros microsserviços. A arquitetura de microsserviços representa aplicações distribuídas formadas pela composição de microsserviços independentes. Esse conceito é ilustrado na Figura 4. Nesse caso, temos um serviço monolítico formado por três módulos funcionais. Em uma arquitetura de microsserviços, cada um desses módulos poderia ser implementado como um (micro) serviço independente. Como mostra a �gura, apenas alguns dos microsserviços podem ser replicados e cada um deles pode ter seu próprio banco de dados. Disciplina COMPUTAÇÃO EM NUVEM Figura 4 | Comparação entre serviço monolítico e microsserviços. A arquitetura de microsserviços traz uma série de vantagens. Ao implementar modi�cações em um microsserviço, somente esse componente especí�co precisa ser reiniciado. No serviço monolítico, as modi�cações em apenas um módulo exigem a reinicialização do serviço como um todo. Como o microsserviço é menor, ele exige menos recursos, o que facilita o uso de contêineres e a replicação. Além disso, cada microsserviço pode ser replicado de forma independente. Assim, aquele que apresenta grande demanda pode ser replicado, enquanto outro, com menos demanda, não tem essa necessidade. No caso de um monolítico, o software como um todo (incluindo todos os seus módulos) tem que ser replicado, a despeito da demanda para cada um de seus módulos funcionais, o que pode resultar em desperdício de recursos. Siga em Frente... Aplicações com arquitetura de multicamadas As aplicações centralizadas apresentam problemas de desempenho e escalabilidade, o que fez com que muitas abordagens surgissem com o intuito de resolvê-los. Uma delas é o modelo Disciplina COMPUTAÇÃO EM NUVEM cliente-servidor com uma arquitetura em múltiplas camadas (Tanenbaum; Steen, 2008). Nesse modelo de arquitetura, a aplicação é dividida em várias camadas, sendo cada uma delas responsável por um conjunto especí�co de funcionalidades. Os componentes de uma camada podem interagir com os componentes das camadas vizinhas, além de serem executados em servidores diferentes para melhorar o desempenho. Nesse caso, temos uma separação física entre as camadas. Em geral, as aplicações multicamadas são divididas em três: 1. Camada de interface do usuário (controle da interação com o usuário). 2. Camada de processamento (implementação da lógica das principais funcionalidades da aplicação). 3. Camada de dados (armazenamento persistente de dados). Na Figura 5, temos o exemplo de uma aplicação Web baseada na arquitetura em camadas. Nesse caso, o navegador web executa a camada de interface com o usuário; já na camada de processamento, o servidor web responde as requisições de acordo com as regras de negócio. Na camada de dados, um Sistema Gerenciador de Banco de Dados administra o armazenamento das informações do sistema. Em um ambiente de nuvem, podemos usar diversos serviços para hospedar uma aplicação com essa arquitetura. Por exemplo, podemos alocar máquinas virtuais ou contêineres para executar um servidor web (na camada de processamento) e usar serviços de Bancos de Dados em Nuvem para persistências das informações (na camada de dados). Disciplina COMPUTAÇÃO EM NUVEM Figura 5 | Exemplo de uma aplicação com arquitetura em camadas e componentes replicados. Os provedores de nuvem também oferecem serviços para replicação dinâmica dos componentes. No exemplo ilustrado na Figura 5, há três réplicas do servidor web e duas réplicas do servidor de banco de dados. Esse tipo de replicação pode ser automatizado em ambientes de nuvem. Além disso, os provedores oferecem mecanismos para balanceamento de carga. A Figura 5 também demonstra o balanceamento de carga das requisições dos clientes entre as réplicas do servidor Web. Se houver falha em um dos servidores, as demais réplicas continuam a atender as requisições. Além disso, a carga de trabalho é dividida entre as réplicas, o que resulta em menor tempo de resposta aos clientes. Com isso, a aplicação dividida em camadas melhora o grau de desempenho e con�abilidade, mesmo que a arquitetura ainda seja cliente-servidor. Os provedores de computação em nuvem permitem a alocação ou liberação automática de réplicas de acordo com as variações no volume de requisições dos clientes. Conceito de Edge Computing Mesmo com a evolução dos modelos de arquitetura, ainda pode haver problemas de escalabilidade em soluções em nuvem, pois não deixa de ser um modelo centralizado. Por exemplo, nas aplicações de Big Data e Internet das Coisas, um grande volume de dados precisa ser transmitido até o provedor para ser processado e, depois, eventuais respostas necessitam ser enviadas até os dispositivos �nais. Essas questões motivaram a consolidação do paradigma Disciplina COMPUTAÇÃO EM NUVEM de Computação nas Bordas (Edge Computing), cuja ideia principal é mover o processamento dos dados para a borda da rede (Shi et al., 2016). Uma visão geral da Edge Computing é apresentada na Figura 6. A execução de serviços na borda da rede pode bene�ciar algumas soluções, por exemplo, aplicações de mobilidadeurbana, que precisam de respostas rápidas para análise de dados do trânsito em uma determinada região. Figura 6 | Visão geral da arquitetura de Edge Computing. O objetivo desse modelo não é substituir a computação em nuvem. Na verdade, são abordagens complementares, pois as aplicações que exigem maior capacidade de armazenamento e processamento de dados continuam a ser executadas de forma centralizada no provedor de computação em nuvem. Um bom exemplo disso é um sistema que utiliza aprendizado de máquina para identi�car fraudes em compras com cartão de crédito. Por outro lado, aplicações cujo requisito principal é o tempo de resposta, podem ser executadas na borda da rede, pelos próprios dispositivos ou por alguma infraestrutura dedicada de Computação nas Bordas. Em geral, é apropriada para aplicações que envolvem análise de dados em tempo real (Coutinho; Carneiro; Greve, 2016). A seguir, são descritas algumas importantes aplicações práticas que podem se bene�ciar das vantagens do modelo descentralizado da computação em bordas: Redes de sensores: redes de dispositivos com capacidade de monitoramento (sensoriamento) dispersos por áreas amplas. Essas redes são usadas para implementação de soluções em diversas áreas, como vigilância, monitoramento ambiental, etc. Os dispositivos possuem capacidade limitada, fazem uso de mecanismos de reconhecimento de contexto e topologias hierárquicas, o que torna interessante o uso de computação nas bordas. Cache de dados: a arquitetura descentralizada da computação em bordas permite a implementação de sistemas inteligentes de replicação e distribuição de conteúdo, inclusive para usuários móveis. Disciplina COMPUTAÇÃO EM NUVEM Edifícios inteligentes (smart buildings): uso de sensores e atuadores para gerenciamento automático e otimizado da infraestrutura de edifícios. Essas soluções podem ser usadas para conservar água, energia, vigilância, regulação de temperatura, entre outros. Os requisitos de reconhecimento de contexto, baixa latência e privacidade dos dados tornam mais atrativo para essas aplicações o modelo de computação nas bordas. Vamos Exercitar? Software de controle para veículos autônomos Descrição da situação-problema Você é analista de TI em uma empresa do setor automotivo que decidiu iniciar a fabricação de veículos autônomos, que não precisam de motoristas, pois eles possuem um sistema de controle so�sticado, capaz de conduzir o veículo com segurança. Seu papel é liderar a equipe que vai implementar o software de controle para condução automática dos veículos. Você precisa, inicialmente, escolher um modelo de arquitetura para a solução desses veículos. Resolução da situação-problema Existem muitos aplicativos de navegação para veículos baseados em soluções em nuvem. No entanto, um software de controle para condução de veículo precisa tomar decisões em tempo real. Além do uso de serviços de inteligência arti�cial, esse tipo de aplicação requer baixa latência de comunicação e baixo tempo de resposta no processamento de dados. Se os veículos tivessem que se comunicar com servidores na nuvem, esses requisitos poderiam não ser atendidos. O modelo mais adequado, nesse caso, seria uma abordagem de Edge Computing, como ilustrado na Figura 7. Os carros poderiam se comunicar com altas taxas de transmissão por meio de uma rede sem �o 5G e aproveitar a capacidade de processamento e armazenamento de dados das estações de transmissão de dados para executar funcionalidades em tempo real. Mesmo assim, serviços em nuvem poderiam ser utilizados para agregar informações, armazenar dados históricos para análise de estatísticas e para cálculos de rotas longas que exigem dados do trânsito em várias regiões. Disciplina COMPUTAÇÃO EM NUVEM Figura 7 | Cenário de aplicação com veículos autônomos. Saiba mais O modelo de computação em borda, especialmente a computação em névoa, possibilita o surgimento de diferentes aplicações capazes de mudar a forma como os serviços podem ser prestados. O artigo Aplicações da computação em névoa explica a introdução à computação em névoa. Referências BALDINI, I. et al. Serverless computing: Current trends and open problems. In: Research Advances in Cloud Computing. [s.l.], Springer, 2017. COUTINHO, A. A.; CARNEIRO, E.; GREVE, F. Computação em névoa: conceitos, aplicações e desa�os. In: Minicursos do XXXIV Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. Porto Alegre: SBC, 2016. Cap. 6, p. 266-315. Disponível em: https://www.researchgate.net/publication/309312669_Computacao_em_Nevoa_Conceitos_Aplic acoes_e_Desa�os Acesso em: 8 fev. 2024. https://medium.com/internet-das-coisas/fog-07-aplica%C3%A7%C3%B5es-da-computa%C3%A7%C3%A3o-em-n%C3%A9voa-df1f7fa3d334 https://www.researchgate.net/publication/309312669_Computacao_em_Nevoa_Conceitos_Aplicacoes_e_Desafios https://www.researchgate.net/publication/309312669_Computacao_em_Nevoa_Conceitos_Aplicacoes_e_Desafios Disciplina COMPUTAÇÃO EM NUVEM DRAGONI, N. et al. Microservices: yesterday, today, and tomorrow. In: Present and Ulterior Software Engineering, p. 195–216. Springer International Publishing, 2017. SHI, W. et al. Edge Computing: vision and challenges. IEEE Internet of Things Journal, v. 3, 2016. TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2008. Aula 2 Qualidade de Serviço em Nuvem Qualidade de Serviço em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, você irá conhecer o conceito de Qualidade de Serviço (QoS) em nuvem. A QoS refere-se a um conjunto de parâmetros que são usados para avaliar a e�cácia e a e�ciência de um serviço, garantindo que ele atenda ou exceda as expectativas do usuário. Quando aplicado à computação em nuvem, a QoS desempenha um papel crucial na entrega de serviços con�áveis e de alta performance. Esse conteúdo é importante para a sua prática pro�ssional, pois a qualidade de serviço em nuvem é uma consideração central para pro�ssionais que desejam garantir a e�cácia, a segurança e a con�abilidade dos serviços em nuvem em suas práticas pro�ssionais. É uma parte integrante da entrega bem-sucedida de soluções de TI e contribui signi�cativamente para o sucesso operacional e a satisfação do cliente. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Disciplina COMPUTAÇÃO EM NUVEM Olá, estudante! Um dos obstáculos para migração de aplicações para provedores de computação em nuvem é o fato de que o acesso remoto aos serviços pode afetar negativamente o desempenho. De fato, sem uma conexão de rede de boa qualidade é difícil garantir uma experiência satisfatória para os usuários. Além disso, os provedores precisam de soluções para oferecer con�abilidade e escalabilidade para os serviços. Você conhece as métricas para descrever de forma objetiva os requisitos de desempenho de aplicações? Sabe quais são os mecanismos utilizados pelos provedores para lidar com falhas e problemas de desempenho? Nesta aula, vamos iniciar o estudo com a descrição de métricas de desempenho de rede e a de�nição do conceito de Acordo de Nível de Serviço (SLA). Em seguida, vamos descrever alguns indicadores de Qualidade de Serviço utilizados pelos provedores de computação em nuvem. Além disso, serão explicados mecanismos que visam aprimorar a escalabilidade, a con�abilidade e a disponibilidade de aplicações em nuvem. Por �m, vamos estudar, também, a recuperação de desastres, que consiste em mecanismos para lidar com falhas. Com esse estudo, você será capaz de compreender como podemos medir a qualidade das aplicações de forma objetiva, assim como as principais soluções para melhoria de desempenho e escalabilidade em ambientesde nuvem. Bons estudos! Vamos Começar! Acordo de Nível de Serviço (SLA) em provedores de computação em nuvem O uso de serviços de computação em nuvem na implementação de aplicações distribuídas pode trazer vários benefícios, como a redução de custos e a eliminação da necessidade de gerenciar equipamentos de TI. Por outro lado, existem também algumas barreiras para o uso dos serviços de provedores de nuvem pública. Em particular, o desempenho das aplicações em nuvem pode ser um desa�o, se não houver disponibilidade de redes de comunicação de qualidade. Como o acesso aos serviços e dados no provedor é realizado por meio da Internet, pode haver problemas de desempenho ou até mesmo falhas na comunicação entre os componentes. Considere o caso de sistemas com requisitos de tempo real, como jogos ou aplicações de chamada de voz. Esses tipos de aplicações não funcionam de forma adequada se a conexão for de baixa qualidade. Aplicações que armazenam dados na nuvem também podem sofrer degradação de desempenho se houver atraso no acesso remoto aos dados. Nesse contexto, precisamos utilizar mecanismos para tentar assegurar uma experiência satisfatória dos usuários de aplicações em nuvem. O primeiro ponto a considerar é como caracterizar de forma objetiva a qualidade da comunicação. Isso signi�ca que precisamos de métricas quantitativas para descrever os requisitos mínimos de desempenho. Para lidar com essas questões, há um conceito denominado Qualidade de Serviço (QoS – Quality of Service). Disciplina COMPUTAÇÃO EM NUVEM Em se tratando de redes de computadores, a QoS pode ser entendida como uma abordagem utilizada para especi�car parâmetros de desempenho das aplicações, assim como os mecanismos necessários para garantir os requisitos de desempenho estabelecidos (Kamienski; Sadok, 2000). Os modelos de QoS podem ser utilizados para caracterizar objetivamente os requisitos de desempenho de uma aplicação. Além disso, utilizam métricas de desempenho de rede, tais como: Atraso: o tempo total de transmissão de um pacote do nó remetente ao nó destinatário. Aplicações de chamadas de voz na Internet, por exemplo, requerem um atraso máximo de 150ms (Chen; Farley; Ye, 2004). Jitter: medida da variação no atraso na transmissão dos pacotes. Quanto maior o jitter, pior é o desempenho de aplicações multimídia, como streaming de músicas na internet. Taxa de transmissão: o volume de dados efetivamente transmitido entre o nó remetente e o nó destinatário. Em geral, é medida em termos de megabits por segundo (Mbps). Por exemplo, a aplicação de streaming de vídeo sob demanda Net�ix estabelece que, para assistir vídeos em resolução Ultra HD, é necessária uma conexão com uma taxa de, pelo menos, 25Mbps (Net�ix, 2019). Taxa de perda: porcentagem dos pacotes que não foram entregues com sucesso para o nó destinatário. Por exemplo, se foram transmitidos 50 pacotes e apenas 40 foram efetivamente entregues ao destinatário, então a taxa de perda é de 20%, ou seja, 10 de 50 pacotes não foram entregues. Utilizando essas e outras métricas mais especí�cas, os provedores especi�cam condições para provisão dos serviços de computação em nuvem em um documento chamado Acordo de Nível de Serviço (SLA – Service Level Agreement) (Erl; Puttini; Mahmoo, 2013). O SLA descreve de forma objetiva as garantias de QoS, a con�abilidade e o desempenho de cada serviço. Uma das principais métricas de QoS utilizadas por provedores de nuvem pública é a disponibilidade de um serviço, que é determinada como a porcentagem do tempo em que um serviço se mantém apto para responder corretamente as requisições de aplicações, clientes ou usuários. Por exemplo, se um serviço web �cou “fora do ar” por 8 dias durante um período de 100 dias, então pode-se a�rmar que a sua disponibilidade foi de apenas 92%. Os provedores utilizam um mecanismo denominado monitor de SLA para monitorar continuamente os indicadores de desempenho dos serviços em nuvem, a �m de veri�car se eles estão de acordo com as métricas de qualidade estabelecidas no SLA (Erl; Putiini; Mahmood, 2013). O provedor mantém um banco de dados com as informações de desempenho coletadas por esse mecanismo. A Figura 1 mostra o papel do monitor de SLA, considerando um exemplo no qual os serviços monitorados são máquinas virtuais. O monitor de SLA veri�ca periodicamente se as VM estão ativas, enviando mensagens de requisição (req) simples. Cada máquina virtual envia uma mensagem de resposta (resp). Nesse caso, a VM-1 não responde ao monitor, então, é considerada inativa. As informações são armazenadas em um banco de dados com estatísticas sobre os serviços do provedor. As informações coletadas pelo monitor de SLA podem ser usadas pelo sistema de gerenciamento do provedor para gerar relatórios de análise de desempenho dos serviços e para �ns de tarifação. Disciplina COMPUTAÇÃO EM NUVEM Figura 1 | Visão geral da atuação do Monitor de SLA. Siga em Frente... Con�abilidade, escalabilidade, disponibilidade e desempenho de aplicações em nuvem Além da disponibilidade, os provedores de computação em nuvem podem considerar outras métricas de qualidade de serviço (Erl; Puttini; Mahmoo, 2013). Entre as principais métricas, pode- se destacar: escalabilidade, performance, con�abilidade e resiliência. A escalabilidade diz respeito à capacidade de um sistema de ajustar a quantidade de recursos computacionais de acordo com a demanda. Quando um sistema é considerado escalável, isso signi�ca que um aumento na carga de trabalho não compromete o desempenho desse sistema, pois novos recursos podem ser alocados para que não aconteça sobrecarga. A performance é uma medida direta da capacidade de execução do serviço. Pode ser medida, por exemplo, pelo tempo de resposta, que consiste no tempo total para um cliente receber a resposta para uma requisição enviada a um servidor, incluindo o tempo gasto pelo servidor para executar a operação requisitada. A con�abilidade consiste na capacidade do serviço de operar continuamente sem falhas. Ela pode ser medida em termos do tempo médio entre falhas, ou seja, o tempo esperado entre a ocorrência de falhas. A resiliência representa uma medida da robustez de um serviço. Ela está relacionada ao grau de tolerância a falhas do serviço. A resiliência pode ser medida em termos do tempo médio para recuperação, quando da ocorrência de uma falha. Em geral, o Monitor de SLA tem relação não somente com a disponibilidade, mas também com as demais métricas de QoS mencionadas: performance, escalabilidade, con�abilidade e resiliência. As informações coletadas por esse monitor não são usadas apenas para diagnosticar Disciplina COMPUTAÇÃO EM NUVEM quais serviços estão disponíveis (ativos), por exemplo, o monitor de SLA veri�ca outros dados sobre as VM, como uso de memória e processador. Portanto, os dados coletados servem para determinar indicadores de desempenho. Além disso, as informações do monitor de SLA serve também para disparar eventos que acionam outros mecanismos que visam melhorar a qualidade de serviço no provedor de computação em nuvem. Entre esses mecanismos, podemos destacar: dimensionamento automático; balanceamento de carga; recuperação de desastres (falhas) (Erl; Puttini; Mahmoo, 2013). Por exemplo, uma sobrecarga em um servidor identi�cada pelo monitor de SLA pode acionar o mecanismo de dimensionamento automático para criar réplicas desse servidor. Todos os mecanismos, em conjunto, contribuem para melhorar o desempenho dos serviços provisionados, o que se re�ete nas métricas de QoS. O mecanismo de dimensionamento automático (automated scaling) é responsável por ajustar a capacidade de um serviço em função das demandas. Se a carga de trabalho aumenta, o mecanismo aloca mais recursos para manter a performance do serviço. Por exemplo, esse mecanismo pode automaticamente criar uma réplica de um banco de dados para lidar com um aumento no número de consultas ao banco. Se a carga de trabalho diminui, o mecanismo libera recursos ociosos para reduzir custos. Assim, esse mecanismo confereescalabilidade aos serviços em nuvem de forma automatizada, buscando otimizar a relação entre custo e performance (Mao; Humphrey, 2011). O redimensionamento (escalonamento) pode ser vertical ou horizontal. O vertical corresponde a aumentar a con�guração de um recurso, por exemplo, recon�gurar uma máquina virtual com 8GB de memória para 16GB. O escalonamento horizontal corresponde a criar réplicas de uma instância e é bastante utilizado em aplicações web. Nesse caso, s VM VMão criadas réplicas do servidor web ou do servidor de bancos de dados para atender a um aumento no número de requisições recebidas pela aplicação. A Figura 2 ilustra os conceitos de escalonamento vertical e horizontal. Figura 2 | Comparação entre escalonamento vertical e horizontal. O balanceamento de carga é um mecanismo para distribuir a demanda de trabalho entre as réplicas de um serviço. Por exemplo, cada nova requisição que chega à rede do provedor pode ser encaminhada para a réplica menos sobrecarregada. Isso resulta em melhor performance, pois diminui o tempo de resposta das requisições. Em conjunto com o dimensionamento automático, o balanceamento de carga também favorece a escalabilidade e a disponibilidade do serviço, pois se uma instância de um serviço ser tornar inativa (indisponível, devido a uma falha por exemplo) as requisições a esse serviço podem ser encaminhadas para outra réplica. A Figura 3 mostra um exemplo de um mecanismo de balanceamento de carga para um serviço de streaming de vídeo. Suponha que um provedor tenha três data centers em diferentes regiões: Alemanha, Califórnia e São Paulo. O mecanismo de balanceamento de carga escolhe a réplica do servidor de streaming mais próxima do cliente para melhorar a performance do serviço. De fato, Disciplina COMPUTAÇÃO EM NUVEM existem várias técnicas para implementar o balanceamento de carga, como distribuição uniforme, balanceamento ponderado, entre outras (Kansal; Chana, 2012). Figura 3 | Balanceamento de carga baseado em localização. O mecanismo de recuperação de falhas trabalha em conjunto com os demais mecanismos. O objetivo do mecanismo de recuperação a falhas é identi�car a ocorrência de falhas para que as requisições sejam redirecionadas somente para as réplicas do serviço que estejam ativas e funcionando corretamente. Quando uma instância falha, o mecanismo de balanceamento de carga é avisado para não redirecionar requisições para essa instância. Assim, a implementação e recuperação a falhas contribui também para aumentar a con�abilidade e a disponibilidade do serviço. Observe que o mecanismo de recuperação a falhas depende da redundância (replicação) de recursos. Por exemplo, quando uma instância de um serviço falha, deve haver uma réplica (secundária) desse serviço já preparada para receber as requisições. De acordo com a forma como a réplica secundária é utilizada, existem dois modelos básicos de recuperação a falhas: modelo ativo-ativo e modelo ativo-passivo (Erl; Puttini; Mahmoo, 2013). No modelo ativo-passivo, a réplica secundária não é utilizada para atender requisições regularmente. Ela só é acionada quando a réplica principal falha. A Figura 4 exempli�ca essa estratégia. Disciplina COMPUTAÇÃO EM NUVEM Figura 4 | Visão geral do modelo ativo-passivo. Quando a máquina virtual primária falha, as requisições dos clientes são direcionadas para sua réplica. No modelo ativo-ativo, ambas as réplicas recebem requisições (sem distinção). Quando uma das réplicas falha, então, todas as requisições são redirecionadas para a outra, até que a réplica que falhou seja corrigida ou uma nova réplica seja instanciada. A Figura 5 mostra um cenário baseado nesse modelo. Figura 5 | Visão geral do modelo ativo-ativo. Em geral, para cada serviço em nuvem que exige alta disponibilidade, são criadas diversas réplicas, inclusive réplicas em outro data center do provedor. Dessa forma, mesmo que aconteça um grave desastre em alguma região que comprometa esse data center, o serviço continuará disponível, pois existem réplicas em outro. Como exemplos de desastres, podemos citar falhas nos sistemas de distribuição de energia elétrica que resultam em blackouts, podendo durar horas ou dias. Também podem ocorrer catástrofes naturais, como inundações. Nesses casos, as instalações de um data center poderiam �car completamente inoperantes, o que afetaria a continuidade dos negócios que dependem da disponibilidade dos serviços do provedor. Imagine os prejuízos! Disciplina COMPUTAÇÃO EM NUVEM O projeto de aplicações em nuvem envolve não somente determinar a arquitetura dos componentes da aplicação, mas também os mecanismos necessários para garantir os requisitos de desempenho. Os provedores oferecem mecanismos de balanceamento de carga, recuperação de falhas e dimensionamento automático. Esses mecanismos devem ser habilitados ou incorporados na aplicação para otimização do seu desempenho. Nesta aula, aprendemos muito sobre o desempenho de aplicações em nuvem. Foram descritas várias métricas que permitem especi�car de forma objetiva os requisitos de qualidade de serviço. Também foram explicados alguns mecanismos importantes que são utilizados para aumentar a performance, disponibilidade e resiliência de aplicações em nuvem. Vamos Exercitar? Abordagens de recuperação a falhas Descrição da situação-problema As aplicações em algumas áreas, como no setor �nanceiro, saúde e governamental, apresentam requisitos bastante rigorosos em relação à con�abilidade e disponibilidade dos serviços. Nesses casos, é importante o uso de mecanismos de recuperação a falhas. Existem dois modelos básicos para isso: ativo-ativo e ativo-passivo. Faça uma análise comparativa desses modelos a �m de destacar suas vantagens e desvantagens, em termos de custo e desempenho. Resolução da situação-problema A estratégia básica de recuperação a falhas é a redundância: recursos adicionais são usados em caso de falha dos recursos inicialmente alocados, assim, o serviço continuará disponível. Vimos que existem dois modelos básicos para mecanismos de recuperação a falhas: ativo-ativo e ativo- passivo. Para compreender melhor a diferença entre eles, vamos considerar que, para um dado serviço em nuvem, existe a instância principal do serviço e uma instância secundária (uma réplica criada para viabilizar a implementação da recuperação de falhas). No modelo ativo- passivo, a réplica secundária é utilizada apenas no caso de falha na instância principal. No modelo ativo-ativo, a réplica secundária é utilizada no balanceamento de carga para ajudar no processamento das requisições ao serviço. A vantagem do modelo ativo-ativo é um custo menor, pois não há ociosidade de uma réplica secundária alocada somente para recuperação a falhas. Por outro lado, esse modelo implica em um risco. Se a réplica secundária é utilizada no balanceamento de carga regularmente, ela pode estar sobrecarregada no momento em que a instância principal falhar. Nesse caso, a falta de recursos disponíveis na réplica secundária pode comprometer o desempenho. Saiba mais Disciplina COMPUTAÇÃO EM NUVEM Balanceamento de carga é a prática de distribuir cargas de trabalho computacionais entre dois ou mais computadores. Na internet, o balanceamento de carga é frequentemente empregado para dividir o tráfego de rede entre vários servidores. Para saber mais sobre esse assunto, consulte: O que é balanceamento de carga. Referências CHEN, Y.; FARLEY, T.; YE, N. QoS requirements of network applications on the Internet. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013. Information Knowledge Systems Management, v. 4, 2004. KAMIENSKI, C.; SADOK, D. Qualidade de Serviço na Internet. In: Minicursos do XVIII Simpósio Brasileiro de Redes de Computadores (SBRC 2000). [S.l.]: Sociedade Brasileira de Computação, p. 1–40, 2000. Disponível em: https://www.researchgate.net/publication/242087340_Qualidade_de_Servico_na_Internet Acesso em: 8 fev. 2024. KANSAL, N. J.; CHANA,I. Cloud load balancing techniques: A step towards green computing. IJCSI International Journal of Computer Science Issues, v. 9, 2012. NETFLIX. Posso assistir aos títulos da Net�ix em Ultra HD? Centro de ajuda do Portal da Net�ix, [s.d.]. Disponível em: https://help.net�ix.com/en/node/13444 Acesso em: 14 jul. 2019. MAO, M.; HUMPHREY, M. Auto-scaling to minimize cost and meet application deadlines in cloud work�ows. In: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 2011. Aula 3 Segurança e Privacidade em Nuvem Segurança e Privacidade em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo https://www.cloudflare.com/pt-br/learning/performance/what-is-load-balancing/#:~:text=Balanceamento%20de%20carga%20%C3%A9%20a,de%20rede%20entre%20v%C3%A1rios%20servidores https://www.researchgate.net/publication/242087340_Qualidade_de_Servico_na_Internet https://help.netflix.com/en/node/13444 Disciplina COMPUTAÇÃO EM NUVEM para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, você irá conhecer o importante tema da segurança e privacidade em nuvem. Esses são aspectos críticos ao lidar com serviços em nuvem para garantir a integridade, con�dencialidade e disponibilidade dos dados. Entender e implementar práticas e�cazes de segurança e privacidade em nuvem é vital para proteger dados sensíveis, garantir a conformidade e manter a con�ança dos usuários e stakeholders. Esse conteúdo é importante para a sua prática pro�ssional, pois a segurança e privacidade em nuvem são pilares essenciais para garantir a proteção, con�abilidade e conformidade das operações digitais. Pro�ssionais que incorporam esses princípios em suas práticas contribuem para ambientes de TI mais seguros e resilientes. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Olá, estudante! A segurança e a privacidade dos dados é um dos aspectos mais controversos da computação em nuvem. Por um lado, algumas empresas e pro�ssionais de TI, fazem questionamentos em relação à migração de dados e aplicações para a nuvem, alegando que o uso de provedores públicos aumenta a exposição dos dados e as chances de vulnerabilidades de segurança. Além disso, os recursos dos provedores são compartilhados entre diversos clientes, de forma que falhas de proteção e isolamento poderiam permitir que um cliente tivesse acesso aos dados de outros. Por outro lado, o data center dos provedores conta com uma infraestrutura mais robusta e con�ável do que a maioria das empresas poderiam manter em suas próprias instalações. Além disso, os provedores contam com pro�ssionais altamente especializados para implementação dos mecanismos de segurança a um custo relativamente menor e o crescimento de uso da computação em nuvem mostra o sucesso com a solução da maioria dos problemas de segurança, caso contrário as empresas não estariam migrando suas soluções de TI para a nuvem. De fato, um estudo da Google Cloud em parceria com o MIT mostra um aumento signi�cativo da con�ança das empresas em relação à segurança em nuvem (Google, 2017). O estudo mostra, ainda, que o aumento da segurança é o segundo fator mais importante para as empresas na decisão de utilizar serviços em nuvem. Nesta aula, vamos aprender as principais propriedades que caracterizam, de forma geral, um sistema computacional seguro. Depois, vamos descrever os conceitos básicos sobre gerenciamento de riscos e, por �m, vamos explicar as ameaças e as vulnerabilidades para aplicações em ambientes de nuvem, além de alguns dos mecanismos que podem ser usados Disciplina COMPUTAÇÃO EM NUVEM para melhorar a segurança das soluções. Esses assuntos são de extrema relevância, principalmente para aplicações críticas ou para aquelas que envolvem dados sigilosos. Bons estudos! Vamos Começar! Mecanismos de segurança para aplicações em nuvem Embora a computação em nuvem possa trazer vários benefícios, existem alguns desa�os na adoção de soluções. Você conhece as principais di�culdades apontadas pelas empresas em relação ao uso de serviços em provedores de nuvem pública? Entre essas di�culdades, pode-se destacar as questões de segurança e privacidade, de acordo com um estudo realizado em 2018 (Tucker, 2019). Isso acontece porque o acesso às aplicações nos provedores é feito por meio da Internet. Assim, existe uma maior exposição dos dados e serviços em comparação ao cenário no qual uma empresa mantém sua própria infraestrutura de TI, com a comunicação entre os componentes realizada através de uma rede local. Dessa forma, a maior exposição dos dados na internet, no modelo de computação em nuvem, aumenta as chances de ataques que buscam violar a segurança das aplicações. Portanto, esse tipo de projeto exige muito cuidado com aspectos da segurança dos serviços e da privacidade dos dados. São imprescindíveis o uso de mecanismos de segurança e o estabelecimento de uma estratégia de gerenciamento de riscos. Antes de conhecer as principais vulnerabilidades de aplicações em nuvem e os principais mecanismos de segurança, precisamos compreender os princípios de segurança da informação e as propriedades de um sistema seguro. Conforme apresentado na literatura (Kurose; Ross, 2013; Tanenbaum; Steen, 2008), as propriedades básicas de uma comunicação segura e con�ável são: Con�dencialidade: sigilo do conteúdo dos pacotes transmitidos na rede. Integridade: garantia de que os dados transmitidos não podem ser alterados. Autenticidade: con�rmação da identidade das partes envolvidas na transmissão dos dados. Disponibilidade: garantia de que um sistema estará apto para realizar as operações de transmissão ou processamento dos dados. Vamos estudar os principais mecanismos de segurança disponíveis. Entre eles, podemos mencionar: criptogra�a, gerenciamento de acesso e identidade, autenticação uni�cada e imagens fortalecidas de máquinas virtuais. A criptogra�a consiste em técnicas que permitem disfarçar os dados enviados, de forma que um atacante não consiga obter nenhuma informação dos dados interceptados (Kurose; Ross, 2013). Isso implica codi�car os dados de modo que somente o destinatário legítimo possa decifrá-los, tornando-os, assim, ininteligíveis para terceiros. A principal aplicação da criptogra�a é assegurar a con�dencialidade dos dados armazenados nos provedores de nuvem pública e dos dados transmitidos entre um provedor e seus clientes. Além disso, a criptogra�a também pode ser Disciplina COMPUTAÇÃO EM NUVEM usada em mecanismos para garantia de integridade e autenticidade. Uma vez que a criptogra�a pode ser usada na implementação de diversos mecanismos, ela é considerada um conceito fundamental para a segurança de sistemas computacionais. Os algoritmos utilizados para codi�car os dados são de conhecimento público, mas, para decodi�cá-los, é necessário um código secreto denominado chave de criptogra�a. Existem duas abordagens: a criptogra�a de chaves simétricas e a criptogra�a de chave pública (Kurose; Ross, 2013). Na primeira abordagem, existe uma única chave que é utilizada pelo remetente para criptografar os dados que serão enviados ou armazenados em nuvem. O receptor precisa de uma cópia dessa chave para decodi�car os dados. Na abordagem de chave pública, o processo envolve um par de chaves. Para o destinatário receber os dados, ele precisa gerar o seu par de chaves; uma delas é denominada pública e não precisa ser mantida em segredo; a outra chave é denominada privada e deve ser mantida em segredo. O remetente usa a chave pública do destinatário para criptografar os dados. Assim, os dados só podem ser decifrados com a chave privada correspondente mantida em segredo pelo destinatário. Os algoritmos de criptogra�a também podem ser usados em funções de hash para veri�cara integridade dos dados (Erl; Puttini; Mahmood, 2013). Um código hash do conteúdo a ser transmitido é gerado pelo receptor e disponibilizado ao destinatário. Quando recebe os dados, o destinatário gera novamente o código hash e compara com o código gerado pelo receptor. Se os códigos não são iguais é porque o conteúdo foi alterado durante a transmissão e deve, portanto, ser descartado. Se os códigos são iguais, então a integridade dos dados foi mantida. A criptogra�a também é utilizada em mecanismos de assinatura digital, que são importantes na garantia de autenticidade. Os mecanismos de criptogra�a podem ser utilizados para garantir a con�dencialidade e integridade dos dados transmitidos através da Internet. No caso do uso de nuvem pública, esses mecanismos também podem ser usados para con�dencialidade e integridade dos dados armazenados no provedor. No entanto, esse processo pode afetar o desempenho, devido ao tempo gasto para criptografar os dados nas operações de escrita e para descriptografar os dados nas operações de leitura. Essa opção de armazenar os dados de forma criptografada é oferecida pela maioria dos provedores e serve para lidar com ataques de virtualização e garantir a privacidade, mesmo que estejam em equipamentos compartilhados. Outra solução de segurança importante nos provedores de nuvem pública é o Gerenciamento de Acesso e Identidade (IAM – Identity and Access Management) (Erl; Puttini; Mahmood, 2013). Esse recurso é utilizado pelos provedores, principalmente, para implementação de políticas de controle de acesso. O IAM permite o gerenciamento e a autenticação de usuários, assim como o controle de privilégios para grupos de usuários e gerenciamento de credenciais. Esse tipo de recurso é importante na implementação de soluções de segurança para lidar com ataques de negação de serviços, autenticação fraca e violação de privacidade no acesso a dados e serviços. Se um cliente utiliza serviços em vários provedores, então, é importante também para questões de controle de acesso o uso de mecanismos de autenticação uni�cada (SSO – Single Sign On). Esses mecanismos oferecem uma solução segura para autenticação em vários provedores, utilizando as mesmas credenciais. Disciplina COMPUTAÇÃO EM NUVEM Outro recurso bastante utilizado pelos provedores de computação em nuvem para aprimorar a segurança dos serviços é o uso de imagens fortalecidas de máquinas virtuais (Hardened VM Images) (Erl; Puttini; Mahmood, 2013). Sabemos que as instâncias de máquinas virtuais são criadas a partir de imagens disponíveis no provedor. As imagens fortalecidas são aquelas que foram con�guradas por especialistas, considerando políticas de segurança rigorosas para eliminar possíveis vulnerabilidades. Dessa forma, quando um cliente cria uma VM a partir de uma imagem fortalecida, ele sabe que o sistema operacional dessa VM já foi con�gurado com as melhores práticas de segurança conhecidas. Os mecanismos de segurança devem ser usados em conjunto e aprimorados continuamente para lidarem com eventuais ações maliciosas contra as aplicações em ambientes de nuvem. É importante ressaltar que a segurança não é responsabilidade somente do provedor de computação em nuvem; o cliente dos serviços também precisa cooperar. Para assegurar a con�abilidade e a segurança de uma aplicação, é importante a de�nição de uma estratégia de gerenciamento de riscos, que permitirá que uma empresa possa lidar com problemas de segurança, tanto em relação à segurança de dados e redes como em relação à governança e conformidade dos serviços, ao migrar suas aplicações para um provedor de nuvem pública. Como ilustrado na Figura 1, o gerenciamento de riscos envolve três etapas: avaliação, tratamento e controle (Erl; Puttini; Mahmood, 2013). Figura 1 | Ciclo do processo de gerenciamento de riscos. Gerenciamento de riscos para serviços em nuvem A etapa de avaliação de riscos consiste em analisar as possíveis vulnerabilidades e ameaças no ambiente operacional do provedor de nuvem. Devem ser analisados o histórico de incidentes de segurança e as características da rede do provedor. Nessa etapa, os riscos são identi�cados e classi�cados em termos do impacto que podem causar. A etapa de tratamento de risco envolve a de�nição de estratégias e políticas de segurança e a realização de ações para evitar ou atenuar o efeito dos identi�cados na etapa anterior. Nessa fase, também precisa estar claro quais são as Disciplina COMPUTAÇÃO EM NUVEM responsabilidades do provedor e dos clientes; algumas delas podem, inclusive, ser delegadas para empresas ou pro�ssionais especializados. O último estágio (controle de riscos) é o momento de diagnosticar a e�cácia das ações de segurança implementadas, no qual podem ser de�nidas formas de aprimorar os mecanismos de segurança. Esse processo de gerenciamento de risco deve se repetir periodicamente, pois novas ameaças podem surgir, novas tecnologias e aplicações podem ser incluídas no ambiente do provedor, assim como podem ser introduzidos mecanismos de segurança mais so�sticados. Alguns aspectos importantes a serem considerados ao gerenciar riscos para serviços em nuvem: Avaliação de riscos: realize uma avaliação completa dos riscos associados ao uso de serviços em nuvem. Isso envolve identi�car ameaças potenciais, vulnerabilidades e possíveis impactos nos negócios. Classi�cação de dados: classi�que os dados com base em sua sensibilidade e importância. Isso ajuda a determinar quais dados precisam de medidas de segurança mais rigorosas. Contratos e Acordos de Nível de Serviço (SLA): analise cuidadosamente os contratos e com provedores de serviços em nuvem para garantir que incluam disposições relacionadas à segurança, privacidade e conformidade. Conformidade regulatória: certi�que-se de que os serviços em nuvem estejam em conformidade com regulamentações especí�cas da indústria e requisitos legais que se aplicam à sua organização. Resiliência e recuperação de desastres: desenvolva planos de resiliência e recuperação de desastres para garantir a continuidade dos negócios em caso de falhas ou eventos adversos. Avaliação de provedores de nuvem: realize uma avaliação minuciosa dos provedores de serviços em nuvem, levando em consideração sua postura de segurança, histórico de incidentes e práticas de conformidade. Controle de acesso e autenticação: implemente controles robustos de acesso e autenticação para garantir que apenas usuários autorizados tenham permissão para acessar recursos críticos. Criptogra�a: utilize a criptogra�a para proteger dados sensíveis durante a transmissão e armazenamento, reduzindo o risco de acesso não autorizado. Monitoramento contínuo: estabeleça sistemas de monitoramento contínuo para identi�car atividades suspeitas e responder prontamente a possíveis incidentes de segurança. Atualizações de segurança: mantenha os sistemas e software atualizados com as últimas correções de segurança para mitigar vulnerabilidades conhecidas. Treinamento em segurança: forneça treinamento regular em segurança para todos os usuários, aumentando a conscientização sobre práticas seguras ao usar serviços em nuvem. Gestão de identidade e acesso: implemente políticas de gestão de identidade e�cazes para garantir que apenas as pessoas certas tenham acesso aos recursos adequados. Estratégias de mitigação: desenvolva estratégias de mitigação para reduzir a probabilidade e o impacto de possíveis riscos, garantindo uma abordagem proativa. Testes de penetração: realize testes regulares de penetração para identi�car e corrigir possíveis vulnerabilidades antes que se tornem alvos de exploração. Disciplina COMPUTAÇÃO EM NUVEM Compartilhamento responsável: se os serviços em nuvem envolvem compartilhamento de recursos com terceiros, certi�que-se de que a colaboração seja realizada de maneira segura e responsável. Siga em Frente... Principais ameaças e vulnerabilidades para aplicações em nuvem A internet é uma rede que não inclui em sua arquitetura a implementação das propriedades de uma comunicação segura (Kurose;Ross, 2013). Dessa forma, a infraestrutura de rede dos provedores de acesso à internet (ISPs – Internet Service Providers) é considerada um meio de comunicação inseguro. Portanto, uma aplicação que utiliza a internet como rede de comunicação precisa ser protegida por meio de mecanismos de segurança, como criptogra�a e controle de acesso. Nesse contexto, o projeto de aplicações em nuvem precisa contemplar estratégias e ferramentas de segurança para garantia de autenticidade, con�dencialidade e integralidade dos dados transmitidos entre os clientes e o provedor. A Figura 2 ilustra esse cenário. A comunicação de dados entre os usuários legítimos e os serviços disponíveis no provedor está sujeita às ações de agentes maliciosos que visam realizar ataques que exploram eventuais vulnerabilidades das aplicações. Figura 2 | Comunicação através de um meio inseguro, como a Internet. Vamos discutir as principais ameaças e vulnerabilidades que podem afetar as aplicações em nuvem para, depois, explicar alguns mecanismos e políticas que podem ser utilizados para lidar Disciplina COMPUTAÇÃO EM NUVEM com esses problemas e melhorar o nível de segurança das aplicações. Conforme explicam Erl, Puttini e Mahmood (2013), as principais ameaças de segurança para aplicações em nuvem são: interceptação de tráfego, negação de serviço e ataques de virtualização. Vamos conhecer a de�nição e as características de cada um desses tipos de ataque: Interceptação de tráfego: ocorre quando uma entidade não autorizada é capaz de obter as informações transmitidas entre provedor em nuvem e clientes, de forma que a con�dencialidade dos dados é violada (Erl; Puttini; Mahmood, 2013). Esse tipo de ataque é difícil de ser detectado, pois é passivo, no sentido em que não há modi�cações nos dados ou sistemas. O atacante apenas copia os dados transmitidos na rede para ter acesso a informações sigilosas dos provedores e seus clientes. Esse cenário caracteriza uma forma de espionagem. Negação de Serviço (DoS – Denial of Service): tem o objetivo de afetar a disponibilidade dos serviços. Esse ataque consiste em sobrecarregar o serviço com um grande volume de requisições, de forma que não consiga mais responder aos clientes legítimos com um desempenho satisfatório (Erl; Puttini; Mahmood, 2013). A Figura 3 mostra um exemplo de um ataque de DoS. Nesse caso, um servidor em um provedor de nuvem é sobrecarregado com requisições disparadas de computadores que foram invadidos e controlados por um atacante. Com a sobrecarga de requisições em um curto período, o servidor terá di�culdades em atender as requisições dos clientes legítimos. Figura 3 | Cenário exemplo de um ataque de DoS. Para resistir aos ataques de DoS, os provedores identi�cavam e bloqueavam os endereços dos nós da rede de onde os atacantes disparavam as requisições. No entanto, esses ataques �caram mais so�sticados. Em vez de disparar um grande volume de requisições de alguns nós, o que Disciplina COMPUTAÇÃO EM NUVEM facilitava a identi�cação da fonte do ataque, os atacantes passaram a disparar poucas requisições de grande número de computadores dispersos pela internet. Essa estratégia é denominada ataque de DoS distribuído (DDoS – Distributed DoS). Assim, é muito difícil para o provedor distinguir as requisições enviadas por clientes con�áveis das requisições geradas pelos atacantes em computadores que foram invadidos. Outra ameaça bastante relevante para aplicações em nuvem são os ataques de virtualização, que buscam explorar eventuais falhas e vulnerabilidades nas ferramentas de virtualização utilizadas pelos provedores (Erl; Puttini; Mahmood, 2013). Nesse caso, o atacante pode conseguir algum nível de controle sobre a infraestrutura de TI do provedor. Outro problema é que pode haver violação da privacidade dos dados dos clientes do provedor. Como a virtualização permite que diversos recursos compartilhem um mesmo recurso físico, pode haver dados de diversos clientes em um mesmo equipamento. Os ataques às ferramentas de virtualização podem conseguir violar os mecanismos de proteção que existem para manter um isolamento entre os recursos e dados de diversos clientes que compartilham a infraestrutura do provedor. Além das ameaças relacionadas com segurança de dados e redes, os provedores de computação em nuvem também precisam lidar com ameaças relacionadas a outras categorias de segurança, como governança, conformidade e questões legais (Gonzalez et al., 2013). Entre os principais problemas nessas categorias, podemos citar: Baixo nível de controle administrativo sobre a segurança dos dados por parte dos clientes de um provedor. Dependência das tecnologias e políticas de segurança adotadas pelo provedor. Problemas relacionados aos requisitos de con�abilidade e políticas de auditoria estabelecidos em acordos de qualidade de serviço (SLA). Jurisdição dependente da localização dos provedores onde estão armazenados os dados, pois alguns provedores possuem data centers em países diferentes. Vamos Exercitar? Segurança no download de aplicativos Descrição da situação-problema Considere que você foi contratado como analista de TI por uma empresa que mantém uma loja online de aplicativos. Os usuários acessam a loja para fazer download para seus dispositivos móveis. Existe um problema de segurança que consiste no fato de que o arquivo executável (do aplicativo) recebido do usuário seja diferente do arquivo disponível para download na loja. Isso pode acontecer por falhas na transmissão que, de alguma forma, corromperam o conteúdo do arquivo durante o envio dos dados através da Internet. Outra possibilidade é que um atacante tenha interceptado e alterado intencionalmente o arquivo para injetar um código executável malicioso no arquivo original. Sua tarefa é caracterizar como essa ameaça viola as propriedades Disciplina COMPUTAÇÃO EM NUVEM de segurança e descrever algum mecanismo que possa ser utilizado para lidar com o problema descrito. Resolução da situação-problema Aprendemos sobre quatro propriedades de um sistema seguro: autenticidade, con�dencialidade, integridade e disponibilidade. As ameaças descritas não afetam a disponibilidade da aplicação, pois a loja continua ativa para atender às solicitações de download. Também não afetam a autenticidade, pois o atacante não �nge sua identidade para fazer o download de um aplicativo na loja. Também não há que se falar em con�dencialidade, pois não há sigilo sobre o arquivo executável dos aplicativos. O problema descrito, de fato, é uma possível violação da integridade do arquivo durante sua transmissão pela rede. Para lidar com essas ameaças, poderia ser utilizado algum mecanismo de Hashing. Nesse caso, o mecanismo poderia funcionar da seguinte maneira: a loja utilizaria uma função de hash para gerar um código hash correspondente para cada arquivo executável de aplicativo disponível na loja. O usuário deveria fazer o download do arquivo e do código hash. Quando o download for concluído, o usuário utilizaria a mesma função de hash para gerar o código e, então, faria uma comparação dos códigos; se fossem iguais, é porque a integridade do arquivo foi mantida. Se os códigos fossem diferentes, é porque o arquivo foi alterado de alguma forma e, então, o download teria que ser feito novamente. Dessa forma, mecanismos de hashing podem ser utilizados para veri�car a integridade de arquivos executáveis transferidos de servidores na internet para evitar a execução de código executável malicioso que, eventualmente, tenha sido incluído no arquivo por um atacante. Saiba mais Leia o documento referenciado a seguir para conhecer um pouco mais sobre os riscos de aplicações em ambientes de Computação em Nuvem. MELO, K. Segurança na Nuvem: por onde começar? ABES, 14-04-2016. Referências ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013. GONZALEZ, N. M. et al. Segurança das nuvens computacionais: uma visão dos principais problemas e soluções. Revista USP, São Paulo,2013. KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: uma abordagem top-down. 6. ed. São Paulo: Pearson Education do Brasil, 2013. https://abes.com.br/seguranca-na-nuvem-por-onde-comecar/ Disciplina COMPUTAÇÃO EM NUVEM Aula 4 Casos de Uso da Computação em Nuvem Casos de Uso da Computação em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, mergulharemos nos diversos casos de uso que a computação em nuvem oferece. Prepare-se para explorar como essa tecnologia tem impactado projetos, negócios e muito mais. Esse conteúdo é importante para a sua prática pro�ssional, para enfrentar os desa�os da era digital, contribuindo para o sucesso de projetos, impulsionando a inovação e garantindo a e�ciência operacional em suas práticas pro�ssionais. Prepare-se para esta jornada de conhecimento! Vamos lá!!! Ponto de Partida Olá, estudante! A computação em nuvem tem sido amplamente adotada em diversos setores, em aplicações práticas que impulsionam projetos e transformam a dinâmica dos negócios. Estudos de casos revelam sua versatilidade, desde a implementação bem-sucedida em saúde, �nanças, educação, até a revolução na manufatura, varejo e setor público. Em projetos, a nuvem oferece soluções e�cientes, como armazenamento escalável, hospedagem ágil de sites e aplicações, e ambientes de desenvolvimento/testes �exíveis. A capacidade de processamento em nuvem é particularmente destacada em aplicações de big data, inteligência arti�cial e aprendizado de máquina, impulsionando a análise de dados e a inovação. No âmbito empresarial, a computação em nuvem se traduz em benefícios tangíveis. Desde o armazenamento seguro de dados até a implementação de sistemas ERP, a nuvem permite a continuidade de negócios com soluções de recuperação de desastres, facilitando a gestão de documentos e a colaboração entre equipes. Disciplina COMPUTAÇÃO EM NUVEM Esses três temas convergem para destacar como a nuvem não apenas atende a demandas especí�cas de diferentes setores, mas também é uma ferramenta integral para a e�ciência operacional, inovação e transformação digital em projetos e negócios. Bons estudos! Vamos Começar! Estudos de casos em diferentes setores Os estudos de caso em diferentes setores de computação em nuvem destacam como essa tecnologia pode ser aplicada para resolver desa�os especí�cos e impulsionar a inovação em diversas indústrias. Aqui estão alguns exemplos de estudos de caso em setores variados: Setor de saúde: no gerenciamento e�ciente de registros médicos, compartilhamento de informações entre instituições e Implantação de sistemas de saúde eletrônicos na nuvem para armazenamento seguro e compartilhamento instantâneo de dados entre pro�ssionais de saúde. Setor �nanceiro: no processamento rápido e seguro de transações �nanceiras, conformidade regulatória e utilização de serviços em nuvem para processamento escalável de transações, análise de dados em tempo real e implementação de medidas de segurança avançadas. Educação a distância: no acesso remoto a recursos educacionais, escalabilidade para atender a picos de demanda e plataformas de ensino a distância baseadas em nuvem, permitindo a entrega de conteúdo educacional, colaboração online e suporte a grandes números de usuários simultâneos. Manufatura inteligente: no monitoramento em tempo real, otimização de cadeias de produção e implementação de soluções IoT conectadas à nuvem para coleta de dados em tempo real, análise preditiva e melhoria contínua dos processos de manufatura. Varejo online: no gerenciamento de inventário, personalização da experiência do cliente e utilização de plataformas de computação em nuvem para processamento rápido de transações, análise de dados de comportamento do cliente e implementação de sistemas de recomendação personalizados. Agricultura digital: no monitoramento de cultivos, previsão de safras. Implantação de sensores IoT agrícolas conectados à nuvem para coleta de dados de campo, análise de condições climáticas e previsões baseadas em aprendizado de máquina. Telecomunicações: no gerenciamento de tráfego de rede, escalabilidade e adoção de infraestrutura de nuvem para fornecer serviços escaláveis, virtualização de funções de rede (NFV) para otimização e �exibilidade. Setor público: na entrega e�ciente de serviços públicos, segurança de dados e utilização de plataformas de nuvem para oferecer serviços digitais, armazenamento seguro de dados governamentais e implementação de soluções de cibersegurança. Disciplina COMPUTAÇÃO EM NUVEM Esses estudos de caso destacam a versatilidade e os benefícios da computação em nuvem em diferentes setores, fornecendo soluções para desa�os especí�cos e impulsionando a transformação digital. Aplicações práticas da nuvem em projetos As aplicações práticas da computação em nuvem em projetos abrangem uma variedade de setores e casos de uso, como: Armazenamento de dados: empresas podem armazenar grandes volumes de dados de forma escalável e acessá-los facilmente de qualquer lugar e, com isso, ter uma redução nos custos, alta disponibilidade, backup automático e recuperação de desastres. Hospedagem de sites e aplicações: desenvolvedores podem implantar e hospedar sites e aplicativos na nuvem, escalando recursos conforme necessário, com escalabilidade, facilidade de gerenciamento, redução de custos de infraestrutura. Desenvolvimento e testes: ambientes de desenvolvimento e testes podem ser provisionados rapidamente na nuvem, permitindo testes mais e�cientes e agilidade no desenvolvimento, economia de tempo, recursos sob demanda. Big Data e análise de dados: processamento e análise de grandes conjuntos de dados, usando serviços de big data na nuvem. Benefícios: escalabilidade, processamento paralelo, ferramentas avançadas de análise. Inteligência arti�cial e aprendizado de máquina: treinamento de modelos de IA/ML em infraestruturas de nuvem, implementação de aplicações inteligentes. Poder computacional escalável, acesso a frameworks de ML, implementação rápida. Colaboração e comunicação empresarial: uso de plataformas de colaboração na nuvem para comunicação e�ciente entre equipes. Acesso remoto, colaboração em tempo real, compartilhamento de documentos. Internet das coisas: coleta e análise de dados gerados por dispositivos IoT, usando serviços em nuvem. Processamento de dados em escala, armazenamento e�ciente, análise em tempo real. Aplicações de negócios (ERP, CRM): implementação de sistemas de planejamento de recursos empresariais (ERP) e gestão de relacionamento com o cliente (CRM) na nuvem. Acesso remoto, atualizações automáticas, integração fácil. Segurança e conformidade: utilização de serviços de segurança em nuvem para proteção contra ameaças e conformidade com regulamentações. Monitoramento contínuo, detecção de ameaças avançadas, conformidade simpli�cada. Desktops virtuais (VDI): fornecimento de desktops virtuais baseados em nuvem para acesso remoto. Mobilidade, fácil gerenciamento, escalabilidade. Essas aplicações práticas demonstram como a computação em nuvem pode ser uma ferramenta versátil para impulsionar a e�ciência, a inovação e a agilidade em projetos. Siga em Frente... Disciplina COMPUTAÇÃO EM NUVEM Aplicações práticas da nuvem em negócios A computação em nuvem oferece diversas aplicações práticas para impulsionar os negócios, melhorar a e�ciência operacional e facilitar a inovação. Aqui estão algumas das aplicações mais comuns em ambientes empresariais: Armazenamento de dados: armazenamento seguro e escalável e redução de custos de armazenamento local, acesso remoto aos dados, backup e recuperação e�cientes. Hospedagem de aplicações e websites: Implantação e hospedagem de aplicações empresariais, websites e portaisos clientes podem alocar dinamicamente recursos computacionais, como capacidade de processamento, armazenamento ou rede (Erl; Puttini; Mahmood, 2013). Para Disciplina COMPUTAÇÃO EM NUVEM tanto, os provedores fazem uso de técnicas so�sticadas de virtualização. Em geral, os provedores mantêm centros de dados com um grande número de servidores interligados por redes de alto desempenho. Em cada servidor (máquina física), podem ser criadas várias máquinas virtuais. O modelo IaaS permite que o cliente possa alocar essas máquinas virtuais a �m de montar uma infraestrutura completa de TI de acordo com suas necessidades de processamento e armazenamento de dados. O cliente pode determinar o sistema operacional das máquinas virtuais, sobre as quais ele tem privilégios administrativos para con�gurar o ambiente como quiser. Além disso, os clientes podem con�gurar serviços de rede (como �rewall e DNS). Dessa forma, o cliente tem um maior controle sobre os recursos, em comparação aos demais modelos de serviço. A gestão dos recursos virtualizados pelo cliente pode ser feita por uma aplicação Web ou por meio de uma API (Application Programming Interface) (Sousa; Moreira; Machado, 2009). Utilizando a API fornecida pelo provedor, os clientes podem desenvolver programas para automatizar a alocação e a customização dos recursos disponíveis. Assim, os clientes se bene�ciam de �exibilidade e da agilidade para ajustar a quantidade e a con�guração dos recursos de acordo com suas necessidades. Nesse contexto, o modelo IaaS viabiliza o fornecimento de recursos de infraestrutura para o cliente montar um ambiente de TI virtualizado sob demanda. No modelo PaaS, o cliente se bene�cia do provisionamento dinâmico de um ambiente completo para desenvolvimento, teste e implantação de aplicações em nuvem (Sousa; Moreira; Machado, 2009). O provisionamento dinâmico signi�ca que o provedor aloca os recursos computacionais necessários de forma automática. Nesse caso, o cliente não precisa se preocupar com criação e gerenciamento de máquinas virtuais. O ambiente provisionado já é uma plataforma completa para a implementação de aplicações, com sistema operacional, servidores de aplicação, sistemas de gerenciamento de banco de dados (SGBD), compiladores, entre outros. Além disso, a plataforma pode oferecer também ferramentas de colaboração e gerenciamento de projetos. Os grandes provedores no mercado oferecem plataformas customizadas para as principais tecnologias usadas no desenvolvimento de aplicações, como Java, NodeJS e Python. A customização da plataforma signi�ca que o provedor é o responsável pela alocação da infraestrutura subjacente, a instalação das tecnologias e as ferramentas necessárias para cada ambiente de desenvolvimento oferecido. Em outras palavras, o cliente não tem controle sobre a infraestrutura subjacente. Assim, esse modelo de serviço tem um nível de abstração maior que o modelo IaaS, ou seja, os detalhes da infraestrutura são transparentes para o cliente. No entanto, a infraestrutura ainda é necessária, pois a plataforma é con�gurada em instâncias virtuais, mas de forma automática e dinâmica pelo provedor. Assim, o cliente pode se concentrar no desenvolvimento de aplicações sem ter que se preocupar com o gerenciamento de servidores. Por outro lado, o cliente corre o risco de enfrentar problemas para migrar suas aplicações, caso ele faça uso de plataformas com tecnologias proprietárias. Por exemplo, se a aplicação desenvolvida pelo cliente faz uso de um SGBD proprietário do provedor, ele corre o risco de não encontrar um SGBD compatível no provedor destino para o qual ele deseja migrar. Nesse caso, o cliente teria o trabalho de portar sua base de dados para outro SGBD, o que pode ser uma tarefa complexa e lenta. Disciplina COMPUTAÇÃO EM NUVEM O modelo com maior nível de abstração é o SaaS, que consiste em sistemas de software com propósitos especí�cos, que estão disponíveis para usuários �nais por meio de acesso remoto (Internet) (Sousa; Moreira; Machado, 2009). Em geral, o provedor oferece o software na forma de uma aplicação Web. Exemplos típicos desse modelo são aplicações o�ce, como o Google Docs e o Microsoft O�ce 365, e aplicações de gestão corporativa, como o CRM (Customer Relationship Management) da Salesforce, que foi uma das soluções pioneiras em software como serviço, levando a empresa a ser uma das líderes em soluções corporativas no mundo. No modelo SaaS, o cliente não tem controle sobre a infraestrutura ou a plataforma. Em geral, ele con�gura apenas as suas preferências e customiza a aplicação. A evolução das aplicações é transparente para os clientes, que não precisam se preocupar com instalar atualizações (pois o acesso é remoto), nem com espaço de armazenamento dos seus dados. A capacidade computacional necessária é gerenciada pelo provedor de acordo com a demanda dos clientes. Por exemplo, você, em algum momento, se preocupa com o backup dos documentos que você já criou usando o Google Docs? Não, pois, no modelo SaaS, os recursos para processamento, armazenamento de dados, backup, entre outros, são responsabilidade do provedor. A Figura 1 ilustra a relação entre os modelos, além da opção do cliente de criar e manter um ambiente completo de TI em suas próprias instalações (on-premise). O nível de controle administrativo sobre os recursos é completo no modelo IaaS e limitado no modelo PaaS, e diminui mais ainda no modelo SaaS (ERL; PUTTINI; MAHMOOD, 2013). Por outro lado, com mais controle, o cliente também tem mais responsabilidade. Por exemplo, no modelo IaaS, o cliente é responsável por con�gurações do Sistema Operacional (SO) da máquina virtual, o que tem implicações no desempenho e na segurança do ambiente computacional. Pode-se observar na Figura 1 que o cliente tem a responsabilidade de gerenciar todos os elementos do seu ambiente de TI quando ele escolhe manter sua própria infraestrutura. Ao optar por um serviço em nuvem no modelo IaaS, o cliente deixa de se preocupar com a aquisição e manutenção de equipamentos para se atentar apenas à plataforma e aplicações. Se quiser se concentrar apenas no desenvolvimento de software, o cliente pode, ainda, optar pelo modelo PaaS. No último nível de abstração, estão os clientes de aplicações em nuvem que usam software como serviço. Disciplina COMPUTAÇÃO EM NUVEM Figura 1 | Modelos de serviço em computação em nuvem. O modelo com maior nível de abstração é o SaaS, que consiste em sistemas de software com propósitos especí�cos, que estão disponíveis para usuários �nais por meio de acesso remoto (Internet) (Sousa; Moreira; Machado, 2009). Em geral, o provedor oferece o software na forma de uma aplicação Web. Exemplos típicos desse modelo são aplicações o�ce, como o Google Docs e o Microsoft O�ce 365, e aplicações de gestão corporativa, como o CRM (Customer Relationship Management) da Salesforce, que foi uma das soluções pioneiras em software como serviço, levando a empresa a ser uma das líderes em soluções corporativas no mundo. Outro aspecto importante é a caracterização dos clientes típicos de cada modelo, o que nos permite especi�car “papéis” na nuvem (Souza, 2009). Em geral, serviços no modelo IaaS são utilizados por clientes que precisam manter uma robusta infraestrutura de TI em ambiente de nuvem. Esse é o caso de organizações que lidam com grandes volumes de dados ou que precisam de recursos computacionais de alto desempenho e preferem realizar isso junto a um provedor em nuvem, devido aos benefícios de redução de custos e �exibilidade administrativa. Existe também o cenário no qual um provedor PaaS oferece seus serviços usando infraestrutura no modelo IaaS alocada de outro provedor. Como o pagamento é pelo uso, sem custos iniciais �xos, é comum que, mesmo empresas de pequeno porte e até desenvolvedores independentes, usem serviços IaaS como, por exemplo, uma máquina virtual para hospedar uma aplicação ainda em desenvolvimento com a con�abilidade e �exibilidade do ambiente de nuvem. Por outro lado, os clientes de serviços no modeloonline. Escalabilidade conforme a demanda, gerenciamento simpli�cado, maior disponibilidade. Desenvolvimento e testes de software: criação de ambientes de desenvolvimento e testes na nuvem. Provisionamento rápido, custos reduzidos, ambientes isolados para testes. Recuperação de desastres e continuidade de negócios: implementação de soluções de backup e recuperação na nuvem. Recuperação rápida, redundância de dados, menor impacto em caso de falhas. Colaboração e compartilhamento de documentos: uso de plataformas de colaboração na nuvem para compartilhamento e edição colaborativa de documentos. Acesso remoto, colaboração em tempo real, controle de versões. Sistemas de gestão empresarial (ERP): implementação de soluções ERP baseadas em nuvem para integração de processos de negócios. Atualizações automáticas, acesso remoto, integração de dados empresariais. Análise de dados e Business Intelligence (BI): uso de serviços em nuvem para análise de dados e geração de insights. Escalabilidade para grandes conjuntos de dados, ferramentas avançadas de BI, análise preditiva. Desktops virtuais (VDI): fornecimento de desktops virtuais para funcionários em dispositivos remotos. Mobilidade, segurança aprimorada, fácil gerenciamento centralizado. Automação de processos: utilização de serviços em nuvem para automação de processos de negócios. E�ciência operacional, redução de erros, integração de sistemas. Segurança e conformidade: implementação de soluções de segurança em nuvem para proteger dados empresariais. Monitoramento contínuo, detecção de ameaças avançadas, conformidade simpli�cada. Essas aplicações práticas destacam como a computação em nuvem pode transformar diferentes aspectos dos negócios, proporcionando �exibilidade, escalabilidade e e�ciência operacional. Vamos Exercitar? Adoção de aplicações práticas da nuvem em projetos Descrição da situação-problema Disciplina COMPUTAÇÃO EM NUVEM Imagine uma empresa de desenvolvimento de software que enfrenta desa�os relacionados à agilidade no desenvolvimento de projetos e colaboração e�ciente entre equipes distribuídas geogra�camente. A empresa percebe a necessidade de adotar soluções inovadoras para superar esses obstáculos e aprimorar seu processo de desenvolvimento de software. Desa�os: Ambientes de desenvolvimento limitados: os ambientes de desenvolvimento atuais são limitados em termos de escalabilidade e agilidade e os desenvolvedores enfrentam atrasos na criação de ambientes de teste e desenvolvimento. Colaboração remota ine�ciente: a comunicação entre equipes distribuídas é desa�adora, resultando em atrasos e falta de alinhamento e na di�culdade em compartilhar recursos e manter uma visão uni�cada do progresso do projeto. Resolução da situação-problema A empresa decide adotar aplicações práticas da computação em nuvem para enfrentar esses desa�os. Aqui estão as medidas tomadas para resolver a situação: Ambientes de desenvolvimento na nuvem: implementação de ambientes de desenvolvimento escaláveis na nuvem, permitindo a rápida criação e destruição de instâncias, conforme necessário, e utilização de serviços, como AWS CloudFormation ou Azure Resource Manager para automatizar a con�guração do ambiente. Colaboração e�ciente com ferramentas em nuvem: adoção de plataformas de colaboração na nuvem, como Slack, Microsoft Teams ou Google Workspace, para facilitar a comunicação em tempo real e implementação de ferramentas de gerenciamento de projetos baseadas em nuvem, como Jira ou Trello, para acompanhar e compartilhar o progresso do projeto. Integração contínua e entrega (CI/CD) na nuvem: implementação de pipelines de CI/CD na nuvem para automação contínua de testes e implantação e uso de serviços, como Jenkins, GitLab CI ou GitHub Actions para garantir uma entrega contínua e con�ável. Armazenamento e gerenciamento de código na nuvem: migração do repositório de código para plataformas de controle de versão na nuvem, como GitHub ou Bitbucket, e utilização de serviços de armazenamento na nuvem, como Amazon S3 ou Azure Blob Storage, para armazenamento e�ciente de artefatos e dados. Resultados esperados: Redução signi�cativa no tempo de con�guração de ambientes de desenvolvimento. Melhoria na comunicação e colaboração entre equipes, independentemente da localização geográ�ca. Aumento da e�ciência do ciclo de vida de desenvolvimento, com implantações mais rápidas e con�áveis. Armazenamento seguro e e�ciente de dados, melhorando a integridade e a disponibilidade das informações. Disciplina COMPUTAÇÃO EM NUVEM Essa abordagem prática da nuvem visa transformar a maneira como a empresa lida com projetos, aumentando a agilidade, melhorando a colaboração e garantindo a entrega e�ciente de software. Saiba mais A computação em nuvem tem desempenhado um papel fundamental na revolução digital, oferecendo uma variedade de casos de uso que transformam a maneira como empresas e pro�ssionais abordam os desa�os tecnológicos. Para saber mais sobre as vantagens de utilizar a tecnologia cloud computing, consulte 7 grandes empresas que usam serviços de computação em nuvem. Referências HOWMIK, S. Cloud computing. Cambridge: Cambridge University Press, 2017. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013. GONZALEZ, N. M. et al. Segurança das nuvens computacionais: uma visão dos principais problemas e soluções. Revista USP, São Paulo, 2013. Aula 5 Encerramento da Unidade Videoaula de Encerramento https://emaster.cloud/empresas/empresas-que-usam-cloud-computing/ https://emaster.cloud/empresas/empresas-que-usam-cloud-computing/ Disciplina COMPUTAÇÃO EM NUVEM Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, vamos explorar os conceitos relacionados à arquitetura de aplicações em nuvem. Projetar e estruturar uma aplicação na nuvem é crucial para garantir desempenho, con�abilidade e segurança. Esse conteúdo é importante para a sua prática pro�ssional, uma arquitetura robusta contribui para a con�abilidade e disponibilidade contínua das aplicações. Pro�ssionais que entendem os princípios de criptogra�a, gerenciamento de identidade, controle de acesso e práticas de segurança em nuvem podem projetar aplicações robustas e proteger dados sensíveis contra ameaças cibernéticas. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Chegada Olá, estudante! Para desenvolver a competência desta unidade, que é conhecer e exempli�car como a arquitetura de uma aplicação em nuvem in�uencia o seu desempenho, con�abilidade e segurança, é crucial abordar diversos aspectos da arquitetura e como cada um contribui para esses três pilares fundamentais. Vamos explorar esses elementos. 1. Desempenho: Elasticidade da infraestrutura: utilização de serviços de autoescalonamento para ajustar dinamicamente a capacidade conforme a carga de trabalho, garantindo desempenho consistente, mesmo durante picos de tráfego. Arquitetura de microsserviços: divisão da aplicação em microsserviços independentes, permitindo escalabilidade seletiva de componentes especí�cos e evitando impacto global em caso de falhas.CDN para distribuição de conteúdo: implementação de uma CDN para entregar conteúdo estático de forma e�ciente, reduzindo a latência e acelerando o carregamento de páginas. 2. Con�abilidade: Redundância e recuperação de desastres: con�guração de instâncias em diferentes zonas de disponibilidade para garantir redundância. Adoção de serviços de backup na nuvem para rápida recuperação em caso de falhas. Monitoramento em tempo real: utilização de ferramentas de monitoramento para detectar anomalias e falhas imediatamente, permitindo ações corretivas proativas. Disciplina COMPUTAÇÃOEM NUVEM Testes automatizados: implementação de testes automatizados contínuos para validar a estabilidade da aplicação após atualizações, evitando impactos não previstos. 3. Segurança: Políticas de controle de acesso: de�nição de políticas rigorosas de controle de acesso, garantindo que apenas usuários autorizados tenham acesso a dados sensíveis ou áreas críticas da aplicação. Criptogra�a de dados em repouso e em trânsito: aplicação de criptogra�a para proteger dados armazenados e transmitidos, reduzindo o risco de violações de segurança. Gerenciamento de identidade e acesso: implementação de serviços de gerenciamento de identidade para autenticação e autorização e�cazes, garantindo a integridade do acesso à aplicação. Desenvolver a competência nesta unidade envolve a compreensão prática sobre como cada decisão arquitetônica in�uencia diretamente o desempenho, a con�abilidade e a segurança de uma aplicação em nuvem. Ao aplicar exemplos concretos, os pro�ssionais estarão aptos a tomar decisões informadas durante o processo de arquitetura, alinhando-se aos objetivos estratégicos da organização e proporcionando uma experiência de alta qualidade aos usuários. É Hora de Praticar! Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Desa�os na arquitetura de aplicações em nuvem Descrição da Situação-Problema Imaginemos uma empresa de e-commerce que enfrenta desa�os signi�cativos na arquitetura de suas aplicações em nuvem. A empresa observou um aumento no tráfego durante picos sazonais de vendas, resultando em instabilidades na aplicação, lentidão nas transações e, ocasionalmente, indisponibilidade do serviço para os usuários. Além disso, a arquitetura atual não se adapta facilmente a mudanças nas demandas do mercado e na escalabilidade da infraestrutura. Desa�os identi�cados: Instabilidade durante picos de tráfego: a infraestrutura existente não consegue lidar e�cientemente com aumentos abruptos de tráfego, levando a quedas no desempenho e até Disciplina COMPUTAÇÃO EM NUVEM mesmo à indisponibilidade do serviço durante períodos críticos de vendas. Escalabilidade limitada: a arquitetura atual não é facilmente escalável para atender às �utuações sazonais de demanda, resultando em subutilização de recursos durante períodos de baixo tráfego e sobrecarga em momentos de pico. Gerenciamento complexo: a complexidade na administração da infraestrutura em nuvem di�culta o gerenciamento e�caz dos recursos, tornando lenta a implementação de atualizações e mudanças na aplicação. O que é elasticidade na arquitetura de aplicações em nuvem e como ela impacta o desempenho da aplicação? Explique como a arquitetura de microsserviços difere da abordagem monolítica e porque ela é vantajosa na nuvem. Qual é o papel de uma CDN (Content Delivery Network) na arquitetura de aplicações em nuvem, e como ela contribui para o desempenho? Resolução da situação-problema A empresa decide abordar esses desa�os por meio de uma reestruturação abrangente na arquitetura de suas aplicações em nuvem. Algumas medidas tomadas para resolver a situação: Implementação de autoescalonamento: adoção de serviços de autoescalonamento na nuvem, como AWS Auto Scaling ou Azure Autoscale, para ajustar automaticamente a capacidade da infraestrutura com base nas demandas de tráfego em tempo real. Arquitetura de microsserviços: reestruturação da aplicação, utilizando uma arquitetura de microsserviços, permitindo escalabilidade independente de componentes especí�cos e facilitando a implantação contínua. CDN (Content Delivery Network): utilização de uma CDN para distribuição e�ciente de conteúdo estático, reduzindo a carga nos servidores principais e melhorando a latência para usuários em diferentes regiões geográ�cas. Monitoramento e análise preditiva: implementação de ferramentas de monitoramento em tempo real e análise preditiva para identi�car padrões de tráfego e antecipar picos, permitindo ajustes preventivos na capacidade. Contêineres e orquestração: adoção de contêineres, como Docker, e orquestração, como Kubernetes, para facilitar o empacotamento de aplicações e garantir uma implantação consistente e escalável. Resultados esperados: Estabilidade aprimorada: redução signi�cativa na instabilidade durante picos de tráfego, proporcionando uma experiência mais consistente para os usuários. Escala e�ciente: capacidade de escalonar dinamicamente recursos, garantindo uma resposta e�ciente às mudanças nas demandas de tráfego. Agilidade operacional: simpli�cação do gerenciamento da infraestrutura, permitindo atualizações e mudanças rápidas na aplicação. Essas medidas visam transformar a arquitetura de aplicações em nuvem da empresa, capacitando-a para lidar com desa�os de tráfego variável e garantir uma experiência con�ável Disciplina COMPUTAÇÃO EM NUVEM aos usuários, independentemente das condições sazonais. A arquitetura de aplicações em nuvem refere-se ao design e à estrutura de sistemas de software que são construídos para operar na infraestrutura de computação em nuvem. Ela engloba decisões de design e padrões arquiteturais que permitem que as aplicações se bene�ciem das características e serviços oferecidos pelos provedores de nuvem, como escalabilidade, elasticidade, redundância, segurança e e�ciência. Disciplina COMPUTAÇÃO EM NUVEM Figura | Arquitetura de aplicação em nuvem. CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017. Disciplina COMPUTAÇÃO EM NUVEM ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013. MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud computing. Porto Alegre: SAGAH, 2020.PaaS são aqueles que necessitam de um ambiente de desenvolvimento gerenciado, para não se preocupar com detalhes da infraestrutura e focar na implementação de aplicações. Um exemplo são as empresas de desenvolvimento de aplicações Web e aplicativos para dispositivos móveis. Por �m, temos que os serviços no Disciplina COMPUTAÇÃO EM NUVEM modelo SaaS são direcionados para usuários �nais que apenas precisam fazer uso de softwares diversos sem qualquer interesse em lidar com as tecnologias ou equipamentos envolvidos. Siga em Frente... Modelos de serviço especializados: DBaaS, BaaS e BPaaS Com o crescimento da computação em nuvem, foram criados vários modelos de serviços especializados. Fala-se até em XaaS (Everything as a Service), que poderia ser entendido como “qualquer coisa como serviço” ou “tudo como serviço” (Duan et al., 2015, [s.p.]). Como não seria possível descrever tantos modelos especializados, por isso vamos discutir alguns dos mais importantes no mercado atualmente. Não poderíamos deixar de falar do modelo denominado Banco de Dados como Serviço (DBaaS – Database as a Service) (Sousa et al., 2010). Esse é um caso de especialização do modelo PaaS, no qual o cliente pode criar um banco de dados sem ter que instalar e con�gurar o SGBD. A infraestrutura computacional necessária e o gerenciamento do SGBD são responsabilidades do provedor. O gerenciamento de dados na nuvem envolve grandes desa�os, por exemplo, em termos de segurança dos dados, escalabilidade e qualidade de serviço (Sousa et al., 2010). Nesse contexto, um problema comum é quando uma aplicação em um provedor precisa acessar um banco de dados que está em outro provedor. Nesse caso, a latência de acesso aos dados pode comprometer o desempenho do sistema caso a aplicação precise consultar o banco com muita frequência. O ideal é que a aplicação e o banco de dados sejam implantados em máquinas virtuais hospedadas na mesma máquina física ou, pelo menos, na mesma rede local, de forma que a latência seja mínima. Os provedores de serviços no modelo DBaaS oferecem recursos avançados como suporte a replicação e balanceamento de carga automático (Sousa, 2010). Dessa forma, os provedores são capazes de, automaticamente, criar réplicas do banco de dados a �m de atender ao eventual aumento no número de consultas ao banco. Assim, as requisições de acesso aos dados são divididas entre as réplicas do banco, o que permite melhorar o desempenho do sistema. Além disso, os serviços incluem suporte tanto para bancos relacionais como para bancos não relacionais (NoSQL). Um exemplo do primeiro caso é o Azure SQL Server da Microsoft. Entre os bancos não relacionais, podemos destacar o MongoDB, que também é oferecido como plataforma na nuvem por vários provedores, como o MongoDB Atlas. Em geral, o cálculo de tarifas relacionadas a serviços de suporte a banco de dados não é uma tarefa simples, pois os custos envolvem os volumes de dados armazenados, a quantidade de transações no banco e o tempo de uso das máquinas virtuais utilizadas para executar uma ou mais instâncias do SGBD. Outro importante modelo especializado é o Backend como Serviço (BaaS – Backend as a Service) (LANE, 2015). Esse tipo de plataforma é importante para agilizar e aprimorar o desenvolvimento de aplicações Web e aplicativos para dispositivos móveis (Batschinski, 2016). Nesse sentido, o serviço do provedor inclui o provisionamento de diversos recursos, tais como armazenamento de dados e objetos, mecanismos de autenticação, etc. Esses recursos são comuns no backend de sistemas para usuários �nais. Com isso, o cliente pode focar no Disciplina COMPUTAÇÃO EM NUVEM desenvolvimento do frontend, ou seja, a parte da aplicação com a qual os usuários interagem diretamente. Essa abordagem reduz o tempo de desenvolvimento dos sistemas. Um exemplo bastante representativo desse modelo é a plataforma Firebase da Google (Firebase, 2019). O Firebase inclui bancos de dados com sincronização em tempo real, serviços de armazenamento de objetos (como imagens e vídeos), soluções de autenticação baseadas em e-mail ou número de telefone dos usuários e recursos para hospedagem de aplicações web. Por �m, vamos destacar um último exemplo de modelo de serviço especializado: Processos de Negócio como Serviço (BPaaS – Business Process as a Service). Esse modelo de serviço consiste no provisionamento de ferramentas para modelagem de �uxos de trabalho, integração de dados e aplicações corporativas em vários segmentos (Lynn, 2014). Isso permite às grandes organizações implementar soluções de gestão coorporativa que são �exíveis e capazes de responder prontamente a mudanças nos ambientes de negócios, sem que essas organizações tenham que se preocupar com o gerenciamento da infraestrutura de TI necessária para operar tais soluções. Como escolher o modelo de serviço A escolha do modelo de serviço na computação em nuvem depende das necessidades especí�cas de sua aplicação, do controle que você deseja ter sobre a infraestrutura e dos recursos e habilidades disponíveis em sua organização. Ao tomar a decisão, considere fatores como complexidade do projeto, requisitos de controle, habilidades internas, escalabilidade, custos e a rapidez com que deseja implantar e iterar em seus serviços. Muitas vezes, uma abordagem híbrida que combina vários modelos de serviço pode ser a mais adequada, dependendo das necessidades especí�cas de cada parte do seu ambiente de TI. Chegamos ao �nal de mais uma aula, na qual descrevemos os modelos de serviços básicos e também alguns modelos especializados. É importante entender os benefícios de cada modelo e o nível de abstração oferecido por cada um. Assim, o cliente pode fazer a escolha certa de acordo com sua demanda e considerando o nível de controle necessários sobre os serviços e os custos para operar e também migrar aplicações. Vamos Exercitar? Desenvolvimento de software na nuvem para empresas de pequeno porte Descrição da situação-problema Foi solicitada a uma pequena empresa de desenvolvimento de software a criação de um sistema de gestão de eventos. O sistema deve ter uma aplicação Web e um aplicativo para dispositivos Disciplina COMPUTAÇÃO EM NUVEM móveis. A aplicação deve ter funcionalidades, como: criar um evento, veri�car a programação de um evento e fazer inscrição em uma atividade. Deve incluir, ainda, funcionalidades adicionais para organizadores de evento, tais como validar a inscrição e registrar a presença dos participantes por meio de QR code. Como se trata de uma empresa nova e pequena, não há grande disponibilidade de recursos computacionais e o número de funcionários é pequeno. A empresa, então, vai optar por um ambiente de nuvem para desenvolvimento do sistema. Nesse caso, qual seria o modelo de serviço mais adequado: SaaS, PaaS ou IaaS? Resolução da situação-problema Primeiramente, já podemos descartar a opção de SaaS, pois a empresa não precisa usar um software especí�co disponível na nuvem, mas desenvolver a solução conforme requisitado. Precisamos, então, fazer uma escolha entre IaaS e PaaS. Pode-se perceber que, pela demanda apresentada, não há necessidade do nível de controle oferecido no modelo IaaS. Portanto, pode- se fazer uma opção por um modelo com maior nível de abstração. Além disso, se a empresa escolhesse o modelo IaaS, ela teria que se preocupar com a instalação e con�guração de todo o ambiente necessário para desenvolvimento, teste e implantação do sistema. Essas tarefas demandam um tempo considerável e pro�ssionais habilitados, o que representaria um alto investimento inicial para uma empresa pequena. Podemos concluir que o modelo PaaS é a melhor opção. Os provedores de PaaS oferecem ambientes para desenvolvimento e hospedagem de sistemas e bancos de dados com as tecnologias e ferramentas mais importantes para desenvolvimento de aplicação web e aplicativos. O ambiente é rapidamente provisionado e dispensa gerenciamento da infraestrutura, o que agiliza e reduz os custos para desenvolvimento das soluções. Além disso, os provedoresde PaaS oferecem mecanismos de replicação e balanceamento de carga automáticos para facilitar o trabalho de garantir a escalabilidade e desempenho da solução desenvolvida. Essas facilidades são muito importantes, principalmente para empresas menores que não dispõem de equipes especializadas para lidar com esses desa�os. Saiba mais Para saber mais sobre o modelo PaaS, acesse o material O que é PaaS? da Microsoft. Referências DUAN, Y. et al. Everything as a Service (XaaS) on the Cloud: origins, current and future trends. In: The IEEE 8th International Conference on Cloud Computing, 2015. ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.] Prentice Hall, 2013. https://azure.microsoft.com/pt-br/resources/cloud-computing-dictionary/what-is-paas Disciplina COMPUTAÇÃO EM NUVEM LYNN, T. et al. Towards a framework for de�ning and categorising business Process-As-A- Service (BPaaS). In: 21st International Product Development Management Conference, 2014. MELL, P.; GRANCE, T. The NIST de�nition of cloud computing. [s.l.] National Institute of Standards and Technology, 2011. Disponível em: https://doi.org/10.6028/NIST.SP.800-145 Acesso em: 19 jan. 2024. SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Gerenciamento de dados em nuvem: conceitos, sistemas e desa�os. Disponível em: https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1 Acesso em: 19 jan. 2024. Aula 3 Modelos de Implantação em Computação em Nuvem Modelos de Implantação em Computação em Nuvem Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, vamos explorar os modelos de implantação em computação em nuvem, que se referem à forma como os serviços em nuvem são disponibilizados e acessados. Existem três modelos principais de implantação: nuvem pública, nuvem privada e nuvem híbrida. Entender esses modelos é fundamental para tomar decisões informadas ao implementar soluções em nuvem, considerando os requisitos especí�cos de cada organização. Esse conteúdo é importante para a sua prática pro�ssional, para gerenciar e�cientemente a infraestrutura de TI, alinhar tecnologia com os objetivos de negócios e garantir a segurança e e�ciência operacional em ambientes de nuvem. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida https://doi.org/10.6028/NIST.SP.800-145 https://sol.sbc.org.br/livros/index.php/sbc/catalog/download/18/81/167-1?inline=1 Disciplina COMPUTAÇÃO EM NUVEM Caro, estudante. Nesta unidade, veremos modelos de implantação em Computação em Nuvem. Existem diversas abordagens e tecnologias que podem ser utilizadas pelos provedores no provisionamento de serviços de computação em nuvem. Nesta aula, vamos estudar os principais modelos e plataformas para implantação da infraestrutura de ambientes de computação em nuvem, que são: nuvem privada e nuvem pública. No modelo de nuvem privada, o ambiente é de uso exclusivo dos usuários de uma única organização, por exemplo, uma empresa ou uma faculdade. Por outro lado, no modelo de nuvem pública, a infraestrutura gerenciada por um provedor é compartilhada entre diversas organizações clientes, que podem ser empresas, instituições ou até mesmo indivíduos. É importante entender como os modelos de implantação impactam os usuários de serviços em nuvem em termos, principalmente de custo, controle de acesso aos recursos e nível de segurança. Bons estudos! Vamos Começar! Software de servidor para implantação de nuvens Existem vários softwares de servidor e plataformas amplamente utilizados para a implantação e gerenciamento de ambientes em nuvem. Esses softwares oferecem recursos para provisionar, gerenciar, orquestrar e monitorar recursos de computação em nuvem. Aqui estão alguns dos principais: OpenStack: é uma plataforma de código aberto que oferece serviços de computação em nuvem. Ele fornece componentes modulares para gerenciamento de máquinas virtuais, armazenamento, rede, identidade e outros serviços essenciais. VMware vSphere: é uma solução líder em virtualização que oferece recursos de infraestrutura para criar e gerenciar ambientes de nuvem privada. Ele suporta virtualização de servidores, armazenamento e redes. Microsoft Hyper-V: é a plataforma de virtualização da Microsoft. Ele permite a criação e gerenciamento de máquinas virtuais em ambientes Windows, sendo frequentemente utilizado em implantações de nuvem privada. KVM (Kernel-based Virtual Machine): é uma solução de virtualização de código aberto incorporada ao kernel do Linux. Ele fornece suporte para a criação e gestão de máquinas virtuais e é utilizado em muitas implementações de nuvem. Docker: é uma plataforma de contêineres que simpli�ca a implantação de aplicativos em nuvens e ambientes locais. Oferece uma abordagem leve e e�ciente para a virtualização de aplicativos. Red Hat Virtualization: é uma solução de virtualização de código aberto baseada no Kernel do Linux e no projeto oVirt. Ele oferece recursos avançados para implantação e gerenciamento de máquinas virtuais. Apache CloudStack: é uma plataforma de código aberto para a implementação de infraestruturas em nuvem. Ele oferece recursos para gerenciar máquinas virtuais, redes, Disciplina COMPUTAÇÃO EM NUVEM armazenamento e usuários em um ambiente de nuvem. Ansible: é uma ferramenta de automação que pode ser usada para implantação e gestão de infraestruturas em nuvem. Ele permite a automação de tarefas repetitivas e complexas. HashiCorp Terraform: é uma ferramenta de código aberto da HashiCorp que permite a criação, atualização e versionamento de infraestruturas de forma declarativa. Suporta vários provedores de nuvem. AWS Elastic Beanstalk: é um serviço gerenciado da Amazon Web Services (AWS) que facilita a implantação e escalabilidade de aplicativos na nuvem sem se preocupar com a infraestrutura subjacente. A escolha do software dependerá das necessidades especí�cas da sua organização, dos requisitos de implantação e das preferências tecnológicas. Cada uma dessas ferramentas oferece recursos distintos para atender a diferentes cenários de implementação em nuvem. Conceito de nuvem híbrida, nuvem privada e pública Vamos estudar as principais soluções para implantação de uma infraestrutura de recursos de TI a �m de viabilizar o provisionamento de serviços de computação em nuvem. Um fator extremamente relevante no uso de serviços de computação em nuvem é escolher o modelo de implantação adequado. Esse modelo determina como será o gerenciamento da infraestrutura de TI. Consequentemente, os modelos de implantação de�nem aspectos de controle de acesso, segurança e disponibilidade dos recursos computacionais ofertados como serviços no ambiente de computação em nuvem. Existem quatro modelos de implantação: nuvem privada, nuvem comunitária, nuvem pública e nuvem híbrida (Mell; Grance, 2011). Uma nuvem privada é um ambiente de nuvem de propriedade de uma única organização (Erl; Puttini; Mahmood, 2013). Assim, os recursos computacionais são utilizados exclusivamente pela organização que é proprietária da infraestrutura. O modelo de implantação nuvem privada permite que uma empresa ou instituição utilize tecnologias de computação em nuvem para gerenciar uma infraestrutura de TI própria. Dessa forma, os recursos computacionais de uma organização podem ser compartilhados como serviços sob demanda entre diversas unidades e usuários internos à organização. Nesse caso, é necessário implementar políticas que restringem o acesso aos recursos disponíveis para os membros da organização, de acordo com os privilégios de cada um. Para isso, são necessárias tecnologias de autenticação e controle de acesso e também a con�guração adequada dos serviços de rede. Um exemplode nuvem privada é o caso de uma empresa que adquire uma ampla infraestrutura de TI e usa tecnologias de computação em nuvem para gerenciar essa infraestrutura de forma centralizada. A empresa, então, permite que seus diversos setores ou �liais aloquem recursos computacionais sob demanda. Os níveis de acesso aos serviços e a quantidade de recursos permitidos para cada setor da empresa podem ser diferentes. Uma organização pode ter uma nuvem privada administrada por terceiros, nesse caso, uma empresa especializada no provisionamento de serviços de computação em nuvem (Sousa; Moreira; Machado, 2009). O que caracteriza a nuvem privada é o uso exclusivo dos recursos por Disciplina COMPUTAÇÃO EM NUVEM uma determinada organização. Nesse caso, não importa quem é o responsável pela administração da infraestrutura, além disso, a infraestrutura não precisa, necessariamente, ser implantada nas instalações da própria organização. Os equipamentos podem estar instalados em espaço geográ�co fora da organização com o acesso aos serviços realizados remotamente pela Internet. O modelo de nuvem privada é mais apropriado para organizações que querem se bene�ciar de tecnologias de nuvem para ter �exibilidade e e�ciência no compartilhamento de recursos de TI, sem abrir mão do controle administrativo de uma infraestrutura dedicada. Porém, esse modelo de implantação pode exigir custos altos relacionados à propriedade e exclusividade da infraestrutura. Uma alternativa para isso é o modelo de implantação denominado nuvem comunitária, no qual um conjunto de organizações compartilham um mesmo ambiente de computação em nuvem (Sousa; Moreira; Machado, 2009). Assim, a infraestrutura é dedicada para um conjunto de organizações. Essa operação conjunta da infraestrutura pode ser motivada por interesses comuns e requer um alinhamento em termos de requisitos de segurança e políticas de acesso. Empresas com políticas ou interesses con�itantes poderiam ter problemas para compartilhar um ambiente de nuvem. Em geral, a administração do ambiente é responsabilidade de um consórcio ou empresa especializada e o acesso aos recursos é remoto. Um exemplo típico de nuvem comunitária é o caso de um grupo de universidades que podem cooperar com recursos �nanceiros e pro�ssionais especializados para implantar um ambiente de nuvem para um projeto de pesquisa que exige uma infraestrutura computacional de alto desempenho. Outro modelo de implantação é a nuvem pública, em que os recursos do ambiente de computação em nuvem são mantidos por um provedor e disponibilizados sob demanda para qualquer empresa cliente (Sousa; Moreira; Machado, 2009). Isso representa um modelo de negócio no qual um provedor faz o investimento na infraestrutura e assume a operação com o intuito de faturar com a oferta de serviços de computação em nuvem ao público em geral. O modelo de nuvem pública estabelece uma clara distinção entre o provedor e o cliente. Os clientes podem alocar recursos computacionais sob demanda de diversos provedores sem ter que assumir a responsabilidade e os custos associados com a gestão da infraestrutura. Além disso, os clientes se bene�ciam de escalabilidade “ilimitada”, pois eles podem alocar ou liberar recursos dos provedores de forma rápida conforme a necessidade de suas aplicações. É importante salientar que não é necessário optar por um modelo de implantação especí�co. Se for conveniente, uma organização pode, por exemplo, fazer uso de uma nuvem privada e de uma nuvem pública ao mesmo tempo. Esse modelo caracteriza o que se denomina uma nuvem híbrida, ou seja, um ambiente de computação em nuvem que é a combinação de modelos de implantação diferentes (Erl; Puttini; Mahmood, 2013). Mesmo havendo a composição de duas ou mais infraestruturas de nuvem com modelos de implantação diferentes, a nuvem híbrida é vista como um sistema único. Por exemplo, uma empresa pode manter diversos componentes de uma mesma aplicação em ambientes diferentes da nuvem híbrida. Componentes que envolvem manipulação de dados críticos ou sigilosos podem �car em uma nuvem privada. Os demais Disciplina COMPUTAÇÃO EM NUVEM componentes da aplicação podem ser hospedados em provedor de nuvem pública para �ns de escalabilidade. Para Erl, Puttini e Mahmood (2013), nuvens híbridas representam cenários complexos, uma vez que envolvem a divisão de responsabilidades administrativas entre os responsáveis por cada ambiente e também devido a eventuais problemas de compatibilidade, pois cada ambiente da nuvem híbrida pode ter con�gurações e tecnologias especí�cas. A Figura 1 ilustra um cenário no qual a Empresa A aloca recursos do Provedor X (nuvem pública) para ampliar a capacidade de sua nuvem privada, formando, então, uma nuvem híbrida. Parte da aplicação da Empresa A está na nuvem privada e outra parte está na nuvem pública, compartilhada com aplicações de outras empresas clientes do provedor. Esse cenário é interessante para o suporte a aplicações ou serviços suscetíveis a sazonalidade, ou seja, quando a quantidade de acessos (carga de trabalho) aumenta signi�cativamente em determinados períodos. Por exemplo, como ocorre com aplicações de comércio eletrônico em datas comemorativas ou na Black Friday. Nesse caso, recursos de nuvem pública podem ser temporariamente alocados para atender ao aumento repentino na demanda, evitando-se lentidão ou indisponibilidade dos sistemas devido à grande quantidade de acessos dos clientes (sobrecarga). Figura 1 | Cenário de caracterização de nuvem híbrida. Nesse contexto de heterogeneidade, no qual um cliente pode alocar recursos computacionais em diferentes ambientes de computação em nuvem, um aspecto muito importante é a gerência de identidades federadas (Feliciano, 2011). Nuvens federadas são ambientes de computação em nuvem que, mesmo administradas por provedores diferentes, compartilham recursos entre si (Moreno-Vozmediano; Montero; Llorente, 2012). Esse compartilhamento pode se dar em vários Disciplina COMPUTAÇÃO EM NUVEM níveis, mas sempre é necessário um mecanismo comum para autenticação e controle de acesso aos recursos. Dessa forma, um cliente pode usar um mesmo identi�cador para acessar recursos de diferentes provedores. Siga em Frente... Plataforma de computação em nuvem Open Source Você aprendeu sobre os principais modelos conceituais para implantação de nuvens, mas uma questão ainda não explicada é a seguinte: como gerenciar a infraestrutura de ambientes de computação em nuvem? A resposta é: utilizando uma plataforma de computação em nuvem (Carissimi, 2015). Existem várias plataformas de computação em nuvem de código aberto que permitem criar e gerenciar ambientes de nuvem. Essa plataforma consiste no conjunto de ferramentas de software utilizado para gerenciar os servidores e equipamentos de rede que compõem a infraestrutura sobre a qual serão provisionados os serviços de computação em nuvem. Para dar suporte a esses serviços, a plataforma tem que oferecer tecnologias de virtualização dos recursos computacionais de processamento, armazenamento e transmissão de dados, assim como mecanismos para alocação desses recursos virtualizados de forma remota, ou seja, por meio de acesso via Internet. Em geral, os mecanismos de acesso remoto utilizam o protocolo SSH (Secure Shell) ou o protocolo HTTP (Hypertext Transfer Protocol). O protocolo SSH oferece uma conexão por terminal de linha de comando. Com o uso do HTTP, o gerenciamento e a alocação dos recursos podem ser feitos por meio de uma aplicação Web. As plataformas de computação em nuvem são também conhecidas como software de servidor para nuvem ou sistema operacional de nuvem. Os provedores de nuvem pública muitas vezes utilizam plataformas proprietárias para gerenciamento de sua infraestrutura, no entanto, existem muitas plataformas de computação em nuvem distribuídas como softwares livres, que podem ser utilizadas para a implantação de nuvens públicas ou privadas. Entre as principais plataformas, pode-se destacar as seguintes: OpenStack, CloudStack, Eucalyptuse OpenNebula (Thomé; Hentges; Griebler, 2013). A plataforma OpenStack pode ser de�nida como “uma combinação de ferramentas open source (conhecidas como projetos) que usam um pool de recursos virtuais para criar e gerenciar nuvens privadas e públicas” (Redhat, 2019). O OpenStack funciona como um sistema operacional para nuvem que permite controlar recursos de processamento, armazenamento e rede (Openstack, 2019). A plataforma OpenStack foi criada a partir de uma colaboração entre a NASA e a empresa Rackspace, a partir de 2010. As principais funcionalidades da plataforma incluem gerenciamento de máquinas virtuais, orquestração de contêineres, balanceamento de carga, virtualização de Disciplina COMPUTAÇÃO EM NUVEM funções de redes e controle de acesso aos recursos. Com uma arquitetura modular, a plataforma OpenStack combina diversos módulos funcionais (chamados de projetos) (Redhat, 2019). Os projetos básicos do OpenStack são: Nova: gerenciamento de instâncias computacionais (por exemplo, criação de máquinas virtuais). Nêutron: gerenciamento de conectividade e virtualização de serviços de rede. Swift: armazenamento distribuído de alta disponibilidade para objetos e dados não estruturados como vídeos, backups, imagens, etc. Cinder: gerenciamento de armazenamento em bloco (discos virtuais), por exemplo, para criar dispositivo lógico de armazenamento persistente para máquinas virtuais. Keystone: gerenciamento de identidades, autenticação e controle de acesso. Glance: gerenciamento de imagens de máquinas virtuais. Essas e outras ferramentas combinadas na plataforma OpenStack são disponibilizadas por meio de um painel de bordo que oferece controle administrativo e funcionalidades para provisionamento dos recursos, por meio de uma interface Web. Além da aplicação Web, as funcionalidades podem ser acessadas por terminal de comando, SDK (Software Development Kit) para linguagem python ou API (Application Programming Interface). O OpenStack provê um conjunto consistente de API para abstrair os recursos virtuais e viabilizar mecanismos de gerenciamento da infraestrutura do ambiente de computação em nuvem (Redhat, 2019). Outra plataforma relevante é a CloudStack da Fundação Apache (Apache, 2019). Essa plataforma pode ser usada para implantação de Nuvens privadas, públicas e híbridas. Ela foi projetada para conseguir gerenciar redes de máquinas virtuais em larga escala e criar um ambiente de computação em nuvem de alta disponibilidade e alta escalabilidade. Uma característica interessante é que as tecnologias usadas nessa plataforma são compatíveis com serviços de provedores comerciais de computação em nuvem, como o AWS EC2, o que permite a integração de serviços para implantação de nuvens híbridas. A CloudStack permite o gerenciamento dos recursos por meio de interface Web, ferramentas de linha de comando e API Web. Outra solução para gerenciamento de infraestrutura de nuvem é a plataforma Eucalyptus (Eucalyptus, 2019). Ela também oferece compatibilidade com os serviços de nuvem públicas, como a AWS, de forma que é possível criar nuvens privadas ou híbridas. Essa plataforma suporta diferentes tecnologias de virtualização e o gerenciamento dos recursos pode ser feito remotamente via ferramentas de linha de comando ou interface Web. A arquitetura dessa plataforma inclui os controladores que reúnem informações de monitoramento da infraestrutura e permitem o acesso aos recursos da nuvem (Carissimi, 2015). A plataforma OpenNebula é direcionada ao gerenciamento de nuvens privadas (Opennebula, 2019), mas também permite a criação de ambientes híbridos com nuvens públicas AWS e Microsoft Azure. O foco dessa plataforma é prover uma solução leve, simples e �exível para o uso de virtualização no gerenciamento da infraestrutura. Uma característica de destaque dessa plataforma é o suporte para criação de nuvens federadas. Disciplina COMPUTAÇÃO EM NUVEM Ao escolher uma plataforma de computação em nuvem de código aberto, é importante considerar os requisitos especí�cos da sua organização, a facilidade de uso, a comunidade de suporte, a documentação disponível e a integração com outras ferramentas e tecnologias que você pode usar. Vamos Exercitar? Cloud Bursting Descrição da situação-problema Uma rede de ensino superior com faculdades em várias cidades deseja criar uma aplicação web na qual os estudantes podem consultar a matriz curricular dos cursos e a oferta de disciplinas obrigatórias e eletivas, bem como realizar a matrícula em disciplinas a cada semestre. Como o número de estudantes nessa rede é muito grande, a escalabilidade da aplicação é um fator relevante. A instituição decidiu utilizar uma infraestrutura em nuvem para hospedar a aplicação. Sua tarefa, como analista de TI da rede, é avaliar qual modelo de implantação de ambiente de nuvem deve ser utilizado para o cenário apresentado. Resolução da situação-problema A solução mais adequada seria o modelo de nuvem híbrida. Dessa forma, a rede de faculdades poderia manter a base de dados da aplicação em uma nuvem privada, em suas próprias instalações. Com o controle completo sobre os recursos dedicados, não haveria o risco de manter os dados dos alunos em um provedor público, com recursos compartilhados com outros clientes. Além disso, essa nuvem privada poderia ter uma capacidade reduzida, para se evitarem altos custos com implantação e operação da infraestrutura. Porém, essa nuvem privada, com poucos recursos, poderia não ser su�ciente para manter a escalabilidade do sistema com o aumento de carga de trabalho nos períodos de matrícula a cada semestre. Para isso, a rede de ensino poderia alocar servidores em uma nuvem pública para hospedar apenas réplicas da interface web do sistema, a base de dados continuaria na nuvem privada. Os servidores no provedor de nuvem pública seriam mantidos somente durante os períodos de matrícula, a �m de evitar eventual degradação de desempenho da aplicação. Fora dos períodos de matrícula, quando as consultas ao sistema são reduzidas, os recursos na nuvem pública poderiam ser liberados para redução de custos. Esse procedimento, característico de nuvem híbrida, que consiste em usar recursos adicionais de uma nuvem pública para aumentar temporariamente a capacidade de uma aplicação inicialmente hospedada em nuvem privada, é denominado Cloud Bursting. Saiba mais Disciplina COMPUTAÇÃO EM NUVEM Além da nuvem híbrida, a Nuvem Privada Virtual (VPC – Virtual Private Cloud) é outro modelo que busca aproveitar as vantagens tanto de nuvens públicas quanto privadas (Wood, 2009). Uma VPC consiste na alocação de recursos computacionais em um provedor de nuvem pública de forma dedicada para uma organização. Dessa forma, é como se uma nuvem privada fosse criada em um provedor de nuvem pública. Para isso, são usados mecanismos de autenticação e criptogra�a para isolar os recursos alocados dos demais clientes da nuvem pública. Assim, a VPC envolve também virtualização de recursos de rede para criar uma rede privada virtual no ambiente de nuvem pública. Esse modelo de nuvem privada virtual também é considerado uma forma menos complexa de migração para ambiente de nuvem (Zhang, 2010). Referências ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.] Prentice Hall, 2013. FELICIANO, G. et al. Gerência de identidades federadas em nuvens: Enfoque na utilização de soluções abertas. In: XI Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais (SBSeg), 2011. MELL, P.; GRANCE, T. The NIST de�nition of cloud computing. [s.l.] National Institute of Standards and Technology, 2011. Disponível em: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf Acesso em: 20 jan. 2024. MORENO-VOZMEDIANO, R.; MONTERO, R. S.; LLORENTE, I. M. IaaS Cloud Architecture: From Virtualized Datacenters to Federated Cloud Infrastructures. Computer, 2012. OPENSTACK. What is OpenStack? Disponível em: https://www.openstack.org/software/ Acesso em: 20 jan. 2024. REDHAT. Introduçãoao OpenStack. Disponível em: https://www.redhat.com/pt- br/topics/openstack Acesso em: 20 jan. 2024. Aula 4 Elasticidade e Escalabilidade Elasticidade e Escalabilidade Este conteúdo é um vídeo! https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf https://www.openstack.org/software/ https://www.redhat.com/pt-br/topics/openstack https://www.redhat.com/pt-br/topics/openstack Disciplina COMPUTAÇÃO EM NUVEM Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá estudante! Nesta videoaula, vamos explorar os conceitos de elasticidade e escalabilidade, fundamentais em ambientes de computação em nuvem. Ao entender e aplicar a elasticidade e escalabilidade, os pro�ssionais podem criar e gerenciar infraestruturas mais e�cientes, �exíveis e capazes de lidar com as demandas dinâmicas dos ambientes de computação em nuvem. Para a aplicação efetiva de elasticidade e escalabilidade é vital para a e�ciência operacional a economia de custos e a capacidade de resposta rápida às mudanças no cenário tecnológico e de negócios. Pro�ssionais que dominam esses conceitos estão melhor preparados para enfrentar os desa�os dinâmicos dos ambientes de computação em nuvem e para contribuir para o sucesso organizacional. Prepare-se para essa jornada de conhecimento! Vamos lá!!! Ponto de Partida Caro, estudante. Nesta aula, veremos elasticidade e escalabilidade, dois conceitos relacionados na computação, especialmente quando se trata de infraestrutura em nuvem. Ambos se referem à capacidade de um sistema ou serviço de se adaptar às demandas variáveis. Vamos começar a estudar o universo de escalabilidade e elasticidade, pois ela oferece vantagens signi�cativas e permite que as organizações ajustem dinamicamente seus recursos de computação para lidar com picos de demanda ou períodos de baixa atividade, resultando em uma utilização e�ciente dos recursos. Bons estudos! Vamos Começar! Conceito de elasticidade e como os recursos podem ser dimensionados automaticamente para atender à demanda A elasticidade é a capacidade de um sistema ou aplicação ajustar dinamicamente seus recursos de computação de acordo com as demandas variáveis da carga de trabalho. Isso envolve a capacidade de escalar para cima (aumentar recursos) ou para baixo (diminuir recursos) Disciplina COMPUTAÇÃO EM NUVEM conforme necessário, permitindo que o sistema mantenha o desempenho e a e�ciência operacional sob condições de demanda �utuante. Os recursos podem ser dimensionados automaticamente: Máquinas Virtuais (VM) e Contêineres são unidades isoladas de computação que podem ser rapidamente provisionadas ou desativadas conforme necessário. Sistemas de gerenciamento de contêineres, como Kubernetes, facilitam a orquestração dinâmica dessas instâncias, ajustando automaticamente o número de VM ou contêineres em execução para atender à carga de trabalho. Autoescalonamento automático: os serviços em nuvem frequentemente oferecem recursos de autoescalonamento automático. Com base em métricas como utilização de CPU, tráfego de rede ou outras métricas personalizadas, os recursos são escalados automaticamente para cima ou para baixo. Por exemplo, se a utilização de CPU atingir um determinado limiar, mais instâncias podem ser provisionadas automaticamente. Balanceamento de Carga Dinâmico: distribui automaticamente o tráfego entre várias instâncias para otimizar o desempenho. Se a carga aumentar, novas instâncias podem ser adicionadas ao pool e, se a carga diminuir, instâncias podem ser removidas. Políticas de Dimensionamento Automático: permitem que os administradores de�nam regras especí�cas para escalar recursos automaticamente. Essas políticas podem ser baseadas em horários especí�cos, métricas de desempenho ou outras condições prede�nidas. Funções de Serviço sem Estado (Serverless): são Arquiteturas serverless, como AWS Lambda ou Azure Functions, eliminam a necessidade de provisionar e gerenciar diretamente servidores. Recursos são provisionados automaticamente para atender às demandas conforme as funções de serviço são acionadas. Redimensionamento Dinâmico de Armazenamento: além do redimensionamento de recursos computacionais, a elasticidade também pode envolver o redimensionamento dinâmico de armazenamento. Isso permite que a capacidade de armazenamento seja ajustada automaticamente com base nas necessidades. Monitoramento em Tempo Real com ferramentas, como Prometheus ou AWS CloudWatch, são essenciais para fornecer informações contínuas sobre o desempenho do sistema. Esses dados são usados para acionar ações automáticas de escalabilidade. A automação desempenha um papel crucial na implementação bem-sucedida da elasticidade, permitindo que os sistemas respondam rapidamente às mudanças nas condições operacionais. Ao utilizar essas práticas, as organizações podem garantir que seus recursos de nuvem se adaptem de maneira e�ciente às demandas variáveis, otimizando custos e desempenho. Diferentes métodos de escalabilidade (horizontal e vertical) A escalabilidade pode ser alcançada de duas maneiras principais: escalabilidade horizontal e escalabilidade vertical. Cada método tem suas características distintas e é aplicado em diferentes cenários, dependendo das necessidades especí�cas do sistema. Disciplina COMPUTAÇÃO EM NUVEM Escalabilidade horizontal A escalabilidade horizontal envolve adicionar mais instâncias idênticas (máquinas virtuais, contêineres, servidores) ao sistema para distribuir a carga de trabalho. Características: Distribuição de carga: a carga é distribuída entre várias instâncias, permitindo uma melhor distribuição do tráfego e evitando gargalos em uma única máquina. Facilidade de adição/remoção: novas instâncias podem ser adicionadas ou removidas conforme necessário, proporcionando �exibilidade dinâmica. Escalabilidade horizontal na nuvem: ambientes de nuvem são particularmente adequados para escalabilidade horizontal, permitindo adicionar ou remover recursos conforme a demanda. Exemplo: se um aplicativo web está experimentando um aumento repentino no tráfego, mais instâncias de servidores web podem ser provisionadas automaticamente para lidar com a carga adicional. Escalabilidade vertical A escalabilidade vertical envolve aumentar ou diminuir a capacidade de uma única instância, adicionando mais recursos à mesma máquina. Características: Aumento de recursos: adição de CPU, memória, armazenamento ou outros recursos a uma máquina existente para atender às demandas crescentes. Complexidade e Downtime: pode envolver períodos de inatividade e é geralmente mais complexa do que a escalabilidade horizontal. Limites físicos: existe um limite para o quanto uma única máquina pode ser escalada verticalmente devido a limitações físicas. Exemplo: se um banco de dados em um servidor único está sobrecarregado, pode-se escalá-lo verticalmente adicionando mais CPU ou RAM à mesma máquina para melhorar o desempenho. Custo Escalabilidade horizontal: geralmente mais econômica, pois envolve a adição de instâncias menos dispendiosas. Escalabilidade vertical: pode ser mais cara, pois muitas vezes requer hardware mais potente. Complexidade Disciplina COMPUTAÇÃO EM NUVEM Escalabilidade horizontal: geralmente é mais fácil de implementar e manter, pois não requer ajustes na con�guração de uma única instância. Escalabilidade vertical: pode ser mais complexa e pode exigir períodos de inatividade durante o processo de escalonamento. Limitações Escalabilidade horizontal: pode haver limitações no número de instâncias que podem ser gerenciadas e�cientemente. Escalabilidade vertical: limitada pelos recursos físicos disponíveis em uma única máquina. Em muitos casos, uma combinação de escalabilidade horizontal e vertical é usada para atender às demandas variáveis dos