O que é Cloud Computing?

Recentemente, iniciei este blog para poder criar cada vez mais conteúdo em Português sobre essa nova tecnologia chamada "Cloud Computing". Acredito que todos como eu já devem ter se perguntado: Mas o que de fato é Cloud Computing? E será mesmo que essa tecnologia é assim tão recente?
Espero aqui poder sanar todas as dúvidas sobre o que é Cloud Computing, o que havia antes dele e alguns termos importantes sobre ele.

O que é Cloud Computing? A definição

Não se sabe exatamente de onde surgiu esse termo, porém sabe-se que em muitos diagramas de rede é comum referirmos à Internet pelo símbolo da nuvem (vide Fig.1). Isso dá a idéia da infinidade de computadores ligadas à ela por meio de uma comunicação baseada em rede.
Fig.1 - Um exemplo de Diagrama de Rede.
Uma das empresas pioneiras em Cloud Computing foi a Amazon.com, quando após o estouro da bolha da pontocom no setor de e-commerce e uma série de modernizações em seus data centers, eles conseguiram diminuir o seu processo como um todo em menos de 10% de sua capacidade total de seus data centers. Vendo que isso trouxe inúmeros benefícios à sua infraestrutura, deu-se início ao desenvolvimento de um produto que pudesse ser vendido a seus consumidores. Em 2006, a Amazon lançou o serviço Amazon Web Services (AWS).
Em 2011, a NIST (National Institute of Standards and Technology) definiu o termo formal de Cloud Computing, onde:

"Cloud Computing é um modelo de acesso à rede de forma sob demanda, conveniente e úbiqua a um conjunto compeartilhado de recursos computacionais configuráveis (rede, armazenamento, aplicações e serviços) que podem ser rapidamente provisionados e disponibilizados com um mínimo esforço de gerenciamento ou interação com o provedor. O modelo de nuvem é composto de cinco características essenciais, três modelos de serviços e quatro modelos de implantação."

Nas próximas seções, irei detalhar um pouco mais as características essenciais, bem como os modelos de serviços e os quatros modelos de implantação.
Modelo formal da NIST sobre o Cloud Computing

As cinco características essenciais de Cloud computing

As cinco características essenciais definidas pela NIST são os conceitos definidos como os mais importantes conceitos para se criar um ambiente em nuvem, ou seja, sem elas não haveria como existir um ambiente em nuvem. São Elas:
  • Acesso à rede ampla: A intenção desse conceito é permitir que todas as capacidades do ambiente em Nuvem esteja disponível através da rede e que possa ser acessado através de padrões que promovam o uso de tecnologias heterogeneas, sejam elas thin ou thick client. Ex.: Celulares, Tablets, desktops, etc.
  • Elasticidade rápida: Um ambiente de Cloud deve ser auto-gerenciável de forma que se a aplicação recebe muitas requisições, ela deve automaticamente provisionar mais recursos de forma a atender à demanda momentanea. Da mesma forma, se a quantidade de acessos simultaneos diminuir ela deve automaticamente desligar alguns recursos para não deixá-los ociosos. É importante lembrar que esse conceito não torna mensurável a quantidade máxima de recursos que um provedor deve disponibilizar, o que dá toda a sensação do usuário a disponibilizar uma quantidade ilimitada de recursos de forma a atender toda a demansa da aplicação
  • Serviço mensurável: Totalmente ligado ao anterior, um ambiente de Cloud deve além de provisionar os recursos de forma a atender a demanda no momento deve disponibilizar um dashboard que o usuário possa saber quais recursos foram utilizados e o quanto foi. Assim é possível fornecer tanto para o provedor quanto para o usuário transparência total ao mostrar a quantiade exata de recursos.
  • Serviço sob demanda: Permite ao usuário provisionar recursos tais como tempo de CPU ou armazenamento na rede de forma automática sem precisar de intervenção humana com qualquer provedor.
  • Pooling de recursos: Um ambiente de cloud deve manter um pool de recursos de forma a provisioná-los imediatamente quando é necessário alocar mais recursos para qualquer usuário que precisar. Esse conceito utiliza um modelo no qual é chamado de multi-tenant (multi-clientes), ou seja, um mesmo recurso pode ser utilizado por qualquer usuário quando estiver disponível.

Os modelos de Serviço

Os Modelos de serviço são definidos pela NIST como os modelos que permite estabelecer um acordo entre você(usuário) e o provedor sobre o nível de interferência do usuário. Você, como usuário de um provedor de Cloud Computing, pode querer manter o controle todos os servidores podendo definir o que quiser neles ou apenas usufruir de uma aplicação que está disponível na Internet. São elas:
  • SaaS: Software-como-Serviço. É o modelo mais comum que utilizamos hoje em dia, sendo o Software já rodando em um endereço na Internet onde é necessário um cadastro prévio para utilizar o software. Exemplos de SaaS incluem o Salesforce, Google (Gmail, Docs, Drive, etc.) e o Zoho
  • PaaS: Plataforma-como-Serviço. Esse modelo é mais voltado a empresas que querem desenvolver suas próprias aplicações sem se preocupar em manter um Datacenter para disponibilizá-las. Exemplos são o Google App Engine, OpenShift e Heroku
  • IaaS: Infraestrutura-como-Serviço. Caso a empresa prefira ainda assim ter controle sobre os servidores que estão utilizando, podendo escolher Sistema Operacional, quantidade de CPUs, Memória, etc. esse é o modelo de serviço onde você pode ter o controle. Mesmo assim ainda há a transparência da localidade onde você não precisa ter um datacenter próprio nem saber onde provedor possui um.
Esses são os modelos clássicos definidos pela NIST, porém há empresas que também estão fornecendo outros modelos tais como Data-as-a-Service (DaaS), Security-as-a-Service(SECaaS), Storage-as-a-Service(STaaS), etc.

Os modelos de implantação(deployment)

Os modelos de implantação tratam da forma como os datacenters serão gerenciados e também para quem a infraestrutura da nuvem será provisionada.
  • Público: A infraestrutura de nuvem é provisionada para qualquer um que deseja utilizar. Essa infra pode ser mantida, gerenciada e operada por empresas, universidades ou departamentos governamentais, ou até mesmo a combinação deles. 
  • Privado: A infraestrutura de nuvem é provisionada para uso exclusivo de uma empresa, compreendendo diversos departamentos da empresa. Ela é mantida por uma empresa, um terceiro ou uma combinação entre eles.
  • Comunidade: A infraestrutura é provisionada para uso exclusivo de um grupo específico de usuários e que possuam os mesmo requisitos (ex. Regras de segurança extremamente rígidas e observância com determinadas políticas). Ela pode ser mantida por um ou mais membros desse grupo, um terceiro ou uma combinação entre eles.
  • Híbrida: Essa infraestrutura é uma combinação de um ou mais modelos anteriores (público, comunidade, privado) de forma que podem ser unidos para se tornar uma infraestrutura através de padrões ou tecnologia proprietária que permita a interoperabilidade entre eles.
Essa parte é mais teórica a respeito de Cloud Computing e por isso não o postei, criando essa página. Assim, os posts serão mais focados na prática do que na teoria. Além do mais, caso ainda tenham dúvidas sobre algumas dessas teorias vocês poderão encontrá-las mais facilmente. =D

7 comentários:

  1. Excellent post!!! In this competitive market, customer relationship management plays a significant role in determining a business success. That too, cloud based CRM product offer more flexibility to business owners to main strong relationship with the consumers. Salesforce Training Institutes in Chennai | Salesforce Training in Chennai

    ResponderExcluir
  2. Salesforce is a cloud based CRM software. Today's most of the IT industry use this software for customer relationship management. To get more details about salesforce please refer this site.

    Regards..

    Salesforce CRM Training in Chennai

    ResponderExcluir
  3. Your blog is really nice and informative. Thanks for sharing this post. Keep posting..

    Regards..
    Salesforce Course in Chennai

    ResponderExcluir
  4. In near future, big data handling and processing is going to the future of IT industry. Thus taking Hadoop Training in Chennai | Big Data Training in Chennai will prove beneficial for talented professionals.

    ResponderExcluir
  5. Informative article on Salesforce technology!!! Your post helped me to understand the career prospects in cloud based CRM tool. Salesforce Training Institutes in Chennai | Salesforce Training in Chennai

    ResponderExcluir