Fundamentos de Computação em Nuvem
Aula 1
Conceitos básicos em Computação em Nuvem
Conceitos em Computação em Nuvem
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 profissional, 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-eficiê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 flexibilidade 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.
A computação em nuvem oferece oportunidades para otimizar operações, impulsionar a inovação e fornecer soluções eficientes. É fundamental que os profissionais 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 flexibilidade 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!
Definiçã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 configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que 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.
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 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 finais, 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, configuraçõ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 simplifica 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, flexibilidade, eficiê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 significativos. Além disso, a nuvem permite o pagamento com base no uso real, proporcionando maior eficiência financeira.
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 afirmar 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, de 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.
- 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 fins 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 flexibilidade 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 profissionais especializados. Outro ponto importante que você não pode esquecer é que componentes de software e hardware ficam obsoletos rapidamente. Quando um cliente acessa os recursos na forma de serviço em nuvem, os custos de atualização ficam por conta do provedor.
De fato, a gestão de infraestrutura de equipamentos e profissionais 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 desafios da computação em nuvem
A computação em nuvem oferece diversos benefícios para organizações e usuários, impulsionando a eficiência operacional, a flexibilidade e a inovação:
- Economia de custos: a computação em nuvem permite que as organizações reduzam custos significativos, 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 eficiente permite que as organizações atendam às flutuaçõ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 flexibilidade 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 eficiência financeira e eliminando custos fixos.
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.
Desafios da computação em nuvem
Vamos então discutir eventuais barreiras que podem dificultar a adoção de soluções em nuvem. Entre os principais desafios da computação em nuvem, podemos citar:
- Segurança: a segurança dos dados ainda é uma preocupação significativa. 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 confiabilidade: a dependência de serviços em nuvem significa 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 eficiente pode ser um desafio. 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 certas aplicações.
- Gestão de custos: embora a nuvem ofereça eficiência de custos, a gestão adequada dos custos pode ser desafiadora. 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 desafios em termos de flexibilidade 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 desafios 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 desafios para garantir uma implementação bem-sucedida e segura.
Vamos Exercitar?
Desafios 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 eficiente. A rede conta com profissionais 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 fim 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 de especificar 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 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 confiabilidade do provedor são críticos para operação do sistema.
Saiba Mais
Para saber mais sobre a definição de computação em nuvem, acesse o material O que é computação na nuvem? da Google Cloud.
Referências Bibliográficas
ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. [S.l.] Prentice Hall, 2013.
MELL, P.; GRANCE, T. The NIST definition 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 desafios. 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
Modelos de Serviço em Computação em Nuvem
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 flexibilidade aos usuários, dependendo de suas necessidades e capacidades técnicas. A escolha entre esses modelos depende dos requisitos específicos do projeto e das preferências de gerenciamento de infraestrutura.
Esse conteúdo é importante para a sua prática profissional, 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 eficá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 define 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á configurado, 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 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 eficiência operacional, a flexibilidade 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 define 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 configuraçã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 finais.
A taxonomia mais amplamente aceita, como apresentada em (MELL, 2011), define 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, os clientes podem alocar dinamicamente recursos computacionais, como capacidade de processamento, armazenamento ou rede (Erl; Puttini; Mahmood, 2013). Para tanto, os provedores fazem uso de técnicas sofisticadas 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 fim 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 configurar o ambiente como quiser. Além disso, os clientes podem configurar serviços de rede (como firewall 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 beneficiam de flexibilidade e da agilidade para ajustar a quantidade e a configuraçã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 beneficia 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 significa 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 significa 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 é configurada 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.
O modelo com maior nível de abstração é o SaaS, que consiste em sistemas de software com propósitos específicos, que estão disponíveis para usuários finais 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 office, como o Google Docs e o Microsoft Office 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 configura 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 configuraçõ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.
O modelo com maior nível de abstração é o SaaS, que consiste em sistemas de software com propósitos específicos, que estão disponíveis para usuários finais 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 office, como o Google Docs e o Microsoft Office 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 especificar “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 flexibilidade 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 fixos, é 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 confiabilidade e flexibilidade do ambiente de nuvem.
Por outro lado, os clientes de serviços no modelo 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 fim, temos que os serviços no modelo SaaS são direcionados para usuários finais 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 configurar 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 desafios, 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 fim 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 finais. Com isso, o cliente pode focar no 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 fim, 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 fluxos 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 flexí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íficas 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íficas de cada parte do seu ambiente de TI.
Chegamos ao final 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 móveis. A aplicação deve ter funcionalidades, como: criar um evento, verificar 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ífico 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 configuração de todo o ambiente necessário para desenvolvimento, teste e implantação do sistema. Essas tarefas demandam um tempo considerável e profissionais 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 provedores de 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 desafios.
Saiba Mais
Para saber mais sobre o modelo PaaS, acesse o material O que é PaaS? da Microsoft.
Referências Bibliográficas
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.
LYNN, T. et al. Towards a framework for defining and categorising business Process-As-A- Service (BPaaS). In: 21st International Product Development Management Conference, 2014.
MELL, P.; GRANCE, T. The NIST definition 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 desafios. 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
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íficos de cada organização.
Esse conteúdo é importante para a sua prática profissional, para gerenciar eficientemente a infraestrutura de TI, alinhar tecnologia com os objetivos de negócios e garantir a segurança e eficiência operacional em ambientes de nuvem.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!
Ponto de Partida
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 simplifica a implantação de aplicativos em nuvens e ambientes locais. Oferece uma abordagem leve e eficiente 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, 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íficas 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 fim 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 definem 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 configuração adequada dos serviços de rede. Um exemplo de 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 filiais 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 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áfico 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 beneficiar de tecnologias de nuvem para ter flexibilidade e eficiê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 conflitantes 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 financeiros e profissionais 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 beneficiam 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ífico. 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 ficar em uma nuvem privada. Os demais componentes da aplicação podem ser hospedados em provedor de nuvem pública para fins 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 configurações e tecnologias específicas. 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 significativamente 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).
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 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 identificador 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, Eucalyptus e OpenNebula (Thomé; Hentges; Griebler, 2013).
A plataforma OpenStack pode ser definida 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 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 flexí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.
Ao escolher uma plataforma de computação em nuvem de código aberto, é importante considerar os requisitos específicos 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 suficiente 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 fim 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
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 criptografia 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 Bibliográficas
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 definition 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ção ao 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
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 profissionais podem criar e gerenciar infraestruturas mais eficientes, flexí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 eficiê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. Profissionais que dominam esses conceitos estão melhor preparados para enfrentar os desafios 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 significativas 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 eficiente 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) conforme necessário, permitindo que o sistema mantenha o desempenho e a eficiência operacional sob condições de demanda flutuante.
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 definam regras específicas para escalar recursos automaticamente. Essas políticas podem ser baseadas em horários específicos, métricas de desempenho ou outras condições predefinidas.
- 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 eficiente à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íficas do sistema.
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 flexibilidade 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
- Escalabilidade horizontal: geralmente é mais fácil de implementar e manter, pois não requer ajustes na configuraçã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 eficientemente.
- 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 sistemas na nuvem, proporcionando flexibilidade e eficiê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 flutuante, resultando em eficiência operacional e financeira. Aqui estão algumas maneiras pelas quais esses conceitos contribuem para a otimização de recursos e redução de custos:
Uso eficiente 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 eficiente, 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íficas, evitando a necessidade de investimentos antecipados em infraestrutura que podem não ser totalmente utilizados.
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 eficiê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 eficientes.
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 eficiente de recursos, otimizando a infraestrutura para atender às necessidades atuais.
Flexibilidade e agilidade:
- Elasticidade: proporciona flexibilidade 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 eficazes de elasticidade e escalabilidade, as organizações podem garantir que estão utilizando seus recursos de maneira eficiente, 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
Imagine uma empresa de comércio eletrônico que vende produtos online. Durante a Black Friday, a demanda por seus produtos aumenta significativamente, 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. Configurar 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 Bibliográficas
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.
Encerramento da Unidade
Fundamentos de Computação em Nuvem
Videoaula de Encerramento
Olá, estudante! Nesta videoaula, exploraremos os diversos modelos de serviços em nuvem, destacando suas características distintas, benefícios e desafios associados. Compreender esses modelos é essencial para tomar decisões informadas ao escolher a abordagem de nuvem mais adequada para atender às necessidades específicas 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 configurações.
Benefícios:
- Escalabilidade e flexibilidade 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 configurar 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 configurações de infraestrutura, permitindo foco no código e na lógica do aplicativo.
Desvantagens:
- Menos controle sobre a infraestrutura comparado ao IaaS.
- 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 configuraçã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 profissionais podem tomar decisões informadas ao planejar a transição para a nuvem. A escolha entre IaaS, PaaS ou SaaS dependerá das necessidades específicas de uma organização em termos de controle, flexibilidade e complexidade operacional. Esses modelos oferecem um panorama abrangente das opções disponíveis, capacitando as organizações a alavancar os benefícios da computação em nuvem de maneira eficaz.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!
Ponto de Chegada
Olá, estudante! Para desenvolver a competência desta Unidade, que é conhecer e exemplificar 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.
- 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 flexibilidade.
- 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!
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 desafios relacionados à sua infraestrutura de TI desatualizada. Com a crescente demanda por flexibilidade, 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 eficaz.
Desafios identificados:
- 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 eficientemente a picos de demanda ou expandir suas operações.
- Dificuldades em inovar rapidamente: a infraestrutura legada dificulta a implementação rápida de novas tecnologias, impedindo a empresa de se manter competitiva e inovadora.
Diante desses desafios, 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?
Reflita
- 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 desafios é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 eficaz?
- Considere as implicações éticas e de segurança relacionadas à confiança e privacidade dos dados em nuvem, destacando estratégias e práticas recomendadas para mitigar esses desafios. 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 do estudo de caso
Resolução da situação-problema
Estratégia de adoção da computação em nuvem:
- Avaliação da infraestrutura atual: realizar uma análise abrangente da infraestrutura atual para identificar sistemas críticos e requisitos específicos.
- 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.
- 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íficas da Empresa Alfa.
- 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.
- 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 flexibilidade e escalabilidade, permitindo uma resposta mais rápida às demandas do mercado e promovendo uma cultura de inovação contínua.
Dê o play!
Assimile
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.
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.