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 (arquitetura) 2 Sistemas Distribuídos 2 – A Arquitetura da Cloud Mais um definição: Cloud Computing is a utility-oriented and Internet-centric way of delivering IT services on demand. These services cover the entire computing stack: from the hardware infrastructure packaged as a set of virtual machines to software services such as development platforms and distributed applications. A computação na Cloud suporta qualquer serviço de tecnologias da informação (IT) que possa ser consumido como uma utilidade, e fornecido através da internet. 3 Sistemas Distribuídos 2 – A Arquitetura da Cloud O modelo de referência da cloud: • Na base da pilha que forma o modelo de cloud computing está a infraestrutura de hardware. • Tecnologias de virtualização são usadas para garantir um ambiente de execução, isolamento e segurança das aplicações, e qualidade de serviço. • Estas tecnologias permitem particionar os recursos (CPU, memória, periféricos, rede e armazenamento) 4 Sistemas Distribuídos 2 – A Arquitetura da Cloud O modelo de referência da cloud: • A camada de gestão da infraestrutura mais a infraestrutura física formam o modelo de serviço: IaaS. • IaaS fornece serviços limitados para construir aplicações. Essa funcionalidade constitui a camada acima da pilha, que vai fornecer uma plataforma para o desenvolvimento de aplicações. • Essa plataforma inclui ferramentas como: interfaces baseadas na web; interfaces baseadas em linha de comando; frameworks para computação paralela e distribuída. 5 Sistemas Distribuídos 2 – A Arquitetura da Cloud O modelo de referência da cloud: • Neste nível, os utilizadores podem construir aplicações usando a API fornecida pelo midlleware ao utilizador. • Este nível constitui o modelo de serviço PaaS. • Finalmente o nível de topo do modelo de referência da cloud contém serviços fornecidos como aplicações. Geralmente são aplicações web e constituem o modelo de serviço: SaaS. 6 Sistemas Distribuídos 2 – A Arquitetura da Cloud Virtual Machine (VM), VM Management and Deployment QoS Negotiation, Admission Control, Pricing, SLA Management, Monitoring, Execution Management, Metering, Accounting Cloud Hosting Platforms Web 2.0, Mashups, Concurrent and Distributed Programming, Workflows , Libraries, Scripting Cloud Programming Environment and Tools User Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs Cloud Applications Cloud Resources A u to n o m ic C lo u d E c o n o m y A d a p tiv e M a n a g e m e n t User-level Middleware Core Middleware System Infrastructure S aa S P aa S Ia aS Ia aS ( M ) P u re P aa S Virtual Machine (VM), VM Management and Deployment QoS Negotiation, Admission Control, Pricing, SLA Management, Monitoring, Execution Management, Metering, Accounting Cloud Hosting Platforms Web 2.0, Mashups, Concurrent and Distributed Programming, Workflows , Libraries, Scripting Cloud Programming Environment and Tools User Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs Cloud Applications Cloud Resources A u to n o m ic C lo u d E c o n o m y A d a p tiv e M a n a g e m e n t User-level Middleware Core Middleware System Infrastructure S aa S P aa S Ia aS Ia aS ( M ) P u re P aa S P u re S aa S 7 Sistemas Distribuídos 2 – A Arquitetura da Cloud Infrastructure as a Service – IaaS • Máquinas virtuais constituem os componentes atómicos que são disponibilizados ao utilizador a aos quais é atribuído um preço de acordo com as suas caraterísticas ou workload: memória, nº de processadores, capacidade de disco. • Em muitos casos as máquinas virtuais vêm apenas com o sistema operativo seleccionado. • Outras soluções, fornecem imagens virtuais que já contêm pacotes de software de uso comum: servidor web; SGBD; LAMP/XAMPP LAMP – Linux Apache MySQL and PHP; XAMPP – Apache + MySQL + PHP + Pearl 8 Sistemas Distribuídos 2 – A Arquitetura da Cloud Infrastructure as a Service – IaaS • Além da gestão básica das máquinas virtuais, serviços adicionais podem ser fornecidos como: - Interface web para aceder aos recursos; - Gestão de workload; - Alocação de recursos; - Suporte para aceder a serviço de outros fornecedores (third party) O workload define a capacidade de um servidor realizar um dado trabalho: - descrição e número de instâncias necessárias; - acesso ao disco (I/O); - quantidade de RAM necessária; - network throughput e latência. 9 Sistemas Distribuídos 2 – A Arquitetura da Cloud Infrastructure as a Service – IaaS Uma IaaS é formada por 3 níveis de componentes: - Infraestrutura física; - Software de gestão da infraestrutura; - Interface do utilizador. 10 Tecnologias de Cloud Computing Physical Infrastructure Datacenter Cluster Desktop / Heterogeneous Resources Third Party IaaS Cloud Infrastructure Management Software Scheduling Pricing / Billing Monitoring QoS SLA Management Reservation VM Pool Management VM Image Repository Provisioning Web Services, Portals, REST API Web based Management Interface 11 Sistemas Distribuídos 2 – A Arquitetura da Cloud Infrastructure as a Service – IaaS A Interface do utilizador permite ao utilizador aceder aos serviços fornecido pela infraestrutura através de: Consolas com interface web; Web services; - permitem interactuar com os serviços sem RESTful APIs; intervenção humana. mash-ups - página ou aplicação web que usa o conteúdo de mais do que uma fonte para criar um único serviço.. 12 Sistemas Distribuídos 2 – A Arquitetura da Cloud - IaaS O Software de gestão da infraestrutura faz a gestão das máquinas virtuais através do um software de escalonamento (scheduler) que aloca a execução das máquinas virtuais e interactua com os outros componentes: - “Pricing and billing” – regista o custo de execução de cada instância das máquinas virtuais, e mantém os dados necessários para faturar o serviço ao cliente. - “Monitoring” – regista os dados de execução de cada instância das máquinas virtuais, e mantém os dados necessários para reportar e analisar o desempenho (performance) do sistema. 13 Sistemas Distribuídos 2 – A Arquitetura da Cloud - IaaS O Software de gestão da infraestrutura … outros componentes: - “Reservation” –armazena a informação sobre as instâncias de máquinas virtuais já executadas e sobre as que estão previstas executar. - “QoS/SLA management” – mantém informação sobre as SLAs acordadas com os utilizadores. Este componente é usado em conjunto com o serviço de monitorização paraverificar se cada instância de uma máquina virtual foi executada com a desejada qualidade de serviço. 14 Sistemas Distribuídos 2 – A Arquitetura da Cloud - IaaS O Software de gestão da infraestrutura … outros componentes: - “VM repository” – fornece um catálogo com as imagens virtuais disponíveis, que o utilizador pode usar para criar as suas instâncias. Alguns serviços permitem ao utilizador adicionar novas imagens ao serviço. - “VM pool manager” – mantém informação sobre as instâncias em estado executável. - “ Provisioning” – permite fornecer uma instância de uma máquina virtual que é externa à infraestrutura física em uso. 15 Sistemas Distribuídos 2 – A Arquitetura da Cloud - IaaS A infraestrutura física pode ser de vários tipos: - Um grande “datacenter” com milhares de máquinas, uma pequena cloud implementada em casa, uma infraestrutura média criada para uma empresa em particular, … - Eventualmente pode conter recursos locais e recursos alugados a fornecedores de IaaS. - Os recursos também podem ser heterogéneos: PCs, workstations, clusters, … 16 Sistemas Distribuídos 2 – A Arquitetura da Cloud - IaaS Soluções de IaaS completas fornecem as 3 camadas descritas. É o caso por exemplo de: Amazon, GoGrid, Rightscale, Rackspace, … Outras soluções fornecem apenas as camadas de interface com o utilizador e software de gestão. É o caso por exemplo de: Eucalyptus, OpenNebula, OpenStack, … 17 Sistemas Distribuídos 2 – A Arquitetura da Cloud Platform as a Service – PaaS - Fornecem ambientes para desenvolvimento e implantação de aplicações que executam na cloud. - A funcionalidade principal do middleware é a gestão das aplicações não fornecendo qualquer interface para aceder à infraestrutura. 18 Sistemas Distribuídos Programming API / Libraries Physical Infrastructure IaaS Providers PaaS Core Middleware Resources Management Application Management User Management QoS / SLA Management & Billing Elasticity & Scaling Runtime Web Services, Portals, REST API Web based Interface 19 Sistemas Distribuídos 2 – A arquitetura da Cloud – PaaS O middleware da PaaS tem o com principal função a gestão de aplicações: - automatizando o processo de implantação de aplicações; - configurar componentes de aplicações; - configurar tecnologias de suporte como bases de dados e “load balancers”; 20 Sistemas Distribuídos 2 – A arquitetura da Cloud – PaaS A interface com os utilizadores pode ser através de: - Interface web; - API’s de programação. Ofertas de PaaS podem incluir o middleware para desenvolvimento de aplicações mais a infraestrutura (Google AppEngine, MS Azure, …) Ou, apenas o software para gestão das aplicações (AppScale, Cloud IQ, … 21 Sistemas Distribuídos 2 – A arquitetura da Cloud – PaaS PaaS – Caraterísticas Principais: ´ • “Runtime framework” - Possui um ambiente de execução, que executa o código do utilizador de acordo com as políticas acordadas entre utilizador e fornecedor. • Abstração – os utilizadores estão ao nível de abstração da aplicações. Não se apercebem das máquinas virtuais nem da infraestrutura. 22 Sistemas Distribuídos 2 – A arquitetura da Cloud – PaaS PaaS – Caraterísticas Principais: • Automação – O processo de fazer o deploy das aplicações é automático. A Paas é também capaz de aumentar de forma automática os recursos de acordo com as necessidades de utilização, tendo em contas as SLA.s. • “Cloud Services” – A plataforma oferece serviços e interfaces para simplificar a criação de aplicações “elásticas”, e com elevada disponibilidade. Fornecem também serviços de monitorização, gestão e geração de relatórios. 23 Sistemas Distribuídos 2 – A arquitetura da Cloud – PaaS PaaS – Desvantagens: • “Vendor lock-in”- A maioria das PaaSs fornece um ambiente de desenvolvimento que prende o utilizador à plataforma usada. • Migrar a aplicação para outro fornecedor pode não ser fácil . 24 Sistemas Distribuídos 2 – A arquitetura da Cloud Software as a Service - SaaS: • Modelo de serviço em que é fornecido o acesso a aplicações através da internet por um serviço baseado na web. • Os utilizadores só precisam de um browser, fornecer as suas credenciais e detalhes para faturação e podem aceder à aplicação sem custos de hardware, nem de desenvolvimento e manutenção. • O modelo é útil para aplicações que possam servir para um grande âmbito de utilizadores. Ex.los CRM – Customer relationship management; ERP – enterprise resource planning) 25 Sistemas Distribuídos 2 – A arquitetura da Cloud Software as a Service - SaaS: • As caraterísticas base do SW são iguais para todos e cada utilizador pode depois adaptar (customized) os detalhes às suas necessidades. • As aplicações SaaS são “multitenent” o que permite aos fornecedores otimizarem a gestão dos recursos. • Outras aplicações muito usadas como SaaS são as redes sociais. Permitem integrar outras aplicações que terão acesso aos contactos das primeiras. 26 Sistemas Distribuídos 2 – A arquitetura da Cloud - SaaS Todas as aplicações SaaS partilham as seguintes caraterísticas: • O Software é acedido através da Internet usando um browser. • A licença é baseada numa subscrição/utilização e é cobrada periodicamente. • O Software e o serviço são monitorizados e mantidos pelo fornecedor, independentemente da localização onde executam os diferentes componentes. 27 Sistemas Distribuídos 2 – A arquitetura da Cloud - SaaS • Pode haver código executado do lado do cliente mas o utilizador não é responsável por manter esse código nem a sua interação com o serviço. • A redução dos custos de distribuição, manutenção e interação com o utilizador final faz com que as Aplicações SaaS sejam mais baratas que os pacotes de software distribuídos de forma clássica. • Novas versões, atualizações e correções são muito mais fáceis de efetuar. 28 Sistemas Distribuídos 2 – A arquitetura da Cloud - SaaS • Aplicações SaaS têm um acesso inicial muito mais fácil que as aplicações concorrentes instaladas localmente. Tem um custo cobrado ao longo do tempo e podem ser escaláveis a pedido. • Todos os utilizadores têm a mesma versão do Software, portanto cada utilizador é compatível com os outros. • SaaS suporta múltiplos utilizadores e fornece um modelo de dados partilhado através de uma única instância da aplicação. Uma única instância do software é partilhada por vários utilizadores mas cada um tem os seus dados, a sua configuração e funcionalidades especificas. (“single-instance, multi-tenancy model). 29 Sistemas Distribuídos 2 – A arquitetura da Cloud Com a evolução da Cloud vários tipos de serviços foram surgindo, um dos mais desenvolvidos é o IDaaS – Identity as a Service Fornece serviços de autenticação e autorização em redes distribuídas. Um serviço de identificação armazena informação associada com uma entidade digital numa forma que pode ser inquirida e gerida parautilização em transações eletrónicas. 30 Sistemas Distribuídos 2 – A arquitetura da Cloud IDaaS – Identity as a Service - Um entidade digital é um objecto constituído por atributos e metadados que incluem associações com outros objetos. - Uma identidade é um conjunto de caraterísticas que torna a entidade reconhecível num determinado contexto. Por exemplo: - Para ser reconhecido na rede irá ser inquirido pelo seu username e password (single-factor authentication) 31 Sistemas Distribuídos 2 – A arquitetura da Cloud IDaaS – Identity as a Service - Uma autenticação mais segura requer um esquema de duas vias (two-factor authentication): é pedido o username e password e uma chave fornecida pelo hardware, por exemplo o MAC* address. - Serviços de identidade têm como componentes principais: - a data store; - a query engine; - a policy engine. * MAC - media access control 32 Sistemas Distribuídos 2 – A arquitetura da Cloud Tipos de Clouds A classificação anterior tipifica os tipos de serviços fornecidos pela cloud. Outra classificação tem a ver com o domínio de administração da cloud: - Clouds públicas; - Clouds privadas; - Clouds híbridas; - Clouds comunitárias!. 33 Sistemas Distribuídos 2 – A arquitetura da Cloud Tipos de Clouds - Clouds públicas - A cloud é aberta a todo o público. É a concretização do modelo no qual o serviço é fornecido a qualquer pessoas, em qualquer lugar, em qualquer altura através da internet. - Uma cloud pública pode fornecer qualquer tipo de serviço:. infraestrutura, plataforma, aplicações. - São desenhadas para suportar grandes quantidades de utilizadores, suportarem procuras variadas, nomeadamente picos de utilização. 34 Sistemas Distribuídos 2 – A arquitetura da Cloud Tipos de Clouds - Clouds privadas - São implementadas dentro de uma empresa/instituição, a acessíveis ao seus membros ou a um subconjunto destes. - Podem ser úteis se existe informação crítica, ou se existe já uma infraestrutura de hardware. - Permitem: - O controle dos recursos e informação pelos seus proprietários; - Controlo sobre a qualidade de serviço fornecido; - Controlo sobre standards próprios das organizações. - Podem ter menos possibilidades de escalar à medida das necessidades. 35 Sistemas Distribuídos 2 – A arquitetura da Cloud Tipos de Clouds - Clouds híbridas - Combinação dos dois modelos anteriores. Geralmente uma cloud privada é ampliada com recursos fornecidos por uma cloud pública. - Algum do software de gestão de infraestruturas de cloud permite a integração de recursos de clouds públicas. - Resolve o problema da não escalabilidade das clouds privadas. 36 Sistemas Distribuídos Datacenter Public Cloud Cluster Desktop Grids Public Cloud Dynamic Provisioning IaaS (M) Paas Private Cloud Hybrid / Heterogeneous Cloud 37 Sistemas Distribuídos 2 – A arquitetura da Cloud Tipos de Clouds - Clouds comunitárias - Destinam-se a servir o interesse de uma comunidade um ou setor de negócio. - Pode integrar qualquer dos três modelos anteriores. - Pode ser administrada por várias entidades. 38 Sistemas Distribuídos 2 – A arquitetura da Cloud Aspetos Económicos - Cloud computing reduz os custos de capital associados a adquirir infraestruturas de IT. - Elimina os custos associados à desvalorização/desatualização do equipamento. - Licenças de software são substituídas por subscrições - Reduz os custos de manutenção e gestão dos recursos de IT 39 Sistemas Distribuídos 2 – A arquitetura da Cloud Desafios - Interoperabilidade e standards - Escalabilidade e tolerância a falhas - Segurança, confiança e privacidade
Compartilhar