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

10 comentários:

  1. 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
  2. Thanks for your interesting ideas.the information's in this blog is very much useful for me to improve my knowledge.
    german courses in bangalore
    best german classes in bangalore
    German Course in Anna Nagar
    German Courses in T nagar

    ResponderExcluir
  3. Its a wonderful post and very helpful, thanks for all this information. You are including better information regarding this topic in an effective way. T hank you so much.
    Selenium Training
    Selenium Course in Chennai
    Selenium Training Institute in Chennai
    Best Software Testing Training Institute in Chennai
    Testing training
    Software testing training institutes

    ResponderExcluir
  4. Fine page, in which did u come happening a distant memory the assessment concerning this posting?i have right of access the majority of the articles with respect to your web website now, and I as a matter of fact in addition to your style. much thanks to you a million and absorb save happening the vivacious deed. Download Re-Loaderr

    ResponderExcluir