Prévia do material em texto
Professor Esp. João Carlos Vilela Junior SISTEMAS DISTRIBUÍDOS E CLOUD REITORIA Prof. Me. Gilmar de Oliveira DIREÇÃO ADMINISTRATIVA Prof. Me. Renato Valença DIREÇÃO DE ENSINO PRESENCIAL Prof. Me. Daniel de Lima DIREÇÃO DE ENSINO EAD Profa. Dra. Giani Andrea Linde Colauto DIREÇÃO FINANCEIRA Eduardo Luiz Campano Santini DIREÇÃO FINANCEIRA EAD Guilherme Esquivel COORDENAÇÃO DE ENSINO, PESQUISA E EXTENSÃO Profa. Ma. Luciana Moraes COORDENAÇÃO ADJUNTA DE ENSINO Profa. Dra. Nelma Sgarbosa Roman de Araújo COORDENAÇÃO ADJUNTA DE PESQUISA Profa. Ma. Luciana Moraes COORDENAÇÃO ADJUNTA DE EXTENSÃO Prof. Me. Jeferson de Souza Sá COORDENAÇÃO DO NÚCLEO DE EDUCAÇÃO A DISTÂNCIA Prof. Me. Jorge Luiz Garcia Van Dal COORDENAÇÃO DE PLANEJAMENTO E PROCESSOS Prof. Me. Arthur Rosinski do Nascimento COORDENAÇÃO PEDAGÓGICA EAD Profa. Ma. Sônia Maria Crivelli Mataruco COORDENAÇÃO DO DEPTO. DE PRODUÇÃO DE MATERIAIS DIDÁTICOS Luiz Fernando Freitas REVISÃO ORTOGRÁFICA E NORMATIVA Beatriz Longen Rohling Carolayne Beatriz da Silva Cavalcante Caroline da Silva Marques Eduardo Alves de Oliveira Jéssica Eugênio Azevedo Marcelino Fernando Rodrigues Santos PROJETO GRÁFICO E DIAGRAMAÇÃO Bruna de Lima Ramos Hugo Batalhoti Morangueira Vitor Amaral Poltronieri ESTÚDIO, PRODUÇÃO E EDIÇÃO André Oliveira Vaz DE VÍDEO Carlos Firmino de Oliveira Carlos Henrique Moraes dos Anjos Kauê Berto Pedro Vinícius de Lima Machado Thassiane da Silva Jacinto FICHA CATALOGRÁFICA Dados Internacionais de Catalogação na Publicação - CIP V699s Vilela Junior, João Carlos Sistemas distribuídos e cloud / João Carlos Vilela Junior. Paranavaí: EduFatecie, 2023. 72 p.: il. Color. 1. Computação em nuvem. 2. Tecnologia da informação. 3. Processamento eletrônico de dados – Processamento distribuído. I. Centro Universitário UniFatecie. II. Núcleo de Educação a Distância. III. Título. CDD:23.ed. 004.36 Catalogação na publicação: Zineide Pereira dos Santos – CRB 9/1577 As imagens utilizadas neste material didático são oriundas dos bancos de imagens Shutterstock . 2023 by Editora Edufatecie. Copyright do Texto C 2023. Os autores. Copyright C Edição 2023 Editora Edufatecie. O conteúdo dos artigos e seus dados em sua forma, correção e confiabilidade são de responsabilidade exclusiva dos autores e não representam necessariamente a posição oficial da Editora Edufatecie. Permitido o download da obra e o compartilhamento desde que sejam atribuídos créditos aos autores, mas sem a possibilidade de alterá-la de nenhuma forma ou utilizá-la para fins comerciais. https://www.shutterstock.com/pt/ 3 Professor Esp. João Carlos Vilela Junior • Formação Acadêmica: Graduado em Sistemas de Informação (UENP); • Níveis de Titulação: Especialista em Redes de Computadores (UTFPR); • Pesquisa de Mestrado: Sistema Coletor de Informações para Arbovirose (UTFPR); Profissional Graduado e Licenciado na área de Tecnologia da Informação, es- pecialista em Infraestrutura de Redes e Servidores. Certificado ITIL Foundation, Segurança da Informação (Baseada na ISO 27002), PMI - (Certified Associate in Project Management), Scrum Master, DevOps e Kanban. Atuação profissional como Analista de Sistemas (Infraestrutura, Suporte e Projetos) por 5 anos e como Professor (IFPR e cursos técnicos) por 2 anos. CURRÍCULO LATTES: http://lattes.cnpq.br/8950029993734046 AUTOR 4 Seja muito bem-vindo (a)! Prezado (a) aluno (a), se você se interessou pelo assunto desta disciplina, isso já é o início de uma grande jornada que vamos trilhar juntos a partir de agora. Proponho, junto com você, construir nosso conhecimento sobre os conceitos fundamentais sobre sistemas distribuídos, ou seja, entender o funcionamento e importância desses tipos de sistemas. Além de conhecer seus principais conceitos e definições, vamos explorar as maiores preo- cupações ao se desenvolver sistemas deste modelo. Na unidade I começaremos a nossa jornada pelo fundamento e conceito de siste- mas distribuídos (SD), buscando apresentar os requisitos para se ter um sistema distribuído, sua arquitetura e modelagem. Compreendendo as técnicas e preocupações que devemos adotar quando vamos desenvolver sistemas deste modelo. Esta noção é necessária para que possamos trabalhar a segunda unidade do livro, que versará sobre a comunicação e segurança de SD. Já na unidade II vamos ampliar nossos conhecimentos sobre a comunicação e segurança em SD. Para isso, vamos detalhar cada um dos protocolos de comunicação e como funciona cada um destes protocolos e, por fim, apresentar as técnicas e preocupa- ções com a segurança ao desenvolvermos sistemas distribuídos. Depois, nas unidades III e IV vamos tratar especificamente computação em nuvem (Cloud Computing) e Internet of Things (Internet das Coisas), seus conceitos, funcionamento e relação entre os dois temas. Ao longo da unidade III, vamos destacar o que são as “Coi- sas” e abordar os conceitos iniciais de Cloud Computing. Na unidade IV, vamos entender como funciona o gerenciamento da computação em nuvem e como utilizar contêineres para desenvolver aplicações de alta performance utilizando recursos da nuvem. Aproveito para reforçar o convite a você, para junto conosco percorrer esta jornada de conhecimento e multiplicar os conhecimentos sobre tantos assuntos abordados em nosso material. Esperamos contribuir para seu crescimento pessoal e profissional. Muito obrigado e bom estudo! APRESENTAÇÃO DO MATERIAL SUMÁRIO UNIDADE 1 Fundamentos e Modelagem de Sistemas Distribuídos UNIDADE 2 Comunicação e Segurança em Sistemas Distribuídos UNIDADE 3 Fundamentos e Conceitos de Cloud e IoT UNIDADE 4 Gerenciamento e Contêineres em Cloud Computing 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plano de Estudos • Introdução a sistemas distribuídos; • Arquitetura de sistemas; • Modelos fundamentais. Objetivos da Aprendizagem • Conhecer os requisitos dos sistemas distribuídos; • Entender os conceitos arquitetura e modelagem; • Compreender as técnicas e preocupações dos siste- mas distribuídos; 1UNIDADEUNIDADE FUNDAMENTOS FUNDAMENTOS E MODELAGEM E MODELAGEM DE SISTEMAS DE SISTEMAS DISTRIBUÍDOSDISTRIBUÍDOS Professor Esp. João Carlos Vilela Junior INTRODUÇÃO Oi, tudo bem? Seja bem-vindo (a) a nossa Primeira Unidade da disciplina de Sis- temas Distribuídos e Cloud. Acredito que, assim como eu, você deve estar com muitas ex- pectativasmodelo individualmente ou inte- grados para criar um ambiente de cloud computing, a Figura 5 exibe o que é gerenciado pelo cliente (you manage) ou pelo provedor de serviços (service provider manage) (REDHAT, 2020). FIGURA 6 – MODELOS DE GERENCIAMENTO DOS SERVIÇOS Fonte: Redhat (2020, p. 01). Legenda: Networking (rede), Storage (armazém de dados), Servers (servidores), Virtualization (virtualização), O/S (sistemas operacionais), Middleware (middleware), Runtime (tempo execução), Data (dados), Applications (aplicações) 2.1.1 IaaS (Infrastructure as a Service) Para Softline (2022) neste modelo normalmente é contratado servidores, roteado- res, racks e outros serviços. A ideia aqui é montar sua infraestrutura de servidores virtuais pagando apenas pela quantidade de dados armazenados ou trafegados. Uma das grandes vantagens desse modelo é sua escalabilidade, podendo alterar todo mês a quantidade de dados que será usado e também a quantidade de tráfego. O ideal deste modelo é para pequenas e médias empresas que estão em fase de crescimento ou que possuem um Datacenter físico e estão fazendo a migração para nuvem. Outro exemplo, são lojas virtuais alocadas nesse modelo, pois devido a possibilidade de escalar mais recursos, em alguma data específica que haja um “bum” de acessos, a nuvem consegue suportar o excesso de acessos. 2.1.2 PaaS (Plataform as a Service) Neste modelo o provedor busca hospedar os componentes de hardware e software em sua própria infraestrutura, fornecendo uma plataforma com soluções integradas ou 47UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT através de um serviço conectado via Internet. O gerenciamento, manutenção e atualização da infraestrutura fica na responsabilidade do provedor (REDHAT, 2020) Muito utilizado para desenvolvedores e programadores, permitindo desenvolver, executar e gerenciar aplicações sem se preocupar com o gerenciamento da infraestrutura. Outro recurso são que o PaaS possui uma quantidade de ferramentas disponíveis para auxiliar no desenvolvimento de softwares. 2.1.3 SaaS (Software as a Service) Segundo Softline (2022) este modelo é muito utilizado pelas pessoas e muitas nem sabem disso. Ele está baseado em um plano de serviço disponibilizado por um software, por exemplo CRMs ou ERPs. Todos os softwares são dependentes de um acesso a Inter- net. Uma das melhores vantagens são a escalabilidade e praticidade, pois a facilidade de se adquirir um serviço todo, sem se preocupar com desenvolvimento ou implantação, está apenas a um clique. Normalmente são utilizados por pequenas empresas que não podem desenvolver um software próprio ou por não poder comprar muitas licenças. Muito utilizado, também, por trabalhos que necessitem de um curto período de acesso a um serviço. A figura 6 mostra alguns exemplos de Iaas, Paas e SaaS. FIGURA 6 – EXEMPLOS DE MODELOS Fonte: Tripla (2021, p. 01). 48UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTERNET OF THINGS (IOT) E CLOUD COMPUTING3 TÓPICO Olhando para essa quantidade de dispositivos conectados (IoT) à Internet 24 horas ao dia, fica evidente que por trás desse funcionamento deve-se haver grandes recursos suportando todos esses serviços (Cloud). Segundo FWC (2019) a IoT e Cloud Computing estão relacionadas através de quatro itens específicos e que garantem que um é tão importante para o outro, são eles: • Escalabilidade: como os dispositivos IoT geram um grande fluxo de dados, exis- te a necessidade que seja tudo armazenado em um servidor. A nuvem é capaz de prover o quanto de espaço necessário para um serviço. • Segurança e privacidade: Provedores em nuvem são capazes de oferecer um alto nível de segurança dos dados e este é um fator crítico para a IoT, pois mui- tas vezes há informações confidenciais dos usuários nos aplicativos utilizados. Trabalhando em conjunto é possível a IoT e Cloud superarem esses obstáculos. • Flexibilidade: Os dispositivos IoT que utilizam a nuvem não precisam de nada além de uma conexão com a internet para funcionar. A Cloud atua como uma ponte na forma de um mediador ou facilitador de comunicação. • Colaboração: a computação em nuvem também permite melhor colaboração entre os desenvolvedores, o que é a ordem do dia no campo da IoT. Ao facilitar o acesso remoto de dados, a nuvem permite a implementação de alterações e otimizações de forma rápida e fácil. 49UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT 50UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT Utilizar a computação em nuvem faz com que empresas, em vez de ficar 70% do tempo gerenciando sua infraestrutura, investem esse tempo e energia para otimizar ou expandir o negócio. Fonte: Taurion (2009, p. 06). “A internet das coisas não se refere apenas a conectar dispositivos à Internet, mas também a entender as “coisas” que estão conectadas”. Fonte: Santos (2018, p. 17). CONSIDERAÇÕES FINAIS Prezado (a) aluno (a), Neste material, busquei trazer até você os principais conceitos sobre Internet of Things (IoT) e Cloud Computing buscando exemplificar e aprofundar alguns itens deste tema. Na primeira parte exibimos os conceitos de IoT, mostrando como é seu funcio- namento, em que está sendo aplicada essas “Coisas”, suas vantagens e os elementos necessários para se ter um dispositivo com essa tecnologia. Na segunda parte foi abordado um tema importantíssimo que é a computação em nuvem, conceituando a importância do tema, tipos de aplicação, modelos de serviços e como é baseada a arquitetura em cloud. E por fim, foi apresentado a relação entre IoT e computação em nuvem e quais suas vantagens e o porquê uma é tão importante para a outra. A partir de agora acreditamos que você está preparado para dar continuidade aos estudos das próximas unidades, que o ajudarão a desenvolver a compreensão mais detalhada da disciplina. Até uma próxima oportunidade. Muito obrigado! 51UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT MATERIAL COMPLEMENTAR • Título: Internet das Coisas • Autor: Sergio de Oliveira. • Editora: Novatec. • Sinopse: A Internet das Coisas (Internet of Things - IoT), está se tornando realidade. Os módulos de hardware para implementar IoT já estão disponíveis a um custo factível para aplicação. Uma família de microcontroladores, incluindo o ESP8266 e ESP32 da Espressif, virou uma opção extremamente interessante devido a seu custo muito reduzido e aos seus recursos, suficientes para diversas aplicações de IoT. O ESP8266 está disponível em vários módulos, com comunicação WiFi integrada, processador de 32 bits a uma velocidade de 160 MHz, e é vendido a um preço muito baixo nos sites chineses e brasileiros. O ESP32 é mais poderoso, com dois núcleos e 240 MHz, e possui custo ligeiramente superior. E mais: são totalmente compatíveis com o Arduino. Isso significa que tudo que roda no Arduino vai rodar ainda melhor no ESP8266 e no ESP32, vai custar menos e consumir menos energia. Sem dúvida, uma opção muito interessante para implementar dispositivos de IoT. • Título: Computação em Nuvem • Autor: Opus Software. • Editora: Opus Software. • Sinopse: E-book sobre Computação em Nuvem (Cloud Compu- ting). Mais de 100 páginas com dezenas de dicas e orientações técnicas preciosas. Mais de 100 links de pesquisas para aprofunda- mento em temas de maior interesse. Imprescindível nos dias de hoje até para quem não lida diretamente com Tecnologia da Informação. 52UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plano de Estudos • Gestão de Cloud Computing; • Contêineres em Cloud Computing. Objetivos da Aprendizagem • Conhecer os conceitos de gerenciamento de computação em nuvem; • Entender os problemas e riscos de segurança e privacidade de dados; • Compreender o funcionamento de contêineres e a ferramenta Docker. 4 UNIDADEUNIDADE GERENCIAMENTO GERENCIAMENTO E CONTÊINERES EM E CONTÊINERES EM CLOUD COMPUTINGCLOUD COMPUTING Professor Esp. João Carlos Vilela Junior INTRODUÇÃO Oi, tudo bem? Seja bem-vindo (a) a nossa Quarta Unidade da disciplina de Sistemas Distribuídos e Cloud. Acredito que, assim como eu, você deve estar com muitas expecta- tivas para iniciar essa trilha de aprendizagem. Portanto, procure um lugar confortável e se acomode, porque vamos realizar uma introdução ao conteúdo a partir de agora. A necessidade de se implementar um modelo de governança para os serviços na nuvem é uma maneira em que as empresas possam repensar como serão protegidos seus dados, suas estratégias de gerenciar riscos e aplicar um nível de segurança adequado (BRITO et al., 2017) Dessa forma na Unidade IV iniciaremos com a fundamentação teórica e conceitos sobre o funcionamento da gestão em cloud computing, como criar estratégias para segu- rança na nuvem. E, finalizar o conteúdo abordando um tema importantíssimo, que são os contêineres para as aplicações. Esta Unidade está dividida em dois capítulos: • Gestão de Cloud Computing; • Contêineres em Cloud Computing. Bons estudos! 54UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TÓPICO De acordo com Kale (2015) o ato de realizar a governança em tecnologia é voltado para a criação de regras, práticas, costumes, políticas e processos que definem como uma or- ganização é conduzida. Esses fatores são fundamentais quando se utiliza ou quando for migrar uma infraestrutura para computação em nuvem. São as funções principais da governança: • Fornecer cadeias definidas de autoridade, responsabilidade e comunicação para capacitar a equipe a realizar suas atividades com organização. • Definir mecanismos de política e controle e medições associadas para auxiliar as atividades desempenhadas pela equipe de suporte. Segundo Veras (2012) ao se projetar a adoção de arquitetura para a computação em nuvem, deve-se seguir três fases base: • Selecione: identificar quais serviços podem ir para a nuvem e quando; • Provisione: agregar demanda no nível de departamento, integração com o port- fólio de TI, contratos devem representar as demandas das agências, realizar valor. • Gerencie: mudança de ativos para serviços. Construir novas habilidades, mo- nitorar Service Level Agreement (SLA - níveis de acordo de serviço), reavaliar fornecedores e modelos de serviço a fim de reduzir riscos e otimizar benefícios. A computação em nuvem proporciona uma série de serviços essenciais que ajudam na gestão e tomada de decisão (KALE, 2015): 55UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GESTÃO DE CLOUD COMPUTING1 TÓPICO • Descoberta e replicação: a descoberta promove a reutilização de serviços auxiliando os usuários a encontrarem serviços existentes. A replicação é uma tarefa usada para criar e manter cópias dos dados e serviços configurados pelas empresas para garantia de serem restaurados caso necessário. • Balanceamento de carga: este serviço faz a gestão de cargas desbalanceadas, ou seja, evita gargalo no sistema e mantém os serviços em funcionamento mes- mo que algum componente possa falhar. • Gestão de recursos: fornece uma maneira de implantar e acessar recursos compartilhados escaláveis sob demanda, em tempo real e com custo acessível. • Gestão de dados: a preocupação em perda ou vulnerabilidade dos dados é uma grande preocupação da computação em nuvem. A gestão desses dados ocorre através de uma camada de processos e tecnologias que suportam os serviços em nuvem (localização dos serviços, dependências, monitoramento, segurança e etc.) para que caso ocorra algum imprevisto, seja rapidamente tratado. • Interoperabilidade: é o serviço que auxilia na migração e integração de aplica- tivos e dados entre nuvens de diferentes fornecedores. Por exemplo: empresas nem sempre colocam todos seus serviços na nuvem, então há necessidade de que haja a interoperabilidade para que os serviços se comuniquem e trabalhem em conjunto mesmo não estando todos no mesmo ambiente. • Migração de dados: ao migrar dados, deve-se levar em consideração situações como: perda de dados, disponibilidade, escalabilidade, eficiência de custo e balanceamento de carga. Os usuários devem poder mover seus dados e apli- cações a qualquer momento para a nuvem, sem problemas e sem que nenhum fornecedor os controlem. • Serviços de gestão: são serviços que incluem implantação, monitoramento, relatórios, SLA’s e faturamento de medição. • Tolerância ao erro: é um serviço que garante que uma instância de backup de uma aplicação esteja pronta para entrar em funcionamento caso ocorra alguma falha, de forma automática e sem interrupção do serviço. 1.1 Segurança em Cloud Computing Segundo Trend (2022, p. 01) A segurança na nuvem começa com a arquitetura de segurança da nuvem, que adiciona elementos de segurança à arquitetura básica. Os elementos de segurança tradicionais incluem firewalls (FW), antimalware e sistemas de detecção de intrusão (IDS). Para HSBS (2022) a segurança em nuvem pode ser dividida em cinco pilares, a fim de garantir um maior nível de proteção nas aplicações em nuvem, a figura 1 exibe esse pilar. 56UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING FIGURA 1 – PILARES DE SEGURANÇA NA NUVEM Fonte: HSBS (2022, p. 01). Uma compliance (conformidade) é uma lista de serviços gerenciáveis que fornecem análises e relatórios do ambiente em cloud. Estes serviços possuem algumas funcionalida- des, são elas: otimização de custos; segurança; eficiência de performance; confiabilidade e excelência profissional (MANDIC, 2022). A proteção de dados é aplicada com mecanismos como: criptografia, restrições de acesso, políticas de acesso e etc. A criptografia mantém os dados protegidos contra possíveis tentativas de acesso a eles sem autorização, este recurso fornece uma camada adicional à segurança dos dados (FORTES, 2021). Brito et al. (2017) explica que para uma boa gestão de riscos, deve-se levar em consideração os seguintes critérios: • Identificar e avaliar os ativos; • Analisar o potencial dos riscos e o impacto que possíveis riscos podem gerar; • Verificar a ocorrência de eventos que poderá gerar riscos; • Determinar os níveis de riscos de acordo com os seus critérios; • Desenvolver um plano para solução de possíveis problemas antes mesmo que eles aconteçam. De acordo com Kale (2005, p. 398): Os mecanismos de controle de acesso são projetados para impedir a entra- da de invasores e agentes mal-intencionados. A transparência de identidade 57UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING exige que a relação entre um agente virtual e uma pessoa física seja cuida- dosamente verificada por meio de métodos como a identificação biométrica.A educação do usuário é a base da pirâmide devido às aplicações poderem aces- sadas de qualquer lugar e de qualquer dispositivo. Deve-se tomar cuidado com ataques cibernéticos e, também, é importante investir em políticas de proteção. Esses cuidados com o usuário ajudam a evitar possíveis lacunas de segurança e evitam problemas nos serviços acessados na nuvem (HSBS, 2022). Kale (2015) cita as sete principais ameaças da computação em nuvem, são elas: • Abuso na nuvem: refere-se à capacidade de realizar atividades prejudiciais da nu- vem, por exemplo: utilizar aplicativos para lançar ataques, distribuir spam ou malware. • Tecnologia compartilhada: o fato da nuvem ser suportada por virtualização, podem surgir ameaças que atinjam a segurança de uma máquina virtual compartilhada. • API’s inseguras: essas API’s podem não proteger os usuários em relação a au- tenticação, controle de acesso, monitoramento e controle de aplicativos durante o tempo de execução. • Testes maliciosos: surge o risco devido os provedores de serviço em nuvem não divulgarem seus padrões e políticas de contratação. • Risco de perda ou vazamento de dados: este risco ocorre por haver possibilidade da perda de dados quando a replicação de dados na nuvem falha, também pode ocorrer por um acesso não autorizado a informações, gerando graves consequências. • Roubo de conta ou serviço: refere-se ao roubo de credenciais dos usuários que possuem acesso à nuvem. Essa ameaça é algo significativo. • Perfil de risco desconhecido: refere-se à exposição do desconhecimento ou subestimação dos próprios riscos que a computação em nuvem possui. 1.3 Privacidade em Cloud Computing De acordo com Rittinghouse e Ransome (2010, p. 86): A computação em nuvem tem implicações significativas para a privacidade de informações pessoais, bem como para a confidencialidade de informa- ções comerciais e governamentais. Qualquer informação armazenada local- mente em um computador pode ser armazenada em uma nuvem, incluindo e-mail, documentos de processamento de texto, planilhas, vídeos, registros de saúde, fotografias, informações fiscais ou financeiras, planos de negó- cios, apresentações em PowerPoint, informações contábeis, campanhas pu- blicitárias, números de vendas, calendários de compromissos, catálogos de endereços e muito mais. Todo o conteúdo do dispositivo de armazenamento de um usuário pode ser armazenado com um único provedor de nuvem ou com vários provedores de nuvem. Sempre que um indivíduo, uma empresa, uma agência governamental ou outra entidade compartilha informações na nuvem, podem surgir questões de privacidade ou confidencialidade. 58UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING Uma das questões que preocupam os consumidores da computação em nuvem é o fato das fornecedoras em algum momento precisarem coletar informações dos clientes a fim de segmentarem, personalizarem ou sugerirem ofertas e soluções aos clientes. Um meio de equilibrar esta situação são os selos de privacidade, fornecedores que possuem estes selos tendem a ganhar a confiança dos consumidores por possuírem certificados de proteção à privacidade (KALE, 2015). Para Rittinghouse e Ransome (2010) os princípios básicos para proteger os dados em nuvem ou ambiente virtualizado são: • Coleção: deve-se ter um propósito comercial válido para desenvolver aplicati- vos e implementar sistemas que coletam, usam ou transmitem dados pessoais. • Aviso: Deve haver uma declaração clara ao proprietário dos dados de uma empresa/provedores pretendidos coleta, uso, retenção, divulgação, transferência e proteção de dados pessoais. • Escolha e consentimento: O titular dos dados deve fornecer consentimento claro e inequívoco à coleta, uso, retenção, divulgação e proteção de dados pessoais. • Utilização: Uma vez recolhidos, os dados pessoais só devem ser utilizados (incluindo transferências para terceiros) de acordo com o propósito comercial válido e conforme declarado no Aviso. • Segurança: Medidas de segurança apropriadas devem estar em vigor (por exemplo, criptografia) para garantir a confidencialidade, integridade e autentica- ção de dados pessoais durante a transferência, armazenamento e uso. • Acesso: Os dados pessoais devem estar disponíveis ao proprietário para revi- são e atualização. Acesso a pessoal, os dados devem ser restritos ao pessoal relevante e autorizado. • Retenção: Um processo deve estar em vigor para garantir que os dados pessoais sejam retidos apenas pelo período necessário para atingir o objetivo comercial pretendido ou o que é exigido por lei. • Eliminação: Os dados pessoais devem ser eliminados de forma segura e adequa- da (ou seja, utilizando eliminação de disco de criptografia ou trituradores de papel). 59UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONTÊINERES EM CLOUD COMPUTING2 TÓPICO Segundo Magalhães (2020, p. 01) um cloud contêiner: [..] trata-se de um ambiente onde há todas as configurações e compartimen- tos necessários para executar aplicações. Esses ambientes são isolados e também transportáveis. Além disso, contém tudo que se faz necessário ao realizar uma aplicação, como por exemplo, códigos, bibliotecas e configura- ções indispensáveis para o bom funcionamento da mesma. De acordo com Vitalino e Castro (2016) contêineres são parecidos com máquinas virtuais, porém mais leves, com foco de agrupar uma aplicação junto com suas dependên- cias, utilizando apenas o kernel do sistema operacional do host, ou seja, não são instalados sistemas operacionais específicos dentro de um contêiner. Assim, surgiu o conceito de Containers as a Service (CaaS), um tipo de serviço em nuvem que proporciona a criação de soluções escaláveis para desenvolvedores poderem gerenciar esses contêineres através de API’s (IPSENSE, 2019). A figura a seguir exibe a diferença entre as aplicações sendo executadas em servi- dores físicos, em máquinas virtuais e em contêineres. Figura 2 – Diferença entre arquiteturas Fonte: Vitalino e Castro (2016, p. 13). 60UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING Nota-se que nos contêineres não é necessário instalar um sistema operacional, pois é utilizado o já existente do servidor host. Nas máquinas virtuais, para cada máquina são instalados sistemas operacionais (podendo ter diversidade entre eles) para cada tipo de aplicação. E, no servidor físico não há possiblidade de instalação de outro sistema ope- racional, deve-se usar apenas o sistema nativo do servidor. São alguns benefícios a utilização de contêineres (IPSENSE, 2019): • Minimiza o uso de recursos de hardware, já que é tudo executado em nuvem; • Diminui a necessidade de especialistas de suporte, por não haver necessidade de instalação de sistemas operacionais; • Há uma maior disponibilidade do ambiente; • Há uma otimização dos processos devido a dispensa dos sistemas operacionais; • Foco total em aplicações, deixando-as melhores; • Economia de recursos; • Redução de custos. Outro fator interessante dos contêineres é a sua portabilidade, independente se você estava utilizando Windows, Linux ou MacOS quando criou seu contêiner, ele irá funcionar em qualquer uma das plataformas, garantindo que todas dependências estejam inseridas no mesmo, isso ajuda a evitar o velho ditado “engraçado, na minha máquina funciona” (VITALINO e CASTRO, 2016). 2.1 Docker Segundo Noleto (2020, p. 01) “o Docker é uma plataforma open source (código aberto) para desenvolver, publicar e executar aplicativos. É uma ferramenta que permite a segregação entre a aplicação e a sua infraestrutura, o que faz com que a entrega do software seja rápida”. O Docker é uma ferramenta ótima para o ciclo de vida do desenvolvimento de software. Os contêineres podem ser criados e empacotados por um desenvolvedor no seu próprio com- putadore depois compartilhar com os membros da equipe, podendo também, ser enviado para o ambiente de testes e posteriormente para o ambiente de produção (SABHARWAL e W, 2015). Figura 3 – Aplicação Docker para entrega e implantação Fonte: Sabharwal e W. (2015, p. 25). Legenda: Development (Desenvolvimento), Production (Produção), Developer (Desenvolvedor), Containers (Contêineres), Tester (Testador), Automation (Automação), Physical (Físico), Cloud (Nuvem). 61UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING São alguns benefícios da utilização do Docker (NOLETO, 2020): • Desenvolver seus aplicativos e seus componentes usando containers; • Redução nos custos de licenças de software porque utiliza menos instâncias do sistema operacional para suas cargas de trabalho; • O container permite a criação, testes e remoção de aplicação de forma isolada; • É indicado para aplicações que exigem alta performance porque consomem menos recursos de máquina. O funcionamento do Docker é basicamente dividido em três partes: Docker cliente, Docker Host e Registros. FIGURA 4 – ARQUITETURA DOCKER Fonte: Docker. Disponível em: https://docs.docker.com/get-started/overview/. Acesso em: 03 out. 2022. Legenda: Client (Cliente), Containers (Contêineres), Images (Imagens), Registry (Registros). O Docker Cliente é uma ferramenta de linha de comando que permite a interação com o servidor Docker daemon, por meio de comandos e subcomandos, como por exemplo “docker build”, “docker pull” ou “docker run”. A comunicação entre o Cliente e o Host realiza- da por meio de RESTful API, utilizando soquetes de domínio UNIX ou através de interface de rede (NOLETO, 2020). Para Sabharwal (2015) o Docker host possui o Docker daemon, recurso que é responsável por todas as operações do contêiner. Ele é executado em uma máquina host e os usuários não podem interagir diretamente com ele, a interação somente ocorre através das instruções enviadas por meio Docker Cliente. Sabharwal e W. (2015) ainda cita os outros elementos que constituem o Docker: • Contêiner Docker: é um diretório e um ambiente de execução para aplicativos. Ele é criado em cima de uma imagem do Docker e é completamente isolado. 62UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING Cada contêiner tem seu próprio espaço de usuário, configurações de rede e segurança associadas a ele. Um container contém todos os arquivos e configu- rações necessários para executar uma aplicação. • Imagens Docker: Uma imagem consiste em sistema operacional (Ubuntu, cen- tOs etc.) e aplicativos instalados nela. Essas imagens são chamadas de imagens de base. Uma imagem pode ser criada a partir do zero usando as ferramentas embutidas do Docker. Você também pode usar imagens do Docker criadas por outros usuários do registro público do Docker (hub do Docker) como imagem base para seus contêineres. • Registros Docker: O registro do Docker é um repositório para imagens do Docker, podendo ser público ou privado. O registro público do Docker mantido pelo Docker é chamado de hub do Docker. Os usuários podem fazer upload e download de imagens do registro do Docker. O registro público do Docker possui uma vasta coleção de imagens oficiais e criadas pelo usuário. “API é um termo para designar uma interface de comunicação que um sistema oferece para que outros acessem suas funções, dados e recursos sem que o software ou plataforma externa precise saber como eles foram implementados”. Fonte: Melo (2021, p. 01). “As relações de confiança na cadeia da nuvem precisam ser cuidadosamente consideradas. O datacenter na nuvem agora é controlado por terceiros e estruturas convencionais de segurança já não servem mais”. Fonte: Veras (2012, p. 67). 63UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING CONSIDERAÇÕES FINAIS Prezado (a) aluno (a), Neste material, busquei trazer até você os principais conceitos sobre gerenciamento de cloud computing, pois é um tema recorrente entre os profissionais da área de tecnologia. Posteriormente a esta apresentação inicial, seguimos com o conceito e preocu- pações com a segurança da computação em nuvem e quais cuidados deve-se tomar ao buscar por essas soluções tecnológicas. E por fim, foi apresentado o funcionamento da ferramenta Docker, com fundamentos sobre os itens e citando suas abordagens características de funcionamento e arquitetura. A partir de agora acreditamos que você está preparado para dar continuidade aos estudos, utilizando esses conceitos como base para o desenvolvimento de atividades práticas. Até uma próxima oportunidade. Muito obrigado! 64UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING MATERIAL COMPLEMENTAR • Título: Containers com Docker • Autor: Daniel Romero. • Editora: Casa do Código. • Sinopse: Dores de cabeça com configuração de ambiente, noites perdidas com versões inválidas de algum pacote e tempo perdido na instalação de pré-requisitos, sendo que tudo isso poderia ser facilmente automatizado e nenhum dos inconvenientes precisaria acontecer. Neste livro, Daniel Romero mostrará como esses e outros problemas podem ser resolvidos com Docker, poderosa ferramenta que nos permite isolar e manter diferentes ambientes de forma simples e facilmente configurável. Aproveite o primeiro livro sobre Docker do Brasil. • Título: Segurança na computação em nuvem • Autor: Adriano Carlos de Lima. • Editora: Senac. • Sinopse: O livro aborda desde os riscos vividos no ambiente, como a gestão da continuidade de negócios na recuperação de desastres, passando pela gestão da segurança e dos incidentes na computação em nuvem, até a gestão dos riscos envolvendo desenvolvedores de aplicações, detalhando as experiências e o conhecimento técnico. Traz ainda a visão do gestor e os pontos principais com os quais a equipe de gerenciamento de um grande centro de dados deve se preocupar, a importância da criptografia e do gerenciamento de chaves, finalizando com os aspectos da virtualização e as principais linguagens de programação nesses ambientes que hoje dominam os vários projetos e startups como as fintechs, em busca de uma segurança dos dados providos a seus clientes. 65UNIDADE 4 GERENCIAMENTO E CONTÊINERES EM CLOUD COMPUTING CONCLUSÃO GERAL Prezado (a) aluno (a), Neste material, busquei trazer para você os principais conceitos a respeito de sis- temas distribuídos e computação em nuvem. Para tanto, abordamos as definições teóricas e, neste aspecto, acreditamos que tenha ficado claro para você o quanto é importante a compreensão destes conceitos e qual sua relação com o mercado de trabalho atual. Destacamos também a importância de entender o funcionamento da comunicação nos sistemas distribuídos, quais protocolos da comunicação e qual o mais utilizado nos dias atuais e detalhamos a função de cada um destes protocolos no meio de comunicação. Foi abordado, também, temas como funciona a implantação de segurança nesses tipos de sistemas. Exibimos os conceitos de computação em nuvem e Internet das Coisas (IoT), qual sua relevância e por que devemos relacionar estes dois itens. Olhar para esta relação visa compreender o presente e visualizar o futuro de algo que dificilmente sairá da rotina das pessoas e profissionais de tecnologia no dia a dia. Ao pensarmos em algo mais prático, mostramos alguns mecanismos que ajudam a gerenciar os recursos da computação em nuvem e preocupações como problemas, riscos e seguranças dessa disciplina e finalizamos exibindo a ferramenta Docker, uma ferramenta gratuita e muito utilizada na construção de aplicativos (“Coisas” da Internet das Coisas) e como é seu funcionamento e estrutura. A partir de agora acreditamos que você já está preparado para seguir em frente desenvolvendo ainda mais suas habilidades para criar e desenvolver aplicações utilizando sistemas distribuídos com arquitetura em nuvem. Até uma próxima oportunidade. Muito Obrigado! 66 REFERÊNCIAS BIBLIOGRÁFICAS ALANI, Mohammedi M. Guideto OSI and TCP/IP Models. New York: Springer, 2014. ALCANTARA, Larissa Kakizaki de. Big Data e Internet das Coisas: desafios da privacida- de e da proteção de dados. São Paulo: Alcantara, 2017. BERNAL, Volnys. Protocolo IP. 2003. Disponível em: https://edisciplinas.usp.br/pluginfile. php/5456836/mod_resource/content/1/64-Proto-IP.pdf. Acesso em: 09 set. 2022. BRITO, Giulliano Franco de et al. Cloud Computing: segurança na computação em nuvem. Mineiros: Unifimes, 2017. CALEGARI, Gabriel. Arquitetura de Sistemas Distribuídos. 2021. Disponível em: https:// calegari.dev/posts/arquiteturas-de-sistemas-distribuidos/#:~:text=Vejamos%20alguns%20 dos%20estilos%20arquiteturais%20mais%20comuns%20no,e%20que%20o%20acopla- mento%20entre%20elas%20seja%20baixo. Acesso em: 20 ago. 2022. CLOUDFLARE. O que é o modelo OSI?. 2022. Disponível em: https://www.cloudflare.com/ pt-br/learning/ddos/glossary/open-systems-interconnection-model-osi/. Acesso em: 08 set. 2022. COULOURIS, George et al. Sistemas Distribuídos: conceitos e projeto. 5. ed. Porto Ale- gre: Bookman, 2013. FERNANDES, Carlos. Introdução à suíte de protocolos TCP/IP. 2022. Disponível em: https://cecead.com/assuntos/disciplinas/redes-de-computadores/aula-07-redes-de-compu- tadores/. Acesso em: 09 set. 2022. FERRAZ, Carlos. Modelos fundamentais. 2022. Disponível em: https://www.cin.ufpe. br/~cagf/sdgrad/aulas/Fundamentos.pdf. Acesso em: 08 set. 2022. 67 FORTES. Como obter segurança de dados em nuvem?. 2021. Disponível em: https:// blog.fortestecnologia.com.br/tecnologia-e-inovacao/seguranca-de-dados-em-nuvem/. Acesso em: 03 out. 2022. FWC. Cloud Computing e IoT: por que as tecnologias unidas são ainda mais potentes?. 2019. Disponível em: https://www.fwc.com.br/blog/cloud/cloud-computing-e-iot-por-que-as- -tecnologias-unidas-sao-ainda-mais-potentes/. Acesso em: 28 set. 2022. GOMES, Edeyson Andrade. Modelos de Sistemas Distribuídos. 2014. Disponível em: http://walderson.com/site/wp-content/uploads/2014/02/02.ModelosSistemasDistribuidos. pdf Acesso em: 20 ago. 2022. HSBS. 5 pilares da segurança na nuvem. 2022. Disponível em: https://www.hsbs.com.br/ blog-seguranca-na-nuvem/. Acesso em: 03 out. 2022. IPSENSE. Quais são as aplicações de um serviço de container em nuvem?. 2019. Disponível em: https://www.ipsense.com.br/blog/quais-sao-as-aplicacoes-de-um-servi- co-de-container-em-nuvem/#:~:text=O%20conceito%20de%20cloud%20container%20 (ou%20cont%C3%AAineres%20na%20nuvem%20ou,implantar%20e%20executar%20 aplicativos%20distribu%C3%ADdos. Acesso em: 04 out. 2022. JUNIOR, Elias P. Duarte. Introdução aos Sistemas Distribuídos. 2021. Disponível em: https://www.inf.ufpr.br/elias/sisdis/1CapituloSistemasDistribuidos.pdf. Acesso em: 18 ago. 2022. KALE, Vivek. Guide to Cloud Computing for Business and Technology Managers. Boca Raton: Crc Press, 2015. KOLBE JUNIOR, Armando. Computação em Nuvem. Curitiba: Contentus, 2020. 68 MAGALHAES, Leandro. Cloud Container: descubra o que é e como funciona um. 2020. Disponível em: https://blog.brasilcloud.com.br/cloud-container-descubra-o-que-e-e-como- -funciona-um/. Acesso em: 04 out. 2022. MANDIC. Cloud Compliance. 2022. Disponível em: https://platform.mandic.com.br/portfo- lio/cloud-compliance/. Acesso em: 03 out. 2022. MARTINS, Ricardo. Cloud Computing. 2014. Disponível em: https://pt.slideshare.net/ rmmartins/computao-em-nuvem-38583126. Acesso em: 28 set. 2022. MARTINS, Vildal. Segurança em sistemas distribuídos. 2022 Disponível em: http://www. batebyte.pr.gov.br/Pagina/Seguranca-em-sistemas-distribuidos. Acesso em: 09 set. 2022. MELL, Peter; GRANCE, Timothy. The NIST Definition of Cloud Computing. Gaithersburg: National Institute Of Standards And Technology, 2011. MELO, Diego. O que é uma API?. 2021. Disponível em: https://tecnoblog.net/responde/o- -que-e-uma-api-guia-para-iniciantes/. Acesso em: 04 out. 2022. NETO, Eduardo Savarese. Computação em Nuvem: O que é, Como funciona e Importân- cia. 2019. Disponível em: https://fia.com.br/blog/computacao-em-nuvem/. Acesso em: 27 set. 2022. NOLETO, Cairo. Docker: o que é e como construir sua aplicação?. 2020. Disponível em: https://blog.betrybe.com/tecnologia/docker/#3. Acesso em: 04 out. 2022. NOLETO, Cairo. Internet das Coisas (IoT): o que é, como funciona e exemplos. 2018. Disponível em: https://blog.betrybe.com/tecnologia/internet-das-coisas/#1. Acesso em: 26 set. 2022. NUNES, Cristina. Modelos de referência OSI. 2022. Disponível em: https://www.inf.pucrs. br/~cnunes/redes/aulas/Fisico6.pdf. Acesso em: 09 set. 2022. 69 ORACLE. O que é IoT. 2022. Disponível em: https://www.oracle.com/br/internet-of-things/ what-is-iot/. Acesso em: 26 set. 2022. PANTUZA, Gustavo. O que são e como funcionam os sockets. 2017. Disponível em: https://blog.pantuza.com/artigos/o-que-sao-e-como-funcionam-os-sockets. Acesso em 08 set. 2022. PICCINI, Marcelo. Conheça 3 tipos de computação em nuvem. 2020. Disponível em: https://tigraconsult.com.br/2020/05/27/tipos-de-computacao-em-nuvem/. Acesso em: 27 set. 2022. PISA, Pedro. O que é IP?. 2022. Disponível em: https://www.techtudo.com.br/noti- cias/2012/05/o-que-e-ip.ghtml. Acesso em: 09 set. 2022. REDHAT. IaaS x PaaS x SaaS. 2020. Disponível em: https://www.redhat.com/pt-br/topics/ cloud-computing/iaas-vs-paas-vs-saas. Acesso em: 28 set. 2022. RITTINGHOUSE, John W.; RANSOME, James F. Cloud Computing: implementation, management and security. Boca Raton: Crc Press, 2010. SABHARWAL, Navin; W, Bibin. Hands on Docker. Amazon Digital Services, 2015. SAKURAI, Rafael Guimarães. Criptografia de chave pública ou assimétrica. 2020. Dis- ponível em: http://www.universidadejava.com.br/outros/criptografia-assimetrica/. Acesso em: 10 set. 2022. SANTOS, Sandro. Introdução à IoT: desvendando a Internet das Coisas. São Paulo: Geral, 2018. SEMIGHINI FILHO, Dirceu Segurança em sistemas distribuídos. 2015. Disponível em: https://dirceuprofessor.blogspot.com/2015/05/seguranca-em-sistemas-distribuidos.html. Acesso em: 09 set. 2022. 70 SIQUEIRA, Fernando de. Comunicação entre processos. 2022. Disponível em: https://si- tes.google.com/site/proffdesiqsistemasdistribuidos/aulas/3-comunicacao-entre-processos. Acesso em 08 set. 2022. SOFTILNE. IaaS, PaaS e SaaS: entenda os modelos de nuvem e finalidades. 2022. Dis- ponível em: https://brasil.softlinegroup.com/sobre-a-empresa/blog/iaas-paas-saas-nuvem. Acesso em: 28 set. 2022. STUDOCU. Fundamentos de Sistemas Distribuídos. 2021. Disponível em: https://www. studocu.com/pt/document/universidade-do-minho/fundamentos-de-sistemas-distribuidos/ fundamentos-de-sistemas-distribuidos-resumos20212022/20337456. Acesso em: 20 ago. 2022. TANENBAUM, Andrew S.; VAN STEEN, Maarten. Sistemas Distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson, 2008. TAURION, Cesar. Computação em Nuvem. Rio de Janeiro: Brasport, 2009. TEIXEIRA, Pedro. Segurança em Sistemas Distribuídos. 2007. Disponível em: https:// www.revista-programar.info/artigos/seguranca-em-sistemas-distribuidos/. Acesso em: 20 ago. 2022. TOTVS. Internet das Coisas: o que é, surgimento, aplicações e impactos. 2021. Disponível em: https://www.totvs.com/blog/inovacoes/aplicacoes-da-internet-das-coisas/. Acesso em: 26 set. 2022. TREND. Micro. O que é segurança em nuvem?. 2022. Disponível em: https://www.trend- micro.com/pt_br/what-is/cloud-security.html. Acesso em: 03 out. 2022. TRIPLA. SaaS, PaaS e IaaS: diferenças e vantagens dos serviços de nuvem. 2021. Dispo- nível em: https://tripla.com.br/saas-paas-e-iaas-diferencas-e-vantagens-dos-servicos-de- -nuvem/. Acesso em: 28 set. 2022. 71 VERAS, Manoel. Cloud Computing: nova arquitetura da ti. Rio de Janeiro: Brasport, 2012. VITALINO, Jeferson Fernando Noronha; CASTRO, Marcus Andre Nunes. Descomplicando o Docker. Rio de Janeiro: Brasport, 2016. WALDERSON. Sistemas Distribuídos: comunicação entre processos. 2010. Disponível em: http://walderson.com/2010-1/icec/sd/3_Com_Proc.pdf. Acessoem: 08 set. 2022. 72 ENDEREÇO MEGAPOLO SEDE Praça Brasil , 250 - Centro CEP 87702 - 320 Paranavaí - PR - Brasil TELEFONE (44) 3045 - 9898 Site UniFatecie 4:para iniciar essa trilha de aprendizagem. Portanto, procure um lugar confortável e se acomode, porque vamos realizar uma introdução ao conteúdo a partir de agora. Um sistema distribuído é um conjunto de processos que se comunicam e colabo- ram para realizar uma tarefa. As tarefas podem ser de qualquer natureza, desde aplicações específicas como um sistema de compras de uma loja virtual, um sistema bancário, um sistema de comunicação, entre outros. Dessa forma, na Unidade I iniciaremos com a fundamentação teórica e conceitos sobre como funciona os sistemas distribuídos e como modelar e organizar esses tipos de sistemas. Esta Unidade está dividida em três capítulos: • Introdução sobre sistemas distribuídos; • Arquitetura de sistemas; • Modelos fundamentais. Bons estudos! 7UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD Nos últimos anos ou décadas a Internet vem revolucionando o mundo, alterando e melhorando efetivamente a forma como seres humanos se comunicam, trabalham e se divertem. A Internet é o principal elemento para essa revolução, que na verdade, se trata de uma rede de computadores conectados em todo o mundo como se fosse uma única rede. O software que executa sobre essas redes é um sistema distribuído, no qual são seguidos um conjunto de processos, que são programas em execução em múltiplos computadores da rede, cooperando para a realização das mais diversas tarefas (JUNIOR, 2021). Segundo Tanenbaum e Van Steen (2008), existem algumas características importantes em sistemas distribuídos, uma delas é que as diferenças entre os computadores e a forma que eles se comunicam não são visíveis aos usuários. Outra característica, seria a maneira como usuários e aplicações interagem dentro de um sistema distribuído de maneira consistente. Para Coulouris et al. (2013, p. 03): [..] as redes estão por toda parte e servem de base para muitos serviços co- tidianos que agora consideramos naturais; por exemplo, a Internet e a World Wide Web associada a ela, a pesquisa na Web, os jogos online, os e-mails, as redes sociais, o e-Commerce etc. Para ilustrar ainda mais esse ponto, consi- dere a Figura a seguir, que descreve uma variedade de setores de aplicação comercial ou social importantes, destacando alguns usos associados estabe- lecidos ou emergentes da tecnologia de sistemas distribuídos. [..] os sistemas distribuídos abrangem muitos dos desenvolvimentos tecnológicos mais signi- ficativos atualmente e, portanto, um entendimento da tecnologia subjacente é absolutamente fundamental para o conhecimento da computação moderna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TÓPICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTRODUÇÃO A SISTEMAS DISTRIBUÍDOS1 TÓPICO 8UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD FIGURA 1 - APLICAÇÃO DE REDE ASSOCIADAS Fonte: Coulouris et al. (2013, p. 04). Analisando estes conceitos, fica nítido que a quantidade de informações que os sistemas distribuídos compartilham são gigantescas, a cada dia que passa a quantidade de informações transmitidas vem aumentando drasticamente e existe uma série de requisitos para que este tipo de tecnologia deve seguir para atender essa alta demanda. A figura a seguir exibe o crescimento de computadores e servidores web que são o motivo desse aumento de compartilhamento de informações. 9UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD FIGURA 2 - CRESCIMENTO DA INTERNET Fonte: Coulouris et al. (2013, p. 20). 1.1 Requisitos de um sistema distribuídos Neste subcapítulo serão abordados os requisitos mais importantes relacionados a um sistema distribuído. 1.1.1 Transparência Segundo Tanenbaum e Van Steen (2008), a transparência em um sistema distribuído é o fato de ocultar seus processos e recursos, ou seja, exibir para os usuários e aplicações um único sistema de computador, não exibindo como estão fisicamente distribuídos os recursos. A figura a seguir exibe alguns aspectos da transparência. FIGURA 3 - DIFERENTES FORMAS DE TRANSPARÊNCIA Fonte: Tanenbaum e Van Steen (2008, p. 3). 1.1.2 Concorrência O fato de vários usuários tentarem acessar um recurso compartilhado ao mesmo tempo gera uma concorrência, porém, as alterações feitas em um arquivo por um usuá- 10UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD rio não devem interferir nas operações dos outros, mesmo que eles estejam alterando o mesmo arquivo. Para que um objeto mantenha coerência em um ambiente concorrente, suas operações devem ser sincronizadas de tal maneira que seus dados permaneçam consistentes (COULOURIS et al., 2013). 1.1.3 Heterogeneidade Para Coulouris et al. (2013) a heterogeneidade ocorre pelo fato da Internet permitir que usuários acessem diferentes recursos e aplicações em um conjunto de computadores e redes diferentes, essas diferenças (heterogeneidade) desses recursos se aplicam nos aspectos: • Redes; • Hardware de computador; • Sistemas operacionais; • Linguagens de programação • Implementações de diferentes desenvolvedores. Para suportar essa heterogeneidade, os sistemas distribuídos são organizados por meio de uma camada de software que fica entre a camada de aplicações e a camada dos sistemas operacionais, que é denominado como middleware (TANENBAUM e VAN STEEN, 2008). FIGURA 4 - SISTEMA DISTRIBUÍDO ORGANIZADO COMO MIDDLEWARE Fonte: Tanenbaum e Van Steen (2008, p. 02). Analisando o modelo middleware fica visível que independente do sistema opera- cional ou qual tipo de aplicação que os computadores estejam acessando, o middleware é igual para todos, se olharmos para o exemplo da figura e pensarmos na Internet como esse middleware, fica fácil o entendimento, pois independentemente de como está sendo acessado os recursos, a internet será igual para todos equipamentos e serviços. 1.1.4 Sistemas abertos De acordo com Coulouris et al. (2013, p. 18): 11UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD [..] Os sistemas projetados a partir de padrões públicos são chamados de sistemas distribuídos abertos, para reforçar o fato de que eles são extensíveis. Eles podem ser ampliados em nível de hardware, pela adição de computadores em uma rede, e em nível de software, pela introdução de novos serviços ou pela reimplementa- ção dos antigos, permitindo aos programas aplicativos compartilharem recursos. 1.1.5 Segurança Quando o assunto é segurança em sistemas, devemos sempre observar como são implementados esses recursos, normalmente temos privilégios de usuários, criptografias etc., nos sistemas distribuídos não é diferente, existem algumas características que devem ser levadas em consideração sobre segurança. Para Teixeira (2007), pode-se destacar três tipos de segurança em sistemas distri- buídos, são eles: • Isolamento de agentes: fazer a limitação de acesso nos sistemas, exigindo identificação e autenticação dos usuários. • Controle de acessos: Faz o controle do que o usuário pode ou não acessar dentro de um sistema, por exemplo uma ACL (Access Control List) onde o tipo de acesso que o usuário possui lista todas funcionalidades e recursos que ele possa interagir no sistema. • Controle nível de segurança: o usuário só receberá a informação que ele real- mente precisa dentro do sistema, essas informações devem ser classificadas com níveis de confiabilidade e serem vistas de acordo com cada nível de acesso. 1.1.6 Escalabilidade Segundo Tanenbaum e Van Steen (2008, p. 06), a escalabilidade deve ser medida em três dimensões diferentes: [..] em primeiro lugar, um sistema pode ser escalável em relação a seu tama- nho, o que significa que é fácil adicionar mais usuários e recursos ao siste- ma. Em segundo lugar, um sistema escalável em termos geográficos é um sistema no qual usuários e recursos podem estar longe unsdos outros. Em terceiro lugar, um sistema pode ser escalável em termos administrativos, o que significa que ele ainda pode ser fácil de gerenciar, mesmo que abranja muitas organizações administrativas diferentes. Um exemplo da escalabilidade é o fato de poder aumentar o processamento das transações, uma vez que aumente a quantidade de usuários acessando o sistema ou a quantidade de novas informações forem adicionadas, pode-se adicionar mais recursos como processadores ou dispositivos de armazenamento. 12UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD Embora não existam sistemas sem alguma arquitetura, as arquiteturas de um sistema podem ser de boa ou má qualidade. A qualidade está na preocupação de resolver possíveis problemas durante o ciclo de vida de um sistema, tanto na parte técnica quanto na parte negocial (CALEGARI, 2021). Segundo Tanenbaum e Van Steen (2008), a arquitetura de sistema também pode ser estabelecida pela definição de quais componentes de software e interações serão utilizadas para a construção de um sistema distribuído. Essa organização é dividida em arquiteturas centralizadas, descentralizadas e híbridas. 2.1 Arquiteturas centralizadas De acordo com Coulouris et al. (2013), a arquitetura cliente-servidor é a mais utilizada e importante quando se trata de sistemas distribuídos. Há uma comunicação entre os processos clientes e os processos servidores para acessar recursos compartilhados. FIGURA 5 - MODELO CLIENTE-SERVIDOR Fonte: Coulouris et al. (2013, p. 47). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ARQUITETURA DE SISTEMAS2 TÓPICO 13UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD Segundo Tanenbaum e Van Steen (2008), muitas aplicações cliente-servidor buscam dar suporte ao acesso de usuários a banco de dados, um modelo de camadas de aplicação pode ser definido para atender as demandas de requisições aos bancos de dados. Essas camadas podem ser divididas em três níveis: • Nível de interface de usuário; • Nível de processamento; • Nível de dados. FIGURA 6 - ORGANIZAÇÃO SIMPLIFICADA EM TRÊS CAMADAS Fonte: Tanenbaum e Van Steen (2008, p. 24). No nível de interface é onde encontramos a maneira em que o interage diretamente com o sistema. No nível de processamento vemos algumas aplicações definidas através de algoritmos, linguagens de programação, scripts etc., é nesta etapa que as requisições são processadas. E no nível de dados ocorre a gestão dos dados. 2.2 Arquiteturas descentralizadas Segundo Calegari (2021, p. 02): [..] essa arquitetura realiza uma distribuição horizontal, isto é, divide um clien- te ou servidor fisicamente em partes logicamente equivalentes. Utilizando o exemplo de sistemas de três camadas, uma mesma camada pode ser dis- tribuída em várias máquinas. Isso resulta em um melhor equilíbrio de carga. Um exemplo deste tipo de arquitetura são os sistemas peer-to-peer, um dos méto- dos mais utilizados nos dias atuais. Coulouris et al. (2013, p. 46-47) define que: [..] nessa arquitetura, todos os processos envolvidos em uma tarefa ou ativida- de desempenham funções semelhantes, interagindo cooperativamente como pares (peers), sem distinção entre processos clientes e servidores, nem entre os computadores em que são executados. Em termos práticos, todos os pro- cessos participantes executam o mesmo programa e oferecem o mesmo con- junto de interfaces uns para os outros. Embora o modelo cliente-servidor ofe- reça uma estratégia direta e relativamente simples para o compartilhamento de dados e de outros recursos, ele não é flexível em termos de escalabilidade. 14UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD FIGURA 7 - ARQUITETURA PEER-TO-PEER Fonte: Coulouris et al. (2013, p. 48). 2.3 Arquiteturas híbridas Conforme o nome sugere, esta é uma mistura das arquiteturas centralizadas e des- centralizadas, no qual pode-se utilizar o modelo cliente-servidor para os nós se conectarem e o restante dos componentes utilizarem a arquitetura descentralizada. Para Tanenbaum e Van Steen (2008), um modelo de sistema híbrido é conhecido como sistemas de servidor de borda, em que os servidores são colocados na borda da rede e os usuários finais se conectam por meio desses servidores. Um exemplo são os prove- dores de internet (ISP) que usamos nos dias atuais. A figura abaixo exemplifica o modelo. FIGURA 8 - VISÃO DE SERVIDORES DE BORDA Fonte: Tanenbaum e Van Steen (2008, p. 31). 15UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD De acordo com Coulouris et al. (2013), embora os sistemas distribuídos possuam bastante diferença, eles apresentam algumas propriedades semelhantes ou até mesmo idênticas, todos processos que envolvem esses sistemas possuem um método de comuni- cação de envio de mensagens via rede de computadores. Para Gomes (2014), são alguns aspectos dos sistemas distribuídos nos modelos fundamentais: • Interação: ◦ Processos interagem passando mensagens; ◦ A comunicação ocorre com atrasos. • Falhas: ◦ Define e classifica falhas; ◦ Fornece uma base para análise de seus efeitos e tratamento. • Segurança: ◦ Define e classifica as formas que ataques podem assumir; ◦ Fornece uma base para análise das possíveis ameaças e os métodos de resistência. 3.1 Modelo de interação Segundo StuDocu (2021), a velocidade com que um processo avança na sua exe- cução e o tempo de transmissão de uma mensagem entre esses processos não podem ser geralmente previstos. Há dois fatores que afetam os processos num sistema distribuído: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MODELOS FUNDAMENTAIS3 TÓPICO 16UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD • O desempenho dos canais de comunicação entre processos – questões de latência, largura de banda; • Não é possível manter uma noção global de tempo – cada computador tem o seu relógio, e tem tendência a desviar do tempo real. Uns deviam-se mais, outros não. Para Coulouris et al. (2013), os fatores que auxiliam o desempenho na comunica- ção podem ser descritos como: • Latência: é o atraso decorrido entre o início da transmissão de uma mensagem em um processo remetente e o início da recepção pelo processo destinatário; • Largura de banda: é o volume total de informações que pode ser transmitido em determinado momento. Quando um grande número de comunicações usa a mesma rede, elas compartilham a largura de banda disponível. E, ainda, conclui-se que, um exemplo para corrigir problemas de diferença de reló- gio são os computadores que possuem rádio para acessar o GPS (Global Position System), pois este recurso tem uma precisão quase perfeita em relação ao horário correto. 3.2 Modelo de falhas Segundo Gomes (2014), esse modelo voltado a falhas visa garantir o comportamento correto e desejável dos processos e canais de comunicação, buscando entender seus efeitos e consequências. Podendo ser divididos em três modelos: omissão, arbitrárias e sincronização. A falha de omissão ocorre em duas vertentes, a omissão do processo que é onde o processo ou a próxima etapa do programa não são executadas e gera a paralisação do sistema. E, a omissão na comunicação em que uma mensagem falha e não chega ao destino final no canal de comunicação (COULOURIS et al., 2013). FIGURA 9 - PROCESSOS E CANAIS Fonte: Coulouris et al. (2013, p. 69). Para StuDocu (2021), as falhas arbitrárias, também conhecida como bizantinas, é quando um processo ou canal envia valores incorretos, por exemplo: • O canal de comunicação corrompe os dados de uma mensagem; • O servidor envia uma resposta incorreta. 17UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD E por último, as falhas de sincronização, também conhecidas como falhas de tem- porização, ocorrem em sistemas distribuídos síncronos devido aos limites estabelecidos para o tempo de execução dosprocessos. A figura a seguir mostra alguns exemplos dessas falhas (COULOURIS et al., 2013). FIGURA 10 - FALHAS DE TEMPORIZAÇÃO Fonte: Coulouris et al. (2013, p. 71). 3.3 Modelo de segurança Segundo Tanenbaum e Van Steen (2008, p. 19) “uma política de segurança des- creve com exatidão quais ações as entidades de um sistema têm permissão de realizar e quais são proibidas. Entidades incluem usuários, serviços, dados, máquinas, etc.” Os sistemas distribuídos estão expostos a uma grande quantidade de riscos de segurança, seja eles por agentes internos ou externos. E que algumas técnicas para tratar esses riscos são: autenticação, criptografia e canais seguros (STUDOCU, 2021). Para Coulouris et al. (2013, p. 74-75): • Autenticação: o uso de segredos compartilhados e da criptografia fornece a base para a autenticação de mensagens – provar as identidades de seus re- metentes. A técnica de autenticação básica é incluir em uma mensagem uma parte cifrada que possua conteúdo suficiente para garantir sua autenticidade. • Criptografia: é a ciência de manter as mensagens seguras, e cifragem é o processo de embaralhar uma mensagem de maneira a ocultar seu conteúdo. A criptografia moderna é baseada em algoritmos que utilizam chaves secre- tas – números grandes e difíceis de adivinhar – para transformar os dados de uma maneira que só possam ser revertidos com o conhecimento da chave de decifração correspondente. • Canais seguros: criptografia e autenticação são usadas para construir canais seguros como uma camada de serviço a mais sobre os serviços de comunicação já existentes. Um canal seguro é um canal de comunicação conectando dois processos, cada um atuando em nome de um principal. A figura a seguir exibe um exemplo. FIGURA 11 - CANAIS SEGUROS Fonte: Coulouris et al. (2013, p. 75). 18UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD 19UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD São alguns dos problemas que os projetistas de sistemas distribuídos enfrentam: variados modos de uso, ampla variedade de ambientes de sistema, problemas internos e ameaças externas. Fonte: Coulouris (2013). “Sistemas distribuídos costumam ter como meta ocultar a grande parte das complexidades relacionadas à distribuição de processos, dados e controle. [..] em situações práticas, nunca pode ser totalmente alcançada”. Fonte: Tanenbaum e Steen (2008, p. 18). CONSIDERAÇÕES FINAIS Prezado (a) aluno (a), Neste material, busquei trazer até você os principais conceitos sobre Sistemas Distri- buídos, pois essa será a base para o desenvolvimento dos próximos conteúdos trabalhados. Posteriormente a esta apresentação inicial, seguimos com a fundamentação dos siste- mas distribuídos abordando características importantes ao se construir estes tipos de sistemas. Foi conceituado também as arquiteturas que suportam os sistemas distribuídos, seus tipos e exemplos práticos. Por fim, foi apresentado os modelos fundamentais, com fundamentos sobre os itens e citando suas principais preocupações, abordando características chaves para se ter um sistema distribuído seguro e com poucas falhas. A partir de agora acreditamos que você está preparado para dar continuidade aos estudos das próximas unidades, que o ajudarão a desenvolver a compreensão mais detalhada da disciplina. Até uma próxima oportunidade. Muito obrigado! 20UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD MATERIAL COMPLEMENTAR • Título: Sistemas distribuídos • Autor: Marcelo Teixeira de Azevedo. • Editora: Senac São Paulo. • Sinopse: Sistemas distribuídos contextualizam e apresenta os conceitos essenciais em sistemas distribuídos através de exemplos e programas práticos para o entendimento da teoria. Entre os te- mas abordados, estão sistemas concorrentes, objetos distribuídos, comunicação em sistemas distribuídos, sincronização e transação, além de sistemas em nuvem. O objetivo é proporcionar ao leitor uma visão geral sobre a evolução dos sistemas distribuídos, sua caracterização e aplicabilidade no dia a dia. • Título: Tecnologia de sistemas distribuídos • Autor: Jose Alves Marques e Paulo Guedes. • Editora: FCA. • Sinopse: Os sistemas informáticos atuais encontram-se num processo rápido de evolução em grande parte provocado pela introdução das redes de computadores e pelos computadores pessoais. A conjugação destes dois desenvolvimentos tecnoló- gicos deu origem aos Sistemas Distribuídos. Esta disciplina, que constitui uma evolução dos sistemas operativos, encontra-se no cerne da alteração radical da forma como se estruturam as apli- cações informáticas. A Internet é um exemplo desta evolução de conhecimento do grande público, mas a sua utilização é apenas o início de uma profunda modificação na forma de encarar a Informática. Neste livro explicam-se os elementos fundamentais de um sistema distribuído: as redes de dados, os protocolos de comunicação, a comunicação distribuída, o sistema cliente - servi- dor, os sistemas de nomes, a segurança, a tolerância a faltas e os sistemas de ficheiros distribuídos. O livro procura ser um texto de nível académico para os estudantes de Engenharia de Informática e de Informática de Gestão e, simultaneamente, um texto para os profissionais de Informática e para todos os interessados pelos sistemas computacionais perceberem o funcionamento intrínseco dos futuros sistemas informáticos. 21UNIDADE 1 SISTEMAS DISTRIBUÍDOS E CLOUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plano de Estudos • Comunicação em sistemas distribuídos; • Segurança em sistemas distribuídos. Objetivos da Aprendizagem • Conhecer os fundamentos da comunicação entre os sistemas; • Entender o funcionamento dos protocolos de comunicação; • Compreender as técnicas e preocupações para se ter um sistema seguro; 2UNIDADEUNIDADE COMUNICAÇÃO COMUNICAÇÃO E SEGURANÇA E SEGURANÇA EM SISTEMAS EM SISTEMAS DISTRIBUÍDOSDISTRIBUÍDOS Professor Esp. João Carlos Vilela Junior INTRODUÇÃO Oi, tudo bem? Seja bem-vindo (a) a nossa Segunda Unidade da disciplina de Sis- temas Distribuídos e Cloud. Acredito que, assim como eu, você deve estar com muitas ex- pectativas para iniciar essa trilha de aprendizagem. Portanto, procure um lugar confortável e se acomode, porque vamos realizar uma introdução ao conteúdo a partir de agora. A palavra comunicação no dicionário é definida pelo ato que envolve a transmissão e a recepção de mensagens entre o transmissor e o receptor, através da linguagem oral, escrita ou gestual, por meio de sistemas usando-se sinais em fios ou ondas eletromagnéticas. A co- municação é um fator importante entre os processos que controlam os sistemas distribuídos. De acordo com Tanenbaum e Van Steen (2008, p. 69) “a comunicação entre os processos está no coração de todo sistema distribuído. A comunicação em sistemas distri- buídos é sempre baseada em troca de mensagens de baixo nível”. Dessa forma na Unidade II abordaremos os tipos de comunicação e suas caracte- rísticas e como manter um sistema distribuído seguro. Esta Unidade está dividida em dois capítulos: • Comunicação em sistemas distribuídos; • Segurança em sistemas distribuídos. Bons estudos! 23UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMASDISTRIBUÍDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TÓPICO O sistema distribuído é composto por um conjunto de processos que se comunicam com objetivo de realizar uma tarefa. Um processo pode ser definido como um programa em execução (JUNIOR, 2021). Segundo Semighini Filho (2015, p. 01): Para entender o que é um processo, primeiro deve-se entender o que é uma thread e como estes dois conceitos estão relacionados. Para executar um programa, o Sistema Operacional criará um número de processos virtuais, cada um para rodar um programa diferente. Para saber qual processo per- tence a qual programa, o Sistema Operacional possui uma tabela, onde ficam armazenados os dados de permissão, áreas da memória, arquivos abertos, dados da conta do usuário, etc. O Sistema Operacional deve cuidar para que um processo não interfira na execução de outro, por exemplo dois processos não podem compartilhar a mesma área na memória, etc, pois quando isso acontece temos aquele famoso erro da tela azul. Para Tanenbaum e Van Steen (2008) a comunicação nos sistemas distribuídos ocorre devido à ausência de memória compartilhada, ou seja, ela é baseada no envio e recebimento de mensagens de baixo nível. Para que um processo X se comunique com um processo Y ele deve primeiramente montar uma mensagem em seu próprio espaço de endereço, após isso, o X faz uma chamada de sistema e faz com que o sistema operacional envie a mensagem até o Y. FIGURA 1 – OS PROCESSOS A E B TROCANDO MENSAGENS Fonte: Junior (2021, p. 04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COMUNICAÇÃO EM SISTEMAS DISTRIBUÍDOS1 TÓPICO 24UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS De acordo com Siqueira (2022, p. 01): Na troca de mensagens entre os processos, a comunicação pode ser síncro- na ou assíncrona. Na comunicação síncrona o processo origem ao enviar a mensagem fica bloqueado até que o processo destino até que a recepção correspondente seja realizada. Quando uma recepção é realizada o processo fica bloqueado até que a mensagem chegue. Assim, tanto a operação send quanto a operação receive são bloqueantes na comunicação síncrona. Esta é a forma padrão de comunicação entre os processos. Na comunicação assín- crona o processo origem ao enviar a mensagem fica liberado para prosseguir seu processamento, quanto a mensagem é enviada ao destino. Neste caso, a recepção da mensagem pode ser bloqueante ou não bloqueante. Na recep- ção não bloqueante o processo destino prossegue seu processamento até que a mensagem seja entregue. Na recepção bloqueante o processo destino é bloqueado enquanto a mensagem é transmitida e somente é liberado quan- do a mensagem é entregue. Um padrão bastante conhecido e muito utilizado para construir sistemas distribuí- dos e apoiar a comunicação entre eles é o modelo OSI, este modelo fornece suporte para que diferentes sistemas de computadores possam se comunicar. O modelo OSI (Open Systems Interconnection Reference Model) foi criado para facilitar a comunicação em vários níveis através de protocolos em camadas. Este modelo foi projetado para que sistemas abertos possam se comunicar com outros sistemas abertos desde que sigam regras padronizadas (os protocolos). A comunicação neste modelo pode ser efetuada em até sete níveis ou camadas, porém não é necessário ser implementados todos esses níveis nos sistemas (TANENBAUM e VAN STEEN, 2008). FIGURA 2 – CAMADAS, INTERFACES E PROTOCOLOS NO MODELO OSI Fonte: Tanenbaum e Van Steen (2008, p. 70). 1.1 Protocolos de níveis mais baixos As camadas de níveis mais baixos são compostas pela camada física, de enlace e de rede. Essas três camadas constituem as funções básicas de comunicação. Na camada física os bits são tratados de forma bruta, a ideia é manter um link de comunicação entre duas entidades através de meios mecânicos, elétricos e funcionais. 25UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS Os protocolos desta camada utilizam sinais para manter a conexão entre as entidades, podendo ser através de sinais elétricos (cabos) ou sinais de luz (fibra) (ALANI, 2014). Segundo Nunes (2022) a camada de enlace é responsável por converter um canal de transmissão físico não confiável em um canal confiável. Esta camada executa três tarefas: • Enquadramento dos bits: delimitando-os por quadros; • Detecção e recuperação de erros: criando redundância na transmissão; • Controle de fluxo: executa o controle de emissão de quadros, pois o transmissor pode enviar quadros com mais velocidade que o receptor possa aceitar. Para Cloudflare (2022) a camada de rede: [..] é responsável por facilitar a transferência de dados entre duas redes di- ferentes. Se os dois dispositivos que estão se comunicando estiverem na mesma rede, a camada de rede será desnecessária. A camada de rede divide os segmentos da camada de transporte em unidades menores denominadas pacotes no dispositivo remetente e remonta esses pacotes no dispositivo re- ceptor. A camada de rede também encontra o melhor caminho físico para que os dados cheguem ao seu destino, o que é conhecido como “roteamento”. O roteamento é um assunto complicado, pois nem sempre a rota mais curta é a melhor, em alguns casos a mensagem precisa saltar várias vezes para chegar ao destino final. Isso pode gerar um tráfego ou um enfileiramento de mensagens, que pode ser tratado por algoritmos de roteamento de cargas (TANENBAUM e VAN STEEN, 2008). FIGURA 3 – CAMADA DE REDE Fonte: Cloudflare (2022, p. 01). Para Tanenbaum e Van Steen (2008, p. 72): No momento, o protocolo de rede de mais ampla utilização é o protocolo de internet (Internet Protocol - IP) sem conexão, que faz parte da fila de proto- colos da internet. Um pacote – termo técnico para enviar uma mensagem na camada de rede – IP pode ser enviado sem nenhuma preparação antecipada. Cada pacote IP é roteado até seu destinatário, independente de todos os ou- tros. Nenhum caminho interno é selecionado, tampouco lembrado. Como os três níveis citados anteriormente são os fundamentais para o bom funcio- namento de um sistema distribuído, quando um sistema for construído deve se preocupar com a implementação de camadas com cuidado e procurar fazê-lo bem estruturado, reali- zando escolhas que irão atender as necessidades do sistema. 26UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS 1.2 Protocolo de transporte A camada de transporte implementa os serviços não fornecidos pela camada de rede, podendo ser construída por desenvolvedores de aplicação. O trabalho desta camada é evitar que pacotes possam ser perdidos durante a transmissão entre remetente e receptor (TANENBAUM e VAN STEEN, 2008). Segundo Alani (2014) a camada de transporte está focada nos dois tipos de funções para os serviços de rede, os orientados à conexão e sem conexão. As funções da camada de transporte orientada à conexão são: • Estabelecer e liberar as conexões de transporte: esta função é responsável por iniciar e liberar a conexão entre as entidades de comunicação. • Controle de sequência: visa garantir que os dados cheguem ao destino na mesma sequência que foram enviados. • Detecção e recuperação de erros de ponta a ponta: essa função visa detectar erros durante os segmentos e tenta recuperá-los para sua forma original sem erros. • Segmentação: os dados são segmentados no remetente e reconstruído no destinatário. • Controle de fluxo de ponta a ponta: faz o controle dos segmentos que serão transferidos de uma entidade para outra. E, as funções orientadas sem conexão são: • Detecção de erros de ponta a ponta: nesta etapa é detectado apenas os erros e faz a notificação às entidades, porém não tenta recuperá-los. • Monitoramento de parâmetros QoS: os termos de QoS(quality of services) podem ser monitorados nas comunicações sem conexão. • Delimitação de PDU (Protocol Data Unit): Esta função introduz a capacidade de delimitar as PDUs para manter a continuidade da comunicação. 1.3 Protocolos de níveis mais altos As camadas de níveis mais altos são compostas pela camada de sessão, de apresenta- ção e de aplicação. Segundo Tanenbaum e Van Steen (2008) essas três camadas acima do nível de transporte são adicionais, pois na verdade entre elas, apenas a cama de aplicação é utilizada na prática. Em comparação ao protocolo da Internet (será abordado no próximo subcapítulo) toda estrutura de protocolos acima do nível de transporte foi agrupado como um protocolo único. A camada de sessão possui a capacidade de organizar a comunicação entre duas entidades, ou seja, ela é responsável pela abertura e fechamento da comunicação. Ele também controla o tempo em que a comunicação permanece aberta. Por exemplo, um arquivo de 50 megabytes precisa ser transferido, esta camada pode definir um ponto de verificação a cada 10 megabytes, se em algum momento a conexão falhar com 32 megaby- 27UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS tes transferidos, a sessão retornará a partir daquele ponto assim que as conexões entre as duas entidades forem restauradas e terminar de transferir o arquivo (CLOUDFLARE, 2022). Para Alani (2014) a camada de apresentação é responsável pela forma como os dados são apresentados à aplicação. Quando é iniciada uma comunicação entre duas entidades, esta camada negocia a forma dos dados serão transferidos. Após essa negociação, a camada de apresentação executa alguns serviços como: compactação, criptografia e tradução. Estes serviços podem ser utilizados por opção/necessidade de quem desenvolve a aplicação. FIGURA 4 – CAMADA DE APRESENTAÇÃO Fonte: Cloudflare (2022, p. 01). E o último nível do modelo OSI, encontra-se a camada de aplicação, como citado anteriormente, entre as camadas de alto nível ela é considerada a mais importante e mais utilizada em termos práticos quando se desenvolve sistemas distribuídos. Conceitua Alani (2014, p. 13-14) que: A camada de aplicação é responsável por definir os serviços apresentados no userend. Os protocolos da camada de aplicação variam de acordo com o tipo específico de dados que o usuário deseja transferir. A camada de aplica- ção também define os parâmetros de QoS aceitáveis para cada serviço. Por exemplo, a transmissão de dados de voz requer parâmetros de QoS diferen- tes da transferência de um e-mail. A escolha de quais aspectos de segurança usar, como autenticação e controle de acesso, fica a cargo da camada de aplicação. Além disso, a sincronização de aplicativos de comunicação em serviços orientados a conexão é responsabilidade da camada de aplicativo. As principais funções desta camada são (ALANI, 2014): • Identificação dos serviços prestados ao usuário; • Definição dos parâmetros de QoS exigidos pelo aplicativo; • Definição dos mecanismos de segurança a serem implementados, por exemplo: autenticações e controle de acessos; • Sincronizar aplicativos de comunicação a nível de serviços e não protocolos. De acordo com Tanenbaum e Van Steen (2008, p. 73) este protocolo “se tornou o repositório para todas as aplicações e protocolos que, de uma maneira ou outra, não se ajustam a uma das camadas subjacentes. Da perspectiva do modelo de referência OSI, praticamente todos sistemas distribuídos são apenas aplicações”. 1.4 Protocolo TCP/IP Segundo Pantuza (2017) atualmente o padrão de comunicação TCP/IP é baseado no modelo OSI e, também, é o padrão de comunicação mais utilizado como base para a 28UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS Internet. Em comparação ao OSI, que possui sete camadas, este padrão é composto por apenas quatro camadas. FIGURA 5 – OSI X TCP/IP Fonte: Pantuza (2017, p. 01). O TCP/IP é apenas um protocolo de um conjunto de protocolos e APIs para comunica- ção entre processos e máquinas heterogêneas, esse conjunto é conhecido como sockets. Esses sockets fazem a interface entre a camada de transporte e aplicação (WALDERSON, 2010). FIGURA 6 – TIPOS DE SOCKETS Fonte: Walderson (2010, p. 10). O TCP/IP tem como ponto forte a independência do tipo de tecnologia de rede ou por qual meio os dados serão transmitidos, desde que a tecnologia utilizada seja capaz de entregar pacotes IP. São exemplos de tecnologias: LAN, WAN, Ethernet, Fibra, redes sem fios e etc (ALANI, 2014). De acordo com Walderson (2010) este protocolo é um serviço com conexão, ou seja, ele foca na ligação entre duas entidades, realizando transferências de dados e interrompendo a conexão quando não há informações a serem transferidas. O TCP/IP possui algumas funções: • Sequencialidade de dados: garantir que a ordem durante a transmissão seja a mesma entre a emissão e recepção. • Controle de erros: realiza a retransmissão de mensagens corrompidas ou perdidas. 29UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS • Controle de fluxo: controla o ritmo de transferência entre o emissor e receptor. • Bidirecional: a comunicação acontece nos dois sentidos, não é uma comunica- ção que só uma entidade envia e a outra recebe. As duas entidades podem se comunicar enviando e recebendo dados. Na primeira camada do protocolo, a camada física não é considerada uma camada real para o TCP/IP, ela apenas tem o dever de garantir que os IPs vindos da camada de rede sejam entregues através de um link físico. Para Fernandes (2022, p. 01), a segunda camada, a de rede é: [..] Também conhecida como camada Internet, é responsável pelo endere- çamento, roteamento dos pacotes, controle de envio e recepção (erros, bu- fferização, fragmentação, sequência, reconhecimento, entre outros. Dentre esses protocolos da Camada de Redes, destaca-se inicialmente o IP (Internet Protocol), além do ARP, ICMP, RARP e dos protocolos de roteamento (RIP, IGP, OSPF, Hello, EGP e GGP). A camada de rede é uma camada não orien- tada à conexão, portanto comunica-se através de datagramas. Conceitua Alani (2014) que o protocolo IP é orientado a não conexão, ou seja, ele não estabelece uma conexão antes de transferir dados e não emprega um mecanismo de confirmação para garantir a entrega de seus pacotes. Este protocolo deixa essas operações de controle para os protocolos superiores. O protocolo IP tem uma função de endereçamento, no qual todos equipamentos conectados à Internet são identificados através do seu endereço IP, estes endereços IPs permitem identificar de forma única qualquer equipamento na Internet (BERNAL, 2003). FIGURA 7 – FORMATO DO IP Fonte: Pisa (2022, p. 01). Pode-se concluir ainda que, o protocolo TCP/IP é o fundamental e mais ideal para construir qualquer tipo de sistema, seja ela convencional ou distribuído. Esse protocolo está em todos sistemas mundiais e ainda não temos uma possível nova tecnologia capaz de tornar o TCP/IP um protocolo obsoleto. Tanto que podemos citar o atual momento em que os IPs passaram de utilizar a versão IPv4 e está no início da versão IPv6, sendo assim, mais um motivo para acreditarmos que este modelo será o principal por muito tempo. 30UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEGURANÇA EM SISTEMAS DISTRIBUÍDOS2 TÓPICO Quando falamos em segurança, seja no mundo físico ou eletrônico, normalmente estamos envolvidos em alguma política de segurança, este termo é utilizado por pessoas, organizações, governos e etc... No mundo eletrônico, ou da computação, é fundamental criar políticas e mecanismos de segurança para que os sistemas sejam considerados seguros. Segundo Tanenbaum e Van Steen (2008, p. 228): A segurança em sistemas distribuídos pode ser dividida em duas partes. Uma parte trata da comunicação entre usuáriosou processos, que possivelmen- te residem em máquinas diferentes. O principal mecanismo para garantir a comunicação segura é o uso de um canal seguro. Canais seguros e, mais especificamente, autenticação, integridade de mensagens e confidencialida- de... A outra parte diz respeito à autorização, que trata de assegurar que um processo receba somente os direitos de acesso a recursos de um sistema distribuído aos quais está habilitado. 2.1 Ameaças e ataques De acordo com Martins (2022) para construir um sistema seguro contra ameaças, é fundamental saber classificar as ameaças e quais formas que elas podem se concretizar, ou seja, os métodos de ataque, também conhecido como modus operandi. Usualmente as ameaças são divididas em quatro classes: • Vazamento: aquisição de informação por agentes não autorizados; • Falsificação: alteração não autorizada de informação; • Roubo de recursos: uso de facilidades sem autorização; 31UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS • Vandalismo: interferência na operação apropriada de um sistema sem ganhos para o criminoso. Para Tanenbaum e Van Steen (2008) outra maneira de evitar ameaças à segurança é proteger os serviços e dados que o sistema oferece, para o autor existem quatro tipos de ameaças à segurança, são elas: • Interceptação: ocorre quando uma parte não autorizada consegue acesso a um serviço ou dados; • Interrupção: ocorre quando um arquivo é corrompido ou perdido. Por exemplo: dados destruídos e indisponíveis, serviços inutilizados, etc. • Modificação: ocorre quando dados são alterados de maneira não autorizada ou serviços deixam de executar suas atividades de maneira correta; • Invenção: ocorre quando os dados ou atividades dos serviços são gerados de forma irregular, ou seja, são adicionados informações ou atividades adicionais que não existiam no sistema. São considerados métodos de ataque (FERRAZ, 2022): • Eavesdropping (escuta secreta): quando cópia de dados e mensagens são obtidas sem autorização; • Mascaramento: usar identidades sem autorização para envio ou recepção de mensagens; • Message Tampering (interferência de mensagem): interceptação e alteração da mensagem antes de chegar ao receptor; • Replaying: normalmente utilizado para roubo de recursos ou vandalismo. Ocor- re o armazenamento de mensagem e envio posterior ao natural, revogando a autorização de um recurso. 2.2 Políticas e mecanismos de segurança As políticas de segurança são impostas com o auxílio dos mecanismos de segurança. Essas políticas são independentes do tipo de tecnologia usada, porém são fundamentais para determinar como os mecanismos de segurança devem ser implantados (COULOURIS, 2013). Segundo Tanenbaum e Van Steen (2008) os mecanismos de segurança são basi- camente quatro: • Criptografia: a criptografia transforma dados em algo que um intruso não autorizado possa entender, ela embaralha os dados e posteriormente entrega-os corretamente. • Autenticação: é usada para a verificação de identidade de um usuário, cliente, servidor e etc. 32UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS • Autorização: essa tarefa ocorre após a autenticação, é verificado se o acesso autenticado possui as permissões para executar ações dentro do sistema. Essas per- missões podem ser de leitura, modificação e/ou adição e remoção de algum registro. • Auditoria: são ferramentas capazes de rastrear quais clientes/usuários acessa- ram e de que modo partes de um sistema. Esta etapa não é uma tecnologia que garante proteção contra ameaças, porém ela pode auxiliar na busca de falhas de segurança dentro dos sistemas. FIGURA 8 – EXEMPLO DE CRIPTOGRAFIA Fonte: Sakurai (2020, p. 01). 33UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS 34UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS “Em muitas aplicações distribuídas, a comunicação não segue o padrão bastante restrito da interação clien- te-servidor. [..] Uma alternativa é usar o modelo de alto nível de enfileiramento de mensagens no qual a comunicação ocorra do mesmo modo que em sistemas de correio eletrônico”. Fonte: Tanenbaum e Van Steen (2008, p. 69). “Os algoritmos de criptografia secretos são totalmente inadequados para os ambientes atuais de redes de larga escala. A melhor prática é publicar os algoritmos usados para criptografia e autenticação, e contar com o segredo das chaves de criptografia”. Fonte: Coulouris et al. (2013, p. 472). CONSIDERAÇÕES FINAIS Prezado (a) aluno (a), Neste material, busquei trazer até você os principais conceitos sobre comunicação e segurança em Sistemas Distribuídos, buscando exemplificar e aprofundar alguns itens deste tema. Na primeira parte exibimos os conceitos de comunicação, através de protocolos, exemplificando e detalhando os protocolos utilizados atualmente pelos sistemas distribuí- dos e como cada protocolo funciona. Na segunda parte foi abordado um tema importantíssimo que é a segurança em sistemas distribuídos, conceituando a importância do tema, posteriormente foi detalhado alguns elementos de ameaça e ataques que um sistema possa receber; E por fim, foi apresentado os modelos de políticas e mecanismos de segurança, com exemplos de quais passos seguir para se construir um sistema seguro. A partir de ago- ra acreditamos que você está preparado para dar continuidade aos estudos das próximas unidades, que o ajudarão a desenvolver a compreensão mais detalhada da disciplina. Até uma próxima oportunidade. Muito obrigado! 35UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS MATERIAL COMPLEMENTAR • Título: Sistemas de comunicação • Autor: Vicente Soares Neto. • Editora: Érica. • Sinopse: Este livro abrange assuntos que envolvem os diversos ti- pos de sistemas de comunicação, sua evolução durante os anos, bem como os parâmetros necessários para o entendimento da matéria. Apresenta os serviços outorgados pela Agência Nacional de Teleco- municações (Anatel). Explica as unidades de medida, sua conversão e os níveis de potência. Discorre sobre ruído, meios de transmissão e tipos de modulação. Conceitua a transformação dos sinais analó- gicos em sinais digitais. Orienta sobre técnicas de modulação por pulsos e em modems, e sobre os parâmetros utilizados em antena, empregados em várias bandas de frequências. Explana sobre cálculo de viabilidade de um enlace via rádio e seus procedimentos teóricos. Analisa os princípios da fibra óptica e as modulações adotadas para aumentar a capacidade de transmissão de sinais. Traz informações sobre telefonia celular, radiodifusão digital e comunicação via satélite. O conteúdo pode ser aplicado para os cursos técnicos em Redes de Computadores, Sistemas de Comutação, Sistemas de Transmissão, Telecomunicações, entre outros. Possui material de apoio ao professor. 36UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS MATERIAL COMPLEMENTAR • Título: Fundamentos de segurança de sistemas de informação • Autor: David Kim e Michael G. Solomon. • Editora: LTC. • Sinopse: A popularidade e a expansão das tecnologias da in- formação na vida das pessoas em todo o mundo trazem consigo a necessidade de desenvolvimento e uso cada vez mais urgente de re- cursos e sistemas de segurança eficientes. Essa demanda se reflete diretamente na formação de profissionais qualificados para pesquisar e produzir novos produtos, assim como na capacidade de oferecer e executar novos serviços de TI.Nas duas primeiras partes do livro, os capítulos estão organizados em assuntos da área que englobam novos riscos, ameaças e vulnerabilidades advindas das mudanças e transformações constantes ocorridas no mundo digital, enquanto a última parte está direcionada para os padrões de segurança e a for- mação acadêmica.Fundamentos de Segurança de Sistemas de Infor- mação foi elaborado segundo o guia de estudo oficial da (ISC)2 para a certificação SSCP® CBK®. Esta é uma certificação profundamente técnica, que exige, no mínimo,um ano de experiência de trabalho como pré-requisito para a realização do exame, e destina-se aos profissionais que ingressam na carreira de segurança de informação. 37UNIDADE 2 COMUNICAÇÃO E SEGURANÇA EM SISTEMAS DISTRIBUÍDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plano de Estudos • Internet das Coisas (Internet of Things); • Computação em nuvem (Cloud Computing); • Internet of Things (IoT) e Cloud Computing. Objetivos da Aprendizagem • Conhecer os fundamentos e conceitos da Internet das Coisas; • Entender os conceitos e funcionamento da computação em nuvem; • Compreender a relação entre a IoT e computação em nuvem; 3UNIDADEUNIDADE FUNDAMENTOS FUNDAMENTOS E CONCEITOS DE E CONCEITOS DE CLOUD E IoTCLOUD E IoT Professor Esp. João Carlos Vilela Junior INTRODUÇÃO Oi, tudo bem? Seja bem-vindo (a) a nossa Terceira Unidade da disciplina de Siste- mas Distribuídos e Cloud. Acredito que, assim como eu, você deve estar com muitas expec- tativas para iniciar essa trilha de aprendizagem. Portanto, procure um lugar confortável e se acomode, porque vamos realizar uma introdução ao conteúdo a partir de agora. A internet está presente cada vez mais no dia a dia das pessoas, seja no trabalho, entretenimento e estudos. Independente da forma que é usada, ela passou a ser um ele- mento fundamental no cotidiano e está praticamente impossível viver sem uma conexão com a internet. Além de ser um instrumento muito importante, a internet possui problemas como qualquer outro recurso tecnológico. De acordo com Alcantara (2017) a privacidade no meio da internet é algo muito dis- cutido e desafia a disciplina de Direito, pois é direito das pessoas a privacidade e proteção de informações, principalmente, dos dados pessoais. Dessa forma, na Unidade III abordaremos os conceitos e fundamentos da Internet das Coisas (IoT), e também, a computação em nuvem, que é um dos elementos-chaves para o funcionamento da IoT. Esta Unidade está dividida em três capítulos: • Internet das Coisas (Internet of things); • Computação em Nuvem (Cloud Computing); • Internet of Things (IoT) e Cloud Computing. Bons estudos! 39UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TÓPICO O conceito Internet of Things (IoT), também conhecida como Internet das Coisas, foi criada por Kevin Ashton em 1999, baseado na ideia da coleta de dados através de computadores sem que houvesse intervenção humana e como esses dados levariam a humanidade a uma revolução (SANTOS, 2018). A IoT, segundo Oracle (2022, p. 01) “descreve a rede de objetos físicos incorpora- dos a sensores, software e outras tecnologias com o objetivo de conectar e trocar dados com outros dispositivos e sistemas pela internet”. Para Santos (2018) qualquer dispositivo que possa se comunicar com outro dispo- sitivo através de um meio eletrônico, sensores, softwares e etc., é considerada uma “Coisa”. O funcionamento da IoT está relacionado ao envio e recebimento de dados através da internet, anteriormente estávamos acostumados a utilizar este recurso apenas em computado- res, notebooks e celulares, porém com a evolução da IoT, é possível conectar dispositivos, como smartv’s, smartwatches e etc., que antes não eram acessíveis via internet (NOLETO, 2018). São considerados elementos importantes para se construir uma “Coisa”, as vezes não são perceptíveis, porém estes recursos estão presentes nos dispositivos para se ter um bom funcionamento da IoT (TOTVS, 2021): • Sensores: considerado um dos principais componentes, ele é responsável por coletar dados do ambiente ou dispositivos em que são aplicados. Devem ser capazes de transformar dados em informações úteis para as pessoas. • Conectividade: investir em conexão com Internet e soluções de conectividade é fundamental para se ter eficiência, estabilidade e latência quando se pensa em trafegar dados entre as “Coisas”. Outro fator é a segurança, como os dados andam para todos os lados, é importante proteger os dispositivos, sensores ou qualquer outro tipo de IoT para não sofrerem ataques cibernéticos. 40UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TITULO DA DISCIPLINA1 TÓPICO • Acesso a Nuvem: este recurso possibilita armazenar e processar uma enorme quantidade de dados de uma maneira econômica (se compararmos a uma infraestru- tura física), escalando os serviços para lidar com problemas de carga, conexão e etc. • Machine Learning: esta técnica pode ajudar a coletar dados nos dispositivos IOT que estão ocultos, podendo auxiliar no desenvolvimento de novas soluções, como por exemplo: automatizar um processo antes manual. • Inteligência Artificial (IA): com esta tecnologia é possível que máquinas ou sis- temas compreendam, traduzam, analisem a comunicação humana e aprimorem recursos através de experiências rotineiras. Por exemplo: dispositivo Alexa. Diversas áreas empresariais e industriais utilizam a IoT para seus produtos e servi- ços, são alguns exemplos (NOLETO, 2018): • Setor Automotivo: utilizada tanto na linha de produção, para monitorar a produ- tividade e identificar falhas, quanto em mecanismos que alertam motoristas sobre erros iminentes nos veículos. • Varejo: normalmente utilizado para controlar estoque, realizar a otimização da cadeia de suprimentos e melhorar a experiência dos clientes. • Saúde: aplicada em equipamentos dos hospitais, ajudando médicos em diagnósticos e até mesmo em uso pessoal diário. Também é utilizada a IoT em procedimentos cirúrgicos. • Indústria: muito utilizada para monitorar a produtividade, descobrir falhas em equipamentos, fazer manutenção preventiva e preditiva e etc. • Automação residencial: casas consideradas inteligentes com sistemas de ilumi- nação e segurança automatizados, entretenimento, cozinha, cortinas e etc. • Logística: executa o controle de frotas com mais inteligência, direciona os veículos para trechos melhores, utiliza condições climáticas para tomadas de decisão e etc. Segundo Totvs (2021) embora a Internet of Things ainda esteja em processo de imple- mentação em vários setores industriais e empresariais, pode-se considerar a próxima geração de rede móvel, a 5G, como um marco na revolução da IoT. A velocidade que esta tecnologia poderá atingir são imensamente maiores que a 4G e, com isso, será reduzido a latência e aumentando o horizonte de conexões entre dispositivos. Podendo trazer benefícios como: • Maiores velocidades de conexão, tornando o tráfego de dados mais rápido; • Rede mais resiliente, de modo a criar conexões mais estáveis e confiáveis; • Maior capacidade de controle dos sistemas IoT, pois a leitura de dados será feita utilizando informações coletadas e processadas em tempo real. Estima-se que até 2025 o número de dispositivos IoT passe dos 10 bilhões atuais para 22 bilhões, estes dispositivos variam de objetos domésticos a ferramentas industriais (ORACLE,2022) Com isso, fica evidente que a IOT continuará transformando a vida das pessoas em pou- co tempo, pois a evolução tecnológica está atingindo um alto nível de desempenho e fica quase imensurável até onde essas “Coisas” poderão chegar e interferir na vida humana e industrial. 41UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COMPUTAÇÃO EM NUVEM (CLOUD COMPUTING)2 TÓPICO Existem muitos conceitos sobre o que é computação em nuvem, mas não temos uma definição exata, se buscarmos na literatura, há inúmeras definições sobre o tema, mas todos estão relacionados com a ideia original de cloud computing. Segundo Taurion (2009, p. 02) “computação em nuvem é um termo para descrever um ambiente de computação baseado em uma imensa rede de servidores, sejam estes virtuais ou físicos”. Para Mell e Grance (2011, p. 06): A computação em nuvem é um modelo para permitir acesso de rede onipresen- te, conveniente e sob demanda a um conjunto compartilhado de recursos de computação configuráveis (por exemplo, redes, servidores, armazenamento, aplicativos e serviços) que podem ser rapidamente provisionados e liberados com esforço mínimo de gerenciamento ou interação do provedor de serviços. A computação em nuvem é uma oferta de serviços de tecnologia sob demanda por meio da Internet. Tem por característica principal o fato de não precisar salvar arquivos ou instalar aplicativos no computador próprio (NETO, 2019). 42UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT FIGURA 1 – COMPUTAÇÃO EM NUVEM Fonte: Martins (2014, p. 16). Segundo Kolbe Junior (2020) a base da computação em nuvem é toda estruturada na ideia da virtualização de servidores, foi através dessa abordagem que a cloud computing foi criada, pois todos os serviços nela hospedados estão em máquinas virtuais. A virtualização significa criar servidores lógicos dentro de servidores físicos, per- mitindo gerenciar, flexibilizar e ampliar o poder de processamento dos serviços. Podendo também melhorar a disponibilidade e recuperação de desastres em ambientes de TI de maneira mais simples e com menor custo (VERAS, 2012). FIGURA 2 – VIRTUALIZAÇÃO DE SERVIDOR Fonte: Veras (2012, p. 151). 43UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT De acordo com o Instituto Nacional de Padrões e Tecnologia, são cinco as caracte- rísticas essenciais para a computação em nuvem (MELL e GRANCE, 2011): • Autoatendimento sob demanda: pode-se utilizar recursos de computação, como tempo de servidor e armazenamento de rede, conforme necessário, automatica- mente, sem exigir interação humana com cada provedor de serviços; • Amplo acesso à rede: independentemente do tipo de dispositivo que for acessar as aplicações na nuvem, os recursos estarão disponíveis através da rede de Internet. • Pool de recursos: os recursos na nuvem estão distribuídos dinamicamente entre servidores físicos e virtuais, podendo atender vários consumidores simultaneamente. • Elasticidade rápida: os recursos podem ser provisionados e liberados elasticamente, em alguns casos automaticamente, para escalar rapidamente para fora e para dentro de acordo com a demanda. Por exemplo: aumentar o espaço de armazenamento de dados ou aumentar a quantidade de processamento de um servidor na nuvem. • Serviço medido: O uso de recursos pode ser monitorado, controlado e relatado, fornecendo transparência tanto para o provedor quanto para o consumidor do serviço utilizado. FIGURA 3 – CARACTERÍSTICAS DE CLOUD COMPUTING Fonte: Veras (2012, p. 51). Segundo Piccini (2020) existem basicamente três tipos de computação em nuvem: pública, privada e híbrida. A diferença entre as três está na capacidade de atendimento de infraestrutura e escalabilidade de recursos. • Nuvem pública: é um serviço de armazenamento e compartilhamento de infor- mações baseada em um data center de uma provedora, que fornece os recursos, serviços e suporte em planos que podem ser contratados pelos seus clientes. A infraestrutura (hardwares, softwares, cabos e outros equipamentos) são de res- ponsabilidade da provedora, que arca com os custos de manutenção e gestão. 44UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT • Nuvem privada: consiste em recursos de computação em nuvem usados exclu- sivamente por uma única empresa ou organização. Em uma nuvem privada, os serviços e a infraestrutura são de responsabilidade da empresa, sem compartilhar recursos e soluções com outras empresas. • Nuvem híbrida: Trata-se de uma tecnologia que permite compartilhar os re- cursos e garantir maior flexibilidade, tanto na implantação e gestão quanto na escalabilidade. É a junção da pública com a privada, podendo escolher quais recursos utilizar de cada tipo. São alguns serviços que utilizam a computação em nuvem para disponibilizar seus recursos e soluções (NETO, 2019): • Google Maps: é possível acessar o mapa de ruas e imagens de satélite do mundo todo a partir do navegador • Dropbox: um dos principais serviços do mundo em armazenamento e compar- tilhamento de arquivos na nuvem • Google Docs: documentos de texto, planilhas e outros arquivos podem ser criados, editados e compartilhados na nuvem, sem precisar salvá-los em uma pasta de seu computador • Trello: é organizador na nuvem em que vários usuários podem ter acesso aos projetos cadastrados para conferir quais as etapas e o status das tarefas • Spotify: serviço que disponibiliza as músicas na nuvem, de modo que podemos ouvi-las sem precisar baixá-las. • Youtube: os usuários podem compartilhar vídeos pela internet sem a necessida- de de ter que baixar os vídeos, pois os arquivos ficam na nuvem: basta assisti-los no site ou aplicativo • Netflix: enquanto no Youtube qualquer usuário pode publicar seus vídeos ama- dores, o Netflix é um serviço na nuvem para grandes produções como séries, filmes e documentários. 2.1 Arquitetura em Cloud Antes do grande crescimento da computação em nuvem, normalmente as empre- sas possuíam um Datacenter (Central de Dados) físicos dentro de suas instalações, com inúmeros equipamentos (servidores, storage, switches, routers, etc) para atender seus clientes internos ou externos. Os Datacenters necessitavam de segurança de acesso, controle de temperatura e umidade, pois havia um risco alto de intervenção humana ou natural. A computação em nuvem desconsidera toda essa estrutura física e disponibiliza às empresas ou pessoas um espaço lógico conectado via internet. De acordo com Veras (2012) a arquitetura de Cloud Computing é baseada em grandes processadores e repositórios de dados, diferente dos Datacenters e estrutura 45UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT Mainframe (essa a mais antiga), pois os recursos são fornecidos sob demanda e estão os dados estão fragmentados em diversas partes do mundo. FIGURA 4 – TIPOS DE ARQUITETURAS DE TI Fonte: Veras (2012, p. 36). Para Piccini (2020) a arquitetura dos serviços em nuvem pode ser dividida em três modelos: • IaaS (infraestrutura como serviço): oferece os recursos de hardware com maior escalabilidade, pois o usuário paga somente pelo que é usado; • PaaS (plataforma como serviço): foi criada para facilitar a criação e o gerencia- mento de infraestrutura subjacente de servidores; • SaaS (software como serviço): refere-se ao serviço de software, usado para efetivar a gestão de processos e de negócios. Veras (2012) explica que um provedor de serviços em nuvem é responsável por disponibilizar, gerenciar e monitorar toda a infraestrutura em nuvem, tirando a responsabi- lidade dos desenvolvedores e usuários finais. O autor define que há alguns papéis e quais interações eles possuem em uma arquitetura em nuvem. FIGURA 5 – PAPÉIS EM CLOUD COMPUTING Fonte: Veras (2012, p. 53). 46UNIDADE 3 FUNDAMENTOS E CONCEITOS DE CLOUD E IOT Para representar as vantagens e como usar cada