MC714 - Sistemas Distribuídos Leandro Villas Programa da Disciplina Fundamentos de Sistemas Distribuídos Definição Metas Tipos de sistemas distribuídos Arquiteturas Comunicação entre processos Sistemas de arquivos Serviços de nomes Coordenação Replicação Segurança Leandro Villas Aula anterior Aula de hoje Tipos de Sistemas Distribuídos Sistemas de computação distribuídos Computação em cluster Computação em grade Computação em nuvem Computação em névoa Sistemas distribuídos pervasivos Redes de Sensores sem Fio Redes Veiculares ... Leandro Villas Cluster Sistema de processamento Coleção de computadores Interconectados Trabalham em conjunto Processar uma tarefa Leandro Villas Cluster - História 1960: Ideia inicial da IBM como uma forma de interligar grandes mainframes 1980: Três tendências convergiram • • • Microprocessadores de alta performance Redes de alta velocidade Ferramentas padronizadas para computação distribuída de alto desempenho 1993: Iniciou o esboço de um sistema de processamento distribuído como uma medida de combate aos custos dos supercomputadores 1994: Primeiro cluster – Projeto Beowulf .......... A máquina foi um sucesso instantâneo e a ideia rapidamente se espalhou Leandro Villas Tipos de clusters Cluster de Alto Desempenho São direcionados a aplicações bastante exigentes no que diz respeito ao processamento. Cluster de Alta Disponibilidade Consegue permanecer ativo por um longo período de tempo e em plena condição de uso. Consegue detectar erros se protegendo de possíveis falhas Cluster de balanceamento de carga Controla a distribuição equilibrada do processamento. As tarefas de processamento são distribuídas o mais uniformemente possível entre os nós Leandro Villas Clusters PS3 Cluster PC (cluster Beowulf) Raspberry Pi Leandro Villas Clusters Vantagens Relação custo-benefício: pode-se obter resultados tão bons quanto ou até superiores que um servidor sofisticado a partir de máquinas mais simples e mais baratas A configuração de um cluster não costuma ser trivial, mas fazer um supercomputador funcionar poder ser muito mais trabalhoso e exigir pessoal especializado É possível aumentar a capacidade de um cluster com a adição de nós ou remover máquinas para reparos sem interromper a aplicação Relativa facilidade de customização para o perfeito atendimento da aplicação Há opções de softwares para cluster disponíveis livremente, o que facilita o uso de uma solução do tipo em universidades Leandro Villas Clusters Desvantagens A facilidade de expansão do cluster pode ser uma "faca de dois gumes": a quantidade de máquinas pode aumentar tanto que a manutenção se torna mais trabalhosa, o espaço físico pode ficar impróprio, etc A tecnologia de comunicação utilizada pode não oferecer a velocidade de transferência de dados ou o tempo de resposta necessário, dependendo da aplicação Cluster tem como base uma rede local, logo, não se pode acrescentar máquinas que estejam muito distantes geograficamente Leandro Villas Tipos de Sistemas Distribuídos Sistemas de computação distribuídos Computação em cluster Computação em grade Computação em nuvem Computação em névoa Sistemas distribuídos pervasivos Redes de Sensores sem Fio Redes Veiculares ... Leandro Villas Computação em Grade Alta taxa de processamento Divide as tarefas entre diversas máquinas Rede local ou rede de longa distância Formam uma máquina virtual Leandro Villas Computação em grade Grade Computacional (Recursos) Semelhante a um “Grid Elétrico” Não é preciso ter um gerador de energia em casa para ter eletricidade Leandro Villas Aplicações de grades Computação intensiva em dados Foco em sintetizar nova informação a partir de dados mantidos em repositórios, BDs e bibliotecas digitais geograficamente distribuídos Computação sob demanda Uso de grid para satisfazer, no curto prazo, demandas de recursos que não podem ser satisfeitas localmente de forma barata Computação colaborativa Foco em grids que incluem formas intensivas de interação humano-humano Leandro Villas Computação em grade Aspectos Heterogeneidade Escalabilidade Múltiplos Domínios Administrativos Controle Distribuído Dinamicidade e Adaptabilidade Leandro Villas Computação em grade Aspectos Heterogeneidade Envolve uma multiplicidade de recursos que são heterogêneos e envolvem uma grande variedade de tecnologias Escalabilidade Múltiplos Domínios Administrativos Controle Distribuído Dinamicidade e Adaptabilidade Leandro Villas Computação em grade Aspectos Heterogeneidade Escalabilidade Deve crescer de algumas dezenas de recursos para milhões de recursos sem perda de desempenho. Mas devido a alta dispersão geográfica, as aplicações de uma grade devem ser projetadas levando-se em consideração problemas com a latência e a largura de banda para a transmissão de dados Múltiplos Domínios Administrativos Controle Distribuído Dinamicidade e Adaptabilidade Leandro Villas Computação em grade Aspectos Heterogeneidade Escalabilidade Múltiplos Domínios Administrativos Os recursos de uma grade estão distribuídos geograficamente em múltiplos domínios administrativos, onde cada organização possui suas próprias restrições e regras de uso dos recursos, que devem ser respeitadas Controle Distribuído Dinamicidade e Adaptabilidade Leandro Villas Computação em grade Aspectos Heterogeneidade Escalabilidade Múltiplos Domínios Administrativos Controle Distribuído Não existe um gerenciador centralizado que possui uma visão global do sistema. Então cada componente da grade deve ser autônomo Dinamicidade e Adaptabilidade Leandro Villas Computação em grade Aspectos Heterogeneidade Escalabilidade Múltiplos Domínios Administrativos Controle Distribuído Dinamicidade e Adaptabilidade As aplicações e gerenciadores de recursos devem mudar seu comportamento de acordo com a disponibilidade dos recursos Leandro Villas Computação em grade Arquitetura em Camadas de uma Grade Computacional Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 1: O usuário programa a sua aplicação distribuída utilizando ferramentas de desenvolvimento de aplicações Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 2: O usuário especifica os seus requisitos de QoS e submete sua aplicação ao escalonador de aplicação da grade Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 3: O escalonador de aplicação de recursos da grade realiza uma descoberta de recursos e suas características usando o serviço de informação da grade Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 4: O escalonador de aplicação de recursos identifica os preços e/ou a disponibilidade dos recursos por meio de uma busca em um diretório de disponibilidade e mercado da grade Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 5: O escalonador de aplicação de recursos identifica uma lista de fornecedores de dados ou réplicas e recurso computacionais que fornecem os serviços ou características necessários pela aplicação, por meio dos escalonadores de recursos Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 6: O escalonador de aplicação escalona e envia as tarefas para os escalonadores de recursos que são responsáveis pelos recursos escolhidos para a execução das aplicações Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 7: O agente local executa e monitora a tarefa e retorna os resultados para o escalonador de recursos. Enquanto o escalonador de aplicação monitora a grade pra lidar com eventuais falhas nos recursos e mudanças de configurações da grade Leandro Villas Computação em grade Modelo Operacional de uma Grade Computacional 8: O escalonador de aplicação coleta os resultados e repassa para o usuário Leandro Villas Computação em grade Desafios Localização dos recursos Reserva de recursos Capacidade para adaptar- se a mudanças no ambiente Criação e escalonamento das tarefas Autonomia de cada grupo participante para definir suas próprias políticas de segurança Recursos requisitados podem estar em diferentes localidades Confiabilidade Qualidade de serviço exigida por cada aplicação Leandro Villas Tipos de Sistemas Distribuídos Sistemas de computação distribuídos Computação em cluster Computação em grade Computação em nuvem Computação em névoa Sistemas distribuídos pervasivos Redes de Sensores sem Fio Redes Veiculares ... Leandro Villas Computação em nuvem • Prove alta capacidade Processamento Armazenamento • Serviços (XaaS) SaaS: Software as a service PaaS: Platform as a service IaaS: Infrastructure as a service • Leandro Villas Alocação de Recursos Computação em nuvem NUVEM GRADE Disponibilidade de Aplicações Alta Alta Invisibilidade de Hardware Alta Alta Segurança Baixa Alta Comercial Científico Simples Complexa Tempo Real Reserva de Recursos CARACTERÍSTICA Modelo de Negócio Facilidade de Uso Modelo de Computação e Compartilhamento de Recursos. Leandro Villas Computação em nuvem Os conceitos usados em computação em nuvem não são novos Virtualização Serviços baseados na Internet Modelo pay-per-use Elasticidade A inovação está em reunir todos esses componentes em um sistema maior Leandro Villas Computação em nuvem Virtualização Criação de máquinas virtuais Abstração do hardware Abstração da infraestrutura da nuvem Escalabilidade • Adição de recursos é feita de forma automática Leandro Villas Computação em nuvem Serviços baseados na Internet Aplicações e recursos fornecidos na forma de serviços Acessados de qualquer lugar e a qualquer hora Leandro Villas Computação em nuvem Modelo pay-per-use Usuário paga somente por aquilo que usa Não há comprometimento em reservar uma quantidade exata de recursos Escalabilidade automática permite seu uso Cobrança baseada no consumo dos recursos Uso mais eficiente dos recursos Leandro Villas Computação em nuvem Elasticidade Os consumidores podem adquirir ou liberar recursos sob demanda capacidade de escalar recursos de TI rapidamente, conforme necessário, para cumprir as necessidades de mudança, sem interrupção do serviço Para o consumidor, a nuvem parece ser infinita Leandro Villas Computação em nuvem Arquitetura Leandro Villas Computação em nuvem Leandro Villas Computação em nuvem Camadas Leandro Villas Computação em nuvem Camadas Infraestrutura como Serviço Oferece recursos virtualizados como computação, armazenamento e comunicação Provê servidores capazes de executar softwares customizados e operar em diferentes sistemas operacionais Leandro Villas Computação em nuvem Camadas Plataforma como Serviço Fornece um ambiente no qual o desenvolvedor pode criar e implementar aplicações sem ter que se preocupar em saber quantos processadores ou o quanto de memória esta sendo usada para o executar a tarefa Leandro Villas Computação em nuvem Camadas Software como Serviço Disponibilizar aplicações completas ao usuário final Acesso completamente transparente ao usuário Leandro Villas Computação em nuvem Público A nuvem é disponibilizada para o público em geral ou para grandes grupos industriais A nuvem é implementada por um prestador de serviço, que deve ser capaz de garantir o desempenho e a segurança da mesma Leandro Villas Computação em nuvem Privado Nuvens operadas exclusivamente para uma única organização Gerenciamento da rede é feito pela própria organização ou por terceiros • A infraestrutura utilizada pertence ao usuário • Responsável pelo controle sobre a implementação das aplicações na nuvem Leandro Villas Computação em nuvem Comunidade Infraestrutura de nuvem é compartilhada por várias organizações e suporta uma comunidade específica que partilha as mesmas preocupações • missão, requisitos de segurança, política e considerações de conformidade Gerenciado pelas organizações ou por terceiros • localmente ou remotamente Leandro Villas Computação em nuvem Híbrida Infraestrutura composta por dois ou mais modelos de implementação Cada nuvem permanece como uma entidade única Unidas pelo uso de tecnologia proprietária ou padronizada garantindo a portabilidade de dados e aplicações Leandro Villas Computação em nuvem Vantagens Usuário Vendedores e Criadores Compatibilidade Atualizações Mobilidade Economia Amplo mercado Economia Tempo Dinheiro Leandro Villas Computação em nuvem Sistemas comerciais • SaaS • PaaS Conta gratuita 500MB Limite máximo de 5 milhões de acessos por mês Plataforma para desenvolvimento de aplicações Python, na infraestrutura da Google • IaaS Leandro Villas Computação em nuvem Desafios Gargalo na conexão Privacidade e direito sobre os dados Confiabilidade do serviço Padronização Leandro Villas Tipos de Sistemas Distribuídos Sistemas de computação distribuídos Computação em cluster Computação em grade Computação em nuvem Computação em névoa Sistemas distribuídos pervasivos Redes de Sensores sem Fio Redes Veiculares ... Leandro Villas Computação em névoa Com o surgimento de novos conceitos como IoT a Cloud não se adequa corretamente Algumas aplicações são sensíveis ao tempo de resposta Não há proximidade com os usuários Não oferece mobilidade aos usuários Para algumas aplicações e serviços a centralização não é uma boa solução Leandro Villas Computação em névoa A computação em névoa trás a computação para a borda Característica: Armazenamento e Computação Localizada na borda da rede • Baixa latência e proximidade com os usuários Grande número de nós • Dipositivos de IoT e usuários Suporte a mobilidade Interação em tempo real Predominantemente wireless Heterogeneidade Interação com a Cloud Leandro Villas Computação em névoa A computação em névoa trás a computação para a borda Desafios: Desenvolvimento de arquiteturas para infraestrutura Controle e gerenciamento de nós da Fog Suporte para diversos contextos • Controle de semáforos Conectividade e mobilidade entre os nós da Fog com a Cloud (migração) Segurança/Privacidade/Disponibilidade Escalabilidade Leandro Villas Tipos de Sistemas Distribuídos Sistemas de computação distribuídos Computação em cluster Computação em grade Computação em nuvem Computação em névoa Sistemas distribuídos pervasivos Redes de Sensores sem Fio Redes Veiculares ... Leandro Villas Redes de Sensores sem Fio Sensores existem por toda parte Leandro Villas Redes de Sensores sem Fio Na maioria dos casos, sensores são utilizados isoladamente Mas com o avanço da Ciência: - Micro-processadores mais poderosos - Novos materiais de sensoriamento - Micro sistemas eletromecânicos - Possibilidade de comunicação entre sensores; Surgiram os “Sensores Inteligentes”: - Capacidade de processamento - Capacidade de comunicação - Capacidade de sensoriamento: acelerômetro, luz, pressão, temperatura, magnetômetro, microfone, umidade, etc. Leandro Villas Redes de Sensores sem Fio Componentes do nó sensor inteligente Unidade de Energia Bateria Sistema de Locomoção Sistema de Localização Unidade de Sensoriamento Sensor Unidades ------ Básicas ------ Adicionais Gerador de Energia Unidade de Computação Microprocessador Unidade de Comunicação Rádio Conversor A/D Memória Sistema Operacional, Algoritmos e Protocolos Leandro Villas Redes de Sensores sem Fio Alguns nós sensores Mica2 Mica2Dot Leandro Villas Redes de Sensores sem Fio Tipicamente possuem um grande número de nós sensores 61 Redes de Sensores sem Fio Hardware de baixo custo e com capacidades limitadas - Processamento, Comunicação e Energia 62 Redes de Sensores sem Fio Aplicação onde o uso de fios não seja possível ou viável - Estrutura de prédios, interior de máquinas, florestas, vulcões, campo de batalha, rios e etc. 63 Redes de Sensores sem Fio Posição dos nós sensores não precisa ser necessariamente prédeterminada 64 Redes de Sensores sem Fio Contém um ou mais Estações Base (Sink) - Maiores capacidades de hardware e comunicação Sink node: (satellite, cellular) 65 Redes de Sensores sem Fio Esses nós sensores auto organizam-se em uma rede sem fio 66 Redes de Sensores sem Fio Tipicamente, uma “árvore” é criada para entregar os dados coletados no ambiente monitorado para o nó central Sink node: (satellite, cellular) 67 Aplicações de RSSFs Aplicações ambientais: 68 Aplicações de RSSFs Aplicações ambientais: - temperatura, pressão e umidade. Resolução maior do que imagens de satélite. 69 Aplicações de RSSFs Aplicações ambientais: - Queimadas 70 Aplicações de RSSFs Aplicações ambientais: - monitoramento de áreas, detecção de invasão 71 Aplicações de RSSFs Aplicações ambientais: - monitoramento de flora e fauna - combinado com os dados ambientais (o comportamento) 72 Aplicações de RSSFs Aplicações ambientais: Monitoração de Rios Urbanos 73 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 74 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 75 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 76 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 77 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 78 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 79 Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 80 Tipos de Sistemas Distribuídos Sistemas de computação distribuídos Computação em cluster Computação em grade Computação em nuvem Computação em névoa Sistemas distribuídos pervasivos Redes de Sensores sem Fio Redes Veiculares ... Leandro Villas Redes Veiculares Composto por um grande número de veículos equipados • Sensores embutidos • Capacidades de processamento • Capacidades de comunicação sem fio Leandro Villas Redes Veiculares Veículos apresentam alta mobilidade e densidade de tráfego variável Mobilidade influenciada limites de velocidade, direção estradas, período do dia, os obstáculos, acidentes, eventos e tempo Aplicações: Segurança Gestão de tráfego Comercial e de entretenimento Leandro Villas Próxima Aula Estilos Arquitetônicos • • • • Arquiteturas em Camadas Arquiteturas baseadas em objetos Arquiteturas centradas em dados Arquiteturas baseadas em eventos Arquitetura de Sistemas • • • Centralizadas Distribuídas Híbridas Leandro Villas