Seção: Tutoriais Infraestrutura

 

Cloud Computing: Computação em Nuvem

 

Definições

 

Conceitualmente definida pela NIST (National Institute of Standards and Technology, em português Instituto Nacional de Padrões e Tecnologia), a Cloud Computing é um modelo que permite a expansão de uma rede de acesso sob demanda para um conjunto partilhado de recursos computacionais configuráveis que podem ser provisionadas de forma simples e disponibilizadas com o mínimo de gerência ou interação direta do provedor do serviço [3].

 

O modelo de nuvem é composto por cinco características essenciais, três modelos de serviço e quatro modelos de desenvolvimento, que estão descritos nas seções seguintes.

 

Conforme exemplificado na Figura 1, a computação em nuvem pode ser vista como um modelo que provê a expansão de uma rede e seu acesso a partir de qualquer plataforma e em qualquer lugar.

 

Figura 1: Definição básica para um modelo de computação em nuvem [10]

 

As vantagens de se contratar esses serviços são inúmeras, para uma infinidade de cenários e tipos de clientes; dentre elas destacam-se as seguintes [7]:

  • Não há gastos com hardware e software, manutenção e administração de datacenters locais e eletricidade.
  • Redução de custos de backup de dados e recuperação em caso de desastre.
  • As nuvens permitem um acesso no formato de autoatendimento de recursos computacionais infinitos disponíveis para o uso, em qualquer quantidade e a qualquer momento.
  • Os recursos são disponibilizados através da rede e acessados através de mecanismos padrões que permitam a utilização dos mesmos por plataformas heterogêneas, como smartphones, laptops, entre outros.

 

As preocupações que algumas organizações levantam em relação a esse tipo de serviço é referente à segurança e a dificuldade de migração entre provedores diferentes, problema este também relacionado à segurança das informações.

 

Caraterísticas essenciais

 

As cincos características essenciais para um modelo de computação em nuvem são as seguintes [3]:

  • Autoatendimento sob demanda: um consumidor pode prover capacidades computacionais sem interação do provedor de serviço.
  • Acesso amplo à rede: os recursos estão disponíveis na rede e podem ser acessados pelos mecanismos que promovam um uso através de plataformas heterogêneas.
  • Polling de recursos: o provedor do serviço está sendo requisitado para servir múltiplos consumidores usando um modelo de múltipla locação, com diferentes recursos, físicos e virtuais, dinamicamente atribuídos de acordo com a solicitação.
  • Elasticidade: os recursos podem ser elasticamente providos e liberados, em alguns casos automaticamente, permitindo alta escalabilidade para dentro e fora de acordo com a demanda.
  • Serviço sob medida: sistemas de nuvem controlam e otimizam o uso de recurso por aproveitamento da medição do recurso a um nível apropriado de abstração para o tipo de serviço.

 

Modelo de Serviço bases

 

São três os modelos de serviços básicos definidos em um modelo de computação em nuvem [3]:

  • IaaS - Infrastructure as a Service ou Infraestrutura como Serviço: capacidade de prover aplicações através da infraestrutura da nuvem aos consumidores.
  • PaaS - Plataform as a Service ou Plataforma como Serviço: capacidade de prover, através da infraestrutura de nuvem, aplicações adquiridas usando linguagens de programação, bibliotecas, serviços e ferramentas suportados pelo provedor.
  • SaaS - Software as a Service ou Software como Serviço: capacidade de prover aplicações, através da infraestrutura da nuvem, sob demanda aos usuários. As aplicações ficam disponíveis para os clientes através de uma interface web ou interface de programa.

 

A Figura 2 ilustra as funções de cada modelo de serviço dentro computação em nuvem, entre provedor, desenvolvedor e usuário final.

 

Figura 2: Papéis na computação em nuvem [11]

 

Atualmente a computação em nuvem agregou outras variantes de tipologia de serviços, as quais são descritas a seguir [3]:

  • DaaS - Development as a Service ou Desenvolvimento como Serviço: as ferramentas de desenvolvimento tomam forma na computação em nuvem como ferramentas compartilhadas, ferramentas de desenvolvimento web-based e serviços baseados em mashup. Mashup, se resume a diferentes serviços que podem funcionar simultaneamente, ou seja, é a combinação de dois aplicativos que podem complementar e melhorar a oferta de determinado serviço
  • CaaS - Communication as a Service ou Comunicação como Serviço: uso de uma solução de Comunicação Unificada hospedada em datacenter do provedor ou fabricante.
  • DBaaS - Data Base as a Service ou Banco de dados como Serviço: quando utiliza a parte de servidores de banco de dados como serviço.
  • SECaaS - Security as a Service ou Segurança como Serviço: se utiliza ferramentas de segurança como serviço.
  • EaaS ou XaaS - Everything as a Service ou Tudo como Serviço: consiste em prover todos os recursos computacionais, infraestrutura, plataformas, software, suporte, enfim, o que envolve T.I.C. (Tecnologia da Informação e Comunicação) como um serviço. O termo XaaS é uma forma de proliferar os diferentes recursos de TIC que podem ser inseridos na nuvem.

 

Modelos de desenvolvimento

 

O modelo de implementação a ser seguido dependerá dos tipos de serviços ofertados e das necessidades das aplicações a serem oferecidas. Assim, os modelos de implementação são desenvolvidos para melhor atender os modelos de negócios, garantindo um nível de controle do tipo e conteúdo da informação disponibilizada e sua visibilidade na nuvem.

 

Basicamente, quatro são os modelos de desenvolvimento previstos no modelo de computação em nuvem, cujas características são descritas a seguir [3][9]:

  • Nuvem Privada: consiste em uma nuvem de propriedade particular, com infraestrutura e segurança local e privada, mantida e administrada por organizações privadas.
  • Nuvem Comunitária: consiste numa nuvem gerada por organizações de uma determinada localidade, com negócios semelhantes, compartilham uma mesma infraestrutura administrada internamente ou por um terceiro, gerando assim uma economia de custos, pois os gastos são distribuídos entre essas empresas.
  • Nuvem Pública: consiste na nuvem operada por um provedor de serviços de nuvem, os quais são disponibilizados na internet pública a disposição para venda ou utilização. Estes podem ser gratuitos ou vendidos sob demanda.
  • Nuvem Híbrida: consiste na nuvem que combina os recursos da nuvem privada com os recursos da nuvem pública, como serviços SaaS e IaaS. Essa estratégia permite que as organizações mantenham uma administração mais eficiente e segura para uma linha de negócio mais crítico e sigiloso.

 

A Figura 3 ilustra de maneira simplificada esses quatro modelos de desenvolvimento.

 

Figura 3: Modelos de implementação de nuvem [próprio autor]

 

Plataformas de Serviços em nuvem

 

Não importa o modelo de negócios ou o tamanho da sua empresa, a cloud computing sempre terá uma solução que pode ser integrada às suas rotinas operacionais. Ferramentas de gestão, máquinas virtuais e mesmo serviços de armazenamento remoto podem ser contratados em busca de uma empresa mais eficiente e dinâmica.

 

Existem inúmeras plataformas de serviços em nuvem, quer sejam púbicas, privada ou híbrida. Essas plataformas disponibilizam serviços específicos de acordo com a contratação. A seguir são descritas algumas das principais plataformas disponíveis no mercado [6].

  • Amazon web services (aws): é uma plataforma de serviços em nuvem segura, oferecendo poder computacional, armazenamento de banco de dados, distribuição de conteúdo e outras funcionalidades para ajudar as empresas em seu dimensionamento e crescimento. A AWS faz uso de um modelo de nuvem pública onde ela fornece a manutenção e administração do serviço [12].
  • Google Cloud: é uma suíte de computação em nuvem pública oferecida pela Google, funcionando na mesma infraestrutura que a empresa usa para seus produtos dirigidos aos usuários, juntamente com um conjunto de ferramentas de gerenciamento modulares. Fornecem uma série de serviços incluindo computação, armazenamento de dados, análise de dados e aprendizagem de máquina [13].
  • OpenStack: é uma plataforma de código aberto, capaz de gerenciar os componentes de múltiplas infraestruturas virtualizadas, bem como criar modelos de nuvem privada e pública. É considerada uma plataforma de software por fornecer APIs que, em conjunto, são capazes de controlar todos os recursos disponíveis na oferta dessa infraestrutura: máquinas virtuais, rede, armazenadores e balanceadores de carga [14].
  • Microsoft Azure: constitui um conjunto de serviços de nuvem para ajudar as organizações a enfrentar seus desafios de negócios, serviços esses disponibilizados no modelo de nuvem pública. Sua computação em nuvem é definida como uma combinação de Software como serviço (SaaS) com computação em grelha [15].