Cloud Computing From: Mastering Cloud Computing Foundations and Applications Programming Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi Morgan Kaufmann Publishers
1 - Introdução à Cloud: As of now, computer networks are still in their infancy, but as they grow up and become sophisticated, we will probably see the spread of computer utilities which, like present electric and telephone utilities, will service individual homes and offices across the country 1969, Leonard Kleinrock, scientist at ARPANET 2
Visão actual: I do not care where my servers are, who manages them, where my documents are stored, or where my applications are hosted. I just want them always available and access them from any device connected through Internet. And I am willing to pay for this service for as long as I need it. 3
A cloud permite, a qualquer pessoa com um cartão de crédito aceder a: - Hardware virtual; - Ambientes de execução; - Serviços de software; - A necessidade de armazenar dados e poder aceder-lhes a partir de qualquer lado, e - A necessidade de ter capacidade de computação à medida das necessidades São as razões mais comuns para considerar a utilização da Cloud. 4
I need to grow my infrastructure, but I do not Tecnologias de Cloud Computing know for how long I have a lot of infrastructure that I want to rent I have a surplus of infrastructure that I want to make use of I cannot invest in infrastructure, I just started my business. I have infrastructure and middleware and I can host applications I want to focus on application logic and not maintenance and scalability issues I have infrastructure and provide application services I want to access and edit my documents and photos from everywhere.. 5
A palavra cloud é associada a diferentes tecnologias, serviços e conceitos: Virtualizaed infrastructure Hardware on demand; Pay as you go; Utility computing; IT out sourcing; Platform as a service; Sofware as a service; Cloud Computing; 6
Tecnologias de Cloud Computing Pay as you go No capital investments Billing Quality of Service IT outsourcing Security Cloud Computing? 7
Na verdade a tecnologia da Cloud, é algo que já estamos a usar há muito: - Aplicações distribuídas e serviços disponíveis na Web e que são acedidos pelos protocolos standard da Internet. Definição: Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and system software in the datacenters that provide those services. [1] [1] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M. Zaharia, A view of cloud computing, Commun. ACM, vol. 53, no. 4, pp. 50 58, Apr. 2010. 8
Esta definição refere-se à computação na cloud como englobando todas as camadas do conceito de cloud, desde o hardware até aos serviços de software e aplicações. Dos mesmos autores: Cloud computing é um novo modelo de negócio onde os consumidores podem ter acesso a hardware e software, através da internet pagando o serviço que utilizam (como fazemos com os serviços públicos de água e eletricidade) [1]. 9
É introduzido o conceito de everything as a service XaaS (2), onde os diferentes componentes do sistema podem ser fornecidos, medidos, e portanto ter um preço correspondente a um serviço. Esta abordagem tem implicações na forma como o software é construído, como é implantado (deployed), como pode ser acedido, como a infraestrutura de IT é desenhada, como as empresas vão alocar os custos para as necessidades de IT. (2) XaaS, acrónimo de X-as-a-Service, onde X pode ser substituído por uma série de valores: S para Software, I para infraestrutura, P para plataforma, H para hardware, D para base de dados, ID para identidade, etc. 10
Definição: 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 [3]. (Modelo para acesso a um conjunto partilhado de recursos computacionais (hardware, rede, servidores, armazenamento de dados, aplicações) que podem ser configurados de acordo com as necessidades do utilizador) [3] P. Mell and T. Grance, The NIST definition of cloud computing. recommendations of the national institute of standards and technology, NIST Special Publication, vol. 145, no. 6, pp. 1 2, 2011. 11
A definição do NIST, realça a abordagem orientada à utility. Os serviços são fornecidos, com um dado preço segundo uma estratégia pay-per-use. Considera-se que um serviço é fornecido segundo um modelo de cloud se: - É acessível através de um web browser, ou através de uma API de Web services ; - Para começar a aceder ao serviço, não é necessário qualquer investimento inicial; - Apenas se paga o que se usa e enquanto se usa. 12
Apesar de muitos serviços serem grátis para utilizadores individuais, geralmente até um certo limite de recursos, para as empresas existe um esquema de preços que os utilizadores subscrevem. Entre cada utilizador e o fornecedor de serviços é assinado um Service Level Agreement onde são estabelecidas as garantias dadas pelo fornecedor de serviços e as contrapartidas em caso de não cumprimento. Visão geral de como o modelo de cloud computing funciona: 13
Manjrasoft Subscription-Oriented Cloud Services: X{compute, apps, data,..} as a Service (..aas) Public Clouds Applications Development and Runtime Platform Cloud Manager Storage Compute Clients Private Cloud Other Cloud Services Govt. Cloud Services 14
Consideram-se três modelos principais de implantação (deployment models) e acesso à cloud: (têm a ver com a localização, e a gestão da estrutura de cloud) Public clouds Se a infraestrutura física pertence a um fornecedor de serviços, e qualquer utilizador paga para usar os seus serviços. Private clouds - Se a cloud é construída para uso exclusivo de uma organização. Hybrid Clouds Se a cloud é uma combinação dos dois modelos anteriores. 15
Cloud Deployment Models Public/Internet Clouds Private/Enterprise Clouds Hybrid/Inter Clouds * 3rd party, multi-tenant Cloud infrastructure & services: * available on subscription basis to all. * A public Cloud model within a company s own Data Center / infrastructure for internal and/or partners use. * Mixed usage of private and public Clouds: Leasing public cloud services when private cloud capacity is insufficient 16
Consideram-se três modelos de serviço (service models): (têm a ver com o tipo de serviços que podem ser acedidos na cloud) Infrastructure as a Service (IaaS): - Se disponibiliza capacidade de computação, rede e armazenamento de dados. Exemplos: Amazon Elastic Compute Cloud (EC2), Eucalyptus, OpenNebula, Nimbus, OpenStack, 17
(IaaS): - Hardware virtual é fornecido na forma de instâncias de máquinas virtuais; - O modelo de preço é geralmente definido por hora de utilização, e depende das caraterísticas do hardware virtual; - O armazenamento de dados é fornecido como espaço em disco. - A rede é fornecida como uma coleção de serviços que fazem a gestão da rede entre máquinas virtuais e a sua ligação à Internet ou a outras clouds. 18
Platform as a Service (PaaS): - Se disponibiliza ferramentas para desenvolver produtos de software; Exemplos: Google App Engine, Windows Azure, LunaCloud, PiCloud, Amazon Web Services - Fornecem máquinas virtuais, sistemas operativos, aplicações, frameworks de desenvolvimento, - O fornecimento dos serviços é garantido por um middleware que cria o ambiente virtual onde as aplicações são desenvolvidas. É da responsabilidade do fornecedor fornecer escalabilidade e tolerância a falhas. 19
(PaaS): - O utilizador pode focar-se na lógica da aplicação. - O utilizador tem um maior nível de abstração, mas também tem menos controlo sobre o ambiente de execução. 20
Software as a Service (SaaS): - Quando o utilizador compra uma subscrição para usar um software online. Exemplos: GoogleApps, Oracle OnDemand CRM, email, Microsoft Office 365, - As aplicações são partilhadas por vários utilizadores, mas a interação de cada utilizador com a aplicação é isolada dos restantes utilizadores. 21
Web 2.0 Interfaces Software as a Service End user applications Scientific applications Office automation, Photo editing, CRM, and Social Networking Examples: Google Documents, Facebook, Flickr, Salesforce Platform as a Service Runtime Environment for Applications Development and Data Processing Platforms Examples: Windows Azure, Hadoop, Google AppEngine Infrastructure as a Service Virtualized Servers Storage and Networking Examples: Amazon EC2, S3, Rightscale, vcloud 22
Mudança de Paradigma - O modelo foi proposto sobre conceitos e tecnologias já existentes. - O que mudou foi a abordagem de como os serviços são produzidos e consumidos. Um fornecedor de Cloud possui uma enorme estrutura concentrada em datacenters (e.g., Google Cloud possui 35 datacenters espalhados pelo nundo) construídos segundo critérios de: - eficiência de alocação de recursos; - eficiência energética; - localização com acesso de rede privilegiado (high-speed networks) 23
O que o modelo de Cloud Computing traz de novo? A perceção de uma capacidade ilimitada de recursos; Através da tecnologia de virtualização tem-se acesso a um conjunto de instâncias de máquinas virtuais cujo número depende da quantidade de recursos necessária em cada momento. Elimina ou reduz o investimento inicial em Tecnologias de Informação (IT); Uma empresa pode usar os serviços sem necessidade de possuir um departamento de informática. 24
O que o modelo de Cloud Computing traz de novo? Permite a utilização dos recurso à medida que são necessários; Os utilizadores podem aumentar ou reduzir a utilização dos recursos à medida das necessidades de cada momento pagando apenas o que utilizam. 25
Características, segundo o NIST: Broad network access (Interoperabilidade de acesso). - O acesso aos recursos da cloud é disponibilizado pelos protocolos standard da internet que são independentes das plataformas e acedíveis por todo o tipo de clientes. Rapid Elasticity (Elasticidade de recursos) - O sistema pode adicionar recursos, seja alocando mais capacidade de computação para as máquinas iniciais, ou alocando mais máquinas. Estes recursos podem ser adquiridos e libertados a qualquer momento pelo cliente. 26
Características, segundo o NIST: Resource Pooling - O fornecedor de cloud cria um conjunto de recursos comuns, que que serão partilhados pelos vários clientes num modelo multi-tenant. Os recursos físicos e virtuais, são alocados /realocados à medida das necessidades. Para o cliente é criada uma abstração que esconde a localização dos recursos. Measured Service (Serviço mensurável) - O sistema é medido, auditado e reportado ao cliente tendo como base um sistema de medida. 27
Características, segundo o NIST: - O serviço é cobrado segundo a quantidade de dados que armazenou, o número de transações, operações de I/O, capacidade de computação usada, On-demand Self-service - O cliente pode alocar recursos sem necessidade de interagir com o pessoal do fornecedor da cloud. 28
29
Outras características / vantagens: Redução de custos - A utilização dos recursos é otimizada, permitindo reduzir os custos. Facilidade de utilização - Não existe necessidade de adquirir licenças de hardware ou software para utilizar ou implementar serviços. 30
Outras características / vantagens: Confiabilidade - A possibilidade de fazer balanceamento de carga e replicação de serviços, torna mais fácil a implementação de sistemas tolerantes a falhas. Low barrier to entry - Uma empresa pode ter acesso a recursos de computação sem investimento em equipamento, pessoal, desenvolvimento e manutenção. 31
Desvantagens: Soluções não personalizadas - Muitas das aplicações ou serviços são genéricas e não adaptadas ao cliente Problemas de largura de banda - Aplicações com elevados níveis de transferência de dados podem não ser eficientes na Cloud. 32
Desvantagens: Segurança e privacidade - Os dados estão numa estrutura desconhecida do cliente. O cliente pode ter problemas em confiar dados críticos a terceiros, Perda de controlo dos recursos por parte do utilizador; 33
Desafios: - Desafios técnicos: como otimizar o fornecimento dinâmico dos recursos, garantindo a qualidade de serviço, mas reduzindo custos. - Desafios de segurança: mesmo que os dados sejam encriptados na comunicação, eles têm de ser desencriptados para serem processados. Como garantir a privacidade? Como proteger contra ataques mal intencionados? - Problemas legais: cada país tem a sua legislação de proteção de dados. Podem levantar-se problemas sobre quem tem direito de acesso aos dados, por exemplo em empresas investigadas por ilegalidades. 34
Licenças Quando se compra um Software tradicional, é usada uma licença denominada End User Licence Agreement (EULA), que descreve: - O Software comprado é do cliente; - Pode ser instalado em uma ou mais máquinas; - Permite uma ou mais ligações; - Possui limitações que o próprio fabricante colocou no Software; As aplicações distribuídas pela Internet criaram a necessidade de mudar a forma como o Software é licenciado. 35
Service Level Agreements (SLA) Um SLA é um contrato que descreve o desempenho do serviço contratado entre o cliente e o fornecedor (cloud provider). - Inicialmente eram negociadas entre cliente e fornecedor - Atualmentes são contratos standardizados até que o cliente tenha um consumo elevado de serviços. 36
Service Level Agreements (SLA) Um SLA geralmente especifica os seguintes parâmetros: - Disponibilidade de serviço (uptime); - Tempo de resposta e latência; - Confiabilidade dos componentes do serviço; - Responsabilidades das partes; - Garantias Se o fornecedor falhar em alguns dos parâmetros, compromete-se a compensar o cliente com um crédito, ou a pagar uma multa. Um SLA funciona como um seguro de compra. 37
Na prática, não existe uniformidade no modelo das SLAs, nem na forma como os serviços são taxados. Existem vários modelos de licenças. Ex. The open Source Model. (http://opensource.org/licenses) Cada organização está a colocar preços aos seus produtos de forma diferente: - App Store - Google Play - Carbonite 38