Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Distribuídos From: Mastering Cloud Computing Foundations and Applications Programming Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi Morgan Kaufmann Publishers Cloud Computing 2 Sistemas Distribuídos 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 3 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.” Sistemas Distribuídos 4 Sistemas Distribuídos 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. 5 Tecnologias de Cloud Computing I need to grow my infrastructure, but I do not know for how long… I cannot invest in infrastructure, I just started my business…. I want to focus on application logic and not maintenance and scalability issues I want to access and edit my documents and photos from everywhere.. I have a surplus of infrastructure that I want to make use of I have a lot of infrastructure that I want to rent … I have infrastructure and middleware and I can host applications I have infrastructure and provide application services 6 Sistemas Distribuídos 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; 7 Tecnologias de Cloud Computing IT outsourcing Pay as you go No capital investments Quality of Service Security Billing Cloud Computing? 8 Sistemas Distribuídos 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. 9 Sistemas Distribuídos 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]. 10 Sistemas Distribuídos É 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. 11 Sistemas Distribuídos 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. 12 Sistemas Distribuídos 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. 13 Sistemas Distribuídos 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: 10 Manjrasoft Compute Storage Applications Development and Runtime Platform Public Clouds Subscription-Oriented Cloud Services: X{compute, apps, data, ..} as a Service (..aaS) Clients Other Cloud Services Govt. Cloud Services Private Cloud Cloud Manager 14 15 Sistemas Distribuídos 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. 16 Cloud Deployment Models Private/Enterprise Clouds * A public Cloud model within a company’s own Data Center / infrastructure for internal and/or partners use. Public/Internet Clouds * 3rd party, multi-tenant Cloud infrastructure & services: * available on subscription basis to all. Hybrid/Inter Clouds * Mixed usage of private and public Clouds: Leasing public cloud services when private cloud capacity is insufficient17 Sistemas Distribuídos 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, … 18 Sistemas Distribuídos (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. 19 Sistemas Distribuídos “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. 20 Sistemas Distribuídos (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. 21 Sistemas Distribuídos “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. 22 Sistemas Distribuídos Runtime Environment for Applications Development and Data Processing Platforms Examples: Windows Azure, Hadoop, Google AppEngine Platform as a Service Virtualized Servers Storage and Networking Examples: Amazon EC2, S3, Rightscale, vCloud Infrastructure as a Service End user applications Scientific applications Office automation, Photo editing, CRM, and Social Networking Examples: Google Documents, Facebook, Flickr, Salesforce Software as a Service Web 2.0 Interfaces 23 Sistemas Distribuídos 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) 24 Sistemas Distribuídos 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. 25 Sistemas Distribuídos 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. 26 Sistemas Distribuídos 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. 27 Sistemas Distribuídos 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. 28 Sistemas Distribuídos 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. 29 Sistemas Distribuídos 30 Sistemas Distribuídos 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. 31 Sistemas Distribuídos 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. 32 Sistemas Distribuídos 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. 33 Sistemas Distribuídos 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; 34 Sistemas Distribuídos 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.35 Sistemas Distribuídos 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. 36 Sistemas Distribuídos 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. 37 Sistemas Distribuídos 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. 38 Sistemas Distribuídos • 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
Compartilhar