Computação em nuvem

18 Maio 2024 por Harerama Costa.
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models. - Autores: Peter Mell (NIST), Tim Grance (NIST) - NIST. National Institute of Standards and Technology. Disponível em: https://csrc.nist.gov/pubs/sp/800/145/final. Acesso em: 06 maio 2024.

Simplificando a definição de computação em nuvem citado acima pelo NIST: Computação em nuvem é um modelo para permitir amplo acesso via rede e sob demanda a um conjunto compartilhado de recursos computacionais configuráveis (exemplo: redes, servidores, armazenamento, aplicações e serviços) que podem ser rapidamente provisionados e liberados com um esforço mínimo de gerenciamento ou interação com o provedor de serviços.

Com o advento da computação em nuvem nós temos a sensação de ter recursos computacionais ilimitados, conforme nossas necessidades nós vamos consumindo cada vez mais esses recursos compartilhados que o provedor de nuvem nos disponibiliza e também podemos liberar quando não for mais necessário. Sendo assim, podemos atuar de forma escalável, ou seja, conforme demanda. É de se notar também a agilidade e facilidade de provisionar e liberar esses recursos, com poucos cliques podemos aumentar ou diminuir o consumo e até automatizar esse processo. Esse conjunto de recursos é facilmente acessado através do amplo acesso à internet que temos hoje em dia, podemos acessar via computador, celular, tablet, até de dispositivos IoT (Internet das coisas), como por exemplo, um smartwatch.

A maioria dos serviços que utilizamos hoje em dia estão hospedados em um provedor de nuvem e não mais dentro das empresas em servidores potentes, como era há pouco tempo atrás. Isso é transparente para os clientes, já para as empresas é algo bem vantajoso em diversos aspectos, como iremos ver mais abaixo nas características essenciais da nuvem, pois só é possível dizer que estamos utilizando computação em nuvem quando o provedor tiver essas características.


Características da nuvem


  • Amplo acesso a rede
    Os recursos estão disponíveis a nível global. Podemos acessar de qualquer lugar, de qualquer dispositivo, e de forma rápida.

  • Sob demanda
    Podemos consumir e liberar diversos recursos da nuvem conforme nossa necessidade. Se há uma alta demanda dos nossos serviços pelos nossos clientes, eu aumento meu consumo de recursos para poder atendê-los de forma satisfatória, do momento em que diminui essa demanda, eu libero os recursos antes consumidos. É como se fosse um portal self-service sem interveção humana.

  • Conjunto de recursos compartilhados
    Cada cliente de um provedor de nuvem compartilha dos recursos disponibilizados de forma segura com outros clientes. Esse conjunto de recursos pode ser, por exemplo, processamentos computacionais, servidores, armazenamento, rede, serviços. Não precisamos nos preocupar com a manutenção e gerenciamento da infraestrutura, pois toda essa responsabilidade fica por parte do provedor. O conhecimento da localização física desses recursos é em um nível alto de abstração por questões de segurança, ou seja, no máximo iremos saber sobre o país e estado onde estão estes recursos, mas nunca o local exato.

  • Elasticidade
    Temos a opção de provisionar ou liberar esses recursos de forma muito rápida, em poucos minutos podemos, por exemplo, aumentar a potência de um servidor de aplicação ou diminuir. Essa característica nos permite parar de advinhar a quantidade de recursos que iremos precisar, pois podemos aumentar e diminuir nosso consumo de recursos de forma rápida.

  • Medição de consumo
    Podemos ter uma estimativa do custo dos recursos que iremos consumir e a certeza de quanto já consumimos antes mesmo do fechamento da fatura. É importante entender que na nuvem pagamos apenas pelos recursos consumidos e no momento em que consumimos.


Modelos de entrega


Podemos ter acesso aos recursos da computação em nuvem via 4 modelos de entrega que são: nuvem pública, nuvem privada, nuvem compartilhada e nuvem híbrida.


Nuvem pública

Nuvem de acesso público compartilhada por diversos clientes e que funciona com o modelo de consumo de despesa Opex (Despesas operacionais), não precisando assim realizar grandes investimentos, apenas pagamos pelos recursos que usamos.

Nuvem privada

Algumas empresas preferem manter a sua infraestrutura dentro da própria empresa (on-premise), seja por questões de segurança, de conformidade ou algum outro motivo relacionado ao seus negócios. Funciona com o modelo de consumo de despesa Capex (Despesas de capital), então é necessário realizar um investimento inicial para manter a infraestrutura.

Nuvem compartilhada

É quando algumas empresas se unem para montar um ambiente privado e compartilham os recursos entre si. Esse ambiente pode até estar em uma nuvem pública, só que os recursos são exclusivos para essas empresas.

Nuvem híbrida

É possível ter parte da infraestrutura em diferentes modelos de entrega, como por exemplo, uma parte em nuvem pública e outra em nuvem privada.

O modelo de nuvem pública é amplamente utilizado por oferecer mais vantagens em relação a nuvem privada e a compartilhada no ambiente on-premise. A principal das vantagens é a responsabilidade por parte do provedor de nuvem sobre a manutenção e gerenciamento da infraestrutura que é complexo por envolver a manutenção preventiva dos equipamentos elétricos e mecânicos, virtualização dos servidores, segurança, controle de temperatura dos equipamentos, dentre outras responsabilidades. Assim, o cliente pode dedicar todo seu tempo apenas ao seus negócios, produtos e/ou serviços, e não a infraestrutura. Amazon Web Service (AWS), Azure (Microsoft), Google Cloud (Google), são exemplos de empresas que entregam esse modelo de nuvem.
Também existe o conceito de multi-cloud, que não é um modelo de entrega. É a utilização de mais de uma nuvem pública, a empresa pode ter parte da sua infraestrutura na AWS e a outra parte na Azure. Muitas empresas utilizam por diversas razões que podem variar, seja questões de segurança, seja por questões de backup dos dados em mais de uma nuvem, por questões de serviços, por uma nuvem não ter o serviço necessário para a funcionalidade de determinado sistema, dentre outras possibilidades.

As empresas líderes em Serviços Estratégicos de Plataforma na Nuvem de acordo com o respeitado quadrante mágico do Gartner de 2023, são AWS, Azure, Google e Oracle, respectivamente na ordem de liderança.


Modelos de serviço


Existem algumas formas de entrega de serviço de nuvem que nos permite consumir esses recursos anteriomente comentados. Os principais são SaaS, PaaS e IaaS.

IaaS (Infraestrutura como serviço)

Aqui é onde tudo começa, o nível mais baixo. É toda a infraestrutura necessária para que as aplicações funcionem. Este modelo de serviço é utilizado de forma técnica e oferece ao profissional de TI, centros de dados, servidores, rede, armazenamento, virtualização, sistemas operacionais, tudo de forma virtual. Os profissionais utilizam dessa infraestrutura para trafegar, processar, armazenar dados de diferentes fontes e poder através de sistemas retornar informações de utilidade para os usuários.

PaaS (Plataforma como serviço)

Esse serviço oferece tudo que o anterior oferece, porém em um conjunto que facilita e agiliza a manutenção por parte dos profissionais. Por exemplo, não é preciso o profissional configurar um servidor e instalar um serviço de banco dados para poder armazenar dados de aplicações, ele pode simplesmente utilizar o serviço de RDS (Relational Database Service) da AWS que irá realizar toda configuração ncessária e disponibilizar apenas um ponto de acesso ao banco de dados em minutos. Outro exemplo, é o Heroku, serviço onde é possível enviar um arquivo para ter uma aplicação disponível para o usuário, ao invés, de ter que configurar um servidor, instalar servidores web e de aplicação para poder ter uma aplicação em funcionamento.

SaaS (Sistema como serviço)

Esse modelo de serviço é o utilizado pelos usuários finais, que não precisam ser técnicos. Nesse caso, não importa para o usuário a infraestrutura na qual está rodando o sistema que ele irá utilizar. O usuário precisa apenas acessar, se cadastrar e utilizar as funcionalidades oferecidas pelo sistema. Esses sistemas podem ser acessados por diferentes dispositivos e posso citar o Gmail, Office 365 e Netflix, como exemplos de sistemas como serviço.

É importante entender que o modelo IaaS é mais flexível e mais caro em relação ao SaaS que é menos flexível e mais barato. No SaaS o profissional está preso a infraestrutura que foi construída, sem acesso para modificá-la, no IaaS o profissional tem total liberdade para modificar a infraestrutura.

Alguns modelos estão ganhando notoriedade e conhecimento, posso citar como exemplo, o FaaS (Função como serviço), que oferece a opção de execução rápida de códigos que podem acionar diversos tipos de serviços. Assim não é necessário ter configurar um servidor ou ter uma infraestrutura para executar código.

Fonte: NIST - National Institute of Standards and Technology - https://csrc.nist.gov/pubs/sp/800/145/final . Acessado em: 06 maio 2024.
Fonte: Gartner - https://www.gartner.com/en/documents/4970831. Acessado em: 06 maio 2024.