Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>ACESSE AQUI ESTE</p><p>MATERIAL DIGITAL!</p><p>AIRAN ARINÊ POSSAMAI</p><p>MARCIO POFFO</p><p>NADER GHODDOSI</p><p>NELI MIGLIOLO SABADIN</p><p>PEDRO SIDNEI ZANCHETT</p><p>SIMONE ERBS DA COSTA</p><p>ORGANIZADOR</p><p>JACKSON LUIS SCHIRIGATTI</p><p>CLOUD</p><p>COMPUTING</p><p>E DEPLOY NA</p><p>NUVEM</p><p>Coordenador(a) de Conteúdo</p><p>Greisse Moser Badalotti</p><p>Projeto Gráfico e Capa</p><p>Arthur Cantareli Silva</p><p>Editoração</p><p>Caroline Casarotto Andujar</p><p>Design Educacional</p><p>Giovana Vieira Cardoso</p><p>Revisão Textual</p><p>Carolina Guimaraes Branco</p><p>Ilustração</p><p>Andre Luis Azevedo da Silva</p><p>Fotos</p><p>Shutterstock e Envato</p><p>Impresso por:</p><p>Bibliotecária: Leila Regina do Nascimento - CRB- 9/1722.</p><p>Ficha catalográfica elaborada de acordo com os dados fornecidos pelo(a) autor(a).</p><p>Núcleo de Educação a Distância. POSSAMAI, Airan Arinê; POFFO,</p><p>Marcio; GHODDOSI, Nader; SABADIN, Neli Migliolo; ZANCHETT, Pedro</p><p>Sidnei; COSTA, Simone Erbs da.</p><p>Cloud computing e deploy na nuvem / Airan Arinê Possamai, Marcio</p><p>Poffo, Nader Ghoddosi, Neli Migliolo Sabadin, Pedro Sidnei Zanchett,</p><p>Simone Erbs da Costa; organizador: Jackson Luis Schirigatti. - Florianópolis,</p><p>SC: Arqué, 2024.</p><p>256 p.</p><p>ISBN papel 978-65-6137-728-7</p><p>ISBN digital 978-65-6137-729-4</p><p>1. Cloud 2. Computing 3. Deploy 4. Nuvem 5. EaD. I. Título.</p><p>CDD - 004.02</p><p>EXPEDIENTE</p><p>FICHA CATALOGRÁFICA</p><p>N964</p><p>03506884</p><p>https://apigame.unicesumar.edu.br/qrcode/20897</p><p>RECURSOS DE IMERSÃO</p><p>Utilizado para temas, assuntos ou con-</p><p>ceitos avançados, levando ao aprofun-</p><p>damento do que está sendo trabalhado</p><p>naquele momento do texto.</p><p>APROFUNDANDO</p><p>Uma dose extra de</p><p>conhecimento é sempre</p><p>bem-vinda. Aqui você</p><p>terá indicações de filmes</p><p>que se conectam com o</p><p>tema do conteúdo.</p><p>INDICAÇÃO DE FILME</p><p>Uma dose extra de</p><p>conhecimento é sempre</p><p>bem-vinda. Aqui você</p><p>terá indicações de livros</p><p>que agregarão muito na</p><p>sua vida profissional.</p><p>INDICAÇÃO DE LIVRO</p><p>Utilizado para desmistificar pontos</p><p>que possam gerar confusão sobre o</p><p>tema. Após o texto trazer a explicação,</p><p>essa interlocução pode trazer pontos</p><p>adicionais que contribuam para que</p><p>o estudante não fique com dúvidas</p><p>sobre o tema.</p><p>ZOOM NO CONHECIMENTO</p><p>Este item corresponde a uma proposta</p><p>de reflexão que pode ser apresentada por</p><p>meio de uma frase, um trecho breve ou</p><p>uma pergunta.</p><p>PENSANDO JUNTOS</p><p>Utilizado para aprofundar o</p><p>conhecimento em conteúdos</p><p>relevantes utilizando uma lingua-</p><p>gem audiovisual.</p><p>EM FOCO</p><p>Utilizado para agregar um con-</p><p>teúdo externo.</p><p>EU INDICO</p><p>Professores especialistas e con-</p><p>vidados, ampliando as discus-</p><p>sões sobre os temas por meio de</p><p>fantásticos podcasts.</p><p>PLAY NO CONHECIMENTO</p><p>PRODUTOS AUDIOVISUAIS</p><p>Os elementos abaixo possuem recursos</p><p>audiovisuais. Recursos de mídia dispo-</p><p>níveis no conteúdo digital do ambiente</p><p>virtual de aprendizagem.</p><p>4</p><p>165U N I D A D E 3</p><p>APLICAÇÃO DE BIG DATA EM CLOUD COMPUTING 166</p><p>SEGURANÇA DA INFORMAÇÃO PARA CLOUD COMPUTING E BIG DATA 200</p><p>FERRAMENTAS DE CLOUD COMPUTING 224</p><p>7U N I D A D E 1</p><p>INTRODUÇÃO AO CLOUD COMPUTING 8</p><p>SOFTWARE COMO SERVIÇO – SAAS 34</p><p>PLATAFORMA COMO SERVIÇO PAAS 58</p><p>85U N I D A D E 2</p><p>CONTÊINERES COMO SUPORTE AO DESENVOLVIMENTO 86</p><p>CONTÊINER COMO SERVIÇO (CAAS) 116</p><p>VERSIONAMENTO E DEPLOY EM NUVEM 140</p><p>5</p><p>SUMÁRIO</p><p>UNIDADE 1</p><p>MINHAS METAS</p><p>INTRODUÇÃO AO</p><p>CLOUD COMPUTING</p><p>Conhecer os conceitos de cloud computing.</p><p>Compreender os serviços de armazenamento.</p><p>Conhecer os serviços de comunicação de cloud computing.</p><p>Conhecer os diversos serviços de transmissão ao vivo.</p><p>Compreender a relação nuvem e Big Data.</p><p>Apresentar as vantagens da computação em nuvem.</p><p>Apresentar os recursos computacionais da computação em nuvem.</p><p>T E M A D E A P R E N D I Z A G E M 1</p><p>8</p><p>INICIE SUA JORNADA</p><p>Você, estudante, sabe que o termo cloud computing, ou computação em nuvem, é</p><p>muito falado e utilizado atualmente na computação e no mundo das corporações.</p><p>Você conhece o termo? Sabe como se dá a aplicação dessa tecnologia no dia a</p><p>dia ou em uma corporação? Atualmente, a cloud computing é um assunto muito</p><p>comentado e está sendo analisado por executivos de tecnologia da informação,</p><p>para que se tenha uma investigação dessa tecnologia e de seus benefícios, dentre</p><p>os quais, a utilização de recursos ociosos de computadores sem a preocupação</p><p>com investimentos em hardware (TAURION, 2009).</p><p>Em uma organização, a computação deve ser analisada de forma que, o negó-</p><p>cio principal da empresa deve ser priorizado, mesmo que o seu negócio dependa</p><p>totalmente da digitalização e de recursos computacionais. Uma forma é terceiri-</p><p>zar os recursos computacionais por meio dos serviços sob demanda na nuvem. É</p><p>preciso levantar e medir o custo, desempenho e demanda (necessidade real) atual</p><p>com o custo e desempenho e demanda na nuvem. É a partir dessas premissas que</p><p>você poderá aplicar ou não à tecnologia em nuvem em um corporação.</p><p>Antes de qualquer aplicação da tecnologia, realize estes questionamentos:</p><p>qual é o parque de máquinas que possuo e qual o custo de atualização e manu-</p><p>tenção? O parque de máquinas e o desempenho atual suprem a demanda de</p><p>negócios? As mesmas questões devem ser feitas, também, para a computação em</p><p>nuvem. Isso pode ser feito com um período de experiência da computação em</p><p>nuvem com os recursos necessários e aplicados à produção.</p><p>Para conhecer mais a respeito das vantagens e benefícios da computação em</p><p>nuvem escute nosso podcast sobre a busca pelo melhor desempenho com-</p><p>putacional. Recursos de mídia disponíveis no conteúdo digital do ambiente</p><p>virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>UNIASSELVI</p><p>9</p><p>TEMA DE APRENDIZAGEM 1</p><p>VAMOS RECORDAR?</p><p>As informações são importantes ativos para as empresas, pois elas são a base</p><p>para as tomadas de decisões em todos os níveis da organização. Como nos níveis</p><p>operacionais, gerenciais e estratégicos. As informações possuem características</p><p>que podem provocar mudanças organizacionais, intervindo na tomada de decisão.</p><p>Por essa razão, as organizações definem uma estrutura cada vez mais externa ao</p><p>seu núcleo de negócios e orientada a serviços, adequada para o processamento,</p><p>armazenamento, recuperação e proteção de suas informações, de acordo com o</p><p>seu porte e tipo de negócios. Desse modo, conscientizar todos os colaboradores</p><p>de que a informação é um bem, isto é, tem valor para a empresa e deve ser</p><p>gerenciada e protegida.</p><p>Nesse sentido, é preciso entender o porquê medir o desempenho computacional</p><p>atual e na nuvem, e entender que a computação em nuvem é um facilitador para</p><p>os negócios organizacionais na forma de serviços computacionais, deixando como</p><p>foco da organização o núcleo de negócios.</p><p>DESENVOLVA SEU POTENCIAL</p><p>CONCEITOS DE CLOUD COMPUTING</p><p>Cloud computing pode ser compreendida pelo armazenamento de dados, assim</p><p>como seu acesso, além de permitir à disponibilização de serviços pela internet</p><p>a partir de um computador remoto, em vez do disco rígido de um computador</p><p>local (CHANDRASEKARAN, 2015).</p><p>Segundo Chandrasekaran (2015), dentre as vanta-</p><p>gens desses serviços remotos, podem ser citadas a</p><p>escalabilidade e a elasticidade, por exemplo,</p><p>sendo diferentes de uma simples máquina</p><p>remota, e o termo nuvem, conforme enten-</p><p>dido anteriormente, é uma metáfora</p><p>utilizada na internet, como ilustra a</p><p>Figura 1.</p><p>1</p><p>1</p><p>Chandrasekaran (2015), o termo computação em nuvem foi originado do Ins-</p><p>tituto Nacional de Padrões e Tecnologia (NIST), que designa computação em</p><p>nuvem como um modelo sob demanda para uso de recursos de computação</p><p>configuráveis. Essa disponibilização de recursos computacionais, como servido-</p><p>res, armazenamento de dados, aplicações e serviços, pode ser rápida e facilmente</p><p>1. Alternativa C.</p><p>No modelo SaaS, as aplicações rodam na infraestrutura do fornecedor do serviço de software,</p><p>sendo que o consumidor do serviço precisa apenas configurar alguns parâmetros específi-</p><p>cos do aplicativo e gerenciar os usuários, e, por outro lado, o provedor de serviços lida com</p><p>toda a infraestrutura, toda a lógica do aplicativo, todas as implantações e tudo relacionado</p><p>à entrega do produto ou serviço.</p><p>2. Alternativa D.</p><p>Como os serviços SaaS são hospedados e gerenciados a partir do local central, o gerencia-</p><p>mento do aplicativo SaaS se torna mais fácil. Normalmente, os provedores de SaaS executam</p><p>as atualizações automáticas que garantem que cada locatário esteja acessando a versão</p><p>mais recente do aplicativo sem nenhuma atualização do lado do usuário.</p><p>3. Alternativa E.</p><p>A Afirmativa I está incorreta, pois são os protocolos de acesso e não de transferência (envio)</p><p>que permitem ao usuário visualizar o cabeçalho, baixar, excluir ou enviar mensagens indivi-</p><p>duais. Nesse sentido, o POP/IMAP faz o acesso a parte do e-mail, sem realizar a baixa total</p><p>do e-mail na caixa de correio do dispositivo do usuário. A Afirmativa II está correta, pois os</p><p>protocolos de acesso realizam o acesso de e-mail na caixa de correio do usuário, por meio</p><p>de permissão exclusiva por usuário e senha. A Afirmativa III está correta, pois os protocolos</p><p>de acesso do tipo POP/IMAP rodam o cliente no computador ou no dispositivo do usuário.</p><p>A Afirmativa IV é falsa, pois os protocolos de transferência, rodam o servidor SMTP e não o</p><p>servidor POP.</p><p>GABARITO</p><p>5</p><p>1</p><p>MINHAS ANOTAÇÕES</p><p>5</p><p>1</p><p>MINHAS METAS</p><p>PLATAFORMA COMO SERVIÇO PAAS</p><p>Conhecer o conceito de PaaS.</p><p>Apresentar as características do Paas.</p><p>Conhecer as vantagens e desvantagens do uso de Paas.</p><p>Conhecer as aplicações PaaS em cenários de Big Data.</p><p>Conhecer as principais plataformas de PaaS.</p><p>Apresentar as vantagens de uso do PaaS.</p><p>Compreender como são aplicadas as soluções de PaaS.</p><p>T E M A D E A P R E N D I Z A G E M 3</p><p>5</p><p>8</p><p>INICIE SUA JORNADA</p><p>Para iniciarmos nossa jornada, é importante compreender que muitas empresas,</p><p>atualmente, desejam oferecer um nível maior de atendimento e suporte ao cliente</p><p>usando aplicativos e soluções desenvolvidas na web, além da preocupação com</p><p>os custos de manutenção com a infraestrutura de hardware. Nesse contexto, o</p><p>PaaS (Plataform as a Service) torna-se atrativo e existem duas maneiras de se</p><p>beneficiar de toda sua estrutura, seja ele público ou do tipo privado. De forma</p><p>que o PaaS permite que os desenvolvedores criem e implementem seus aplicativos</p><p>de maneira on-line, não precisando se preocupar com a instalação de softwares</p><p>internos, plataforma e linguagens de programação (OLIVEIRA, 2020).</p><p>Enfim, podemos destacar que a computação em nuvem aumentou ainda mais</p><p>o nível de eficiência e agilidade atingido pela virtualização dos data centers. Se-</p><p>gundo Silva (2017), por meio da disponibilização de recursos em pool, diversi-</p><p>dade geográfica e conectividade universal, a computação em nuvem facilita o</p><p>fornecimento de softwares hospedados, plataformas e infraestruturas como um</p><p>serviço e se tornarão cada vez mais comuns. Nesse modelo de nuvem, contrata-se</p><p>um ambiente completo de desenvolvimento, no qual é possível criar, modificar</p><p>e otimizar softwares e aplicações.</p><p>De forma que o modelo PaaS oferece ambientes pré-configurados e prepara-</p><p>dos para o desenvolvimento de softwares como o IDE (Interfaces de Desenvolvi-</p><p>mento). Esses ambientes devem atender diferentes paradigmas de programação</p><p>e camadas de desenvolvimento. De forma que o PaaS disponibiliza, em um am-</p><p>biente seguro e com infraestrutura de suporte, “todas as ferramentas necessárias</p><p>para desenvolvimento, teste, implementação, hospedagem e contínua aplicação</p><p>no mesmo ambiente integrado de desenvolvimento (IDE), que pode variar con-</p><p>forme a linguagem de programação selecionada para a operação” (SILVA; SOA-</p><p>RES; SERPA, 2020, p. 161).</p><p>Refletindo sobre o tema PaaS, imagine você, como desenvolvedor, em um</p><p>ambiente onde não há necessidade de realizar a instalação de ambientes de desen-</p><p>volvimento, linguagens e bibliotecas para a produção do software. Você acredita</p><p>que esse modelo torna a produção de software mais produtiva?</p><p>UNIASSELVI</p><p>5</p><p>9</p><p>TEMA DE APRENDIZAGEM 3</p><p>Para conhecer mais a respeito das aplicações do modelo PaaS, como os modelos</p><p>de desenvolvimento front-end MTV/MVC da computação em nuvem, ouça nosso</p><p>podcast. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual</p><p>de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>VAMOS RECORDAR?</p><p>Para compreender como o PaaS fornece serviços de plataforma, vamos recordar</p><p>os ambientes IDEs e os padrão de desenvolvimentos web. Quanto às IDEs,</p><p>(ambientes integrados de desenvolvimento), estas são importantes para efetiva,r</p><p>de forma codificável, a modelagem de um ambiente MVC/MTV. Assim, os IDEs</p><p>concretizam o desenvolvimento web, reduzindo o tempo de projeto por meio da</p><p>reutilização de código, potencialização dos recursos de estruturação, estilização,</p><p>interatividade das linguagens front-end em um único ambiente de trabalho. São</p><p>inúmeras as vantagens das ferramentas IDEs, além da codificação, compilação e</p><p>depuração do código integrado, como, por exemplo, uma visualização prévia da</p><p>implantação, armazenamento e execução da página web em um servidor local.</p><p>Outras vantagens dos IDEs estão relacionadas à forma de organização por projetos</p><p>independentes e múltiplas aplicações, obtendo-se, assim, um maior controle de</p><p>versão, gerenciamento de falhas, análise de desempenho, integração contínua e</p><p>eficiência de desenvolvimento.</p><p>1</p><p>1</p><p>DESENVOLVA SEU POTENCIAL</p><p>CONCEITOS DE PAAS</p><p>O serviço de PaaS (Platform as a Service, ou Plataforma como Serviço) foi de-</p><p>finido pelo Instituto Nacional de Padrões e Tecnologias (National Institute of</p><p>Standards and Technology – NIST) como um modelo de serviço básico, assim</p><p>como as tecnologias de IaaS (Infraestrutura como Serviço) e SaaS (Software como</p><p>Serviço) (OLIVEIRA, 2020). Trata-se de uma plataforma para desenvolver apli-</p><p>cações sem que seja preciso instalar qualquer ferramenta de desenvolvimento e</p><p>bibliotecas. Inclui ambientação, compreendendo o ciclo de desenvolvimento, teste</p><p>e implementação, e até mesmo hospedagem de aplicações web como um serviço</p><p>entregue por uma base em nuvem.</p><p>Sousa et al. (2020) explicam que o modelo de PaaS fornece sistema ope-</p><p>racional, linguagens de programação e ambientes de desenvolvimento para as</p><p>aplicações, auxiliando a implementação de sistemas de software. Nele, o usuário</p><p>não administra ou controla a infraestrutura subjacente, mas tem controle das</p><p>aplicações implantadas e, possivelmente, as configurações de aplicações hospe-</p><p>dadas nessa infraestrutura. Ela é, ao mesmo tempo, uma nova plataforma tecno-</p><p>lógica e uma nova arquitetura de TI (SILVA, 2017).</p><p>A Figura 1 apresenta as características que compõem o PaaS, em que se</p><p>pode notar três entidades, de cima para baixo: IaaS, PaaS e a interface de aces-</p><p>so ao PaaS, além de outros elementos, como escalabilidade, gerenciamento de</p><p>recursos, gerenciamento de aplicação e qualidade de serviço (QoS). O PaaS</p><p>na nuvem oferece um modelo de computação, armazenamento e comuni-</p><p>cação para as aplicações acessado pelos clientes via navegador, por exemplo,</p><p>App Engine do Google, Azure da Microsoft, Force.com, Red Hal OpenShift,</p><p>Heroku e Engine Yard.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 3</p><p>Por meio do PaaS, os clientes (empresas ou usuários) conseguem facilmente</p><p>realizar a implementação de serviços web com menor custo, gestão e com-</p><p>plexidade. O cliente não precisa manipular a infraestrutura necessária para</p><p>que uma aplicação seja desenvolvida, como servidores, sistemas operacionais,</p><p>sistemas de armazenamento de dados e rede. Seu foco passa a ser apenas o</p><p>desenvolvimento da aplicação, salvo uma ou outra configuração no ambiente</p><p>em que está hospedada, portanto, o PaaS está em cima do IaaS e abstrai muitas</p><p>das funções padrões no nível de aplicativos fornecendo essas</p><p>funções como</p><p>Figura 1 – Modelo de referência de Plataforma como Serviço (PAAS)</p><p>Fonte: Buyya, Vecchiola e Selvi (2013, p. 117).</p><p>Descrição da Imagem: a imagem apresenta um diagrama ilustrativo dividido em três camadas. A primeira camada</p><p>possui duas divisões, à esquerda temos interface web, na qual se tem serviços web, portais, API de REST; e à direita</p><p>temos API de programação/bibliotecas. A segunda camada corresponde ao núcleo de PaaS, que contém característi-</p><p>cas de elasticidade, gerenciamento de servidores, tempo de execução, gerenciamento de aplicação, gerenciamento</p><p>de usuário e QoS gerenciamento sobre nível de serviços e taxas. Na terceira camada, mais à esquerda, temos a</p><p>interface web com ilustrações de servidores e máquinas; e, à direita, temos provedor de PaaS. Fim da descrição.</p><p>1</p><p>1</p><p>um serviço para que os desenvolvedores possam concentrar na lógica de</p><p>negócio e não reinventar a roda, pois são serviços e ferramentas suportadas</p><p>pelo provedor sem que o cliente gerencie ou controle a infraestrutura da</p><p>nuvem subjacente.</p><p>Os provedores de PaaS fornecem uma ampla variedade de linguagens de</p><p>programação para os desenvolvedores de aplicativos, um framework de apli-</p><p>cativos, a comunicação dos aplicativos por bancos de dados e muitas outras</p><p>ferramentas necessárias para desenvolver, testar e implantar um aplicativo como</p><p>um serviço pela internet.</p><p>Linguagens</p><p>de programação</p><p>Aplicações</p><p>de framework</p><p>PaaS</p><p>Outras</p><p>ferramentas</p><p>Banco de dados</p><p>Figura 2 – Serviços fornecidos por provedores de PAAs</p><p>Fonte: adaptada de Chandrasekaran (2015).</p><p>Descrição da Imagem: a imagem corresponde a um retângulo dividido em quatro quadrantes: superior es-</p><p>querda, “linguagens de programação”; superior direita, “aplicações de framework”; inferior esquerda, “banco</p><p>de dados”; e, no canto inferior direito, “outras ferramentas”. No centro do quadrante tem-se o nome “PaaS”.</p><p>Fim da descrição.</p><p>As plataformas de desenvolvimento PaaS são diferentes das plataformas de de-</p><p>senvolvimento de aplicativos tradicionais, portanto, segundo Chandrasekaran</p><p>(2015), as principais características do PaaS estão em:</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 3</p><p>LOCAL CENTRALIZADO DE DESENVOLVIMENTO</p><p>Prover todos os serviços em um único local para se desenvolver, testar, implantar,</p><p>hospedar e manter aplicativos no mesmo IDE.</p><p>ACESSO EXCLUSIVO WEB</p><p>Ter acesso da web à plataforma de desenvolvimento.</p><p>SINCRONIZAÇÃO OFFLINE</p><p>Ter acesso off-line quando poderá sincronizar seu IDE local com os serviços de PaaS</p><p>quando a internet estiver ativa.</p><p>ESCALABILIDADE</p><p>Pela escalabilidade integrada e dinâmica para qualquer aplicativo desenvolvido para</p><p>que seja capaz de lidar eficientemente com cargas variadas.</p><p>COLABORAÇÃO</p><p>Plataforma colaborativa para que se possa trabalhar em diferentes locais e coletivamente.</p><p>AMPLA GAMA DE FERRAMENTAS</p><p>Fornecendo uma ampla variedade de ferramentas de cliente para ajudar o desenvolvedor.</p><p>1</p><p>4</p><p>Nos destaca Balthazar (2022), que o PaaS oferece toda uma plataforma completa</p><p>para a hospedagem, criação e controle de um software, disponível em diversos</p><p>provedores que estão na nuvem, no qual suas principais características são:</p><p>■ Ferramentas simples para lidar com gerenciamento e faturamento de</p><p>assinaturas.</p><p>■ Integração de serviços web e com outras bases de dados sem conflitos</p><p>no sistema.</p><p>■ Segurança.</p><p>■ Vários usuários podem utilizar o mesmo aplicativo (mesmo tipo de nu-</p><p>vem), sem quaisquer tipos de prejuízo ou lentidão nos serviços.</p><p>Para Silva (2017), o público-alvo principal do PaaS</p><p>são os desenvolvedores de sistemas, os quais adotam</p><p>uma plataforma oferecida por alguma empresa e se-</p><p>guem suas tecnologias e padrões para criar seus sis-</p><p>temas. Nesse ambiente, comumente é disponibilizado</p><p>um conjunto de bibliotecas que os desenvolvedores</p><p>podem utilizar para desenvolver e hospedar suas aplicações. Inicialmente, a ado-</p><p>ção de PaaS pode exigir algum treinamento dos desenvolvedores que irão traba-</p><p>lhar com a plataforma, no entanto, em um segundo momento, tais tecnologias</p><p>podem reduzir o tempo de desenvolvimento por prover funcionalidades, facilitar</p><p>o desenvolvimento e distribuição de aplicações por nuvem (SILVA; LUCRÉDIO,</p><p>2012). Por exemplo: o Google App Engine (GAE), atualmente, provê muitas fun-</p><p>cionalidades, dentre elas API para processamento de imagens, armazenamento</p><p>de dados de maneira não relacional, dentre outros.</p><p>Quando a organização adotar o uso do PaaS, sua equipe de desenvolvimento</p><p>só precisa se preocupar com a programação do software, pois o gerenciamento,</p><p>manutenção e atualização da infraestrutura ficam a cargo do fornecedor, bem</p><p>como oferece na plataforma web várias ferramentas de desenvolvimento de</p><p>software dessa maneira, ela se torna completa, robusta, escalável e totalmente</p><p>disponível em uma nuvem pública ou privada. O ideal é usar o PaaS quando</p><p>a empresa tem um time de desenvolvedores disponíveis para trabalhar simul-</p><p>taneamente e precisa executar as tarefas ou se houver uma grande integração</p><p>com o banco de dados (IAAS, 2022).</p><p>O público-alvo</p><p>principal do</p><p>PaaS são os</p><p>desenvolvedores de</p><p>sistemas</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 3</p><p>Segundo Veras (2015), o PaaS está vinculado ao uso de ferramentas de desen-</p><p>volvimento de terceiros, nas quais rodam os aplicativos e armazenam os dados.</p><p>A grande diferença com relação a um modelo convencional de terceirização é</p><p>que a plataforma roda em data centers de provedores externos como a Microsoft</p><p>com seu Azure e é acessada via web. Os desenvolvedores estão do lado da rede.</p><p>A Figura 3 ilustra a ideia de PaaS.</p><p>CLIENTES</p><p>ORGANIZAÇÃO</p><p>DATACENTER</p><p>Aplicações Dados</p><p>PROVEDOR 2</p><p>PROVEDOR 1</p><p>INTERNET</p><p>Aplicações Dados</p><p>Aplicações Dados</p><p>DATACENTER</p><p>DATACENTER</p><p>FUNCIONÁRIOS</p><p>Figura 3 – PaaS de nuvem / Fonte: Veras (2015, p. 150).</p><p>Descrição da Imagem: a imagem representa um diagrama com quatro retângulos. No canto superior esquerdo</p><p>tem-se “organização e data center”, que contém símbolos geométricos representando as aplicações, dados e</p><p>funcionários. No canto inferior esquerdo tem-se o retângulo “data center”, que contém símbolos geométricos</p><p>representando as aplicações, dados e Provedor 1. No canto superior direito tem-se o retângulo “clientes”. No canto</p><p>inferior direito tem-se o retângulo “data center”, que contém símbolos geométricos representando as aplicações,</p><p>dados e Provedor 2. No centro tem-se a nuvem com a descrição “Internet”. A organização é conectada ao data</p><p>center/Provedor 1 e os clientes são conectados ao data center/Provedor 2. Fim da descrição.</p><p>1</p><p>1</p><p>Veras (2015) afirma que os servidores físicos</p><p>apresentam altos custos de operação devido ao</p><p>mau aproveitamento dos recursos e devido ao</p><p>gerenciamento complexo. Máquinas ou servido-</p><p>res virtuais, por meio da computação em nuvem,</p><p>surgiram como solução. A possibilidade de fazer</p><p>várias máquinas virtuais rodarem em um mes-</p><p>mo servidor físico otimiza o uso de recursos, mas</p><p>também pode causar problemas se as instâncias</p><p>virtuais forem criadas de forma desordenada. Os</p><p>custos de operação e gerenciamento nessa situa-</p><p>ção também são altos. A abstração no nível da</p><p>nuvem permite melhorar o gerenciamento dos</p><p>ambientes virtualizados. No caso de IaaS, ela per-</p><p>mite que os usuários aloquem máquinas virtuais</p><p>precisando, assim, estruturar e configurar essas</p><p>máquinas virtuais quanto ao armazenamento de</p><p>redes. Com o PaaS, isso já está resolvido.</p><p>Características do PAAS</p><p>As plataformas de desenvolvimento PaaS são</p><p>diferentes das plataformas de desenvolvimen-</p><p>to de aplicativos tradicionais. A seguir, são</p><p>apresentadas as características essenciais que</p><p>tornam o PaaS exclusivo das plataformas de</p><p>desenvolvimento tradicionais, segundo Chan-</p><p>drasekaran (2015):</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 3</p><p>TUDO EM UM</p><p>A maioria dos provedores de PaaS oferece serviços para desenvolver, testar, implantar,</p><p>hospedar e manter aplicativos no mesmo IDE. Além disso, muitos provedores de ser-</p><p>viços fornecem todas as linguagens de programação, frameworks, bancos de dados</p><p>e outros</p><p>serviços relacionados ao desenvolvimento que fazem os desenvolvedores</p><p>escolher entre uma ampla variedade de plataformas de desenvolvimento.</p><p>ACESSO DA WEB À PLATAFORMA DE DESENVOLVIMENTO</p><p>Uma plataforma de desenvolvimento típica usa quaisquer IDEs para desenvolver</p><p>aplicativos. Normalmente, o IDE será instalado nas máquinas do desenvolvedor. O</p><p>PaaS fornece acesso da web à plataforma de desenvolvimento. Usando a interface</p><p>da web, qualquer desenvolvedor pode obter acesso à plataforma de desenvolvi-</p><p>mento. A interface do usuário baseada na web ajuda os desenvolvedores a criar,</p><p>modificar, testar e implantar aplicativos diferentes na mesma plataforma.</p><p>ACESSO OFF-LINE</p><p>Um desenvolvedor pode não conseguir se conectar à internet por um dia inteiro</p><p>para acessar os serviços PaaS. Quando não há conectividade com a internet, os</p><p>desenvolvedores devem ter permissão para trabalhar off-line. Para habilitar o</p><p>desenvolvimento off-line, alguns dos provedores de PaaS permitem que o desen-</p><p>volvedor sincronize seu IDE local com os serviços de PaaS. Os desenvolvedores</p><p>podem desenvolver um aplicativo localmente e implantá-lo on-line sempre que</p><p>estiverem conectados à internet.</p><p>ESCALABILIDADE INTEGRADA</p><p>A escalabilidade é um requisito importante para os aplicativos da web ou SaaS da</p><p>nova geração. É muito difícil habilitar a escalabilidade dinâmica para qualquer aplica-</p><p>tivo desenvolvido usando plataformas de desenvolvimento tradicionais, no entanto,</p><p>os serviços PaaS fornecem escalabilidade interna para um aplicativo desenvolvido</p><p>usando qualquer PaaS específico. Isso garante que o aplicativo seja capaz de lidar</p><p>com cargas variadas com eficiência.</p><p>1</p><p>8</p><p>Para Chandrasekaran (2015), além dos benefícios relacionados aos custos, os</p><p>serviços PaaS são uma opção adequada para as seguintes situações:</p><p>PLATAFORMA COLABORATIVA</p><p>Atualmente, a equipe de desenvolvimento é composta por desenvolvedores que</p><p>trabalham em diferentes locais. Há uma necessidade de uma plataforma comum em</p><p>que os desenvolvedores possam trabalhar em conjunto no mesmo projeto. A maioria</p><p>dos serviços PaaS fornece suporte ao desenvolvimento colaborativo. Para permitir a</p><p>colaboração entre desenvolvedores, a maioria dos provedores de PaaS fornece ferra-</p><p>mentas para o planejamento e a comunicação do projeto.</p><p>DIVERSAS FERRAMENTAS DE CLIENTE</p><p>Para facilitar o desenvolvimento, os provedores de PaaS fornecem uma ampla varie-</p><p>dade de ferramentas de cliente para ajudar o desenvolvedor. As ferramentas do clien-</p><p>te incluem CLI, web CLI, web UI, REST API e IDE. Os desenvolvedores podem escolher</p><p>qualquer ferramenta de sua escolha. Essas ferramentas clientes também são capazes</p><p>de lidar com o gerenciamento de cobrança e assinatura.</p><p>UNIASSELVI</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 3</p><p>DESENVOLVIMENTO COLABORATIVO</p><p>Para aumentar o tempo de comercialização e a eficiência do desenvolvimento, é</p><p>necessário um local comum em que a equipe de desenvolvimento e outras partes</p><p>interessadas do aplicativo possam colaborar entre si. Como os serviços PaaS forne-</p><p>cem um ambiente de desenvolvimento colaborativo, é uma opção adequada para</p><p>aplicativos que precisam de colaboração entre desenvolvedores e outros terceiros</p><p>para executar o processo de desenvolvimento.</p><p>TESTE E IMPLANTAÇÃO AUTOMATIZADOS</p><p>O teste e a criação automatizados de um aplicativo são muito úteis ao desenvolver</p><p>aplicativos em um período muito curto. As ferramentas de teste automatizadas redu-</p><p>zem o tempo gasto nas ferramentas de teste manual. A maioria dos serviços de PaaS</p><p>oferece recursos automatizados de teste e implantação. A equipe de desenvolvimento</p><p>precisa se concentrar mais no desenvolvimento, em vez de testar e implantar. Assim,</p><p>os serviços de PaaS são a melhor opção quando há necessidade de teste e implanta-</p><p>ção automatizados dos aplicativos.</p><p>TEMPO DE LANÇAMENTO NO MERCADO</p><p>Os serviços de PaaS seguem as metodologias de desenvolvimento iterativas e incre-</p><p>mentais que garantem que o aplicativo esteja no mercado conforme o prazo especifi-</p><p>cado. Por exemplo, os serviços PaaS são a melhor opção para o desenvolvimento de</p><p>aplicativos que usa metodologias de desenvolvimento ágil. Se o fornecedor do soft-</p><p>ware deseja que seu aplicativo esteja no mercado o mais rápido possível, os serviços</p><p>PaaS são a melhor opção para o desenvolvimento.</p><p>Conforme Raj e Sharma (2017 apud OLIVEIRA, 2020), as plataformas PaaS</p><p>fornecem ambientes bem definidos, arquitetados, contínuos, sempre disponí-</p><p>veis, resilientes e escalonáveis, ajustados para as necessidades específicas de seus</p><p>aplicativos e serviços. Para utilizá-la, o usuário paga conforme o uso, no entan-</p><p>to, alguns provedores cobram uma taxa mensal fixa pelo acesso à plataforma</p><p>e aos seus aplicativos, em um modelo de pagamento baseado com frequência</p><p>nas especificações do servidor, do número de projetos e do tempo de utilização.</p><p>Enfim, parâmetros como a utilização de CPU, o uso de disco para transação e à</p><p>largura de banda da rede podem determinar o custo do PaaS, sendo os principais</p><p>1</p><p>1</p><p>parâmetros que definem o seu faturamento, ou seja: o uso de CPU por hora;</p><p>disponibilidade de serviço; cobrança por serviço utilizado; e à largura da banda</p><p>de rede de entrada e saída (RAJ; RAMAN, 2018).</p><p>Uma das métricas mais usadas para definir a cobrança do PaaS é a largura</p><p>de banda consumida, e a dificuldade encontrada para este parâmetro se dá pela</p><p>dificuldade de calcular exatamente qual usuário de transação está consumindo</p><p>uma quantidade específica de recursos de utilização da CPU por solicitação. Uma</p><p>alternativa é, então, cobrar calculando a quantidade de dados armazenados que</p><p>um usuário específico está consumindo e realizar a cobrança adequada do ser-</p><p>viço. Enfim, ainda existe uma forma mais simples de cobrar, cujo único critério</p><p>reside no fato de ter requisitos de código seguros e sem transações demoradas na</p><p>CPU. Ao levar esses fatores em consideração, poderá cobrar o uso de PaaS de dois</p><p>modos: conforme o uso de cada usuário e os serviços utilizados; e a partir de uma</p><p>taxa mensal fixa pelo acesso à plataforma e seus aplicativos, independentemente</p><p>da quantidade de serviço utilizada.</p><p>Vantagens e desvantagens do uso de PAAS</p><p>Podemos destacar como vantagem da utilização do PaaS o fato de suas platafor-</p><p>mas se integrarem a inúmeras soluções de software de terceiros integradas por</p><p>meio de uma arquitetura orientada a serviços (SOA), geralmente chamadas de</p><p>plugins, complementos ou extensões. Vejamos as vantagens da utilização do PaaS:</p><p>FACILIDADE NO DevOps</p><p>Fácil desenvolvimento e implantação (deployment) e, após o desenvolvimento, a maio-</p><p>ria dos serviços executará automaticamente o processo de teste e implantação.</p><p>CUSTO REDUZIDO</p><p>Não é necessário comprar ferramentas de desenvolvimento e nem testar se os servi-</p><p>ços de PaaS foram selecionados. Basta alugar esses recursos, reduzindo o custo total</p><p>de propriedade da empresa de desenvolvimento.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 3</p><p>SUPORTE A DESENVOLVIMENTO ÁGIL</p><p>A maioria dos aplicativos desenvolvidos na nova geração usa metodologias ágeis,</p><p>cenários em que os provedores de PaaS se destacam.</p><p>TRABALHO EM CONJUNTO</p><p>Os serviços PaaS oferecem suporte a desenvolvedores de diferentes locais para traba-</p><p>lharem juntos no mesmo projeto.</p><p>FÁCIL USO</p><p>Alguns desenvolvedores podem não estar familiarizados com as interfaces fornecidas</p><p>pela plataforma de desenvolvimento de aplicativos, o que dificulta o trabalho, contu-</p><p>do, o PaaS fornece uma ampla variedade de ferramentas clientes, como CLI, CLI da</p><p>web, UI da web, API e IDE.</p><p>DESPESAS DE MANUTENÇÃO</p><p>Em aplicativos locais, empresas de desenvolvimento ou fornecedores de software</p><p>são responsáveis por manter o hardware subjacente, criando a necessidade de ter</p><p>administradores qualificados para manter os servidores. Essa sobrecarga é eliminada</p><p>pelos serviços PaaS, pois a infraestrutura subjacente é mantida pelos provedores de</p><p>infraestrutura. Isso dá liberdade aos desenvolvedores para trabalhar no desenvolvi-</p><p>mento</p><p>de aplicativos.</p><p>APLICATIVOS ESCALÁVEIS</p><p>A maioria dos aplicativos desenvolvidos usando serviços de PaaS são de web ou SaaS,</p><p>com boa flexibilidade de acesso a recursos extras (conforme solicitado). Os serviços</p><p>PaaS fornecem escalabilidade integrada ao aplicativo desenvolvido, usando a própria</p><p>plataforma de PaaS.</p><p>1</p><p>1</p><p>Podemos destacar, com relação às desvantagens quanto ao modelo PAAS:</p><p>■ Bloqueio de fornecedores: pela falta de padrões, comum entre diferen-</p><p>tes provedores de PaaS e as tecnologias proprietárias usadas pelos prove-</p><p>dores de PaaS, que impedem a migração dos aplicativos de um provedor</p><p>PaaS a outro.</p><p>■ Segurança: é um dos principais problemas, pois, normalmente, os dados</p><p>são armazenados em servidores de terceiros. Ao selecionar o provedor de</p><p>PaaS, o desenvolvedor deve revisar as políticas de uso, de conformidade e</p><p>de segurança do provedor de PaaS em relação aos seus próprios requisitos</p><p>de segurança.</p><p>■ Pouca flexibilidade: infelizmente, os provedores de PaaS não fornecem</p><p>aos desenvolvedores sua própria pilha de ferramentas. Em sua maioria, é</p><p>oferecido suporte a várias linguagens de programação, além de serviços</p><p>de banco de dados e ferramentas de suporte à programação.</p><p>Aplicações PaaS em cenários de Big Data</p><p>As soluções do PaaS que causam um grande impacto são aquelas que se concen-</p><p>tram em dispositivos móveis e Big Data. Segundo Silva (2020), quando se pensa em</p><p>computação em nuvem, imagina-se grandes servidores em data centers de última</p><p>tecnologia com grande quantidade de dados (Big Data) que vem provendo os mais</p><p>variados serviços, como e-mail, armazenamento de arquivos e soluções em geral,</p><p>contudo, objetivamente, a base da computação em nuvem é o fato de existir algum</p><p>serviço disponível na internet, por meio de um computador interligado a outros pela</p><p>internet para realizar um ou vários tipos de serviços. Vejamos algumas peculiarida-</p><p>des que justificam a necessidade do uso do Big Data, dispositivos móveis e nuvem:</p><p>Construir aplicativos é uma tarefa desafiadora. Atualmente, muitas empresas</p><p>surgiram oferecendo serviços de Big Data baseados em nuvem para ajudar</p><p>outras empresas e organizações a resolver seus dilemas relacionados a dados.</p><p>Existem muitos smartphones e celulares, além de tablets, com recursos que</p><p>requerem personalizações para que a interface do usuário seja renderizada cor-</p><p>retamente. As empresas e usuários costumam pagar para que os desenvolvedores</p><p>criem uma versão para iOS, outra para Android, outra para iPad e assim por diante.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 3</p><p>O desafio é que é bastante complicado configurar e gerenciar os bancos de</p><p>dados e a infraestrutura necessários para solucionar problemas de Big Data. Estão</p><p>surgindo soluções PaaS de Big Data que tiram a ciência da configuração e geren-</p><p>ciamento desses ambientes complexos. À medida que essas soluções começam</p><p>a amadurecer, qualquer empresa poderá implementar uma solução de Big Data</p><p>aproveitando um serviço de nuvem pré-pago, em vez de investir muito tempo,</p><p>dinheiro e recursos tentando descobrir por si próprios (KAVIS, 2014).</p><p>Cresce o número de empresas que utilizam PaaS disponibilizando aplicativos</p><p>da nuvem e executando análises de Big Data. Por exemplo, de acordo com o site</p><p>T-Systems (DESSA FORMA..., 2020), o produto PaaS Big Data coleta e filtra</p><p>dados de diferentes origens, como das redes sociais, Internet das Coisas, Internet</p><p>Industrial, comunicação entre máquinas ou processos.</p><p>Assim como o PaaS, SaaS e IaaS cresceram ao longo dos anos, o Big Data</p><p>como Serviço (BDaaS) também cresceu nas empresas, devido aos desafios</p><p>envolvendo o aumento da geração de dados e a necessidade de fazer análises</p><p>precisas para a tomada de decisão.</p><p>PLATAFORMAS DE PAAS</p><p>O fornecedor de PaaS, em geral, oferece uma variedade de ferramentas e utili-</p><p>tários para dar suporte ao design, à integração, ao teste, ao monitoramento e à</p><p>implantação do aplicativo. Dão suporte para colaboração entre pessoas, geren-</p><p>ciamento de dados, teste, pilhas de serviços, autenticação, monitoramento de</p><p>performance, serviços de mensagens e componentes de interface, tudo de forma</p><p>on-line com uma mega infraestrutura tecnológica e de maneira transparente e</p><p>flexível (OLIVEIRA, 2020). Em alguns casos, o provedor de PaaS é executado em</p><p>cima da infraestrutura de outro provedor, por exemplo, Heroku e Engine Yard</p><p>são executados na Amazon Web Services (AWS).</p><p>Windows Azure Platform (WAP)</p><p>A plataforma Windows Azure (WAP) da Microsoft foi apresentada em 2008,</p><p>lançada em 2010 e renomeada para Microsoft Azure em 2014. É composta por</p><p>um sistema operacional, um conjunto de serviços de suporte e integração com</p><p>1</p><p>4</p><p>outros serviços como Dropbox, Google Apps e Salesforce. Essa plataforma for-</p><p>nece dimensionamento, balanceamento de carga e vários serviços de suporte,</p><p>como identidade e autenticação, criptografia de mensagens, monitoramento e</p><p>gerenciamento (OLIVEIRA, 2020).</p><p>Segundo Oliveira (2020), o WAP é desenvolvido como um PaaS primário, no</p><p>qual os usuários gerenciam suas hospedagens e a escala de aplicações web em</p><p>data centers da corporação, o que inclui algumas características do módulo de</p><p>IaaS. Ele utiliza uma combinação de tecnologia web, como REST, HTTP E XML,</p><p>integrada à ferramenta Visual Studio, o que possibilita que os desenvolvedores</p><p>criem serviços que contenham a framework .NET.</p><p>Existem dois modelos de assinatura, um pré-pago e outro pós-pago, pagando</p><p>somente pelo serviço que precisa, baseado na sua demanda de computação e</p><p>armazenamento, além da capacidade de investimento que o cliente quer fazer.</p><p>Seus principais serviços são: máquinas virtuais, gerenciamento de redes, aplicações</p><p>em nuvem, armazenamento e backup, storSimple (armazenamento simplificado), au-</p><p>tomatização de processos, streamings de vídeo, ao vivo ou sob demanda, contêineres,</p><p>bancos de dados SQL, análise de dados com IA e machine learning, IoT (IAAS, 2022).</p><p>O WAP funciona como um apoio tecnológico ao negócio e sua estrutura serve</p><p>para coleta e gerenciamento de dados, sendo uma fonte inesgotável de insights</p><p>para novas estratégias. Segundo o portal Noventiq (IAAS, 2022), sua capacidade de</p><p>lidar com Big Data, data mining e data lake cria oportunidades de incluir business</p><p>intelligence tanto no atendimento ao cliente quanto na otimização de custos e</p><p>gestão financeira da empresa.</p><p>APROFUNDANDO</p><p>Google App Engine (GAE)</p><p>A plataforma Google App Engine (GAE) é um PaaS, que permite que sejam</p><p>executados serviços na infraestrutura do Google. Possui ambiente de desenvol-</p><p>vimento para as linguagens JavaTM, PHP, Node.js, Python, C#, .Net, Ruby e Go</p><p>entre várias bibliotecas e frameworks conhecidos e que fornecem máquina vir-</p><p>tual, interface Servlets e serviços de armazenamento de dados (SILVA, 2017).</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 3</p><p>O GAE mantém um ambiente de programação runtime (em tempo de execu-</p><p>ção), além de algumas APIs simples para acessar os serviços do Google, nos quais</p><p>os front-ends espalham solicitações HTTP com estratégias de balanceamento</p><p>de carga e roteamento com base no conteúdo. Os sistemas runtime em execução</p><p>nos servidores de aplicativos lidam com o processamento lógico dos aplicativos e</p><p>fornecem conteúdo dinâmico da web, enquanto as páginas estáticas são atendidas</p><p>pela infraestrutura compartilhada do Google. Para dissociar os dados persistentes</p><p>dos servidores de aplicativos, o GAE os coloca no armazenamento de dados em</p><p>vez de em um sistema de arquivos local (FURHT; ESCALANTE, 2010).</p><p>O portal Google Cloud (APP ENGINE, 2024) destaca que pelo GAE é possí-</p><p>vel criar aplicativos altamente escalonáveis em uma plataforma totalmente geren-</p><p>ciada e sem servidor, o que significa que faz o escalonamento sem interrupções</p><p>em pequena ou grande escala sem se preocupar com o gerenciamento da infraes-</p><p>trutura subjacente utilizando linguagens e ferramentas open source conhecidas.</p><p>O GAE permite criar e depurar o código-fonte na produção e executar, o back-ends</p><p>de API com facilidade por meio das ferramentas</p><p>mais usadas do setor, como o SDK</p><p>do Cloud, Cloud Source Repositories, IntelliJ IDEA, Visual Studio e PowerShell. Proteja</p><p>seus aplicativos contra ameaças usando os recursos de firewall do App Engine, regras</p><p>de gerenciamento de identidade e acesso (IAM) e certificados gerenciador SSL/TLS,</p><p>e, por fim, só pagando os serviços e recursos utilizados (APP ENGINE, 2024).</p><p>Vimos que PaaS se trata de uma plataforma de computação integrada para de-</p><p>senvolver aplicações sem que seja preciso instalar qualquer ferramenta de de-</p><p>senvolvimento e bibliotecas. Oferece um conjunto de soluções como um serviço,</p><p>compreendendo o ciclo de desenvolvimento, teste, implantação, e até mesmo</p><p>hospedagem de aplicações na nuvem. Além de fornecer uma ampla variedade de</p><p>linguagens de programação para os desenvolvedores de aplicativos, um frame-</p><p>work de aplicativos, a comunicação dos aplicativos por bancos de dados e muitas</p><p>outras ferramentas. Dessa forma, o cliente não precisa manipular a infraestrutura</p><p>necessária para que uma aplicação seja desenvolvida, como servidores, sistemas</p><p>operacionais, sistemas de armazenamento de dados e rede.</p><p>1</p><p>1</p><p>NOVOS DESAFIOS</p><p>Agora é o momento de compreender como, na prática, o modelo PaaS é</p><p>aplicado pelos profissionais de tecnologia. Para isso, imagine que você inicia</p><p>um estágio em uma empresa de desenvolvimento de software e participa</p><p>de uma reunião em que o coordenador de tecnologia comenta que toda a</p><p>equipe irá participar de um projeto para verificar a viabilidade de implan-</p><p>tação de uma plataforma de desenvolvimento de um sistemas web na nu-</p><p>vem. A justificativa era que os altos custos com linguagens de programação,</p><p>ferramentas, bibliotecas, enfim, o ambiente de desenvolvimento estava se</p><p>tornando de alto custo. O coordenador do projeto comenta que, com a evo-</p><p>lução da computação em nuvem, por meio do modelo PaaS, são oferecidos</p><p>serviços de plataformas para desenvolvimento de software e aplicativos nas</p><p>diversas camadas front-end e back-end. Que o PaaS provê plataformas para</p><p>desenvolver aplicações sem que seja preciso instalar qualquer ferramenta de</p><p>desenvolvimento e bibliotecas.</p><p>Um dos analistas da equipe complementa que o modelo PaaS oferece ambien-</p><p>tes pré-configurados e preparados para o desenvolvimento de softwares como o</p><p>IDE (Interfaces de Desenvolvimento). Aí você, conhecedor da teoria do PaaS e de</p><p>arquitetura de desenvolvimento, complementa na reunião que um dos modelos</p><p>mais utilizados dentro de um processo de software, com paradigma front-end, é</p><p>o MTV/MVC, ou seja, um modelo framework ou padrão de arquitetura do tipo</p><p>modelo, template e visão.</p><p>Estudante, para nos aprofundarmos mais em plataforma como serviço PaaS e</p><p>suas principais características, assista ao vídeo À Facilidade do Desenvolvimento</p><p>de Softwares na Nuvem. Recursos de mídia disponíveis no conteúdo digital do</p><p>ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 3</p><p>A primeira camada front-end é a de visão (view), no que se refere à visuali-</p><p>zação textual e de estilo, sendo uma representação visual do sistema ou interface</p><p>com o usuário (UI). A segunda camada de desenvolvimento front-end se refere</p><p>ao controle lógico do sistema (controlador). Um típico exemplo do uso dessa</p><p>camada seria o acionamento do mouse, pelo usuário, por meio de um clique no</p><p>botão ou hiperlink, através da primeira camada.</p><p>Na sequência, essa informação é tratada na camada controladora, por meio de</p><p>funções específicas que realizam ações condicionais e imperativas. Como exem-</p><p>plo, a função pode realizar um cálculo ou acionar uma determinada recuperação</p><p>de dados da camada model (modelo de dados). A terceira camada model) res-</p><p>ponde às requisições feitas pelo controlador (controller) que envia os dados para</p><p>a camada de visualização (view).</p><p>Após sua explicação detalhada, o coordenador comentou que, antes de im-</p><p>plementar qualquer plataforma PaaS na empresa, é necessário realizar um levan-</p><p>tamento. O coordenador dividiu a equipe em atividades, nas quais uma parte da</p><p>equipe ficará responsável pelo levantamento de plataformas PaaS disponíveis</p><p>no mercado. À outra equipe irá pesquisar que tipos de linguagens e ferramentas</p><p>estão disponíveis nas principais plataformas de desenvolvimento em nuvem, e</p><p>uma terceira equipe irá pesquisar os benefícios e custos que teremos com o PaaS</p><p>e sem o PaaS, ou seja, se implementar um ambiente de desenvolvimento próprio.</p><p>Assim, novos desafios da computação em nuvem no modelo PAAS, é atender</p><p>equipes de desenvolvimento utilizando-se de frameworks eficientes, que inte-</p><p>grem paradigmas futuros em camadas e subcamadas front-end e back-end, de</p><p>forma transparente e consistente ao desenvolvedor, reutilizando bibliotecas e</p><p>refatorando códigos, contudo, antes de tudo, deve ser realizado um levantamento</p><p>detalhado de custo, vantagens e desvantagens com o PaaS e sem ele.</p><p>1</p><p>8</p><p>1. A computação em nuvem permite que empresas deixem de possuir um data center para</p><p>armazenar seus dados, evitando gastos com infraestrutura de servidor, permitindo que faça</p><p>o mesmo com custo mais baixo.</p><p>Dessa forma, o modelo computacional em nuvem PaaS reduz os custos operacionais por</p><p>meio:</p><p>a) Do compartilhamento de rede do cliente e fornecedor.</p><p>b) De máquinas conectadas em rede distribuída teorias das subculturas criminais.</p><p>c) De servidores físicos compartilhados com o cliente.</p><p>d) De um virtualização do ambiente com instâncias virtuais ordenadas.</p><p>e) De servidores escalonáveis do cliente com o fornecedor PaaS.</p><p>2. Dentre os modelos de computação em nuvem, o PaaS é o mais indicado, pois inclui infraes-</p><p>trutura de armazenamento e de rede e ferramentas de desenvolvimento.</p><p>No que tange às definições de PaaS, analise as sentenças a seguir.</p><p>I - Permite que uma aplicação seja implantada e distribuída sem que seja preciso se preo-</p><p>cupar com as camadas de hardware e software necessárias.</p><p>II - Seu ambiente de execução é controlado somente pelo fornecedor do serviço sem a</p><p>colaboração entre desenvolvedores do cliente.</p><p>III - Oferece um modelo arquitetural padronizado para as aplicações.</p><p>IV - Não fornece um sistema operacional, linguagens de programação e ambientes de de-</p><p>senvolvimento para as aplicações.</p><p>Assinale o que se afirma em:</p><p>a) II e III, apenas</p><p>b) I, II e IV apenas</p><p>c) I e III, apenas.</p><p>d) II, III e IV apenas.</p><p>e) II e IV, apenas.</p><p>AUTOATIVIDADE</p><p>1</p><p>9</p><p>3. PaaS trata-se de uma plataforma para desenvolver aplicações sem que seja preciso instalar</p><p>qualquer ferramenta de desenvolvimento e bibliotecas.</p><p>Referente à computação em nuvem, analise as sentenças a seguir:</p><p>I - O cliente não precisa manipular a infraestrutura necessária para que uma aplicação seja</p><p>desenvolvida, como servidores, sistemas operacionais, sistemas de armazenamento de</p><p>dados e rede.</p><p>II - A falta de padrões comuns entre diferentes provedores de PaaS e as tecnologias proprie-</p><p>tárias usadas pelos provedores de PaaS não são motivos de bloqueio de fornecedores</p><p>PaaS.</p><p>III - A maioria dos serviços de PaaS não oferece recursos automatizados de teste e implan-</p><p>tação.</p><p>Assinale o que se afirma em:</p><p>a) I e II, apenas.</p><p>b) I e III, apenas.</p><p>c) II apenas.</p><p>d) III apenas.</p><p>e) II e III apenas.</p><p>AUTOATIVIDADE</p><p>8</p><p>1</p><p>REFERÊNCIAS</p><p>APP ENGINE. Google Cloud, Mountain View, Ca, c2024. Disponível em: https://cutt.ly/wf0nSGi.</p><p>Acesso em: 21 mar. 2024.</p><p>BALTHAZAR, J. IaaS, SaaS e PaaS no conceito de cloud computing. 22 ago. 2022. Falcora Tecno-</p><p>logia, Rio de Janeiro, Disponível em: https://falcora.com.br/blog/iaas-saas-e-paas-no-concei-</p><p>to-de-cloud-computing-2/. Acesso em: 21 mar. 2024.</p><p>BUYYA, R.; BROBERG, J.; GOSCINSKI, A. Cloud computing: principles and paradigms. Hoboken:</p><p>John Wiley & Sons, 2011. Disponível em: http://dhoto.lecturer.pens.ac.id/lecture_notes/inter-</p><p>net_of_things/CLOUD%20COMPUTING%20Principles%20and%20Paradigms.pdf. Acesso em: 21</p><p>mar. 2024.</p><p>CASTRO, L. N. de; FERRARI, D. G. Introdução à mineração de dados: conceitos básicos, algorit-</p><p>mos e aplicações. São Paulo: Saraiva. 2016.</p><p>CHANDRASEKARAN,</p><p>K. Essentials of cloud computing. Boca Raton: Chapman and Hall; CRC</p><p>Press, 2015.</p><p>Dessa forma, as empresas transformam seus dados em ouro. T-Systems, Frankfurt, c2024. Dis-</p><p>ponível em: https://www.t-systems.com/br/pt/artificial-intelligence/solutions/artificial-intelli-</p><p>gence-and-data-analytics. Acesso em: 21 mar. 2024.</p><p>FURHT, B.; ESCALANTE, A. Handbook of cloud computing. Miami: Springer Science & Business</p><p>Media, 2010.</p><p>IAAS, PaaS e SaaS: entenda os modelos de nuvem e suas finalidades. Noventiq, São Paulo, 2 set.</p><p>2022. Disponível em: https://noventiq.com.br/sobre-a-empresa/blog/iaas-paas-saas-nuvem#.</p><p>Acesso em: 21 mar. 2024.</p><p>KAVIS, M. J. Architecting the cloud: designs decisions for cloud computing service models</p><p>(SaaS, PaaS and IaaS). Hoboken: John Wiley & Sons, 2014.</p><p>OLIVEIRA, H. S. de. Infraestrutura de TI. Porto Alegre: SAGAH, 2020.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>RAJ, P.; RAMAN, A. Software-defined cloud centers: operational and management technolo-</p><p>gies and tools. London: Springer, 2018.</p><p>SILVA, E. A. N. da. Uma abordagem dirigida por modelos para desenvolvimento de aplicações</p><p>multi-paas. 2017, 178 f. Tese (Doutorado em Ciência de Computação e Matemática Computa-</p><p>cional) – Instituto de Ciências Matemáticas e de Computação. Universidade de São Paulo, 2017.</p><p>Disponível em: https://teses.usp.br/teses/disponiveis/55/55134/tde-08022018-103528/publi-</p><p>co/EliasAdrianoNogueiradaSilva_revisada.pdf. Acesso em: 21 mar. 2024.</p><p>8</p><p>1</p><p>https://cutt.ly/wf0nSGi</p><p>REFERÊNCIAS</p><p>SILVA, E. A. N. da; LUCRÉDIO, D. Software engineering for the cloud: a research roadmap. In:</p><p>BRAZILIAN SYMPOSIUM ON SOFTWARE</p><p>ENGINEERING. 26., 2012, São Carlos. Anais [...]. São Carlos: IEEE, Brazil;</p><p>UFSCar, 2012. p. 71-80. Disponível em: https://www.researchgate.net/publication/261039376_</p><p>Software_Engineering_for_the_Cloud_A_Research_Roadmap. Acesso em: 21 mar. 2024.</p><p>SILVA, F. R.; SOARES, J. A.; SERPA, M. da S. et al. Cloud computing. São Paulo: Grupo A, 2020.</p><p>SOUSA, F. R. C. et al. Gerenciamento de dados em nuvem: conceitos, sistemas e desafios. In:</p><p>SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, 25., 2010. Belo Horizonte. Anais [...]. Belo Horizon-</p><p>te: UFMG, 2010. Disponível em: https://sol.sbc.org.br/livros/index.php/sbc/catalog/downloa-</p><p>d/18/81/167-1?inline=1. Acesso em: 13 jul. 2020.</p><p>VERAS, M. Computação em nuvem: novas arquiteturas de TI. Rio de Janeiro: Editora Brasport,</p><p>2015.</p><p>8</p><p>1</p><p>1. Alternativa D.</p><p>A possibilidade de fazer várias máquinas virtuais rodarem em um mesmo servidor físico</p><p>otimiza o uso de recursos, mas também pode causar problemas se as instâncias virtuais</p><p>forem criadas de forma desordenada.</p><p>2. Alternativa C.</p><p>A Afirmativa I é verdadeira pois, no modelo PAAS, o cliente utilizador das plataformas não</p><p>precisa se preocupar com as camadas de hardware e software, já que é uma responsabili-</p><p>dade do fornecedor de serviços de plataforma. A Afirmativa II é falsa, já que o ambiente de</p><p>execução é controlado pelo cliente em relação às camadas de infraestrutura e software.</p><p>A Afirmativa III está correta, pois o modelo PAAS oferece padronização no modelo de de-</p><p>senvolvimento de aplicações. A Afirmativa IV está incorreta, pois o modelo PAAS oferece</p><p>ambiente de programação, linguagem de programação e componentes necessários para o</p><p>desenvolvimento de aplicações.</p><p>3. Alternativa B.</p><p>A Afirmativa I é verdadeira, já que os clientes do modelo PaaS não manipulam infraestrutura</p><p>da nuvem, apenas executam e configuram ambientes de desenvolvimento de e aplicações.</p><p>A Afirmativa II está correta, pois a “não padronização” de provedores PaaS e uso tecnologias</p><p>proprietárias pelos provedores não pode ser motivo de não utilização ou bloqueio, não inter-</p><p>ferindo no desenvolvimento de aplicações pelo cliente. A Afirmativa III é falsa, já que o PaaS</p><p>oferece vários recursos para o desenvolvimento de aplicações, como linguagens de pro-</p><p>gramação, ambientes de programação, automação de testes e ferramentas de implantação.</p><p>GABARITO</p><p>8</p><p>1</p><p>UNIDADE 2</p><p>MINHAS METAS</p><p>CONTÊINERES COMO SUPORTE</p><p>AO DESENVOLVIMENTO</p><p>Compreender a introdução aos contêineres.</p><p>Saber quando usar o Docker.</p><p>Trabalhar com os contêineres.</p><p>Criar aplicações no Docker.</p><p>Conhecer o formato do Docker.</p><p>Conhecer as camadas do contêiner.</p><p>T E M A D E A P R E N D I Z A G E M 4</p><p>8</p><p>1</p><p>INICIE SUA JORNADA</p><p>Vamos apresentar o conceito de contêiner e como ele suporta o desenvolvi-</p><p>mento de aplicações, bem como a ferramenta Docker e boas práticas para a</p><p>criação de contêineres.</p><p>Talvez, poucas áreas de estudos tenham tido tanta evolução em tão pouco</p><p>tempo quanto a área de tecnologia. Essas mudanças acabam ditando o ritmo de</p><p>trabalho em diversos setores. Graças a essas evoluções, foram permitidas mudan-</p><p>ças nas formas de trabalho, como a mudança para o cenário de trabalho remoto,</p><p>conhecido como home office.</p><p>Agora, imagine quanto trabalho o setor de tecnologia das organizações teria</p><p>para configurar as máquinas de todos os funcionários que tiveram que se adequar</p><p>a essa nova realidade, ou baixar uma nova versão de um produto que acabou de</p><p>ser desenvolvido. Vamos conhecer algumas ferramentas que podem auxiliar nessa</p><p>tarefa, começando com os contêineres.</p><p>É bem provável que você já tenha visto um contêiner, eles são uma caixa de</p><p>metal bastante resistente, utilizados, normalmente, para transporte de produtos</p><p>em navios ou em caminhões. Semelhantes aos contêineres que são utilizados para</p><p>transporte de produtos, os contêineres na área de tecnologia agem como uma</p><p>unidade de software padrão, e que, segundo Montemagno et al. (2023, on-line),</p><p>“pode conter diferentes dependências e códigos”. Inserir o software em contêine-</p><p>res permite que desenvolvedores e profissionais de TI os implantem em diferentes</p><p>ambientes com pouca ou sem nenhuma modificação.</p><p>Para conhecer mais a respeito de contêineres e porque utilizá-los, é necessário</p><p>compreender a importância do isolamento referente à virtualização e contêineres.</p><p>Ouça o podcast que preparamos para você, para conhecer este assunto. Recursos</p><p>de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>UNIASSELVI</p><p>8</p><p>1</p><p>TEMA DE APRENDIZAGEM 4</p><p>DESENVOLVA SEU POTENCIAL</p><p>INTRODUÇÃO AOS CONTÊINERES</p><p>Você pode estar curioso e se perguntando, por que o nome contêiner? Se con-</p><p>têiner nada mais é do que um ambiente isolado contido em um servidor que,</p><p>diferentemente das máquinas virtuais, divide um único host de controle. Para</p><p>contextualizar melhor, vamos imaginar um navio cargueiro com vários contêi-</p><p>neres dentro. Se um dos recipientes se danificar, não afetará os outros ou o navio,</p><p>pois cada um está isolado e protegido.</p><p>Esse isolamento de contêiner, trazendo de volta para o mundo do desenvolvi-</p><p>mento, possibilita uma utilização limitada do HD, memória RAM e processador.</p><p>Ao utilizar um tipo de compartilhamento de kernel, os contêineres apresentam</p><p>uma capacidade de economia de recursos maior do que as máquinas virtuais.</p><p>Apenas para lembrar como era o trabalho desenvolvido pelas equipes de tec-</p><p>nologia, antes das máquinas virtuais, o processo era um pouco mais complicado:</p><p>“ Por muitos anos, o software corporativo tem sido implantado em</p><p>‘bare metal’ (instalado em um sistema operacional que possui con-</p><p>trole total sobre o hardware subjacente) ou em uma máquina virtual</p><p>(instalada em um sistema operacional que compartilha o hardware</p><p>subjacente com outros sistemas operacionais ‘guest’). Naturalmen-</p><p>te, instalar em hardware simples tornou o software dolorosamente</p><p>difícil de movimentar e difícil de atualizar – duas restrições que</p><p>dificultaram que a TI reagisse com agilidade às mudanças nas ne-</p><p>cessidades de negócios (YEGULALP, 2018, on-line).</p><p>Observe, na Figura 1, que nas máquinas virtuais, por meio do Hypervisor, cada</p><p>aplicação é instalada em um sistema operacional, que compartilha o hardware</p><p>da infraestrutura da nuvem. Já na tecnologia contêiner, as aplicações estão en-</p><p>capsuladas utilizando um único sistema operacional e os mesmos recursos de</p><p>hardware da infraestrutura.</p><p>8</p><p>8</p><p>Agora que vimos um breve comparativo entre os Dockers e as máquinas virtuais,</p><p>vamos conhecer alguns componentes que fazem parte da sua arquitetura:</p><p>Máquinas Virtuais</p><p>Contêineres do Docker</p><p>App 1 App 2 App 3</p><p>Bins/Libs Bins/Libs Bins/Libs</p><p>Guest OS Guest OS Guest OS</p><p>Hypervisor</p><p>Host Operating System</p><p>Infrastructure</p><p>App 1 App 2 App 3</p><p>Bins/Libs Bins/Libs Bins/Libs</p><p>Container Engine</p><p>Operating System</p><p>Infrastructure</p><p>Figura 1 – Máquinas virtuais x contêiner</p><p>Fonte: o autor.</p><p>Descrição da Imagem: a imagem</p><p>apresenta dois diagramas. O diagra-</p><p>ma mais à esquerda é denominado</p><p>máquinas virtuais, e, de cima para</p><p>baixo, temos as seguintes camadas:</p><p>camada de aplicações (app1, app2 e</p><p>app3); a segunda camada correspon-</p><p>de às bibliotecas “Bins/Libs”; a ter-</p><p>ceira camada é a Guest OS (sistema</p><p>operacional hospedeiro); a quarta ca-</p><p>mada o Hypervisor; a quinta camada</p><p>é o Host Operating System (sistema</p><p>operacional anfitrião); e a sexta ca-</p><p>mada é a infraestrutura. No segundo</p><p>diagrama, mais à direita, denomina-</p><p>do de Contêineres do Docker, temos</p><p>duas camadas do sistema operacio-</p><p>nal e da infraestrutura. No interior do</p><p>sistema operacional há um retângulo</p><p>representando o Contêiner Engine</p><p>com três outros retângulos com o</p><p>App1 sobre o Bins/Libs, o App2 so-</p><p>bre Bins/Libs e App3 sobre o Bins/</p><p>Libs. Fim da descrição.</p><p>UNIASSELVI</p><p>8</p><p>9</p><p>TEMA DE APRENDIZAGEM 4</p><p>DOCKER PARA MAC, LINUX E WINDOWS</p><p>Versões que permitem instalar e executar contêineres nos sistemas operacionais de</p><p>forma isolada.</p><p>DOCKER DAEMON</p><p>Software que roda na máquina em que o Docker está instalado. Usuário não interage</p><p>diretamente com o daemon.</p><p>DOCKER CLIENT</p><p>CLI ou REST API que aceita comandos do usuário e repassa esses comandos ao Doc-</p><p>ker daemon.</p><p>DOCKER IMAGE</p><p>É um template. Uma imagem contém todos os dados e metadados necessários para</p><p>executar contêineres a partir de uma imagem</p><p>DOCKER CONTÊINER</p><p>Detém tudo que é necessário para uma aplicação ser executada. Cada contêiner é</p><p>criado a partir de uma imagem. Cada contêiner é uma aplicação isolada independente.</p><p>9</p><p>1</p><p>DOCKER ENGINE</p><p>Usado para criar imagens e contêineres.</p><p>DOCKER REGISTRY</p><p>Uma coleção de imagens hospedadas e rotuladas que juntas permitem a criação do</p><p>sistema de arquivos de um contêiner. Um registro pode ser público ou privado.</p><p>DOCKER HUB</p><p>Este é um registro usado para hospedar e baixar diversas imagens. Pode ser visto</p><p>como uma plataforma SAAS de compartilhamento e gerenciamento de imagens.</p><p>DOCKERFILE</p><p>Um arquivo texto contendo uma sintaxe simples para criação de novas imagens.</p><p>DOCKER COMPOSE</p><p>Usado para definir aplicações usando diversos contêineres.</p><p>DOCKER SWARM</p><p>É uma ferramenta que permite o agrupamento (clustering) de contêineres Docker.</p><p>UNIASSELVI</p><p>9</p><p>1</p><p>TEMA DE APRENDIZAGEM 4</p><p>QUANDO USAR DOCKER</p><p>Como no caso de ambientes semelhantes, Gomes (2020, p. 11) afirma que “uma vez</p><p>que sua aplicação seja transformada em uma imagem Docker, ela pode ser instan-</p><p>ciada como contêiner em qualquer ambiente que desejar”. Ou seja, ela poderá ser</p><p>utilizada tanto no notebook do desenvolvedor quanto no servidor de produção.</p><p>Outra indicação de uso é no caso da aplicação como pacote completo, con-</p><p>forme define Gomes (2020, p. 11):</p><p>“ Utilizando as imagens Docker é possível empacotar toda sua apli-</p><p>cação e dependências, facilitando a distribuição, pois não será mais</p><p>necessário enviar uma extensa documentação explicando como con-</p><p>figurar a infraestrutura necessária para permitir a execução, basta dis-</p><p>ponibilizar a imagem em repositório e liberar o acesso para o usuário</p><p>e, ele mesmo pode baixar o pacote, que será executado sem problemas.</p><p>Essa vantagem, não se aplica somente no momento da aplicação ou instalação, ela</p><p>também pode ser vantajosa na atualização, “pois a estrutura de camadas do Docker</p><p>viabiliza que, em caso de mudança, apenas a parte modificada seja transferida e assim</p><p>o ambiente pode ser alterado de forma mais rápida e simples” (GOMES, 2020, p. 12).</p><p>TRABALHANDO COM OS CONTÊINERES</p><p>Como vimos, existem inúmeras vantagens para trabalharmos com contêiner,</p><p>e você já deve estar ansioso para pôr a mão na massa. Antes de começar, é im-</p><p>portante ressaltar que, para a execução do modelo apresentado, são necessárias</p><p>algumas configurações mínimas, e que isso pode variar e mudar conforme as</p><p>versões dos produtos evoluem.</p><p>Segundo Damaceno (2019), para a execução desse exemplo, precisamos do</p><p>Windows 10, versão Pro, Enterprise ou Education e X64. Você também precisa</p><p>que a virtualização da sua máquina esteja habilitada, para isso, você deve ir ao</p><p>gerenciador de tarefas, clicar na aba “desempenho”, que, por padrão, já aparece</p><p>habilitada, conforme vemos na Figura 3, indicado pelos retângulos vermelhos.</p><p>9</p><p>1</p><p>Continuando com nosso exemplo, após a instalação do seu Docker, vamos con-</p><p>firmar se está mesmo instalado, para isso, siga os passos:</p><p>Verificando e Instalando o Docker</p><p>Primeiramente, faça o download do Docker.</p><p>Figura 2 – Configurando / Fonte: o autor.</p><p>Descrição da Imagem: a imagem apresenta o gerenciador de tarefas. Do lado esquerdo, aparece as funções</p><p>processos, desempenho, histórico de aplicativos, aplicativos de inicialização, usuários e detalhes, serviços. À</p><p>direita, aparece o gráfico de desempenho da CPU relacionando % de utilização e o tempo, como, por exemplo,</p><p>60 segundos. Abaixo do gráfico, mais à esquerda, aparece a utilização: 19%, velocidade 3,38 GHz, Processos</p><p>237, Threads 3589, Identificadores 116788, tempo de atividade 1:17:27:54. À direita do gráfico aparece à</p><p>velocidade base: 1,80 Ghz, sockets: 1, núcleos: 4, processadores lógicos: 8, virtualização: habilitado, Cache L1:</p><p>256 K, Cache L2: 1,0 Mb, Cache L3: 6,0 Mb. No centro da imagem, temos gráficos de CPU, memória, disco, Wi-Fi</p><p>e GPU. Fim da descrição.</p><p>Para o download do Docker para Windows, acesse o endereço indicado.</p><p>https://download.docker.com/win/beta/InstallDocker.msi.</p><p>EU INDICO</p><p>UNIASSELVI</p><p>9</p><p>1</p><p>https://download.docker.com/win/beta/InstallDocker.msi</p><p>TEMA DE APRENDIZAGEM 4</p><p>O próximo passo é verificar a arquitetura e instalação do Docker.</p><p>Para isso, abra seu terminal do windows (powershell ou cmd) e escreva o</p><p>seguinte comando: docker - -version</p><p>Confirmando se o Docker está mesmo instalado e tendo entendido a estrutu-</p><p>ra da linha de comando, para utilizar o Docker, deve-se informar a ele as opções</p><p>e argumentos da seguinte forma: $ docker [option] [command] [arguments].</p><p>Opções adicionais</p><p>Conhecer as opções adicionais com relação a um comando específico, basta di-</p><p>gitar: $ docker subcomando – help.</p><p>Vamos, então, conhecer os comandos mais utilizados do Docker:</p><p>INFO</p><p>Exibir informações de todo o sistema.</p><p>INSP</p><p>Retorne informações de baixo nível de um contêiner ou imagemect.</p><p>9</p><p>4</p><p>KILL</p><p>Mate um contêiner em execução.</p><p>LOAD</p><p>Carregar uma imagem de um arquivo tar ou STDIN.</p><p>LOGIN</p><p>Faça login em um registro do Docker.</p><p>LOGS</p><p>Buscar os registros de um contêiner.</p><p>NETWORK</p><p>Gerenciar redes Docker.</p><p>PAUSE</p><p>Pausar todos os processos em um contêiner.</p><p>PORT</p><p>Listar mapeamentos de portas ou um mapeamento específico para o contêiner.</p><p>PS</p><p>Contêineres de lista.</p><p>UNIASSELVI</p><p>9</p><p>5</p><p>TEMA DE APRENDIZAGEM 4</p><p>Vejamos novos comandos do Docker:</p><p>■ PULL: extraia uma imagem ou repositório de um registro.</p><p>■ PUSH: envie uma imagem ou repositório para um registro.</p><p>■ RENAME: renomear um contêiner.</p><p>■ RESTART: reinicie um contêiner.</p><p>■ RM: remova um ou mais recipientes.</p><p>■ RUN: execute um comando em um novo contêiner.</p><p>■ SAVE: salve uma ou mais imagens em um arquivo tar.</p><p>■ START: inicie um ou mais contêineres parados.</p><p>■ STOP: pare um contêiner em execução.</p><p>Imagem para criar o contêiner no Docker</p><p>Damaceno (2019, on-line) explica, “o Docker utiliza uma ‘receita de bolo’, sendo</p><p>chamada de ‘imagem’, ou seja, uma série de instruções que o Docker faz para criar</p><p>um contêiner”. Caso você queira uma [imagem] pronta, pode acessar o repositó-</p><p>rio open source chamado Docker hub. Continuando com o exemplo, sempre que</p><p>formos criar um contêiner, utilizaremos a sintaxe: docker run imagem (imagem</p><p>que queremos que ele utilize).</p><p>Exemplo, se eu quiser criar um contêiner com Node:</p><p>>> docker run node</p><p>Depois, podemos conferir se ele foi criado com sucesso:</p><p>>> docker ps -a</p><p>Além disso, existem dois tipos de comandos</p><p>que podem ser utilizados para listar os</p><p>contêineres:</p><p>■ docker ps: que irá exibir todos os</p><p>contêineres ativos;</p><p>■ docker ps -a: que irá exibir todos</p><p>os contêineres criados.</p><p>9</p><p>1</p><p>Criando aplicação no Docker</p><p>Chegou o momento de criar uma aplicação, segundo modelo proposto por Moll</p><p>(2019). Suponhamos que você queira criar uma aplicação que possua todas as de-</p><p>pendências do Node.js já instalados, sem instalar as dependências manualmente</p><p>ou diretamente em sua máquina. Usando Docker, você pode fazer isso de ma-</p><p>neira isolada com alguns comandos declarados no arquivo de configuração. Isso</p><p>se chama “Dockerfile”, como mostra a Figura 3.</p><p>Figura 3 – Exemplo de um Dockerfile / Fonte: Moll (2019, on-line).</p><p>Descrição da Imagem: a imagem apresenta um script de programação para configuração da imagem do docker,</p><p>o qual apresenta comandos from, run, workdir, copy, user, expose e cmd. Fim da descrição.</p><p>Figura 4 – No arquivo app.js define-se uma aplicação básica em Node.js e express / Fonte: Moll (2019, on-line).</p><p>Descrição da Imagem: a imagem apresenta um script de programação de aplicação básica em Node.js, o qual apre-</p><p>senta declaração de constantes “const” e comandos app.get, res.send, app.listen, controle.log. Fim da descrição.</p><p>UNIASSELVI</p><p>9</p><p>1</p><p>TEMA DE APRENDIZAGEM 4</p><p>Criar a imagem</p><p>Criar uma imagem para poder rodar nossa aplicação e realizar o deploy na ima-</p><p>gem que será carregada no contêiner.</p><p>Vamos criar uma imagem executando o comando, em que a opção -t serve</p><p>para informarmos uma tag para a imagem que estamos criando:</p><p>$ docker build -t vmoll/nodejs-image-demo</p><p>Rodar a aplicação</p><p>Seguindo o modelo proposto por Moll (2019), já será possível rodar a aplicação</p><p>utilizando o seguinte comando:</p><p>$ docker run -it -p 3000:3000 -h instance-hostname --rm --name nodejsim-</p><p>age-demo vmoll/nodejs-image-demo:latest</p><p>Perceba que no comando que acabamos de executar informamos -p. 3000:3000.</p><p>Esse comando, segundo Moll (2019, on-line), “é responsável por realizar o bind</p><p>ou vinculação da porta local para uma porta externa do serviço, que será dispo-</p><p>nibilizado na máquina que está hospedando a aplicação”. Agora, já podemos ver</p><p>a aplicação funcionando, basta inserir http://localhost:3000 e receberá a men-</p><p>sagem “Hello Geeks!”.</p><p>Figura 5 – Aplicação executada / Fonte: Moll (2019, on-line).</p><p>Descrição da Imagem: a imagem apresenta uma tela na interface web o resultado na aplicação executada no</p><p>endereço localhost:3000. É apresentado o texto na tela “Hello Geeks!”. Fim da descrição.</p><p>O exemplo apresentado por Moll (2019) é uma aplicação bem simples, para ilustrar</p><p>como é possível realizar o deploy na imagem que criamos. Agora, vamos ao nosso</p><p>foco principal, que é a criação e execução de contêineres usando Docker.</p><p>9</p><p>8</p><p>Se você deseja criar uma aplicação completa, você pode utilizar algum gerador,</p><p>como o express-generator. Para isso, execute os seguintes comandos e, após, abra</p><p>uma janela do browser em: http://localhost:3000.</p><p>$ npm install express-generator -g</p><p>$ express minhaAplicacao</p><p>$ cd minhaAplicacao</p><p>$ npm install</p><p>$ npm start</p><p>Como todo desenvolvimento, é necessário seguirmos algumas dicas de boas prá-</p><p>ticas para aumentar a qualidade do nosso trabalho. Vejamos algumas propostas</p><p>de boas práticas na construção pelo site Docker (OVERVIEW..., 2020).</p><p>Conhecendo o formato do Dockerfile</p><p>O Docker constrói imagens automaticamente lendo as instruções de um Doc-</p><p>kerfile, que nada mais é do que um arquivo de texto que irá armazenar todos os</p><p>comandos necessários para a criação da determinada imagem. Um Dockerfile</p><p>segue um formato específico e um conjunto de instruções que você pode encon-</p><p>trar na referência do Dockerfile.</p><p>UNIASSELVI</p><p>9</p><p>9</p><p>TEMA DE APRENDIZAGEM 4</p><p>Quadro 1 – Quadro de detalhamento de um Dockerfile</p><p>Fonte: adaptado de Overview... (2020).</p><p>Conhecendo a camada do contêiner</p><p>Ao executar uma imagem e gerar um contêiner, você adiciona uma nova camada</p><p>gravável (a “camada do contêiner”) no topo das camadas subjacentes. Todas as al-</p><p>terações feitas no contêiner em execução, como gravar novos arquivos, modificar</p><p>arquivos existentes e excluir arquivos, são gravadas nessa camada de contêiner</p><p>gravável, por isso a imagem definida por seu Dockerfile deve gerar contêineres</p><p>tão efêmeros quanto possível. Por “efêmero”, queremos dizer que o contêiner pode</p><p>ser interrompido e destruído e, em seguida, reconstruído e substituído com um</p><p>mínimo absoluto de instalação e configuração.</p><p>Recomendação de imagem oficial</p><p>Estas recomendações foram elaboradas para ajudá-lo a criar um ambiente efi-</p><p>ciente e sustentável Dockerfile.</p><p>DETALHANDO UM DOCKERFILE</p><p>Comando Significado</p><p>FROM ubuntu:18.04</p><p>FROM cria uma camada da ubuntu:18.04imagem</p><p>Docker.</p><p>COPY. /app</p><p>COPY adiciona arquivos do diretório atual do seu</p><p>cliente Docker.</p><p>RUN make /app RUN constrói seu aplicativo com make.</p><p>CMD python /app/app.py</p><p>CMD especifica qual comando executar dentro do</p><p>contêiner.</p><p>1</p><p>1</p><p>1</p><p>FROM: sempre que possível, use imagens oficiais atuais como base para suas</p><p>imagens. Recomendamos a imagem Alpine (https://hub.docker.com/_/alpine/)</p><p>porque é rigidamente controlada e pequena em tamanho (atualmente, menos de</p><p>5 MB), embora ainda seja uma distribuição Linux completa.</p><p>Recomendação de organização de imagem oficial:</p><p>LABEL: você pode adicionar rótulos à sua imagem para ajudar a or-</p><p>ganizar imagens por projeto, registrar informações de licenciamento, para</p><p>auxiliar na automação ou por outros motivos. Para cada rótulo, adicione uma</p><p>linha começando com LABEL e com um ou mais pares de valores-chave. Os</p><p>exemplos a seguir mostram os diferentes formatos aceitáveis. Como as strings</p><p>com espaços, que devem ser colocados entre aspas ou os espaços devem ser</p><p>escapados. Caracteres de aspas internas (“) também devem ser escapados.</p><p>Vejamos os exemplos:</p><p>■ Com um ou vários Labels simples:</p><p>LABEL com.example.version=”0.0.1-beta”</p><p>LABEL vendor1=”ACME Incorporated”</p><p>LABEL vendor2=ZENITH\ Incorporated</p><p>LABEL com.example.release-date=”2015-02-12”</p><p>LABEL com.example.version.is-production=””.</p><p>Recomendação para dividir instruções complexas:</p><p>RUN: serve para dividir instruções longas ou complexas em várias linhas se-</p><p>paradas por barras invertidas, o que servirá para deixar o Dockerfile mais legível,</p><p>compreensível e fácil de manter.</p><p>APT-GET: provavelmente, o caso de uso mais comum para RUN é um apli-</p><p>cativo de apt-get para a instalação de pacotes, entretanto, o comando tem várias</p><p>dicas a serem observadas, como evitar o uso de RUN apt-get upgrade e dist-up-</p><p>grade. Isso acontece porque muitos dos pacotes “essenciais” das imagens do pai</p><p>não podem ser atualizados dentro de um contêiner sem privilégios. Se um pacote</p><p>contido na imagem do pai estiver desatualizado, entre em contato com o respon-</p><p>sável. Se você souber que existe um pacote específico, que precisa ser atualizado,</p><p>use apt-get install -y foo para atualizar automaticamente.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 4</p><p>Recomendação para dividir instruções complexas combinando RUN e apt-get</p><p>Outra dica é sempre combine RUN apt-get update com apt-get install na mesma</p><p>RUN, como no exemplo:</p><p>RUN apt-get update && apt-get install -y \</p><p>package-bar \</p><p>package-baz \</p><p>package-foo</p><p>Cuidado ao usar apt-get sozinho com uma instrução RUN</p><p>Usar apt-get update sozinho em uma instrução RUN causa problemas de cache</p><p>e as instruções apt-get install subsequentes falham. Por exemplo, digamos que</p><p>você tenha um Dockerfile:</p><p>FROM ubuntu:18.04</p><p>RUN apt-get update</p><p>RUN apt-get install -y curl</p><p>APROFUNDANDO</p><p>Vejamos outras recomendações com relação ao uso de pipes, execução de soft-</p><p>ware contido na imagem, visualização de portas para a execução de conexões,</p><p>e</p><p>demais boas práticas.</p><p>Usando pipes</p><p>Alguns comandos RUN dependem da capacidade de canalizar a saída de um</p><p>comando para outro, usando a barra vertical ( | ), como no exemplo a seguir:</p><p>RUN wget -O - https://some.site | wc -l > /number</p><p>O Docker executa esses comandos usando o interpretador /bin/sh -c, que</p><p>avalia apenas o código de saída da última operação no pipe para determinar o</p><p>sucesso. No exemplo, essa etapa de construção é bem-sucedida e produz uma</p><p>nova imagem, desde que o comando wc -l seja bem-sucedido, mesmo se o co-</p><p>mando wget falhar.</p><p>Você pode evitar que a construção da aplicação seja acidentalmente concluída.</p><p>Se você quer que o comando falhe devido a um erro em qualquer estágio do</p><p>pipe, inclua o prefixo set -o pipefail &&. Isso irá garantir que um erro inesperado</p><p>evite que a construção seja acidentalmente concluída.</p><p>1</p><p>1</p><p>1</p><p>Vejamos o exemplo:</p><p>RUN set -o pipefail && wget -O - https://some.site | wc -l > /number</p><p>Execução do software contido na imagem</p><p>A instrução CMD deve ser usada para executar o software contido em sua ima-</p><p>gem, junto a quaisquer argumentos. Esse comando quase sempre deve ser usado</p><p>na forma de CMD [“executable”, “param1”, “param2”…], portanto, se a imagem for</p><p>para um serviço, como Apache e Rails, você executaria algo como CMD [“apa-</p><p>che2”,”-DFOREGROUND”]. Na verdade, essa forma de instrução é recomendada</p><p>para qualquer imagem baseada em serviço.</p><p>Na maioria dos outros casos, o CMD deve receber um shell interativo, como</p><p>bash, python e perl. Por exemplo, CMD [“perl”, “-de0”], CMD [“python”], ou CMD</p><p>[“php”, “-a”]. Ao utilizar dessa forma, significa que, ao executar algo como docker</p><p>run -it python, você será colocado em um shell utilizável, pronto para usar. Os</p><p>CMD raramente devem ser usados na forma de CMD [“param”, “param”] em</p><p>conjunto com o ENTRYPOINT, a menos que você e seus usuários esperados já</p><p>estejam bastante familiarizados com o funcionamento do ENTRYPOINT.</p><p>Mostrando as portas para executar as conexões:</p><p>A instrução EXPOSE indica as portas nas quais um contêiner escuta as co-</p><p>nexões. Por exemplo, uma imagem contendo o servidor da web Apache usaria</p><p>EXPOSE 80, enquanto uma imagem contendo MongoDB usaria EXPOSE 27017</p><p>e assim por diante. Já para acesso externo, os usuários podem executar docker</p><p>run com um sinalizador indicando como mapear a porta especificada para a</p><p>porta de sua escolha. Para a vinculação do contêiner, o Docker fornece variáveis</p><p>de ambiente para o caminho do contêiner do destinatário de volta à origem (ou</p><p>seja, MYSQL_PORT_3306_TCP).</p><p>Como atualizar a variável de ambiente:</p><p>ENV: para tornar o novo software mais fácil de ser executado, você pode usar</p><p>ENV para atualizar a variável de ambiente PATH para o software que seu contêi-</p><p>ner instala. Por exemplo: ENV PATH /usr/local/nginx/bin:$PATH garante que</p><p>CMD [“nginx”] simplesmente funcione.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 4</p><p>Como fornecer variáveis ambiente:</p><p>A instrução ENV também é útil para fornecer variáveis de ambiente específicas</p><p>exigidas para serviços que você deseja armazenar em contêiner, como Postgres</p><p>PGDATA. Por último, o ENV também pode ser usado para definir os números</p><p>de versão que comumente são usados para que as variações de versão sejam mais</p><p>fáceis de manter, conforme visto no exemplo a seguir:</p><p>ENV PG_MAJOR 9.3</p><p>ENV PG_VERSION 9.3.4</p><p>RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC</p><p>/usr/src/postgress && …</p><p>ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH</p><p>Variáveis constantes por meio de ENV</p><p>Semelhante a ter variáveis constantes em um programa, ao invés de ter os valores</p><p>definidos no código, essa abordagem permite alterar uma única instrução ENV, e</p><p>com isso alterar automaticamente a versão do software em seu contêiner, no qual</p><p>cada linha ENV cria uma nova camada intermediária, assim como os comandos</p><p>RUN. Isso significa que mesmo se você remover a configuração da variável de</p><p>ambiente em uma camada futura, ela ainda persistirá nessa camada e seu valor</p><p>não poderá ser descarregado. Você pode testar isso criando um Dockerfile como</p><p>o seguinte e, em seguida, compilando-o.</p><p>FROM alpine</p><p>ENV ADMIN_USER=”mark”</p><p>RUN echo $ADMIN_USER > ./mark</p><p>RUN unset ADMIN_USER</p><p>$ docker run --rm test sh -c ‘echo $ADMIN_USER’</p><p>Mark</p><p>Para evitar isso e realmente remover a definição da variável de ambiente, use</p><p>um comando RUN com comandos shell para definir, usar e remover a definição</p><p>da variável, tudo em uma única camada. Você pode separar seus comandos</p><p>com ; ou &&. Se usar o segundo método é um dos comandos falhar, o docker</p><p>1</p><p>1</p><p>4</p><p>build também falhará. Geralmente é uma boa ideia usar como um caractere de</p><p>continuação de linha para Dockerfiles Linux, isso melhora a legibilidade. Você</p><p>também pode colocar todos os comandos em um script de shell e fazer com</p><p>que o comando RUN apenas execute esse script de shell.</p><p>FROM alpine</p><p>RUN export ADMIN_USER=”mark” \</p><p>&& echo $ADMIN_USER > ./mark \</p><p>&& unset ADMIN_USER</p><p>CMD sh</p><p>$ docker run --rm test sh -c ‘echo $ADMIN_USER’</p><p>Cópia dos arquivos locais:</p><p>ADD ou COPY: ADICIONE ou COPIE embora esses comandos sejam funcio-</p><p>nalmente semelhantes, em geral, COPY é o preferido. Isso porque é mais transpa-</p><p>rente do que ADD. O comando COPY suporta apenas a cópia básica de arquivos</p><p>locais no contêiner, embora ADD tenha alguns recursos. Consequentemente, o</p><p>melhor uso para ADD é a extração automática do arquivo tar local para a imagem,</p><p>como em ADD rootfs.tar.xz /.</p><p>Redução da invalidação de cache</p><p>Se você tiver várias etapas no seu Dockerfile que usam arquivos diferentes do</p><p>seu contexto, use o COPY individualmente, em vez de todos de uma vez. Isso</p><p>garante que o cache de construção de cada etapa só seja invalidado (forçando</p><p>a etapa a ser executada novamente) se os arquivos especificamente necessários</p><p>forem alterados. Como, no exemplo:</p><p>COPY requirements.txt /tmp/</p><p>RUN pip install --requirement /tmp/requirements.txt</p><p>COPY . /tmp</p><p>Isso resulta em menos invalidação de cache para a etapa RUN, do que se você</p><p>colocasse o COPY . /tmp/ antes dela.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 4</p><p>Buscar pacotes de URLs remotos</p><p>Como o tamanho da imagem é importante usar ADD para buscar pacotes de</p><p>URLs remotos é desaconselhado. Você deve usar curl ou wget, em vez disso. Dessa</p><p>forma, você pode excluir os arquivos de que não precisa mais depois de extraídos</p><p>e não precisa adicionar outra camada à imagem. Veja o exemplo do que evitar e</p><p>o que preferir no Quadro 2:</p><p>EVITE PREFIRA</p><p>ADD http://example.com/big.tar.xz /</p><p>usr/src/things/</p><p>RUN tar -xJf /usr/src/things/big.tar. xz</p><p>-C /usr/src/things</p><p>RUN make -C /usr/src/things all</p><p>RUN mkdir -p /usr/src/things \</p><p>&& curl -SL http://example.com/</p><p>big.tar.xz \</p><p>| tar -xJC /usr/src/things \</p><p>&& make -C /usr/src/things all</p><p>Quadro 2 – Recomendação do uso do comando ADD</p><p>Fonte: o autor.</p><p>Para outros itens (arquivos, diretórios) que não requerem ADD, o recurso de</p><p>extração automática do tar, você deve sempre usar COPY.</p><p>Utilização da instrução VOLUME:</p><p>A instrução VOLUME deve ser usada para expor qualquer área de armazena-</p><p>mento de banco de dados, armazenamento de configuração ou arquivos/pastas</p><p>criados por seu contêiner Docker. É muito recomendado que se use VOLUME</p><p>para quaisquer partes mutáveis e/ou que possam ser reparadas pelo usuário de</p><p>sua imagem.</p><p>Utilização da instrução USER:</p><p>Se um serviço puder ser executado sem privilégios, utilize USER para mudar</p><p>para um usuário não root. Comece criando o usuário e o grupo no Dockerfile,</p><p>como o exemplo:</p><p>RUN groupadd -r postgres && useradd --no-log-init -r -g postgres postgres</p><p>1</p><p>1</p><p>1</p><p>UID/GID EXPLÍCITO</p><p>Considere um UID / GID explícito: usuários e grupos em uma imagem são atribuídos</p><p>a um UID / GID não determinístico em que o “próximo” UID / GID é atribuído indepen-</p><p>dentemente das reconstruções da imagem, portanto, se for crítico, você deve atribuir</p><p>um UID / GID explícito.</p><p>USO DE CAMINHOS ABSOLUTOS</p><p>WORKDIR: para maior clareza e confiabilidade, você deve sempre usar caminhos ab-</p><p>solutos para o seu WORKDIR. Além disso, você deve usar</p><p>em vez</p><p>WORKDIR de proliferar instruções como RUN cd … && do-something, que são difíceis</p><p>de ler.</p><p>BUIDAGEM APÓS COMPILAÇÃO</p><p>ONBUILD: este comando é executado após a conclusão da compilação do Dockerfile</p><p>atual. Ele executa em qualquer imagem filha derivada da imagem FROM atual. Pense</p><p>no comando ONBUILD como uma instrução que o pai Dockerfile dá ao filho Dockerfile.</p><p>Uma compilação do Docker executa comandos ONBUILD antes de qualquer comando</p><p>em um filho Dockerfile. Ele é útil para imagens que serão construídas a partir de FROM</p><p>em uma determinada imagem. Por exemplo, você usaria ONBUILD para uma imagem</p><p>de pilha de linguagem que constrói software de usuário arbitrário escrito nessa lingua-</p><p>gem dentro do Dockerfile. As imagens criadas com ONBUILD devem receber uma tag</p><p>separada, por exemplo: ruby:1.9-onbuild ou ruby:2.0-onbuild.</p><p>CUIDADO NO USO DO ADD OU COPY EM ONBUILD</p><p>Tenha cuidado ao colocar ADD ou COPY em ONBUILD. A imagem “onbuild” falhará</p><p>catastroficamente se o contexto da nova construção não incluir o recurso adicionado.</p><p>Adicionar uma tag separada, conforme recomendado, ajuda a mitigar isso, permitindo</p><p>que o autor do Dockerfile faça uma escolha.</p><p>Vimos que o contêiner nada mais é do que um ambiente isolado contido em um</p><p>servidor, diferentemente das máquinas virtuais e que o isolamento de contêiner</p><p>é essencial no desenvolvimento de aplicações possibilitando uma utilização li-</p><p>mitada do HD, memória RAM e processador.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 4</p><p>Na conteinerização os novos desafios são de conhecer a adoção da arqui-</p><p>tetura de microsserviços/serverless, ou seja, ambas estão interligadas. Ao desen-</p><p>volver aplicações na nuvem, estas se utilizam de programas de microsserviços ou</p><p>serverless, que são funções únicas e específicas. A maneira de pensar em funções</p><p>na computação serverless é como microsserviços. Aqui, cada função atende a</p><p>seu propósito e completa um processo independentemente das outras funções.</p><p>A computação serverless é sem estado e baseada em eventos, portanto, é assim</p><p>que as funções também devem ser desenvolvidas.</p><p>Na arquitetura de microsserviços, se diminui a chance de ter um único ponto</p><p>de falha em seu código. Esses microsserviços também são mais rápidos de construir e</p><p>implantar, pois é possível o fazer de maneira independente, sem construir a aplicação</p><p>por inteiro. Isso torna o tempo de desenvolvimento mais rápido e eficiente e permite</p><p>que tanto o desenvolvimento quanto os testes sejam realizados de forma rápida e fácil.</p><p>Nesse modelo de aplicação, o cliente paga apenas pelos recursos que suas apli-</p><p>cações consumiram, e não pela alocação antecipada de recursos de computação,</p><p>ou pela quantidade de aplicações, isto é, sendo pago exatamente o que se está utili-</p><p>zando, sem ociosidade de recursos (MISHRA, 2020). As aplicações desse modelo</p><p>de computação podem sofrer massivamente uma sobrecarga de requisições sem</p><p>afetar no seu funcionamento, pois recursos são alocados automaticamente, para</p><p>que não seja prejudicada a eficiência da aplicação, ocorrendo um balanceamento</p><p>de requisições por servidores, por exemplo (MISHRA, 2020).</p><p>Outra característica dos serverless é o escalonamento independente. Os ser-</p><p>verless são distribuídos de forma automática e consistem em vários componentes</p><p>que podem ter escalonamento independente (MISHRA, 2020). Nesse contexto,</p><p>se um determinado serverless receber uma carga pesada de tráfego, então este</p><p>terá escalonamento independente.</p><p>Em termos de disponibilidade as aplicações ou funções hospedadas em ser-</p><p>verless computing possuem alta disponibilidade, sendo que os provedores de</p><p>nuvem realizam acordo em contrato que garantem esta característica e benefício</p><p>(MISHRA, 2020). Com isso, não importa quantas requisições a aplicação rece-</p><p>berá, nesse modelo, a disponibilidade está garantida.</p><p>1</p><p>1</p><p>8</p><p>NOVOS DESAFIOS</p><p>Podemos compreender que, no desenvolvimento de aplicações em nuvem, os</p><p>microsserviços/serverless otimizam recursos da nuvem. Em um ciclo de vida de</p><p>desenvolvimento software, essas funções são conteinerizadas para adaptarem</p><p>a todo o ciclo, desde o desenvolvimento até à implantação das aplicações, em</p><p>sistemas operacionais e plataformas distintas.</p><p>Agora, estudante, imagine, após se aprofundar nos estudos de computação em</p><p>nuvem e se familiarizar com contêineres, você foi contratado por uma empresa</p><p>de TI chamada Infra&software Ltda. Uma de suas primeiras responsabilidades,</p><p>juntamente com sua equipe de analistas de sistemas, foi instalar e configurar um</p><p>Docker. No entanto, antes de começarem, o coordenador da equipe de TI fez</p><p>algumas observações sobre o Docker.</p><p>Comentou que a finalidade do Docker é abstrair a infraestrutura das aplica-</p><p>ções por meio de imagens prontas, ou seja, virtualizações de baixo custo rodando</p><p>com a infraestrutura das aplicações. O coordenador apresentou um exemplo de</p><p>Docker a ser utilizado, o Alpine, que contém apenas 5Mb. Esse tipo de imagem,</p><p>conteineiriza (empacota) com o core do sistema operacional Linux, no qual, a</p><p>maioria das aplicações rodam apenas com esse core.</p><p>Logo, o coordenador perguntou se alguém tinha ouvido falar de Docker e,</p><p>se sim, explicasse um pouco do assunto. Você se identificou e comentou que já</p><p>tinha conhecido o assunto nas aulas de computação em nuvem sobre contêineres</p><p>e também por meio de leituras complementares.</p><p>Acesse seu ambiente virtual de aprendizagem e confira a aula referente a este</p><p>tema. Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de</p><p>aprendizagem</p><p>EM FOCO</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 4</p><p>Explicou que o Docker Alpine é uma ferramenta de virtualização poderosa,</p><p>que otimiza a infraestrutura, ou seja, empacota e implanta aplicativos e suas de-</p><p>pendências em um ambiente isolado, dentro de contêineres virtuais. Sendo uma</p><p>de suas características principais é a escalabilidade de diferentes aplicativos em</p><p>um mesmo ambiente de desenvolvimento, podendo realizar o desenvolvimento,</p><p>teste e deployment. Outra característica que você lembrou é que, mesmo que</p><p>o Docker tenha a mesma função que as máquinas virtuais, existem diferenças</p><p>significativas. Uma delas é que, enquanto a máquina virtual utiliza um sistema</p><p>operacional para cada máquina virtual, o Docker compartilha o sistema ope-</p><p>racional entre os contêineres, possui desempenho mais rápido, é leve e fácil de</p><p>implantar em diferentes ambientes.</p><p>Nesse momento, o coordenador comentou que a ideia de utilizar o Docker Al-</p><p>pine nas máquinas, para os desenvolvedores de aplicações SQL da empresa, seria</p><p>realizar uma imagem com o SQL Server, MySQL e Mongodb (banco de dados).</p><p>Explica que, dessa forma, é só baixar a imagem oficial do SQL Server para Docker</p><p>e pronto para uso, mas deu uma dica importante: deixar a cópia da imagem local.</p><p>O coordenador comentou aos analistas que a ordem da tarefa é instalar o</p><p>Docker, executar o Docker, testar à instalação, listar as imagens, listar os contêi-</p><p>neres, inicializar o contêiner, publicar um API/Docker Filer, criar uma imagem,</p><p>rodar o contêiner na porta 3000 (acessar à API no navegador). O coordenador</p><p>desejou a todos uma ótima tarefa!</p><p>1</p><p>1</p><p>1</p><p>1. Considere, por hipótese, que a equipe de analistas da Defensoria Pública tenha optado</p><p>pelo uso do Docker.</p><p>Diante do excerto apresentado, essa decisão do uso Docker foi motivada por qual fato apre-</p><p>sentado pelo Docker?</p><p>a) Estar ganhando espaço como um gerenciador de máquinas virtuais no ambiente GNU/</p><p>Linux e não ter bibliotecas próprias, mantendo as bibliotecas nativas utilizadas para ge-</p><p>renciar o LXC.</p><p>b) Não utilizar Namespaces do Linux, o que permite prover espaços de trabalho isolados</p><p>para os contêineres. Dessa forma, quando um contêiner é criado, automaticamente é</p><p>criada uma camada de isolamento para grupos de processos.</p><p>c) Permitir portabilidade de contêineres. É possível criar uma imagem de toda a configu-</p><p>ração e aplicativos instalados em um contêiner e transferi-lo para outro host que tenha</p><p>um Docker previamente instalado.</p><p>d) Obter o mesmo</p><p>liberada para os clientes, com pequeno esforço do provedor de serviços, como</p><p>ilustra a Figura 1.</p><p>A computação em nuvem é disponibilizada como serviços por provedores em</p><p>data centers, oferecendo diferentes modelos de serviços para usuários finais. A</p><p>computação em nuvem, por possuir uma infraestrutura expansível, isto é, se precisar</p><p>de mais recursos, basta adicionar novos, permite a disponibilização de serviços de</p><p>streaming de vídeo, podendo oferecer programações ao vivo (PATHAN; MONOWAR;</p><p>FADLULLAH, 2013).</p><p>Figura 1 – Especialista utilizando a computação em nuvem</p><p>Descrição da Imagem: a imagem apresenta uma especialista acessando serviços de computação em nuvem</p><p>por meio de plataformas de desenvolvimento de sistemas em computadores locais na empresa conectados pela</p><p>internet. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 1</p><p>Computação em nuvem se refere a aplicações desenvol-</p><p>vidas e, segundo Taurion (2009, p. 2), pode ser definida</p><p>como “um conjunto de recursos como capacidade de</p><p>processamento, armazenamento, conectividade, plata-</p><p>formas, aplicações e serviços disponibilizados na in-</p><p>ternet”. Nesse sentido, a computação em nuvem pode</p><p>ser descrita como sendo a virtualização de um data</p><p>center, pois os recursos de servidores são disponibili-</p><p>zados na internet para os clientes.</p><p>“ A computação em nuvem reúne diver-</p><p>sos recursos importantes para se esta-</p><p>belecer uma conexão, como capacidade</p><p>de processamento, tipos de armazena-</p><p>mento, modos de conexão, modelos de</p><p>plataformas, aplicativos e muitos outros</p><p>serviços que são disponibilizados na in-</p><p>ternet (SILVA, 2020, p. 14).</p><p>Computação em nuvem foi criada para descrever a so-</p><p>fisticada tecnologia de serviços e recursos de computa-</p><p>ção sob demanda, os quais foram disponibilizados ini-</p><p>cialmente por provedores comerciais como Microsoft,</p><p>Google e Amazon (BUYYA; BROBERG; GOSCINSKI,</p><p>2011). Esses provedores comerciais, assim como muitos</p><p>outros, possuem parques computacionais com milhares</p><p>de máquinas, assim como vários data centers espalha-</p><p>dos pelo mundo.</p><p>Segundo Taurion (2009), algumas das característi-</p><p>cas principais da computação em nuvem são:</p><p>1</p><p>1</p><p>De certa forma, na computação em nuvem atual, pode ser considerado o retorno</p><p>da centralização – antigamente denominada central de processamento e dados</p><p>(CPD), por meio de mainframes, como mostra à Figura 2 –, pois, computado-</p><p>res pessoais, neste cenário, podem ser utilizados apenas como forma de acesso</p><p>a aplicações, serviços ou armazenamento de dados que rodam em servidores</p><p>remotos (TAURION, 2009).</p><p>ILUSÃO DE RECURSOS</p><p>A computação em nuvem pode criar ilusão de que os recursos em nuvem sejam</p><p>infinitos.</p><p>RECURSOS NÃO PLANEJADOS</p><p>Com a computação em nuvem, não é necessário adquirir recursos antecipadamente.</p><p>RECURSOS SOB DEMANDA</p><p>A computação em nuvem permite que empresas usem apenas a quantidade de recur-</p><p>sos necessários, podendo aumentar ou diminuir a quantidade.</p><p>USE E PAGUE</p><p>A computação em nuvem permite que se pague os serviços utilizados pelo que se</p><p>utiliza.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 1</p><p>Ainda segundo Taurion (2009), com a computação em nuvem, usuários que utili-</p><p>zam computadores pessoais com poucos recursos, podem ter acesso a ilimitados</p><p>espaços de armazenamento em servidores remotos, ou, ainda, executar aplicações</p><p>em servidores remotos que requisitam grande capacidade de processamento.</p><p>Bai (2015) comenta que a computação em nuvem possui algumas vantagens</p><p>em relação à arquitetura local, as quais são: elasticidade, disponibilidade e</p><p>escalabilidade. Vejamos, agora, em detalhes, essas vantagens da computação</p><p>em nuvem.</p><p>Figura 2 – Mainframe – centralização de dados</p><p>Fonte: https://commons.wikimedia.org/wiki/File:DEC_PDP-10_Minicomputer_(sometimes_classified_Main-</p><p>frame)_in_Living_Computer_Museum_(strongly_edited)_).jpg. Acesso em: 20 mar. 2024.</p><p>Descrição da Imagem: a imagem apresenta um mainframe de centralização do armazenamento e processamento</p><p>de dados com seu painel de controle. Fim da descrição.</p><p>1</p><p>4</p><p>Elasticidade</p><p>A elasticidade significa o cliente de um serviço poder aumentar ou diminuir a de-</p><p>manda por um serviço, isto é, o cliente de um serviço pode, por exemplo, solicitar</p><p>o aumento do espaço de armazenamento em nuvem, ou diminuir a capacidade</p><p>de armazenamento (BAI, 2015).</p><p>Outro exemplo para a elasticidade é um site que está hospedado em um</p><p>servidor na nuvem, por um determinado período de tempo precisar rodar em</p><p>mais servidores do que a quantidade normal, como, por exemplo, durante a Black</p><p>Friday, para suportar a quantidade de usuários, mantendo uma resposta aceitável</p><p>(BAI, 2015). Essa elasticidade pode ser visualizada, controlada e acionada a partir</p><p>de um painel de controle da plataforma da nuvem, como ilustra a Figura 3.</p><p>VOCÊ SABE RESPONDER?</p><p>Para iniciarmos os detalhes das vantagens da computação em nuvem, como você</p><p>imagina as vantagens da elasticidade, disponibilidade e escalabilidade?</p><p>Figura 3 – Especialista monito-</p><p>rando e controlando os recursos</p><p>da computação em nuvem</p><p>Descrição da Imagem: a</p><p>imagem apresenta uma</p><p>especialista em dados uti-</p><p>lizando uma plataforma</p><p>de controle e acionamento</p><p>para estender ou reduzir os</p><p>recursos da nuvem. Fim da</p><p>descrição.</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 1</p><p>Em um datacenter tradicional, essa característica de elasticidade é mais difícil,</p><p>pois normalmente depende de aprovação, aquisição, instalação e testes de novos</p><p>equipamentos de hardware, para permitir atender a demanda, havendo, normal-</p><p>mente, demora ou impossibilidade (BAI, 2015).</p><p>Disponibilidade</p><p>A característica disponibilidade é a possibilidade de usuários poderem acessar</p><p>serviços hospedados na nuvem em qualquer momento (dia, hora) e de qualquer</p><p>lugar do mundo, e estando os serviços disponíveis, significa que estes estão fun-</p><p>cionando perfeitamente (BAI, 2015).</p><p>Normalmente, serviços na nuvem possuem redundância de servidores além</p><p>de backups, garantindo que se um servidor cair, outro pode assumir no lugar para</p><p>manter os serviços em perfeito funcionamento (BAI, 2015).</p><p>Escalabilidade</p><p>O termo escalabilidade pode ser compreendido em como um sistema suporta o</p><p>aumento do número de usuários, mantendo a sua qualidade e eficiência, sendo</p><p>que, neste caso, o aumento da capacidade de trabalho é o número que indica a</p><p>quantidade (BAI, 2015).</p><p>Em data centers tradicionais, a escalabilidade é alcançada melhorando os</p><p>equipamentos de hardware, e uma situação para exemplificar, é um banco de</p><p>dados estar com o uso de memória RAM no limite, e, para resolver, basta adicio-</p><p>nar mais memória, sendo conhecido por escalabilidade vertical (BAI, 2015).</p><p>Escalabilidade vertical não possui limites, ao não ser alguns servidores físicos</p><p>que possuem limites de memória RAM ou processadores, por exemplo, assim</p><p>como máquinas virtuais também possuírem algumas limitações, mas geralmente,</p><p>os provedores de servidores em nuvem disponibilizam vários tamanhos ou</p><p>configurações diferentes para que os clientes possam optar pelo mais adequado</p><p>para seu uso (BAI, 2015).</p><p>Se a escalabilidade vertical não resolver alguma determinada demanda para</p><p>um cliente, é possível aplicar outro tipo de escalabilidade, a horizontal (BAI, 2015).</p><p>1</p><p>1</p><p>A escalabilidade horizontal não altera as configurações dos servidores,</p><p>mas ajusta a capacidade do sistema para permitir aumentar ou diminuir o</p><p>número de servidores. Ainda segundo Bai (2015), a escalabilidade horizon-</p><p>tal possui a vantagem de não limitar o espaço em disco de um servidor ou</p><p>máquina virtual.</p><p>Além das características da computação em nuvem, elasticidade, disponibi-</p><p>lidade e escalabilidade, a nuvem pode virtualizar diversos recursos computacio-</p><p>nais: como você imagina quais seriam esses recursos?</p><p>Serviços de armazenamento</p><p>Um dos tipos de virtua-</p><p>lização é a utilizada para</p><p>armazenamento de</p><p>dados, na qual inúme-</p><p>ros discos rígidos físicos</p><p>podem ser combinados,</p><p>formando um único sis-</p><p>tema de armazenamen-</p><p>to virtualizado, podendo</p><p>aumentar a capacidade</p><p>ou até a velocidade de</p><p>desempenho da virtualização baseada em Hypervisor, em que cada</p><p>contêiner é executado em seu próprio sistema operacional, o que reduz a utilização de</p><p>recursos de disco, embora os contêineres utilizem mais memória.</p><p>e) Operar independentemente em um ambiente físico, como se fosse uma máquina dentro</p><p>de outra máquina, rodando um sistema operacional e qualquer programa ou aplicação.</p><p>2. Em uma virtualização, por meio do Hypervisor, as aplicações são instaladas em um sistema</p><p>operacional, que compartilha o hardware da infraestrutura da nuvem. Assim a virtualização</p><p>se comporta como um computador dentro de outro computador. Já na tecnologia contêiner</p><p>as aplicações estão encapsuladas utilizando um único sistema operacional e os mesmos</p><p>recursos de hardware da infraestrutura.</p><p>Diante do excerto apresentado, marque a alternativa que corresponde à um comando que</p><p>cria um contêineres, por meio da ferramenta Docker:</p><p>a) Docker os.</p><p>b) Docker run imagem.</p><p>c) RUN apt-get update && apt-get install -y \.</p><p>d) Docker - -version.</p><p>e) ADD http://example.com/big.tar.xz.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>1</p><p>3. Para criar uma aplicação que rode sob um contêiner, é necessário utilizar a ferramenta</p><p>Docker, na qual é preciso criar uma imagem para rodar a aplicação e realizar o deploy na</p><p>imagem que será carregada no contêiner. Assim, atualmente, várias empresas têm utilizado</p><p>a conteinerização de aplicações.</p><p>Dentro dessa plataforma, como pode ser definido o termo contêiner?</p><p>a) É uma estrutura para armazenamento de dados não estruturados.</p><p>b) É uma forma de virtualização a nível de sistema operacional, que proporciona a</p><p>capacidade de executar múltiplas aplicações (sistemas) isoladas em um único sistema</p><p>operacional real.</p><p>c) É uma linguagem de programação que proporciona a aplicabilidade da plataforma</p><p>Docker dentro de um sistema.</p><p>d) Pode ser definido como uma estrutura secundária para armazenamento das redundân-</p><p>cias dentro do processo de desenvolvimento de software.</p><p>e) É uma estrutura de banco de dados relacionais, utilizado para o armazenamento de</p><p>informações que são compartilhadas entre os projetos de uma mesma equipe.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>1</p><p>REFERÊNCIAS</p><p>DAMACENO, L. Docker: criando o seu primeiro container. Medium, [s. l.], 23 jan. 2019. Disponí-</p><p>vel em: https://medium.com/devs-javagirl/docker-criando-o-seu-primeiro-cont%C3%AAiner-</p><p>-61ac022ceeef. Acesso em: 22 mar. 2024.</p><p>GOMES, R. Docker para desenvolvedores. British Columbia: Leanpub, 2020.</p><p>MONTEMAGNO, J. et al. Introdução aos contêineres e ao Docker. Microsoft, Mountain View, 28</p><p>mar. 2023. Disponível em: https://learn.microsoft.com/pt-br/dotnet/architecture/microservi-</p><p>ces/container-docker-introduction/. Acesso em: 22 mar. 2024.</p><p>MISHRA, A. Mastering azure serverless computing: design and implement end-to-end highly</p><p>scalable azure serverless solutions with ease. New Delhi: BPB Publications. 2020.</p><p>MOLL, V. Como construir uma aplicação com Docker? Geekhunter, [s. l.], 22 nov. 2019. Disponível</p><p>em: https://blog.geekhunter.com.br/docker-na-pratica-como-construir-uma-aplicacao/#Va-</p><p>mos_criar_uma_aplicacao. Acesso em: 22 mar. 2024.</p><p>OVERVIEW best practices for writing Dockerfiles. Docker Docs, [s. l.], c2020. Disponível em: ht-</p><p>tps://docs.docker.com/develop/develop-images/Dockerfile_best-practices/#Dockerfile-ins-</p><p>tructions. Acesso em: 22 mar. 2024.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>YEGULALP, S. Por que apostar em docker e containers? itforum, [s. l.], 12 out. 2018. Disponível</p><p>em: https://itforum.com.br/noticias/por-que-apostar-em-docker-e-containers/. Acesso em: 22</p><p>mar. 2024.</p><p>1</p><p>1</p><p>1</p><p>1. Alternativa C.</p><p>A escolha do contêiner pelos analistas é porque o Docker cria uma imagem das configurações</p><p>e dependências necessárias. Assim, é possível realizar transferência para outro computador.</p><p>Uma vez que sua aplicação seja transformada em uma imagem Docker, ela pode ser instan-</p><p>ciada como contêiner em qualquer ambiente que desejar.</p><p>2. Alternativa B.</p><p>Para criar um contêiner, é preciso executar o comando docker run imagem (imagem que</p><p>queremos que ele utilize), já que run executa um comando em um novo contêiner.</p><p>3. Alternativa B.</p><p>Os contêineres isolam as aplicações de forma virtualizada, à nível de sistema operacional.</p><p>Essa virtualização pode executar múltiplas aplicações em um mesmo sistema operacional,</p><p>definindo as dependências e bibliotecas para essas aplicações.</p><p>GABARITO</p><p>1</p><p>1</p><p>4</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>1</p><p>5</p><p>MINHAS METAS</p><p>CONTÊINER COMO SERVIÇO (CAAS)</p><p>Compreender os conceitos de contêiner.</p><p>Conhecer os casos de aplicações de softwares em contêineres.</p><p>Compreender o funcionamento do CaaS.</p><p>Conhecer as desvantagens dos contêineres.</p><p>Apresentar as plataformas de CaaS.</p><p>Entender o objetivo da abordagem orientada a serviços no fornecimento de recursos de</p><p>software.</p><p>Compreender a diferença entre o PaaS e o CaaS.</p><p>T E M A D E A P R E N D I Z A G E M 5</p><p>1</p><p>1</p><p>1</p><p>INICIE SUA JORNADA</p><p>Estudante, vamos começar nossa jornada desvendando o intrigante mundo do</p><p>CaaS, ou Container as a Service. Imagine-se na posição de um jovem desen-</p><p>volvedor nos dias atuais, quando a agilidade e eficiência na criação, organização,</p><p>execução e escalabilidade de contêineres são cruciais.</p><p>Ao refletirmos sobre a evolução tecnológica, surge a problemática de como</p><p>os desenvolvedores lidavam anteriormente com a implantação manual, gerencia-</p><p>mento e monitoramento da infraestrutura onde os contêineres operavam? Isso</p><p>não apenas demandava tempo, mas também envolvia custos significativos ao</p><p>configurar servidores dedicados, mas, como superar esse desafio e proporcionar</p><p>uma entrega mais profissional de sistemas sem custos excessivos?</p><p>É aqui que entra o CaaS, um facilitador revo-</p><p>lucionário. Esse serviço em nuvem automatiza a</p><p>hospedagem e a implantação de software em contêi-</p><p>neres, oferecendo uma solução eficaz para evitar os</p><p>custos e a complexidade associados à configuração</p><p>de servidores dedicados não gerenciados. Trata-se de uma mudança signifi-</p><p>cativa na forma como os desenvolvedores encaram a infraestrutura básica.</p><p>Ao adotar o CaaS, as equipes de desenvolvimento são liberadas das preo-</p><p>cupações com a gestão da infraestrutura, permitindo que pensem em níveis</p><p>mais elevados. Isso se traduz em maior clareza em relação ao produto final, fa-</p><p>vorecendo um desenvolvimento ágil e com maior valor entregue ao cliente. A</p><p>utilização da virtualização por meio de máquinas virtuais (VMs) é fundamental,</p><p>uma ferramenta essencial compreendida por profissionais de Cloud Computing.</p><p>Refletindo sobre essa transformação, percebemos que os contêineres não ape-</p><p>nas virtualizam aplicativos, mas encapsulam todos os elementos necessários para</p><p>sua execução. Esse método eficiente permite o empacotamento de código-fonte,</p><p>configurações e dependências, proporcionando a criação de aplicações e serviços</p><p>escaláveis com todos os benefícios da computação em nuvem. Diante desse cenário,</p><p>como essa mudança impacta não apenas a forma como desenvolvemos software,</p><p>mas também nossa perspectiva acerca da computação em nuvem? Nossa jornada</p><p>apenas começou, e essas reflexões são um convite para explorar as complexidades</p><p>e inovações que o CaaS traz ao universo da tecnologia. Preparem-se para nos apro-</p><p>fundarmos ainda mais nesse fascinante tema!</p><p>Oferecendo uma</p><p>solução eficaz para</p><p>evitar os custos e a</p><p>complexidade</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 5</p><p>DESENVOLVA SEU POTENCIAL</p><p>Um contêiner é um software empacotado com as dependências de código, tempo</p><p>de execução, configuração e bibliotecas do sistema para que possa ser executa-</p><p>do em qualquer ferramenta de hospedagem. O CaaS permite que as equipes de</p><p>software implantem e escalonem rapidamente aplicativos em contêineres para</p><p>infraestruturas de nuvem de alta disponibilidade (BUCHANAN, 2024).</p><p>CONCEITOS DE CONTÊINER</p><p>Os CaaS se diferem dos PaaS (Platform as a Service), pois dependem do</p><p>uso de contêineres, no entanto, o PaaS se preocupa com implantações da</p><p>linguagem</p><p>de programação explícita, como JAVA ou C#, enquanto os CaaS</p><p>podem implantar várias pilhas por contêiner, sendo independente de amar-</p><p>rações técnicas (BUCHANAN, 2024).</p><p>Vejamos, na Figura 1, as camadas que cada tipo de serviço oferece e a dife-</p><p>rença entre cada uma delas.</p><p>Para conhecer mais a respeito de contêineres, é necessário compreender um con-</p><p>ceito referente à virtualização de servidores. Confira nosso podcast. Recursos de</p><p>mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>VAMOS RECORDAR?</p><p>Agora, vamos recordar o CaaS, para isso, leia o artigo O que são Contêineres?</p><p>1</p><p>1</p><p>8</p><p>IaaS CaaS PaaS</p><p>Networking</p><p>Storage</p><p>Servers</p><p>Virtualization</p><p>O/S</p><p>Containers</p><p>Runtime</p><p>Data</p><p>Applications</p><p>C</p><p>U</p><p>S</p><p>TO</p><p>M C</p><p>U</p><p>S</p><p>TO</p><p>M</p><p>C</p><p>U</p><p>S</p><p>TO</p><p>M</p><p>A</p><p>S</p><p>A</p><p>S</p><p>E</p><p>R</p><p>V</p><p>IC</p><p>E</p><p>A</p><p>S</p><p>A</p><p>S</p><p>E</p><p>R</p><p>V</p><p>IC</p><p>E</p><p>A</p><p>S</p><p>A</p><p>S</p><p>E</p><p>R</p><p>V</p><p>IC</p><p>E</p><p>Applications</p><p>Data</p><p>Runtime</p><p>Data</p><p>Applications</p><p>Networking Networking</p><p>Storage Storage</p><p>Servers Servers</p><p>Virtualization Virtualization</p><p>O/S</p><p>Containers</p><p>O/S</p><p>Containers</p><p>Runtime</p><p>Figura 1 – Camadas por tipo de serviços</p><p>Fonte: https://thecustomizewindows.com/wp-content/uploads/2018/04/PaaS-Versus-Container-Docker-</p><p>-CaaS.png. Acesso em: 22 mar. 2024.</p><p>Descrição da Imagem: a imagem apresenta um diagrama com três colunas. Cada coluna representa um modelo</p><p>de nuvem, da esquerda para a direita IaaS, CaaS e PaaS. Em todos os modelos há recursos, que são, de baixo</p><p>para cima: networking, storage, servers, virtualization, O/S, contêineres, runtime, data e applications. No IaaS</p><p>é considerado como serviço os recursos networking, storage, servers, virtualization, os demais recursos são</p><p>customizados. No CaaS é considerado como serviço os recursos networking, storage, servers, virtualization, O/S,</p><p>contêineres. No PaaS é considerado como serviço os recursos networking, storage, servers, virtualization, O/S,</p><p>contêineres, runtime. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>https://thecustomizewindows.com/wp-content/uploads/2018/04/PaaS-Versus-Container-Docker-CaaS.png</p><p>https://thecustomizewindows.com/wp-content/uploads/2018/04/PaaS-Versus-Container-Docker-CaaS.png</p><p>TEMA DE APRENDIZAGEM 5</p><p>NÍVEL DE PILHA DE CÓDIGO</p><p>Preocupam-se com infraestrutura de nível de pilha de código. Ao usar um PaaS, um pro-</p><p>jeto não tem controle do sistema operacional em que está rodando (BUCHANAN, 2024).</p><p>DEPENDE DO AMBIENTE LOCAL</p><p>O PaaS ainda sofre do problema de depender do ambiente local de cada máquina.</p><p>Pode haver pequenas diferenças entre o ambiente de desenvolvimento e o ambiente</p><p>de produção de um sistema PaaS.</p><p>AMBIENTES AUTOMATIZADOS</p><p>Oferecem ambientes hospedados automatizados que se concentram em dependên-</p><p>cias de infraestrutura de aplicativos de nível superior, como tempos de execução de</p><p>linguagem e bancos de dados (BUCHANAN, 2024).</p><p>ABORDAGEM ORIENTADA A SERVIÇOS</p><p>Fornece recursos de software ajudando os usuários a se concentrarem completamente</p><p>nas funcionalidades do sistema. Um desenvolvedor que usa PaaS para testar softwares,</p><p>por exemplo, só precisa carregar seu próprio código na nuvem. Todos os requisitos</p><p>técnicos para o processo de construção, bem como o gerenciamento e implantação do</p><p>aplicativo, são fornecidos pelo provedor da plataforma PaaS (CONTAINER..., 2023).</p><p>Com relação ao PaaS, é um serviço de hospedagem em nuvem que se concentra</p><p>na implantação de código com possibilidade de configuração a nível de codifica-</p><p>ção do software (Runtime). O CaaS se utiliza dos contêineres para encapsular os</p><p>microsserviços. Já o modelo IaaS se utiliza da virtualização de servidores, arma-</p><p>zenamento em rede. Vejamos algumas características do modelo PaaS:</p><p>1</p><p>1</p><p>1</p><p>Para seguir o modelo clássico de computação em nuvem, o CaaS pode ser colo-</p><p>cado entre IaaS e PaaS, no entanto, desses modelos de serviço, o CaaS se distingue</p><p>por uma abordagem fundamentalmente diferente da virtualização, que é o uso</p><p>da tecnologia de contêiner (CONTAINER..., 2023).</p><p>Vejamos, a seguir, algumas características do modelo CaaS:</p><p>CONTÊINER À NÍVEL DE SISTEMA OPERACIONAL</p><p>Os tempos de execução do contêiner oferecem configuração e virtualização do</p><p>sistema operacional, permitindo personalização e controles muito mais avançados.</p><p>Os contêineres podem ser essenciais para o desenvolvimento de software altamente</p><p>personalizado e especializado (BUCHANAN, 2024).</p><p>MICROSSERVIÇOS COM SEU PRÓPRIO SISTEMA OPERACIONAL</p><p>Os CaaS tendem a serem mais adequados para microsserviços, pois cada contêiner</p><p>implantado no CaaS pode ter seu próprio sistema operacional encapsulado e pilha</p><p>de idiomas.</p><p>GERENCIAMENTO DE DIFERENTES RESPONSABILIDADES</p><p>Os contêineres tornam muito mais fácil o desenvolvimento de sistemas distribuídos</p><p>ou arquiteturas de microsserviços. Durante o desenvolvimento, um conjunto de con-</p><p>têineres pode gerenciar diferentes responsabilidades ou diferentes ecossistemas de</p><p>linguagem de código.</p><p>IMPLEMENTAÇÃO RÁPIDA</p><p>A promessa do CaaS é que essas arquiteturas de contêiner definidas e comprometidas</p><p>podem ser implementadas rapidamente para hospedagem em nuvem (BUCHANAN, 2024).</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 5</p><p>O Container as a Service fornece aos usuários uma plataforma de programação</p><p>relativamente livre, na qual aplicativos encapsulados em contêineres podem ser</p><p>escalados em infraestruturas de TI heterogêneas, independentemente de seus</p><p>requisitos técnicos (CONTAINER..., 2023).</p><p>CASOS DE APLICAÇÕES</p><p>Vamos imaginar um software organizado</p><p>em uma arquitetura de microsserviços, em</p><p>que o sistema de serviços é estruturado</p><p>pela propriedade do domínio de negócios.</p><p>Os domínios dos serviços podem ser os</p><p>de pagamentos, autenticação e carrinho de</p><p>compras. Cada um desses serviços possui</p><p>sua própria base de código e são armaze-</p><p>nados em contêineres. Usando CaaS, esses</p><p>contêineres de serviço podem ser implan-</p><p>tados instantaneamente em um sistema</p><p>sem requerer configurações específicas</p><p>(BUCHANAN, 2024).</p><p>O CaaS também fornece aos usuários o gerenciamento completo do ciclo de vida do</p><p>software. Ao contrário de IaaS e PaaS, o fornecimento de recursos virtualizados não</p><p>se baseia na virtualização de máquinas separadas com seu próprio sistema opera-</p><p>cional. Em vez disso, as funções nativas dos kernels Linux são usadas, o que permi-</p><p>te o isolamento de processos individuais dentro do mesmo sistema operacional. A</p><p>tecnologia de contêiner cria um nível abstrato, que encapsula aplicativos, incluindo o</p><p>sistema de arquivos, do sistema subjacente, permitindo, assim, a operação em qual-</p><p>quer plataforma que suporte a tecnologia de contêiner (CONTAINER..., 2023).</p><p>APROFUNDANDO</p><p>1</p><p>1</p><p>1</p><p>Figura 2 – Monitoramento mediante implantação de software por contêineres</p><p>Fonte: https://br.freepik.com/fotos-gratis/caixa-de-conteineres-industriais-para-negocios-logisticos-de-</p><p>-importacao-e-exportacao_13180840.htm#&position=0&from_view=search&track=ais&uuid=dc1a4cf-</p><p>d-e39f-4e6f-bcec-b9f9a0e30111. Acesso em: 22 mar. 2024.</p><p>A implantação de softwares em contêineres permite a transparência no desempe-</p><p>nho de um sistema por meio de ferramentas como agregação de log e monitora-</p><p>mento, como ilustra a Figura 2. O CaaS também inclui funcionalidade integrada</p><p>para escalonamento automático e gerenciamento de orquestração.</p><p>Ele permite que as equipes criem rapidamente sistemas distribuídos de alta</p><p>disponibilidade. Além disso, o CaaS aumenta a velocidade de desenvolvimento</p><p>da equipe, permitindo implementações rápidas. O uso de contêineres garante</p><p>um objetivo de implantação consistente, enquanto o CaaS pode reduzir os cus-</p><p>tos operacionais de engenharia, reduzindo os recursos DevOps necessários para</p><p>gerenciar uma implantação (BUCHANAN, 2024).</p><p>Descrição da Imagem: a imagem apresenta um notebook com um dashboard incluindo gráficos de diversos. O</p><p>notebook está sobre uma mesa, com gráficos impressos. Também, sobre a mesa, há alguns copos plásticos e uma</p><p>garrafa d’água. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 5</p><p>FUNCIONAMENTO</p><p>O Container as a Service é um grupo de computadores que está</p><p>disponível por</p><p>meio da nuvem e é usado por usuários para fazer upload, criar, gerenciar central-</p><p>mente e executar aplicativos baseados em contêiner na plataforma de nuvem. A</p><p>seguir, vejamos suas principais características de funcionamento:</p><p>Funciona por meio de interfaceamento</p><p>gráfico ou API</p><p>A interação com o ambiente de contêiner</p><p>baseado em nuvem ocorre por meio da</p><p>interface gráfica com o usuário (GUI)</p><p>ou na forma de chamadas de API. O</p><p>provedor determina quais tecnologias de</p><p>contêiner estão disponíveis para os usuários</p><p>(CONTAINER..., 2023).</p><p>Funciona como orquestrador</p><p>O núcleo de cada plataforma CaaS é uma</p><p>ferramenta de orquestração, também</p><p>conhecida como orquestrador, que permite o</p><p>gerenciamento de arquiteturas de contêiner</p><p>complexas (CONTAINER..., 2023). Os aplicativos</p><p>de contêiner usados em ambientes produtivos</p><p>geralmente consistem em um cluster de</p><p>vários contêineres distribuídos em diferentes</p><p>sistemas físicos e virtuais, isso é conhecido</p><p>como um sistema de vários contêineres. Usar</p><p>ferramentas de orquestração é uma boa</p><p>opção, pois organizam a interação entre os</p><p>contêineres executados e permitem funções</p><p>de operação automatizada.</p><p>1</p><p>1</p><p>4</p><p>Vimos que os contêineres são realizados por meio do interfaceamento gráfico</p><p>ou por chamadas por API, funcionam como orquestradores que organizam a</p><p>interação entre os contêineres, sendo o Docker Swarm um dos principais or-</p><p>questradores. Vejamos, agora, as desvantagens que podem ser consideradas com</p><p>o uso dos contêineres.</p><p>DESVANTAGENS</p><p>Os contêineres podem parecer a resposta perfeita para todos os problemas, po-</p><p>rém, como a nuvem, os contêineres vêm com alguns aspectos negativos. Não</p><p>são considerados uma tecnologia nova, mas só recentemente eles se tornaram</p><p>populares. Poucos desenvolvedores, segundo Tozzi (2016), aprenderam a usar</p><p>contêineres em cursos ou afins, e as certificações de contêiner ainda são raras.</p><p>Ferramentas e plataformas de orquestração</p><p>O mercado de virtualização baseado em</p><p>contêiner é atualmente dominado por</p><p>três ferramentas de orquestração: Docker</p><p>Swarm, Kubernetes e Mesosphere DC/OS</p><p>(CONTAINER..., 2023). O Docker Swarm é uma</p><p>ferramenta de gerenciamento e orquestração</p><p>de cluster de código aberto projetada por</p><p>Docker como uma ferramenta nativa para</p><p>gerenciar clusters Docker e operações de</p><p>contêiner. O Kubernetes é uma ferramenta</p><p>de código aberto para provisionamento,</p><p>dimensionamento e administração</p><p>automatizados de aplicativos de contêiner</p><p>em infraestruturas de TI distribuídas.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 5</p><p>DEVE HAVER EQUIPES TREINADAS EM CONTÊINERES</p><p>Nem todas as equipes estão preparadas para implantar e gerenciar infraestrutura em</p><p>contêineres. Se não estiver preparado, é interessante pensar em ignorar os contêineres</p><p>até que tenha profissionais que estejam prontos para eles, mas uma solução de CaaS</p><p>pode terceirizar a maior parte do gerenciamento e facilitar a sua implantação.</p><p>PARA ALTA CONFORMIDADE DE SEGURANÇA NÃO É ACONSELHADO</p><p>A necessidade de segurança fez com que os contêineres ficassem mais seguros do que</p><p>costumavam ser. Se existem necessidades muito altas de conformidade de segurança</p><p>ou privacidade de dados, os contêineres provavelmente ainda não são uma boa ideia.</p><p>REDE E ARMAZENAMENTO PERSISTENTE MAIS COMPLEXOS EM CONTÊINERES</p><p>Quando existe a necessidade da virtualização tradicional, poder pegar um aplicativo e</p><p>colocá-lo em um contêiner é legal e torna as implantações portáteis e escalonáveis,</p><p>entretanto, simplesmente não há substituto para o VMware. Rede e armazenamento</p><p>persistentes são mais complicados em contêineres do que em máquinas virtuais com-</p><p>pletas, por exemplo).</p><p>PLATAFORMAS DE CAAS</p><p>Um serviço de contêiner é fornecido por um provedor de computação em</p><p>nuvem e permite que os usuários desenvolvam, testem, executem ou distribuam</p><p>software nos chamados contêineres de aplicativos em infraestruturas de TI. Os</p><p>contêineres de software são um conceito da região do Linux. A tecnologia per-</p><p>mite a virtualização no nível do sistema operacional. Sistemas de informação</p><p>individuais, incluindo todas as dependências, como bibliotecas, arquivos de</p><p>configuração, dentre outros, são executados como instâncias encapsuladas. Isso</p><p>permite a operação paralela de vários aplicativos com requisitos diferentes no</p><p>mesmo sistema operacional, bem como a implantação em sistemas diferentes</p><p>(CONTAINER..., 2023).</p><p>1</p><p>1</p><p>1</p><p>A tecnologia de contêineres está crescendo, tornando a variedade de serviços</p><p>CaaS correspondentes grande. Os serviços de virtualização no nível do siste-</p><p>ma operacional são encontrados em quase todos os portfólios de provedores</p><p>de nuvem pública.</p><p>Amazon, Microsoft e Google – que estão atualmente entre os jogadores</p><p>mais influentes no mercado de CaaS – expandiram suas plataformas em nu-</p><p>vem com uma solução de contêiner baseada em Docker nos últimos dois anos</p><p>(CONTAINER..., 2023).</p><p>Ao escolher um serviço CaaS para uso na empresa, os usuários devem levar</p><p>em consideração as seguintes questões:</p><p>■ Quais ferramentas de orquestração estão disponíveis?</p><p>■ Quais formatos de arquivo os aplicativos de contêiner suportam?</p><p>■ É possível operar aplicativos com vários contêineres?</p><p>■ Como os clusters são gerenciados ao operar um contêiner?</p><p>■ Quais redes e funções de armazenamento são suportadas?</p><p>■ O provedor emite um registro privado para imagens de contêiner?</p><p>■ O ambiente de tempo de execução do contêiner está bem integrado a</p><p>outros serviços em nuvem?</p><p>■ Quais modelos de faturamento estão disponíveis?</p><p>Amazon EC1 Container Service (ECS)</p><p>O principal provedor de computação em nuvem que entrega sua ferra-</p><p>menta de função como serviço, já consolidada e muito utilizada por grandes</p><p>corporações. Desde abril de 2015, a Amazon fornece soluções para virtua-</p><p>lização baseada em contêiner sob o nome Amazon EC2 Container Service,</p><p>como parte do framework da plataforma de computação em nuvem AWS</p><p>(Amazon Web Service).</p><p>O Amazon ECS fornece aos usuários várias interfaces que permitem aplica-</p><p>tivos isolados no Amazon Elastic Compute Cloud (EC2) em contêineres Docker.</p><p>O serviço CaaS é tecnicamente baseado nos recursos de nuvem a seguir (CON-</p><p>TAINER..., 2023), como ilustra a Figura 3.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 5</p><p>AMAZON EC2 (AMAZON ELASTIC COMPUTE CLOUD)</p><p>É a capacidade de computação escalonável do serviço de computação em nuvem da</p><p>Amazon, que é alugado na forma das chamadas “instâncias”.</p><p>AMAZON S3 (AMAZON SIMPLE STORAGE)</p><p>É uma plataforma de armazenamento de objetos baseada em nuvem.</p><p>AMAZON EBS (AMAZON ELASTIC BLOCK STORE)</p><p>Fornece volumes de armazenamento em bloco de alta disponibilidade para instâncias EC2.</p><p>AMAZON RDS (AMAZON RELATIONAL DATABASE SERVICE)</p><p>É um serviço de banco de dados para gerenciar os mecanismos de banco de dados</p><p>relacional Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle e Microsoft SQL</p><p>Server.</p><p>O gerenciamento de contêineres é feito pelo ECS por padrão, usando um orques-</p><p>trador proprietário, que atua como mestre e se comunica com um agente em</p><p>cada nó do cluster que precisa ser gerenciado. Como alternativa, um módulo de</p><p>código aberto é oferecido com o Blox, o que torna possível conectar “agendado-</p><p>res” desenvolvidos por eles mesmos, bem como ferramentas de terceiros como o</p><p>Mesos no ECS (CONTAINER..., 2023).</p><p>Vamos ver como é o passo a passo para implantação de contêineres na Ama-</p><p>zon utilizando apenas a camada gratuita dos serviços do provedor, como, por</p><p>exemplo, o Amazon Web Services, ilustrado na Figura 3.</p><p>1</p><p>1</p><p>8</p><p>Crie uma conta gratuita</p><p>Para isso, é só acessar a página de login da AWS e clicar em “Criar uma nova conta</p><p>do AWS” e responder aos formulários.</p><p>Configuração do Amazon ECS</p><p>O assistente de primeira execução do Amazon ECS orientará durante a criação de</p><p>um cluster e a execução de um sistema web de exemplo. Nesta etapa, é só acessar</p><p>o console do Amazon ECS e executar o assistente. Após ter criado o Amazon</p><p>Figura 3 – Camadas por tipo de serviços</p><p>Fonte: https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.</p><p>com%2Fecs%2Fhome%3Fstate%3DhashArgs%2523%252FfirstRun%26isauthcode%3Dtrue&client_</p><p>id=arn%3Aaws%3Aiam%3A%3A015428540659%3Auser%2Fecs&forceMobileApp=0&code_chal-</p><p>lenge=w6slAFwR6xKcsxCFWhWIf9vBpbxXz3LjBmD5C86OU-U&code_challenge_method=SHA-256.</p><p>Acesso em: 22 mar. 2024.</p><p>Descrição da Imagem: a imagem apresenta à página de entrada do site da Amazon Web Services, com a opção</p><p>usuário root de acesso irrestrito e usuário IAM com acesso para rotinas diárias. A página solicita o endereço de</p><p>e-mail do usuário root ou do usuário do IAM. Se não existir uma conta é possível selecionar o botão mais abaixo</p><p>da página para criar uma conta. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 5</p><p>ECS, você pode usar o Amazon Elastic Container Registry (Amazon ECR), con-</p><p>seguindo criar um repositório de imagens e enviar uma imagem para ele como</p><p>parte do assistente de primeira execução.</p><p>Criação de uma definição de tarefa</p><p>É uma espécie de esquema do seu aplicativo. Será especificada uma definição de ta-</p><p>refa para que o Amazon ECS saiba qual imagem de Docker usar para os contêineres,</p><p>quantos contêineres usar na tarefa e a alocação de recursos para cada contêiner. A de-</p><p>finição de tarefa vem pré-carregada com valores de configuração padrão. Revise os</p><p>valores padrão e selecione o comando para a próxima etapa. Se preferir modificar as</p><p>configurações ou quiser saber mais, consulte os parâmetros de definição de tarefas.</p><p>Configuração do serviço</p><p>Configure o serviço do Amazon ECS. Um serviço executa e mantém cópias da</p><p>definição de tarefa no cluster. Por exemplo, ao executar um aplicativo como um</p><p>serviço, o Amazon ECS recuperará automaticamente qualquer tarefa interrom-</p><p>pida e manterá o número de cópias que for especificada. Após isso, configure as</p><p>opções de serviço. Primeiro o nome do serviço, que é o valor padrão sample-we-</p><p>bapp, um aplicativo de exemplo com base na web disponibilizado pela AWS. Ele</p><p>foi projetado para ser executado indefinidamente, portanto, quando executado</p><p>como um serviço, ele será reinicializado caso a tarefa apresente problemas de</p><p>integridade ou caso seja interrompida inesperadamente. O número desejado de</p><p>tarefas, para permanecer no nível gratuito da AWS, mantenha o valor padrão 1.</p><p>Isso criará uma cópia da sua tarefa.</p><p>Configuração do Elastic Load Balancing</p><p>O Amazon ECS pode criar um load balancer do Elastic Load Balancing (ELB)</p><p>para distribuir o tráfego entre as instâncias de contêiner onde sua tarefa está</p><p>sendo executada. No nome do contêiner e porta do host selecione Simpleapp:80.</p><p>Os valores padrão de ELB listener protocol (protocolo do listener do ELB), ELB</p><p>listener port (porta do listener do ELB) e de ELB health check (verificação de</p><p>saúde do ELB) são configurados para o sistema de exemplo.</p><p>1</p><p>1</p><p>1</p><p>Criação de uma função do Identity and Access Management (IAM)</p><p>Antes de poder anexar um load balancer a um Amazon ECS Service, é necessário</p><p>criar uma função do Identity and Access Management (IAM) a ser usada pelos</p><p>serviços. Isso permitirá que o Amazon ECS faça chamadas para as APIs do Amazon</p><p>EC2 e do Elastic Load Balancing para registrar e cancelar o registro de instâncias</p><p>nos load balancers. Depois de tudo configurado, selecione a próxima etapa.</p><p>Configuração do cluster</p><p>As definições de configuração para um sistema web de exemplo devem seguir</p><p>com o nome do cluster sendo sample-cluster, o tipo de instância do EC2 será pa-</p><p>drão t2.micro para ficar no nível gratuito. Os tipos de instância com mais recursos</p><p>de CPU e memória podem realizar mais tarefas. O número de instâncias fica com</p><p>o valor padrão 1 para executar uma instância do Amazon EC2 no cluster, no qual</p><p>as tarefas serão inseridas. Será necessário usar um par de chaves para utilizar o</p><p>SSH nas instâncias mais tarde, podendo manter a seleção padrão de nenhuma –</p><p>não habilitado para SSH, selecionar um par de chaves existente ou criar um par</p><p>no console do Amazon EC2. No security group, deixar o valor padrão. Selecione</p><p>o seu container instance IAM role. Depois disso, é só revisar e executar.</p><p>Iniciando o Amazon ECS</p><p>Para abrir o sistema de exemplo, é só ir até a página do aplicativo web de exemplo</p><p>(sample-webapp), clicar no nome do Load Balancer e copiar o DNS ou o endereço</p><p>do Load Balancer e colar na URL do navegador. Pronto, depois disso seu ECS</p><p>está rodando. Na Amazon, é sempre aconselhável estar atento aos recursos que</p><p>estão sendo escolhidos e excluir os recursos criados para não gerar nenhuma</p><p>cobrança indesejada.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 5</p><p>Google Contêiner Engine (GKE)</p><p>O Google oferece uma série de funcionalidades de computação em nuvem e ofe-</p><p>rece também o serviço de CaaS. O Google também integrou um serviço de con-</p><p>têiner hospedado com o Google Container Engine (GKE) na nuvem. O principal</p><p>componente do serviço CaaS são as ferramentas de orquestração Kubernetes.</p><p>Figura 4 – Google Container Engine (GKE)</p><p>Fonte: https://cloud.google.com/kubernetes-engine?hl=pt-br. Acesso em: 22 mar. 2024.</p><p>Descrição da Imagem: a imagem apresenta o site da computação em nuvem do Google e apresenta uma possibilida-</p><p>de de realizar uma avaliação do serviço de orquestração Kubernetes a partir de um botão de acesso. Fim da descrição.</p><p>O GKE depende dos recursos do Google Compute Engine (GCE) e permite que</p><p>os usuários executem aplicativos baseados em contêiner em clusters do Google</p><p>Cloud Platform (GCP), no entanto, os usuários que têm GKE não estão limitados</p><p>apenas à infraestrutura do Google Cloud: o sistema de federação de cluster do</p><p>Kubernetes possibilita combinar diferentes recursos de cluster de computador</p><p>em uma federação de computação lógica e, se necessário, criar ambientes híbridos</p><p>de várias nuvens (CONTAINER..., 2023).</p><p>Serviço de contêiner do Azure (ACS)</p><p>A Microsoft possui, na plataforma Azure, um serviço de contêineres. O Azure Con-</p><p>tainer Service (ACS) é um ambiente de hospedagem preparado para a plataforma de</p><p>computação em nuvem da Microsoft Azure, que permite aos usuários desenvolver apli-</p><p>cativos baseados em contêiner e implantá-los em clusters de computador escalonáveis.</p><p>1</p><p>1</p><p>1</p><p>https://cloud.google.com/kubernetes-engine?hl=pt-br</p><p>O principal componente do serviço CaaS da Microsoft é o Azure Contêiner</p><p>Engine, cujo código-fonte está disponível sob a licença de código aberto no GitHub.</p><p>O Azure Container Engine atua como um gerador de modelos que cria modelos</p><p>para o Azure Resource Manager (ARM). Eles podem ser gerenciados usando uma</p><p>API com uma das seguintes ferramentas de orquestração: Docker Swarm, DC / OS</p><p>e Kubernetes (CONTAINER..., 2023).</p><p>A escolha do orquestrador depende principalmente dos recursos disponíveis</p><p>para usuários ACS ao operar aplicativos de contenção na nuvem do Azure. A</p><p>Microsoft Azure possui muitos recursos que podem agilizar o desenvolvimento</p><p>de CaaS para o seu sistema de informação.</p><p>Figura 5 – Site Microsoft Azure container services</p><p>Fonte: https://azure.microsoft.com/pt-br/products/category/containers/. Acesso em: 22 mar. 2024.</p><p>Descrição da Imagem: a imagem apresenta o site da Azure Microsoft. Na página há o seguinte texto:</p><p>Serviços de Contêiner. Acelere o desenvolvimento de aplicativos em contêineres sem comprometer a segu-</p><p>rança. Tem-se logo abaixo o texto: Economize custos migrando seus aplicativos existentes com o método</p><p>lift-and-shift para contêineres e crie aplicativos de microsserviços para oferecer um valor maior aos usuários</p><p>com mais rapidez. Use ferramentas de ponta a ponta para desenvolvedores e de CI/CD para desenvolver,</p><p>atualizar e implantar aplicativos em contêineres. Gerencie contêineres em escala com um serviço de ge-</p><p>renciamento e orquestração de contêineres do Kubernetes totalmente gerenciado que se integra ao Azure</p><p>Active Directory. Qualquer que seja o estágio em que você se encontrar em seu percurso de modernização</p><p>de aplicativo, acelere o desenvolvimento de aplicativos em contêineres atendendo simultaneamente aos</p><p>seus requisitos de segurança. Na sequência, aparece o texto: Encontre o serviço do Azure para suas</p><p>neces-</p><p>sidades de contêiner. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 5</p><p>NOVOS DESAFIOS</p><p>Um dos novos desafios para os profissionais de desenvolvimento de aplicações com</p><p>contêineres na nuvem está nas metodologias e boas práticas de desenvolvimento</p><p>desse tipo de microsserviços. Dessa forma, a importância do estudo das metodo-</p><p>logias de desenvolvimento de software e das técnicas de otimização, simplificação</p><p>e padronização, no campo da engenharia de software, é imprescindível para que as</p><p>organizações obtenham mais eficiência e qualidade em seus sistemas de informa-</p><p>ções e, consequentemente, nos resultados dos seus processos funcionais.</p><p>Assim para desenvolver softwares de forma mais rápida, otimizada e com</p><p>qualidade, é necessário compreender como funcionam os processos de desen-</p><p>volvimento, suas metodologias (tradicionais e ágeis) e como utilizá-las ou até</p><p>mesmo como combiná-las por meio das técnicas de refatoração de código e pa-</p><p>dronização de projetos.</p><p>Essas metodologias cadenciam os processos do ciclo de vida de desenvol-</p><p>vimento, regendo os recursos, regras e padrões, direcionando os requisitos ne-</p><p>cessários para a implementação e, assim, descomplicando a tarefa de produzir</p><p>o software. Estamos em uma época na qual desenvolver sistemas não é mais</p><p>sinônimo de complexidade e alto custo, já que as metodologias ágeis e sua com-</p><p>binação com as boas práticas de gerenciamento de projetos, se bem utilizadas</p><p>e compreendidas, promovem, em qualquer tipo de ambiente, uma elevação de</p><p>produtividade no desenvolvimento.</p><p>Estudante, para nos aprofundarmos mais em contêineres como suporte ao de-</p><p>senvolvimento e suas principais práticas, assista ao vídeo Desenvolvimento com</p><p>Contêineres na Nuvem. Recursos de mídia disponíveis no conteúdo digital do</p><p>ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>1</p><p>1</p><p>4</p><p>1. Para organizar os diferentes tipos de serviço disponibilizados na nuvem, foram estabeleci-</p><p>das algumas categorias de serviços como o SaaS, IaaS, PaaS, CaaS, dentre outros.</p><p>Qual dos itens a seguir é um exemplo de CaaS?</p><p>a) Google Docs.</p><p>b) Amazon ECS.</p><p>c) Amazon Beanstalk.</p><p>d) Google App Engine.</p><p>e) Google Drive.</p><p>2. O PaaS provê plataformas para desenvolver aplicações sem que seja preciso instalar qual-</p><p>quer ferramenta de desenvolvimento e bibliotecas. Assim, conseguem dispor de desen-</p><p>volvedores relacionados a plataformas, incluindo ambientação, compreendendo o ciclo de</p><p>desenvolvimento, teste e implementação, e até mesmo hospedagem de aplicações web</p><p>como um serviço entregue por uma base em nuvem.</p><p>Diante do excerto apresentado, analise as afirmativas a seguir:</p><p>I - Os CaaS se diferem dos PaaS, pois dependem do uso de contêineres.</p><p>II - O CaaS é um serviço de hospedagem em nuvem que se concentra na implantação de</p><p>código.</p><p>III - O IaaS trabalha com os serviços de virtualização de servidores, armazenamento e rede</p><p>de computadores.</p><p>É correto o que se afirma em:</p><p>a) I, apenas.</p><p>b) III, apenas.</p><p>c) I e II, apenas.</p><p>d) II e III, apenas.</p><p>e) I e III, apenas.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>5</p><p>3. O Amazon Elastic Container Service (Amazon ECS) é um serviço gerenciado de orquestra-</p><p>ção de contêineres na nuvem da Amazon Web Services (AWS).</p><p>Assinale a alternativa que apresenta o nome da ferramenta que precisamos utilizar junta-</p><p>mente ao ECS no serviço da AWS.</p><p>a) Elastic Compute Cloud.</p><p>b) Elastic Load Balancing.</p><p>c) Simple Storage Service.</p><p>d) Elastic Beanstalk.</p><p>e) Azure Container Service.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>1</p><p>REFERÊNCIAS</p><p>BUCHANAN, I. What is containers as a service? Atlassian, Sidney, c2024. Disponível em: https://</p><p>www.atlassian.com/microservices/cloud-computing/containers-as-a-service#:~:text=Contai-</p><p>ners%20as%20a%20Service%20(%20CaaS,by%20using%20container%2Dbased%20virtualization.</p><p>Acesso em: 22 mar. 2024.</p><p>CONTAINER-as-a-service (CaaS). Ionos Digital Guide, Philadelphia, 20 fev. 2023. Disponível em:</p><p>https://www.ionos.com/digitalguide/server/know-how/caas-container-as-a-service-service-</p><p>-comparison/. Acesso em: 22 mar. 2024.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>SILVA, F. R.; SOARES, J. A.; SERPA, M. da S. et al. Cloud computing. Porto Alegre: SAGAH, 2020.</p><p>TOZZI, C. Container drawbacks: when not to use Docker. Cloud Native Now, Boca Raton, 30 jun.</p><p>2016. Disponível em: https://containerjournal.com/uncategorized/container-drawbacks-not-u-</p><p>se-docker/. Acesso em: 22 mar. 2024.</p><p>1</p><p>1</p><p>1</p><p>1. Alternativa B.</p><p>O Amazon ECS (Elastic Container Service) é o principal provedor de computação em nuvem</p><p>que entrega sua ferramenta de função como serviço já consolidada e muito utilizada por</p><p>grandes corporações, fazendo parte do framework da plataforma de computação em nuvem</p><p>AWS (Amazon Web Service).</p><p>2. Alternativa E.</p><p>A Afirmativa I é verdadeira, já que o CaaS se utiliza de contêineres e o Paas corresponde a</p><p>um serviço de hospedagem em nuvem que utiliza e se preocupa com implantações da lin-</p><p>guagem de programação explícita. A Afirmativa II é falsa, já que um serviço de hospedagem</p><p>em nuvem que se concentra na implantação de código é realizado pelo PaaS. Já a Afirma-</p><p>tiva III está correta, pois o IaaS é um modelo que trabalha com virtualização de hardware</p><p>de comunicação e armazenamento. É usado para registrar o histórico de edições de vários</p><p>tipos de arquivo, isso significa que cada alteração no arquivo estará registrada e ainda será</p><p>possível identificar o autor da alteração.</p><p>3. Alternativa A.</p><p>O Amazon ECS fornece aos usuários várias interfaces que permitem aplicativos isolados no</p><p>Amazon Elastic Compute Cloud (EC2) em contêineres Docker. O Amazon EC2, (instâncias</p><p>de nuvem do Amazon Elastic Compute Cloud) é a capacidade de computação escalonável</p><p>do serviço de computação em nuvem da Amazon, que é alugado na forma das chamadas</p><p>“instâncias”.</p><p>GABARITO</p><p>1</p><p>1</p><p>8</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>1</p><p>9</p><p>MINHAS METAS</p><p>VERSIONAMENTO E DEPLOY</p><p>EM NUVEM</p><p>Compreender os conceitos de versionamento.</p><p>Conhecer o sistema distribuído Git.</p><p>Apresentar as principais ferramentas.</p><p>Compreender os conceitos de deploy.</p><p>Conhecer a automação do deploy.</p><p>Conhecer o tipo de disponibilização de deploy por tipo de nuvens.</p><p>Conhecer as principais operações do GIT de fluxo básico de trabalho.</p><p>T E M A D E A P R E N D I Z A G E M 6</p><p>1</p><p>4</p><p>1</p><p>INICIE SUA JORNADA</p><p>A evolução tecnológica vem auxiliando</p><p>a humanidade em suas tarefas diárias,</p><p>por meio das comodidades e propor-</p><p>cionando agilidade e entretenimento</p><p>–mediante aplicativos disponibilizados</p><p>(CORRÊA; ARAÚJO; MEDINA, 2016),</p><p>no entanto, todos esses aplicativos pos-</p><p>suem em comum um código-fonte inde-</p><p>pendente da linguagem de programação</p><p>ou plataforma usada.</p><p>O surgimento da tecnologia e a ne-</p><p>cessidade de transmitir a informação de</p><p>modo simultâneo exige o desenvolvimen-</p><p>to de um sistema de transmissão ágil, e a</p><p>plataforma em nuvem é um grande aliado</p><p>nesse processo (CAETANO, 2004). Desse</p><p>modo, o processo de controle das versões (versionamento) e o deploy (disponi-</p><p>bilização do aplicativo) em nuvem, se tornou essencial no processo de desenvol-</p><p>vimento e disponibilização de sistema para usuário.</p><p>Atualmente, existem sistemas de controle de versões que auxiliam na seguran-</p><p>ça e na qualidade do código-fonte. As empresas de software geralmente usam um</p><p>sistema de controle de versão para controlar seus softwares. Com isso, rastreiam</p><p>as alterações efetuadas. Agora, vamos conhecer os principais conceitos do con-</p><p>trole de versão e detalhar os principais modelos presentes no mercado.</p><p>Para conhecer mais a respeito de versionamento e deploy em nuvem, é neces-</p><p>sário compreender um conceito referente ao deploy automatizado e contínuo.</p><p>Conheça mais de deployment contínuo, automatizado e integrado para as equipes</p><p>de desenvolvimento e implantação, ouvindo nosso podcast. Recursos de mídia</p><p>disponíveis no conteúdo digital do ambiente virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 6</p><p>DESENVOLVA SEU POTENCIAL</p><p>CONCEITOS DE VERSIONAMENTO</p><p>A gerência</p><p>de configuração de software é responsável pelo controle da evolução</p><p>de sistemas de software e ainda abrange técnicas de versionamento usadas em</p><p>grandes projetos de desenvolvimento de software (CAETANO, 2004; FARLEY;</p><p>HUMBLE, 2014). As vantagens do gerenciamento de software são:</p><p>■ Facilitar as mudanças.</p><p>■ Controlar os produtos.</p><p>■ Economizar o tempo no desenvolvimento.</p><p>■ Facilitar a geração de versões diferenciadas.</p><p>■ Manter o histórico do software.</p><p>■ Facilitar a recuperação das versões anteriores.</p><p>Durante o processo de desenvolvimento, é essencial que haja o gerenciamento</p><p>de configuração, que, conforme Farley e Humble (2014, p. 90), é definido como “a</p><p>gerência de configuração [que] se refere ao processo pelo qual todos os artefatos</p><p>relevantes ao seu projeto [de software] e as relações entre eles são armazenados,</p><p>recuperados, modificados e identificados de maneira única”. Sendo, que o controle</p><p>de versão é definido como uma prática da Engenharia de Software, que atua no</p><p>gerenciamento de distintas versões de um documento.</p><p>Atualmente, há inúmeras equipes de trabalho atuando em diferentes locais ao</p><p>mesmo tempo, então, nesses casos, o controle de versões é visualizado como uma</p><p>extensão natural do processo de desenvolvimento colaborativo (FARLEY; HUM-</p><p>BLE, 2014), entretanto, para garantir o controle do processo, existem três métodos:</p><p>BLOQUEIO</p><p>Possibilita que a operação de entrega de um arquivo torne restrita ao usuário que</p><p>efetuou o bloqueio (“admin”). Com isso, impedindo que outros usuários façam modifi-</p><p>cações deste mesmo arquivo ao repositório, enquanto ele estiver em alteração.</p><p>1</p><p>4</p><p>1</p><p>O controle de versões está ligado às técnicas e ferramentas usadas para controle</p><p>da evolução de arquivos de computador, isso significa que concede a recuperação</p><p>de dados históricos, semelhanças e diferenças entre versões, e ainda detalhes da</p><p>evolução de algum conteúdo controlado (FARLEY; HUMBLE, 2014).</p><p>BLOQUEIO FRACO</p><p>Utilizado para observar um arquivo (“watch”), ou seja, o usuário que estiver vigiando o</p><p>arquivo será comunicado quando o arquivo tiver alguma alteração, no entanto, quando</p><p>outro usuário retirar o arquivo, ele será somente para leitura, evidenciado, dessa forma,</p><p>que o arquivo não pode ser alterado, mas, caso ele deseje alterar o arquivo, poderá</p><p>fazê-lo (“edit”).</p><p>SINCRONIZAÇÃO</p><p>O método mais usado para aceitar alterações paralelas em um mesmo arquivo. É efe-</p><p>tuada por meio de uma operação de atualização (“update”), que confirma se alguma</p><p>outra atualização foi realizada ao repositório.</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 6</p><p>O controle de versões é uma ferramenta de gerenciamento de configuração de</p><p>software que facilita às empresas a dominarem ou controlarem os problemas</p><p>existentes nas equipes de desenvolvimento (FARLEY; HUMBLE, 2014). Então,</p><p>para finalizar, o sistema de controle de versões engloba:</p><p>■ Obtenção de uma cópia de um repositório remoto.</p><p>■ Realização de alterações nos arquivos do repositório.</p><p>■ Realização de um commit.</p><p>■ Confirmação das alterações e inserção de uma mensagem.</p><p>■ Envio de suas alterações de volta para o servidor remoto.</p><p>Um modelo de versão determina os objetos a serem versionados, identificação</p><p>da versão e organização, e ainda as operações para recuperação de versões atuais</p><p>e a elaboração de novas versões (FARLEY; HUMBLE, 2014). Segundo Farley e</p><p>Humble (2014), um controle de versão tem os seguintes objetivos:</p><p>■ Guardar cada versão de cada arquivo garantindo o acesso a ele.</p><p>■ Fornecer uma maneira de associar metadados.</p><p>■ Permitir a colaboração de equipes distribuídas no tempo e no espaço.</p><p>Agora, vamos compreender os principais conceitos do funcionamento do con-</p><p>trole de versões:</p><p>COMMIT (OU CHECK-IN)</p><p>Criação de uma versão nova.</p><p>CHECK-OUT</p><p>Recuperação de uma determinada versão do arquivo.</p><p>1</p><p>4</p><p>4</p><p>REPOSITÓRIO DE VERSÕES</p><p>Armazenamento de todas as versões dos arquivos sob controle de versões.</p><p>REPOSITÓRIO DE VERSÕES CENTRALIZADOS</p><p>Cada área de trabalho local contém apenas uma versão específica da árvore de ver-</p><p>sões do repositório central, e todos os usuários realizam as operações de controle de</p><p>versões no repositório central.</p><p>REPOSITÓRIO DE VERSÕES DISTRIBUÍDOS</p><p>Cada área local possui um repositório acoplado, de forma que o usuário tem um repo-</p><p>sitório próprio para realizar o controle de versões. As operações realizadas a respeito</p><p>dos arquivos são feitas no repositório local do usuário, e operações específicas dos</p><p>repositórios distribuídos são utilizadas para sincronizar repositórios diferentes.</p><p>Os sistemas de controle de versão podem ser divididos em dois modelos, sendo o</p><p>modelo centralizado e o modelo distribuído (FARLEY; HUMBLE, 2014). Agora,</p><p>vamos descrever esses dois modelos.</p><p>Figura 1 – Modelo centralizado</p><p>Fonte: Possamai et al. (2020,</p><p>p. 200).</p><p>Descrição da Imagem:</p><p>a imagem apresenta um</p><p>computador central de-</p><p>nominado servidor que se</p><p>comunica com três esta-</p><p>ções de trabalho, e estas</p><p>também se comunicam</p><p>com o servidor. Setas nos</p><p>dois sentidos represen-</p><p>tam essa comunicação</p><p>para cada estação com o</p><p>servidor. Fim da descrição.</p><p>Estação de Trabalho</p><p>Estação de Trabalho</p><p>Estação de Trabalho</p><p>co</p><p>m</p><p>m</p><p>it</p><p>update</p><p>com</p><p>m</p><p>it</p><p>update</p><p>commit</p><p>update</p><p>Servidor</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>5</p><p>TEMA DE APRENDIZAGEM 6</p><p>Modelo distribuído</p><p>Os modelos distribuídos são adotados para o desenvolvimento do kernel do</p><p>sistema operacional Linux, projeto Mozilla e os sistemas GIT. Os sistemas de</p><p>controle de versão Bazaar e o Mercurial também são exemplos de sistemas de</p><p>controle de versão distribuídos (MORAES, 2013).</p><p>Modelo centralizado</p><p>No modelo centralizado há somente um repositório central e muitas cópias de</p><p>trabalho. Isso significa que existe um servidor central responsável pelo versiona-</p><p>mento, sendo, deste servidor, que os outros computadores acessem os arquivos</p><p>e suas versões (JUNQUEIRA, 2007). Nesse sentido, as operações de commit e</p><p>update são responsáveis por consolidar as modificações e atualização da cópia</p><p>local que estão entre o cliente e o servidor.</p><p>Figura 2 – Modelo distribuído</p><p>Fonte: o autor.</p><p>Descrição da Imagem: a</p><p>imagem apresenta dois re-</p><p>tângulos, um menor, que con-</p><p>tém uma estação de compu-</p><p>tador denominada “Estação”,</p><p>e um maior, que contém o</p><p>desenho de um cilindro re-</p><p>presentando um repositório</p><p>e o desenho de um quadrado</p><p>com um círculo em seu inte-</p><p>rior, denominado “Área de</p><p>trabalho”. Há uma seta sen-</p><p>tido “Área de trabalho” para</p><p>o repositório denominada de</p><p>“commit” e uma seta no sen-</p><p>tido contrário denominada de</p><p>“update”. Fim da descrição.</p><p>1</p><p>4</p><p>1</p><p>O SISTEMA DISTRIBUÍDO GIT</p><p>O GIT é considerado um software livre</p><p>open source que utiliza a linguagem C,</p><p>Shell Script e Perl, sendo distribuído</p><p>sob a licença GNU GPLv2, portanto,</p><p>o GIT é definido como um sistema de</p><p>controle de versão distribuído tendo</p><p>como características: velocidade, sim-</p><p>ples design, suporte robusto e capaci-</p><p>dade de atuar de modo eficiente com</p><p>projetos de grande porte (exemplo:</p><p>kernel do Linux) (MORAES, 2013).</p><p>O modo distribuído do GIT possibilita maior flexibilidade na forma como os de-</p><p>senvolvedores colaboram em projetos. Desse modo, cada desenvolvedor con-</p><p>tribui para outros repositórios, e ainda pode ter um repositório público para que</p><p>outros desenvolvedores possam se basear em seu trabalho e com a possibilidade</p><p>de contribuir com informações (CORRÊA; ARAÚJO; MEDINA, 2016).</p><p>APROFUNDANDO</p><p>A utilização do GIT possibilita um fluxo de trabalho para equipes com perfil</p><p>colaborativo. O GIT pode ainda ser usado para registrar o histórico de edições</p><p>de vários tipos de arquivo, isso significa que cada alteração no arquivo estará</p><p>registrada e ainda será possível identificar o autor da alteração, portanto, o</p><p>GIT auxilia na resolução de problemas independentemente da quantidade de</p><p>envolvidos no processo, já que é considerado um sistema inteligente sendo res-</p><p>ponsável em notificar e unir as informações adicionadas do arquivo (CORRÊA;</p><p>ARAÚJO; MEDINA, 2016).</p><p>A utilização do GIT,</p><p>segundo Corrêa, Araújo e Medina (2016), tem ca-</p><p>racterísticas como:</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 6</p><p>Os snapshots significam que a cada ação de salvar o projeto (“commit”), é</p><p>como se fosse tirado uma foto (snapshots) dos seus arquivos naquele momen-</p><p>to e, ainda, armazena uma referência para essa captura (CORRÊA; ARAÚJO;</p><p>MEDINA, 2016), entretanto, se nenhum arquivo foi modificado, a informação</p><p>não será armazenada (Figura 3):</p><p>COLABORAÇÃO</p><p>O GIT possibilita um fluxo de trabalho para equipes com perfil colaborativo.</p><p>HISTÓRICO DE EDIÇÕES</p><p>O GIT pode ainda ser usado para registrar o histórico de edições de vários tipos de</p><p>arquivo, isso significa que cada alteração no arquivo estará registrada e ainda será</p><p>possível identificar o autor da alteração.</p><p>RESOLUÇÃO DE PROBLEMAS</p><p>O GIT auxilia na resolução de problemas independentemente da quantidade de envol-</p><p>vidos no processo, já que é considerado um sistema inteligente sendo responsável em</p><p>notificar e unir as informações adicionadas do arquivo.</p><p>GARANTIA DE ORDEM POR REFERÊNCIA</p><p>O GIT possui a capacidade de garantir a ordem, por meio snapshots do projeto, impe-</p><p>dindo problemas para os desenvolvedores.</p><p>1</p><p>4</p><p>8</p><p>Version 1 Version 2 Version 3 Version 4 Version 5</p><p>A</p><p>B</p><p>C</p><p>A1</p><p>B</p><p>C1</p><p>A1</p><p>B</p><p>C2</p><p>A2</p><p>B1</p><p>C2</p><p>A2</p><p>B2</p><p>C3</p><p>Figura 3 – Tratamento dos dados GIT / Fonte: Palestino (2015, p. 43)</p><p>Descrição da Imagem: a imagem representa um diagrama com retângulos arredondados e dispostos em cinco colunas</p><p>e quatro linhas. A primeira coluna é identificada como Versão 1, e linhas A, B e C. A segunda coluna é identificada como</p><p>Versão 2, e linhas A1, B e C1, na qual B possui um retângulo de contorno tracejado. A terceira coluna é identificada</p><p>como Versão 3, e linhas A1, B e C2, na qual A1 e B possuem o retângulo de contorno tracejado. A quarta coluna é</p><p>identificada como Versão 4, e linhas A2, B1 e C2, na qual C2 possui o retângulo de contorno tracejado. A quinta coluna é</p><p>identificada como Versão 5, e linhas A2, B2 e C3, na qual A2 possui o retângulo de contorno tracejado. Fim da descrição.</p><p>De acordo com Palestino (2015), os principais comandos do GIT estão trelados</p><p>ao seu fluxo básico de trabalho, que pode ser compreendido com as operações</p><p>efetuadas por um colaborador, sendo as seguintes operações:</p><p>ATUALIZAR CÓPIA DE TRABALHO</p><p>Por meio do comando git fetch, que faz o download de modificações do repositório</p><p>desejado, seguido do comando git merge, para mesclar as modificações baixadas</p><p>com o seu repositório, ou por meio do comando git pull, responsável pela atualização</p><p>do seu repositório.</p><p>EFETUAR AS MODIFICAÇÕES</p><p>Por meio dos comandos git add, que insere arquivos ao index; git rm, que retira um item de uma</p><p>cópia de trabalho ou do repositório e git mv, que move ou renomeia um arquivo ou diretório.</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>9</p><p>TEMA DE APRENDIZAGEM 6</p><p>O GitHub é um local de armazenamento em nuvem dos arquivos enviados via</p><p>GIT, sendo considerado uma das maiores plataformas de armazenamento de</p><p>código existente (MORAES, 2013; PALESTINO, 2015).</p><p>VERIFICAR MODIFICAÇÕES</p><p>Por meio dos comandos git status, que mostra as informações do estado de arquivos</p><p>e diretórios na cópia de trabalho e gitdiff, que mostra as diferenças entre duas revisões</p><p>ou caminhos.</p><p>DESFAZER MODIFICAÇÕES</p><p>Com o comando git revert, que altera todas as edições locais.</p><p>RESOLUÇÃO DE CONFLITOS</p><p>Por meio do comando git mergetool, que executa ferramentas de resolução de conflitos.</p><p>SUBMETER MODIFICAÇÕES</p><p>Por meio do comando git commit, que encaminha as modificações de sua cópia de</p><p>trabalho para o repositório.</p><p>PROPAGAR MODIFICAÇÕES</p><p>por meio do comando git push, que encaminha as modificações do repositório de</p><p>origem para outro repositório.</p><p>1</p><p>5</p><p>1</p><p>O GitLab tem uma comunidade ativa e colaborativa, sendo que são lançados os</p><p>releases de versões de modo constante com atualizações e correções (CORRÊA;</p><p>ARAÚJO; MEDINA, 2016).</p><p>Conforme Corrêa, Araújo e Medina (2016), as suas principais características</p><p>e funcionalidades são:</p><p>■ possuir controle de usuários, grupos e suas permissões por repositório;</p><p>■ interface para revisão e mesclagem de código;</p><p>■ suporte à comunicação por meio de tarefas, comentários e páginas</p><p>de wiki;</p><p>■ suporte para o sistema de controle de versão GIT.</p><p>Vamos, agora, entender por meio de um exemplo: em um ambiente sem o uso do</p><p>GIT, onde dois profissionais irão trabalhar em um mesmo arquivo de modo virtual,</p><p>sendo que cada um vai fazer alterações e encaminhá-las por e-mail.</p><p>Esse cenário é possível, mas em um ambiente com mais colaboradores que</p><p>necessitam trabalhar em um mesmo arquivo fica inviável, pois haverá um grande</p><p>esforço para finalizar a união de todas as modificações, entretanto, o uso do GIT</p><p>nesses mesmos exemplos facilitará todo o processo, já que o GIT irá juntar todas as</p><p>modificações dos profissionais de modo automático para gerar uma nova versão do</p><p>arquivo (MASON, 2006).</p><p>O GitHub tem uma ferramenta de rastreamento de erros que é considerada flexí-</p><p>vel, já que possibilita o acompanhamento de erros e problemas de cada projeto,</p><p>usando marcação por meio de rótulos (labels) que são definidos pela equipe do</p><p>projeto (CORRÊA; ARAÚJO; MEDINA, 2016). Ela é uma plataforma que integra as</p><p>funcionalidades sociais com sucesso às funcionalidades de suporte ao desenvol-</p><p>vimento. Sendo as suas principais funcionalidades:</p><p>• criar projetos e repositórios;</p><p>• gerenciar usuários e suas permissões de acesso ao código-fonte;</p><p>• suporte à comunicação que é oferecido aos membros de uma equipe</p><p>colaborativa.</p><p>APROFUNDANDO</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>1</p><p>TEMA DE APRENDIZAGEM 6</p><p>Para finalizar, o controle de versão é uma ferramenta importante que possui os</p><p>comandos básicos de um sistema de controle versão como check-out, commit,</p><p>branch, tag, diff, merge, log e notes (ou annotation) (CORRÊA; ARAÚJO; ME-</p><p>DINA, 2016). Sendo assim, o GIT tem como principais vantagens velocidade,</p><p>consistência e simplicidade.</p><p>FERRAMENTAS</p><p>As ferramentas proprietárias são aquelas cópias, redistribuição ou alteração res-</p><p>tritas pelo seu criador e exigem pagamento por meio da compra ou plano de</p><p>assinatura (CORRÊA; ARAÚJO; MEDINA, 2016).</p><p>No entanto, algumas possuem planos gratuitos com restrição de uso para que</p><p>os usuários conheçam as funcionalidades da ferramenta antes de contratarem</p><p>a assinatura.</p><p>Bitbucket:</p><p>O Bitbucket tem suporte para os SCVs GIT e Mercurial, e possui suporte para</p><p>gerenciamento de repositórios por meio de ambiente web, tendo clientes desktops</p><p>para as plataformas Windows e Mac (CORRÊA; ARAÚJO; MEDINA, 2016).</p><p>As principais características e funcionalidades, de acordo com Corrêa, Araújo</p><p>e Medina (2016), são:</p><p>■ gestão de repositórios com acesso por meio de interface web com segurança SSL;</p><p>■ disponibiliza uma versão para ambiente desktop com funcionalidades</p><p>similares ao do ambiente web;</p><p>■ controle de usuários, grupos e suas permissões por repositório;</p><p>■ interface para revisão de código;</p><p>■ suporte para sistemas de controle de versão GIT e Mercurial.</p><p>GitHub:</p><p>O GitHub tem suporte para o SCV GIT, sendo gratuito para a hospedagem de</p><p>repositórios públicos. Nesse caso, tudo o que é criado fica público para visualiza-</p><p>ções, downloads e colaborações (CORRÊA; ARAÚJO; MEDINA, 2016).</p><p>1</p><p>5</p><p>1</p><p>As principais características e funcionali-</p><p>dades, de acordo com Corrêa, Araújo e Medi-</p><p>na (2016), são:</p><p>■ disponibiliza uma versão para ambien-</p><p>te desktop com funcionalidades simi-</p><p>lares ao ambiente web;</p><p>■ controle de usuários, grupos e suas</p><p>permissões por repositório;</p><p>■ interface para revisão de código;</p><p>■ suporte à comunicação com fóruns,</p><p>comentários e páginas de wiki;</p><p>■ suporte para o sistema de controle de</p><p>versão GIT.</p><p>GitLab:</p><p>O GitLab tem interface web, sendo distri-</p><p>buída livremente sob a licença MIT, gerência</p><p>de modo exclusivo o sistema de controle de</p><p>versão GIT (CORRÊA; ARAÚJO; MEDINA,</p><p>2016).</p><p>XP-Dev:</p><p>As principais características e funcionalidades,</p><p>conforme Corrêa, Araújo e Medina (2016), são:</p><p>■ acesso por meio de interface</p><p>web com</p><p>segurança SSL;</p><p>■ possui controle de usuários, grupos e</p><p>suas permissões por repositório;</p><p>■ interface para revisão de código;</p><p>■ suporte à comunicação com blogs, fó-</p><p>runs, comentários e páginas de wiki;</p><p>■ suporte para sistemas de controle de</p><p>versão Subversion, GIT e Mercurial.</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>1</p><p>TEMA DE APRENDIZAGEM 6</p><p>CONCEITOS DE DEPLOY</p><p>O deploy disponibiliza aplicações e recursos para uso, isso significa implementar</p><p>novas atualizações, versões, funcionalidades ou ainda correções (MARCO NETO,</p><p>2016). Assim, o deploy, ou a disponibilização das aplicações ao usuário, possui as</p><p>seguintes categorias:</p><p>NUVENS PÚBLICAS</p><p>Os serviços estão disponíveis na internet e o usuário paga pelo que utiliza, aqui nasce</p><p>o conceito de computação como utilidade. Nesse sentido, empresas como Microsoft,</p><p>IBM e Oracle estão competindo para serem provedoras de serviços, para depois se</p><p>tornarem em uma utilidade. Empresas americanas, como a Salesforce3, oferecem</p><p>serviços de CRM para clientes brasileiros, e ainda com suporte em português (MARCO</p><p>NETO, 2016).</p><p>NUVENS PRIVADAS</p><p>São os data centers internos das organizações que não são disponibilizados publica-</p><p>mente. Desse modo, as empresas investem em técnicas como a virtualização gerando</p><p>a redução de custos das operações de TI, com isso surgiu o conceito de computação</p><p>em nuvem privada (MARCO NETO, 2016).</p><p>NUVENS HÍBRIDAS</p><p>Neste tipo, são compostas por duas ou mais infraestruturas de computação em</p><p>nuvem, podendo ser pública, privada ou comunitária. As organizações se comportam</p><p>como únicas, porém ligadas por tecnologias proprietárias ou padronizadas que aju-</p><p>dam a portabilidade de dados, bem como de aplicação (MARCO NETO, 2016). Desse</p><p>modo, as empresas conseguem tirar vantagem devido à redução de custos atrelados</p><p>à terceirização de serviços, e ainda manter o nível de controle dos dados críticos</p><p>(MARCO NETO, 2016).</p><p>1</p><p>5</p><p>4</p><p>As nuvens de propósitos específicos, portanto, oferecem serviços mais direcio-</p><p>nados a casos de uso específicos e funcionalidades dedicadas (JEFFERY; NEI-</p><p>DECKER-LUTZ, 2010).</p><p>AUTOMAÇÃO DO DEPLOY EM NUVEM</p><p>Como foi visto anteriormente, o deploy significa a disponibilização de aplica-</p><p>ções em nuvem, mas geralmente atividades como novas versões, gerenciamento,</p><p>escalabilidade de aplicações, provisionamento ou desligamento de recursos, são</p><p>realizadas manualmente na nuvem (MARCO NETO, 2016).</p><p>As atividades realizadas no dia a dia e inseridas em um processo manual po-</p><p>dem levar um maior tempo do que quando automatizadas por meio de soluções</p><p>em nuvem (JEFFERY; NEIDECKER-LUTZ, 2010).</p><p>NUVENS COMUNITÁRIAS</p><p>Nesta situação, a infraestrutura está disponível para utilização de uma comunidade de</p><p>consumidores com objetivos comuns, por exemplo: requisitos de segurança, políticas,</p><p>missão, dentre outros (MARCO NETO, 2016). O processo de operação e gestão podem</p><p>ficar sob a responsabilidade de uma ou de mais organizações de dentro da comunida-</p><p>de, ou ainda, de terceiros ou de combinação desses itens (MARCO NETO, 2016). Este</p><p>modelo é mais interessante para pequenas e médias empresas, visto que cada entida-</p><p>de contribui com sua parcela na infraestrutura geral da nuvem comunitária (JEFFERY;</p><p>NEIDECKER-LUTZ, 2010).</p><p>NUVENS DE PROPÓSITOS ESPECÍFICOS</p><p>Os sistemas de IaaS geralmente são genéricos quanto ao modo que podem ser usa-</p><p>dos por diversos tipos de clientes ou em diversos casos de uso. Os sistemas de PaaS</p><p>são considerados mais específicos e restritos a determinados domínios, por exemplo,</p><p>Google App Engine (REESE, 2009).</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>5</p><p>TEMA DE APRENDIZAGEM 6</p><p>O gestor, entretanto, precisa considerar que erros ou atrasos são normais em pro-</p><p>cessos efetivados de modo manual, acarretando um impacto negativo. A solução</p><p>para mitigar os riscos e acabar com bugs é o deploy automatizado (REESE, 2009).</p><p>O ganho de tempo da equipe é um fator primordial, já que deixará os desenvol-</p><p>vedores se dedicando aos códigos (JEFFERY; NEIDECKER-LUTZ, 2010).</p><p>O deploy automatizado, portanto, está relacionado com o conceito da metodolo-</p><p>gia agile. A agilidade é, com certeza, um dos benefícios que a equipe de desenvol-</p><p>vedores vai encontrar ao efetuar esse tipo de procedimento (MARCO NETO, 2016).</p><p>Então, podemos afirmar que os modelos baseados em agile tornam os ciclos de</p><p>entrega mais eficazes e eficientes.</p><p>APROFUNDANDO</p><p>A organização que adota a automatização substitui processos manuais lentos e</p><p>ineficazes no seu ambiente de testes por um processo rápido e eficiente. Esse tipo</p><p>de API em nuvem usa da melhor maneira os recursos (MARCO NETO, 2016).</p><p>Isso significa que se o gestor necessita provisionar equipamentos e recursos para</p><p>determinadas aplicações, ele irá usá-los e gerará à economia planejada (JEFFERY;</p><p>NEIDECKER-LUTZ, 2010).</p><p>Ao realizar o seu deploy automatizado, os desenvolvedores interagem por</p><p>meio de API e usam ferramentas para efetuar os códigos (JEFFERY; NEIDEC-</p><p>KER-LUTZ, 2010).</p><p>No mercado existem muitas ferramentas que podem ajudar as empresas na</p><p>automatização de deploy. As ferramentas de automação de processos, são consi-</p><p>deradas eficientes e entregam o que prometem em alguns cliques. Nesse caso, é</p><p>possível, de acordo com Reese (2009):</p><p>■ rodar testes com suas aplicações;</p><p>■ migrar bancos de dados;</p><p>■ comandar sistema e tarefas;</p><p>■ proporcionar upload do código para a nuvem;</p><p>■ ação automática.</p><p>1</p><p>5</p><p>1</p><p>Algumas ferramentas têm recursos avançados de monitoramento com métricas,</p><p>logs ou deploy progressivo, monitorando a saúde da aplicação e garantindo que</p><p>as instâncias estejam prontas para receber tráfego (MARCO NETO, 2016).</p><p>Para Fernandes et al. (2018, p. 23): “Deployment contínuo é uma prática de</p><p>engenharia de software que começa onde a integração contínua (IC) termina”.</p><p>“ É a ação de instalar um pacote do software de forma automática</p><p>e sistêmica, ou seja, toda vez que o software passar por todas as</p><p>fases da integração contínua (baixar o código, integrar, buildar,</p><p>rodar os testes e gerar o artefato) e se criar o pacote em estado de</p><p>pronto é disparado o processo de Deployment [...] (FERNANDES</p><p>et al., 2018, p. 23).</p><p>Para que esses princípios sejam estabelecidos, uma metodologia deve ser definida,</p><p>como à DevOps. Segundo Braga (2015, p. 26), em DevOps:</p><p>“ [...] os times e as organizações adotam uma variedade de princípios</p><p>para a integração e entrega contínua nas fases de desenvolvimento de</p><p>software, de acordo com o seu tamanho ou natureza ou metodologias</p><p>aplicadas. Esses princípios são definidos como: (1) o desenvolvimen-</p><p>to e testes em ambientes semelhantes; (2) processo de implantação</p><p>repetível e confiável, (3) monitoramento e validação da qualidade</p><p>operacional e o aumento dos feedbacks dos consumidores/clientes.</p><p>Para Braga (2015), a aplicação do princípio da semelhança de ambientes ob-</p><p>tém uma melhor comunicação entre as equipes e, consequentemente, facilita o</p><p>processo de entrega contínua de software. Já a aplicação do processo repetível e</p><p>confiável é fundamental para a implantação do DevOps, e isso se dá por meio</p><p>da automação criando um pipeline de entrega confiável, ou seja, um conjunto</p><p>de estágios que uma aplicação passa desde o desenvolvimento até a produção.</p><p>A Figura 4 mostra um quadrinho que ilustra certos problemas na entrega</p><p>de softwares implantados em computadores e justificados por problemas da</p><p>área operacional.</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>1</p><p>TEMA DE APRENDIZAGEM 6</p><p>Uma solução citada Figura 4 é a aplicação na prática de uma metodologia en-</p><p>xuta e ágil com o pessoal da operação. Depois de aplicada a nova metodologia,</p><p>os analistas de operação entendem que o conceito enxuto e ágil é definido</p><p>como mudanças na arquitetura do projeto, ou seja, redução nas dimensões do</p><p>computador, o que necessariamente não é uma verdade. A aplicação da me-</p><p>todologia DevOps, nesse exemplo, está relacionada com a rapidez da entrega</p><p>do software (implantação de software nas máquinas) por meio de uma maior</p><p>integração com o pessoal de desenvolvimento e operação. Isto se dá com uma</p><p>participação</p><p>contínua do pessoal da operação nas fases de desenvolvimento</p><p>e produção do software.</p><p>Outro ponto importante da implantação de uma metodologia ágil e inte-</p><p>grada é o monitoramento do pipeline, ou seja, os estágios de desenvolvimento</p><p>até a produção precisam ser monitorados em todo o seu ciclo de vida por</p><p>meio de automação e com visibilidade a todos os membros da equipe. Todo</p><p>esse processo fornece uma base para ampliar o feedback dos clientes e con-</p><p>sumidores, fornecendo, assim, respostas mais rápidas por meio de um canal</p><p>de comunicação eficiente.</p><p>Figura 4 – Quadrinho que ilustra a necessidade do entendimento dos princípios do Devops</p><p>Fonte: o autor.</p><p>Descrição da Imagem: a imagem ilustra uma história em quadrinho com um diálogo de dois personagens, o enge-</p><p>nheiro de software e o desenvolvedor. O engenheiro de software indaga com o desenvolvedor: “desenvolvedor,</p><p>temos problemas na entrega dos softwares implantados nessas máquinas”. O desenvolvedor responde: “sim</p><p>Jack, mas o problema está na operação”. No segundo quadro, o engenheiro de software fala ao programador “a</p><p>metodologia ágil está apenas no desenvolvimento! Temos que aplicar o ágil também na operação de implantação</p><p>e infraestrutura! Usem Devops!”. O desenvolvedor responde: “tá, mas como trazer o conceito ágil e enxuto para</p><p>a operação?”. No próximo quadro informa o texto: “Tempos depois da aplicação do Devops…”. O engenheiro de</p><p>software exclama: “Analista!?”. O analista responde: “Jack, o pessoal usou a metodologia nova, enxugou e saiu</p><p>rápido! Era isso???. Na ilustração aparecem computadores compactos. Fim da descrição.</p><p>1</p><p>5</p><p>8</p><p>Vimos que o controle de versão é definido como uma prática da Engenharia</p><p>de Software, que atua no gerenciamento de distintas versões de um documento e</p><p>está ligado às técnicas e ferramentas usadas para controle da evolução de arquivos</p><p>de computador. Vimos, também, que os sistemas de controle de versão podem</p><p>ser divididos em dois modelos, sendo o modelo centralizado e o modelo distri-</p><p>buído. No modelo centralizado, há somente um repositório central e, no modelo</p><p>de versão distribuído, há inúmeros repositórios autônomos e independentes.</p><p>Estudante, para nos aprofundarmos mais em versionamento e deploy em nuvem e</p><p>suas principais práticas ágeis, assista ao vídeo Metodologia Agile no Deploy. Recursos</p><p>de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>NOVOS DESAFIOS</p><p>Um dos novos desafios para os profissionais de desenvolvimento de aplicações</p><p>e implantação de softwares na produção é a existência de uma entrega integrada</p><p>de forma contínua e automatizada. Vimos em nosso estudo que, para que esse</p><p>cenário seja promissor, é necessário se utilizar de boas práticas e ferramentas que</p><p>automatizam o processo, além de haver uma aderência e integração dos times</p><p>de desenvolvimento e operação. Assim, esses princípios devem ocorrer de forma</p><p>harmoniosa, pois um dos maiores desafios na prática do trabalho entre desen-</p><p>volvedores de software e o pessoal da operação é a integração.</p><p>No dia a dia, o uso de ferramentas de versionamento de software dentro de um</p><p>processo de produção de software, como o GIT, possibilita um fluxo de trabalho</p><p>para equipes com perfil colaborativo, ou seja, possibilita maior flexibilidade na</p><p>forma como os desenvolvedores colaboram no projeto. O GIT também pode gerar</p><p>históricos, isto colabora na alteração no arquivo ainda na identificação do autor da</p><p>alteração, servindo como um auditor de alterações. É importante o profissional ficar</p><p>atualizado nas ferramentas de versionamento, pois, além de servir para o controle</p><p>de versões de software, pode controlar versões de qualquer tipo de arquivo.</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>9</p><p>1. Deployment é a ação de instalar um pacote do software de forma automática e sistêmica,</p><p>ou seja, toda vez que o software passar por todas as fases da integração contínua (baixar o</p><p>código, integrar, build, rodar os testes e gerar o artefato) e se criar o pacote em estado de</p><p>pronto, é disparado o processo de deployment.</p><p>Marque a alternativa correta que apresenta um dos objetivos do deployment contínuo:</p><p>a) Remover o passo de deploy automático no pipeline de implantação.</p><p>b) Integrar as equipes e os processos em um pipeline unificado de produção de software.</p><p>c) Minimizar o lead time (tempo decorrido entre o desenvolvimento de uma nova linha de</p><p>código e novo código sendo usado por usuários em tempo real) em produção.</p><p>d) Realizar desenvolvimentos sem grandes atritos e sem comprometer a segurança.</p><p>e) Remover os passos de testes do software em todo o processo de produção.</p><p>2. O GIT é definido como um sistema de controle de versão distribuído, tendo como carac-</p><p>terísticas: velocidade, simples design, suporte robusto e capacidade de atuar de modo</p><p>eficiente com projetos de grande porte (CORRÊA; ARAÚJO; MEDINA, 2016).</p><p>Com relação ao GIT, analise as seguir as afirmativas:</p><p>I - O modo distribuído do GIT possibilita maior flexibilidade no modo como os desenvolve-</p><p>dores colaboram em projetos.</p><p>II - A utilização do GIT possibilita um fluxo de trabalho para equipes com perfil individualistas.</p><p>III - O GIT tem capacidade de garantir a ordem impedindo problemas para os desenvolve-</p><p>dores.</p><p>IV - O GIT fornece suporte à comunicação que é oferecido aos membros de uma equipe</p><p>colaborativa.</p><p>É correto o que se afirma em:</p><p>a) I, apenas.</p><p>b) II e IV, apenas.</p><p>c) III e IV, apenas.</p><p>d) I, III e IV, apenas.</p><p>e) I, II, III e IV.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>1</p><p>3. Um modelo de versão determina os objetos a serem versionados, identificação da versão</p><p>e organização, e, ainda, as operações para recuperação de versões atuais e a elaboração</p><p>de novas versões (FARLEY; HUMBLE, 2014).</p><p>Com relação ao modelo de versão, analise as seguir as afirmativas:</p><p>I - Guardar cada versão de cada arquivo garantindo o acesso a ele.</p><p>II - Permitir a colaboração de equipes distribuídas no tempo e no espaço.</p><p>III - Permitir a colaboração de equipes locais.</p><p>IV - Fornecer uma maneira de associar metadados.</p><p>É correto o que se afirma em:</p><p>a) I, apenas.</p><p>b) II e IV, apenas.</p><p>c) III e IV, apenas.</p><p>d) I, II e III, apenas.</p><p>e) I, II, III e IV.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>1</p><p>REFERÊNCIAS</p><p>BRAGA, F. A. M. Um panorama sobre o uso de práticas Devops nas indústrias de software.</p><p>2015. Dissertação (Mestrado em) – Universidade Federal de Pernambuco, Recife, 2015.</p><p>CAETANO, C. CVS: controle de versões e desenvolvimento colaborativo de software. São Paulo:</p><p>Editora Novatec, 2004.</p><p>CORRÊA, I. da C.; ARAÚJO, C. C.; MEDINA, A. M. Tutorial GIT. Santa Maria: Ed. UFSM, 2016.</p><p>FARLEY, D.; HUMBLE, J. Entrega contínua: como entregar software de forma rápida e confiável.</p><p>Porto Alegre: Bookman, 2014.</p><p>FERNANDES, T. C. M. et al. Influência das práticas do DevOps nos processos de gestão de TI</p><p>conforme o modelo COBIT 5. XXSEMEAD. Revista Navus, Florianópolis, v. 8, n. 1, p. 10-31, jan./</p><p>mar. 2018.</p><p>JEFFERY, K.; NEIDECKER-LUTZ, B. (eds.). The future of cloud computing: opportunities for Eu-</p><p>ropean cloud computing beyond 2010. Brussels: European Commission Information Society</p><p>and Media, 2010. (Expert Group Report). Disponível em: https://www.researchgate.net/publica-</p><p>tion/281003108_The_Future_of_Cloud_Computing. Acesso em: 22 mar. 2024.</p><p>JUNQUEIRA, D. Um controle de versões refinado e flexível para artefatos de software. 2007.</p><p>106 f. Dissertação (Mestrado em Ciências Matemáticas) – Universidade São Paulo, São Carlos,</p><p>2007.</p><p>MARCO NETO, C. C. Um levantamento estruturado do uso da ferramenta de registro de pro-</p><p>blemas na plataforma GitHub. 2016. 96 f. Dissertação (Mestrado em Informática) – Universida-</p><p>de Federal do Rio de Janeiro, Rio de Janeiro, 2016.</p><p>MASON, M. Pragmatic version control: using subversion. Beaverton: Pragmatic Bookshelf, 2006.</p><p>(The Pragmatic Starter Kit Series).</p><p>MORAES, R. C. CollabDev: gerenciador de repositórios para ambientes colaborativos de desen-</p><p>volvimento. 2013, 62 f. Trabalho de Conclusão de Curso (Graduação em Sistemas de Informação)</p><p>– Curso de Sistemas de Informação,</p><p>Fundação de Ensino. Centro Universitário Eurípides de</p><p>Marília, Marília, 2013.</p><p>PALESTINO, C. M. C. Estudo das tecnologias de controle de versões de softwares. 2015. 72 f.</p><p>Trabalho de conclusão de curso (Graduação em Gestão da Informação) – Universidade Federal</p><p>do Paraná. Curitiba, 2015.</p><p>POSSAMAI, A. A. et al. Aplicação de big data em cloud. Indaial: UNIASSELVI. 2022.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>REESE, G. Cloud application architectures. Sebastopol, CA: O’Reilly Media, Inc., 2009.</p><p>1</p><p>1</p><p>1</p><p>1. Alternativa C.</p><p>O deployment contínuo tem o objetivo de reduzir o tempo entre o momento no início do</p><p>desenvolvimento de uma linha de código até a sua finalização de produção.</p><p>2. Alternativa D.</p><p>A Afirmativa I é verdadeira, pois o modo distribuído do GIT possibilita maior flexibilidade</p><p>na forma como os desenvolvedores colaboram em projetos, já que cada desenvolvedor</p><p>contribui para outros repositórios, e, ainda, pode ter um repositório público para que outros</p><p>desenvolvedores possam se basear em seu trabalho e com a possibilidade de contribuir</p><p>com informações. A Afirmativa II está incorreta, pois o GIT é definido como um sistema de</p><p>controle de versão distribuído, que possibilita um fluxo de trabalho para equipes com perfil</p><p>colaborativo. A Afirmativa III está incorreta, pois o GIT é considerado um sistema inteligente,</p><p>sendo responsável em notificar e unir as informações adicionadas do arquivo. Também é</p><p>usado para registrar o histórico de edições de vários tipos de arquivo, isso significa que cada</p><p>alteração no arquivo estará registrada e ainda será possível identificar o autor da alteração. A</p><p>afirmativa IV está correta, pois a comunicação entre os colaboradores do projeto é essencial</p><p>para o versionamento e modificações do softwares.</p><p>3. Alternativa D.</p><p>A Afirmativa I persiste e recupera cada versão de cada arquivo para que o mesmo possa</p><p>ser manipulado novamente. A Afirmativa II está correta, pois o modelo de versionamento</p><p>é de característica colaborativa independentemente do local em que se encontram e do</p><p>tempo que realizam o projeto A Afirmativa III está correta, pois o modelo de versionamento</p><p>pode realizar a colaboração de equipes também locais, pois independem do local onde</p><p>se estão. O versionamento não tem como objetivo associar metadados, mas sim efetuar à</p><p>colaboração de equipes, permissões de acesso à código-fonte e efetuar a persistência de</p><p>cada versão de arquivo.</p><p>GABARITO</p><p>1</p><p>1</p><p>1</p><p>UNIDADE 3</p><p>MINHAS METAS</p><p>APLICAÇÃO DE BIG DATA EM</p><p>CLOUD COMPUTING</p><p>Conhecer os principais componentes do Big Data.</p><p>Entender a escalabilidade e elasticidade.</p><p>Compreender a localidade de dados.</p><p>Compreender a diversidade e interoperabilidade.</p><p>Entender que Big Data e computação em nuvem são dois conceitos que funcionam de</p><p>maneira interdependente.</p><p>Compreender os benefícios e facilidade da adoção da computação em nuvem para</p><p>projetos Big Data.</p><p>Conhecer recursos de visualização de dados do Big Data.</p><p>T E M A D E A P R E N D I Z A G E M 7</p><p>1</p><p>1</p><p>1</p><p>INICIE SUA JORNADA</p><p>Estudante, para iniciarmos nossa jornada ao Big Data em cloud computing, vere-</p><p>mos sua importância dentro do contexto da computação em nuvem. É importan-</p><p>te entender que o Big Data surgiu a partir do momento em que as organizações se</p><p>depararam com um volume e complexidade de dados muito grande e precisavam</p><p>realizar uma análise bem-feita desses dados, a fim de obter respostas que permi-</p><p>tam a geração de insights e tomadas de decisão sólidas, tornando as organizações</p><p>cada vez mais competitivas.</p><p>Com o Big Data, as organizações podem processar e armazenar grandes con-</p><p>juntos de dados disponíveis, tanto local quanto na computação em nuvem.</p><p>Big Data e computação em nuvem são dois conceitos que funcionam de ma-</p><p>neira interdependente, bem como integrados e estão transformando a forma de</p><p>negócios desempenharem suas funções.</p><p>De forma que utilizamos diariamente a computação em nuvem sem perceber,</p><p>por meio de serviços on-line para enviar e-mail, assistir vídeos e jogar, dentre ou-</p><p>tras variadas possibilidades também a de armazenar e editar arquivos on-line. A</p><p>oferta da tecnologia e dos serviços de computação em nuvem são recentes pelos</p><p>cloud providers. Somente na última década, começou a ser adotada e explorada</p><p>com Big Data, pois a computação em nuvem organiza toda a parte de armaze-</p><p>namento de dados deixando-os acessíveis e simplificando a rotina para trabalhar</p><p>com um grande volume de dados.</p><p>Temos que ter em mente que a computação em nuvem é a “entrega de</p><p>serviços” de computação por servidores, armazenamento, bancos de dados,</p><p>redes, software, análises – por meio da internet (a nuvem) –, dentre outros. As</p><p>organizações que oferecem esses serviços de computação são chamadas de cloud</p><p>providers e, normalmente, cobram por serviços de computação em nuvem com</p><p>base no uso, de maneira semelhante à forma como você é cobrado por água ou</p><p>eletricidade na sua casa.</p><p>Agora, imagine quanto trabalho os setores de tecnologia e de marketing</p><p>teriam para conseguir fazer isso tudo em uma máquina local, e, para piorar o</p><p>cenário, com uma planilha de dados. Esse cenário já faz parte do passado, agora</p><p>as empresas podem fazer uso dos serviços em nuvem, e somente daquilo que</p><p>necessitam. Vamos conhecer?</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>DESENVOLVA SEU POTENCIAL</p><p>COMPONENTES</p><p>O Big Data faz parte dos cenários da maioria das organizações, mas, no começo,</p><p>era difícil iniciar projetos de Big Data sem grandes investimentos, por exemplo,</p><p>em infraestrutura como data centers, software, equipe e infraestrutura predial, a</p><p>partir da computação em nuvem, esse cenário mudou, e agora as organizações</p><p>podem aproveitar o Big Data sem ter que investir maciçamente com instalação,</p><p>armazenamento, processamento, integração e transmissão de seus dados.</p><p>A maioria das arquiteturas de Big Data inclui alguns ou todos dos seguintes</p><p>componentes: fontes de dados, armazenamento de dados, processamento em lote,</p><p>ingestão de mensagens em tempo real, processamento de fluxo, armazenamento</p><p>de dados analíticos, análise e relatório, orquestração. Todos estes itens conversam e</p><p>definem os componentes de Big Data em computação em nuvem.</p><p>Para conhecer mais a respeito de Big Data e da computação em nuvem, é ne-</p><p>cessário conhecer as oportunidades e benefícios na adoção de computação em</p><p>nuvem para projetos de Big Data. Para conhecer estas oportunidades e benefícios,</p><p>ouça nosso podcast. Recursos de mídia disponíveis no conteúdo digital do am-</p><p>biente virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>VAMOS RECORDAR?</p><p>Agora, vamos recordar o Big Data e sua relação com a cloud computing.</p><p>https://brinov.com/blog/post/big-data-e-cloud-computing-qual-a-relacao-</p><p>entre-eles/#O%20Que%20%C3%89%20Cloud%20Computing?</p><p>1</p><p>1</p><p>8</p><p>https://brinov.com/blog/post/big-data-e-cloud-computing-qual-a-relacao-entre-eles/#O%20Que%20%C3%89%20Cloud%20Computing?</p><p>https://brinov.com/blog/post/big-data-e-cloud-computing-qual-a-relacao-entre-eles/#O%20Que%20%C3%89%20Cloud%20Computing?</p><p>A seguir, abordaremos os oito componentes que envolvem o cenário de Big Data</p><p>em computação em nuvem: armazenamento, transmissão, gestão de dados, pro-</p><p>cessamento, análise, visualização, integrações e a qualidade da aplicação. Enfim,</p><p>esses componentes são importantes e devem ser considerados em um projeto</p><p>de Big Data.</p><p>Armazenamento</p><p>O componente de armazenamento é responsável por “manter” os dados coletados</p><p>pela organização. Segundo o site Data Science Academy (BIG BATA..., 2024), à me-</p><p>dida que o volume dos dados gerados aumenta e necessita ser armazenado pelas or-</p><p>ganizações, sistemas e ferramentas sofisticadas e acessíveis vão sendo desenvolvidos</p><p>para ajudá-lo nessa tarefa. As principais opções de armazenamento incluem: um Data</p><p>Warehouse tradicional, um Data Lake, um sistema de armazenamento distribuído/</p><p>baseado em nuvem, um servidor ou até mesmo um disco rígido de computador.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>TEMA DE</p><p>gravação (CHANDRASEKARAN, 2015).</p><p>Esse tipo de virtualização, chamado de armazenamento em nuvem,</p><p>pode ser concebido pelo armazenamento privado, disponibilizado o serviço</p><p>por uma empresa, ou, ainda, por armazenamento público, como o DropBox,</p><p>por exemplo, em que o armazenamento ocorre fora da empresa, mas tam-</p><p>bém pode ser uma abordagem mista, isto é, privado e público (CHANDRA-</p><p>SEKARAN, 2015).</p><p>Ainda segundo Chandrasekaran (2015), na virtualização de armazenamento,</p><p>os discos utilizados no armazenamento físico são considerados como uma única</p><p>mídia de armazenamento virtual, sendo que esse conceito de virtualização de</p><p>armazenamento é preparado com técnicas de armazenamento como Storage</p><p>Area Network (SAN) e Network Attached Storage (NAS).</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 1</p><p>A virtualização de data centers permite um caminho para reduzir o uso ine-</p><p>ficiente de recursos de computação, assim como a redução de energia elétrica,</p><p>sabendo que um data center físico de uma organização atende a somente esta,</p><p>e um data center virtual pode atender a várias organizações ou clientes (FAYN-</p><p>BERG; LU; SKULER, 2016). É possível que uma organização tenha um data center</p><p>virtual, terceirizado e um outro data center físico, sendo os dois unidos por uma</p><p>rede virtual privada (FAYNBERG; LU; SKULER, 2016). De forma que as vanta-</p><p>gens da virtualização são:</p><p>ALOCAÇÃO E DESALOCAÇÃO DE RECURSOS</p><p>Com máquinas virtuais é possível realizar a alocação e desalocação fácil e rápida,</p><p>o que permite alocação eficiente de recursos de computação, mas muitos proces-</p><p>samentos executados nesses servidores podem gerar dados, os quais devem ser</p><p>armazenados (SULLIVAN, 2010).</p><p>PERSISTÊNCIA DE DADOS NA NUVEM</p><p>Gerar dados localmente em um servidor que realizou o processamento pode ser útil</p><p>quando os dados são temporários, porém, se o servidor for desalocado, esses dados serão</p><p>perdidos, e é por este motivo que o armazenamento em nuvem é útil (SULLIVAN, 2010).</p><p>ESCALABILIDADE NO ARMAZENAMENTO</p><p>Mediante armazenamento em nuvem, os dados antigos, assim como os novos, gerados</p><p>recentemente, são armazenados de forma que possam ser disponibilizados em qual-</p><p>quer servidor em nuvem, levando em consideração restrições de controle de acesso.</p><p>Com o rápido provisionamento de hardware e a utilização de armazenamento em nu-</p><p>vem, consequentemente é desencadeada a escalabilidade massiva (SULLIVAN, 2010).</p><p>Com o acesso à internet disponibilizado cada vez para mais pessoas, o número de</p><p>usuários e dispositivos conectados na grande rede está crescendo e, consequente-</p><p>mente, a quantidade de dados trafegada e armazenada também está aumentando</p><p>(FAYNBERG; LU; SKULER, 2016).</p><p>1</p><p>8</p><p>Segundo Faynberg, Lu e Skuler (2016), diariamente são trafegados mais de</p><p>1 exabyte de dados e, em 2011, mais de 1.8 exabyte de dados foram criados no</p><p>mundo, e como a quantidade de dados está crescendo rapidamente, o armaze-</p><p>namento em nuvem deve avançar para suprir essas necessidades.</p><p>VOCÊ SABE RESPONDER?</p><p>Além dos serviços de armazenamento, a computação em nuvem fornece serviços</p><p>de comunicação, nos quais os usuários podem realizar publicações de páginas</p><p>web e postagens de notícias, textos, vídeos etc. Como você imagina quais seriam</p><p>esses serviços?</p><p>SERVIÇOS DE COMUNICAÇÃO</p><p>A nuvem permite que usuários publiquem diretamente os conteúdos por meio</p><p>de ferramentas de publicação sem linguagens de programação, as quais estão</p><p>descritas a seguir, conforme Jamsa (2013):</p><p>UNIASSELVI</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 1</p><p>As aplicações baseadas em nuvem disponibilizam aos usuários uma variedade</p><p>de soluções, sendo que, para análise e descrição dessas aplicações, normalmente</p><p>são utilizadas referências pelo seu modelo de implantação e modelos de serviço,</p><p>conforme Quadro 1 (JAMSA, 2013).</p><p>BLOG</p><p>Permite ao usuário publicar conteúdo na web.</p><p>WIKI</p><p>Aplicação web que permite usuários colaborarem com o compartilhamento de docu-</p><p>mentos e assuntos.</p><p>X</p><p>Um miniblog que permite usuários enviarem mensagens para os seus seguidores.</p><p>FACEBOOK</p><p>Rede social que permite usuários postarem textos, fotos, vídeos.</p><p>YOUTUBE</p><p>Plataforma que permite usuários realizarem upload de vídeos, sendo compartilhados</p><p>com outros usuários da rede.</p><p>1</p><p>1</p><p>Quadro 1 – Modelos de implantação e serviços da nuvem / Fonte: Buyya, Broberg e Goscinski (2011, p. 14).</p><p>Um modelo de implementação define como os serviços são compartilhados em</p><p>nuvem, e a interação de clientes (usuários e sistemas) pode ocorrer de diversas</p><p>formas diferentes, como chamadas de serviços, por exemplo, os serviços da web</p><p>podem ser divididos em até três grandes modelos ou tipos (JAMSA, 2013), sendo:</p><p>Service</p><p>Class</p><p>SaaS</p><p>PasS</p><p>IaaS</p><p>Main Access &</p><p>Management Tool</p><p>Web Browser</p><p>Cloud</p><p>Development</p><p>Environment</p><p>Virtual</p><p>Infrastructure</p><p>Manager</p><p>Service content</p><p>Cloud Applications</p><p>Social networks, O�ce suites,</p><p>CRM, Video processing</p><p>Cloud Platform</p><p>Programming languages, Frameworks,</p><p>Mashups editors, Structured data</p><p>Cloud Infrastructure</p><p>Compute Servers, Data Storage, Firewall,</p><p>Load Balancer</p><p>SOFTWARE AS A SERVICE (SaaS)</p><p>Plataforma de aplicação com interface para o usuário, como redes sociais, por exemplo.</p><p>PLATFORM AS A SERVICE (PaaS)</p><p>Plataforma com a qual desenvolvedores podem implementar suas aplicações, como</p><p>linguagens de programação, hardware (servidores, discos), sistema operacional, ferra-</p><p>mentas de desenvolvimento etc.</p><p>INFRASTRUCTURE AS A SERVICE (IaaS)</p><p>Fornecimento de computadores, servidores, armazenamento de dados, firewall, recur-</p><p>sos de internet, dentre outros.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 1</p><p>Plataforma como um serviço (PAAS)</p><p>O modelo de plataforma como serviço, ou PaaS, fornece recursos de hardware, po-</p><p>dendo ser servidor físico ou virtual (VMs), sistemas operacionais, ferramentas para</p><p>bancos de dados, assim como ferramentas de desenvolvimento e recursos de internet,</p><p>tudo para permitir que desenvolvedores implantem suas soluções (JAMSA, 2013).</p><p>Vejamos, agora, mais alguns detalhes acerca dos modelos de implantação da com-</p><p>putação em nuvem SaaS e PaaS.</p><p>Software como um serviço (SAAS)</p><p>O modelo SaaS (software como serviço) está relacionado à disponibilização de</p><p>recursos de software pelo provedor, por meio de uma infraestrutura de nuvem</p><p>disponível pela internet, para o usuário final. Normalmente, o SaaS é baseado em</p><p>uma aplicação para a qual o usuário terá acesso, e é necessária a utilização de um</p><p>navegador de internet, sendo que a aplicação é hospedada em nuvem (JAMSA,</p><p>2013), como ilustra a Figura 4.</p><p>User</p><p>User</p><p>SaaS</p><p>Web browser</p><p>user interface</p><p>Figura 4 – Exemplo do Modelo Saas / Fonte: Jamsa (2013, p. 7).</p><p>Descrição da Imagem: a imagem apresenta duas estações “User” conectadas em uma nuvem (forma de nuvem)</p><p>e no seu interior um servidor “SaaS”. Fim da descrição.</p><p>1</p><p>1</p><p>Ainda segundo Jamsa (2013), esses recursos do PaaS são gerenciados pelo pro-</p><p>vedor da plataforma, e os desenvolvedores não precisam se preocupar com eles,</p><p>como, por exemplo, as atualizações do sistema operacional, contudo, devem focar</p><p>no seu trabalho de desenvolvimento. A Figura 5 apresenta um exemplo do PaaS, no</p><p>qual é possível analisar dois computadores usuários acessando serviços em nuvem.</p><p>INFRAESTRUTURA COMO SERVIÇO (IAAS)</p><p>A IaaS fornece data center em nuvem, como servidores físicos e virtualizados,</p><p>armazenamento de dados em nuvem, os quais podem ser acessados de qualquer</p><p>local (JAMSA, 2013). Nesse modelo de serviço, desenvolvedores precisam ins-</p><p>talar sistema operacional, sistema gerenciador de banco de dados e os softwares</p><p>necessários, e, então, os desenvolvedores, ou administradores, precisam gerenciar</p><p>o hardware e o software (JAMSA, 2013).</p><p>A Figura 6 apresenta um exemplo do modelo IaaS, que também pode ser</p><p>exemplificado pelo Amazon Elastic Compute Cloud (Amazon EC2).</p><p>User</p><p>User</p><p>Paas</p><p>Server,</p><p>operating system,</p><p>support software</p><p>Figura 5 – Exemplo do modelo Paas / Fonte: Jamsa (2013, p. 7).</p><p>Descrição da Imagem: a imagem apresenta duas estações conectadas em uma nuvem (ilustração de uma nuvem)</p><p>e no seu</p><p>APRENDIZAGEM 7</p><p>Segundo Poderoso (2014a), o momen-</p><p>to tecnológico em que vivemos permite</p><p>estabelecer formas de armazenar dados</p><p>não estruturados. Armazenar e recuperar</p><p>dados não estruturados exige uma forma</p><p>diferenciada em relação ao que tem sido</p><p>feito até então. Um novo padrão de ban-</p><p>co de dados foi criado para isso. Eles são</p><p>chamados de NoSQL (Not only SQL), e</p><p>os bons e velhos arquivos, texto, imagens,</p><p>voz etc. que são armazenados diretamen-</p><p>te no sistema operacional voltam a fazer</p><p>parte do contexto da análise de dados,</p><p>no entanto, Poderoso (2014a) continua a</p><p>explicar que os bancos de dados padrão</p><p>SQL são amplamente conhecidos no</p><p>mundo corporativo.</p><p>Os bancos de dados padrão SQL faci-</p><p>litaram muito o acesso e disponibilização</p><p>dos dados nas organizações. Foram cria-</p><p>dos para lidar com dados estruturados,</p><p>e quando se fala em dados estruturados,</p><p>o que se quer dizer é que o dado estará</p><p>formatado para trabalhar com um padrão</p><p>baseado em linhas e colunas, com uma</p><p>sintaxe robusta e uma modelagem con-</p><p>sistente. Como informado anteriormente,</p><p>para manipulação de dados não estrutu-</p><p>rados, utiliza-se, muitas vezes, o próprio</p><p>sistema de arquivos (Linux e MS Windo-</p><p>ws, por exemplo).</p><p>Para Poderoso (2014a), os principais com-</p><p>ponentes desta arquitetura são (mas não se li-</p><p>mitam a):</p><p>1</p><p>1</p><p>1</p><p>Segundo Poderoso (2014b, on-line), “o armazenamento envolve questões que</p><p>nascem em uma plataforma distribuída, passa pelos bancos específicos (NoSQL)</p><p>e terminam em um ambiente de tomada de decisão".</p><p>Podemos representar os principais componentes de uma arquitetura de Big</p><p>Data, representados pelo SQL e Data Warehouse no mapa da Figura 1.</p><p>HADOOP</p><p>Plataforma para armazenamento e processamento de um grande volume de dados</p><p>utilizando hardware simples e que normalmente utilizam clusters para agilizar o aces-</p><p>so e manipulação dos dados.</p><p>MapReduce</p><p>Modelo de programação paralela, escalável e que permite a utilização de hardware</p><p>simples para realizar trabalhos complexos.</p><p>NoSQL</p><p>Banco de dados que permite armazenar e recuperar dados com menos restrições do</p><p>que os bancos de dados relacionais. Possui uma modelagem mais simples e permite</p><p>aumentar a escalabilidade e disponibilidade do ambiente.</p><p>SQL</p><p>Bancos de dados tradicionais que armazenam a maior parte dos dados estruturados</p><p>nas organizações. Os dados normalmente têm origem em sistemas ERP, SCM (Supply</p><p>Chain), CRM etc.</p><p>DW</p><p>O Data Warehouse é um banco de dados apartado do banco de dados dos sistemas tran-</p><p>sacionais que são modelados para facilitar a análise de dados para a tomada de decisão.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>B</p><p>ig</p><p>D</p><p>at</p><p>a</p><p>V</p><p>is</p><p>u</p><p>al</p><p>iz</p><p>aç</p><p>ão</p><p>S</p><p>eg</p><p>u</p><p>ra</p><p>n</p><p>ça</p><p>C</p><p>ol</p><p>et</p><p>a</p><p>e</p><p>In</p><p>te</p><p>g</p><p>ra</p><p>çã</p><p>o</p><p>d</p><p>e</p><p>D</p><p>ad</p><p>os</p><p>E</p><p>sc</p><p>al</p><p>ab</p><p>ili</p><p>d</p><p>ad</p><p>e</p><p>A</p><p>rm</p><p>az</p><p>en</p><p>am</p><p>en</p><p>to</p><p>d</p><p>e</p><p>d</p><p>ad</p><p>os</p><p>N</p><p>eg</p><p>óc</p><p>io</p><p>s</p><p>A</p><p>n</p><p>al</p><p>yt</p><p>ic</p><p>s</p><p>É</p><p>ti</p><p>ca</p><p>G</p><p>ov</p><p>er</p><p>n</p><p>an</p><p>ça</p><p>E</p><p>st</p><p>at</p><p>ís</p><p>ti</p><p>ca</p><p>C</p><p>or</p><p>re</p><p>la</p><p>çã</p><p>o</p><p>A</p><p>n</p><p>ál</p><p>is</p><p>e</p><p>p</p><p>re</p><p>d</p><p>it</p><p>iv</p><p>a</p><p>S</p><p>em</p><p>ân</p><p>ti</p><p>ca</p><p>M</p><p>in</p><p>er</p><p>aç</p><p>ão</p><p>d</p><p>e</p><p>d</p><p>ad</p><p>os</p><p>A</p><p>lg</p><p>or</p><p>it</p><p>m</p><p>os</p><p>M</p><p>ac</p><p>h</p><p>in</p><p>e</p><p>Le</p><p>a</p><p>rn</p><p>in</p><p>g</p><p>C</p><p>om</p><p>p</p><p>et</p><p>iç</p><p>ão</p><p>C</p><p>R</p><p>M</p><p>M</p><p>ar</p><p>ke</p><p>ti</p><p>n</p><p>g R</p><p>ed</p><p>es</p><p>S</p><p>oc</p><p>ia</p><p>is</p><p>P</p><p>la</p><p>ta</p><p>fo</p><p>rm</p><p>as</p><p>d</p><p>is</p><p>tr</p><p>ib</p><p>u</p><p>íd</p><p>as</p><p>D</p><p>at</p><p>a</p><p>W</p><p>ar</p><p>eh</p><p>ou</p><p>se S</p><p>Q</p><p>L</p><p>N</p><p>oS</p><p>q</p><p>l</p><p>P</p><p>ro</p><p>ce</p><p>ss</p><p>am</p><p>en</p><p>to</p><p>P</p><p>ar</p><p>al</p><p>el</p><p>o</p><p>C</p><p>lo</p><p>u</p><p>d</p><p>C</p><p>om</p><p>p</p><p>u</p><p>ti</p><p>n</p><p>g</p><p>In</p><p>g</p><p>es</p><p>tã</p><p>o</p><p>d</p><p>e</p><p>d</p><p>ad</p><p>os</p><p>D</p><p>at</p><p>a</p><p>C</p><p>le</p><p>ar</p><p>n</p><p>in</p><p>g</p><p>Figura 1 – Visão geral de uma nuvem computacional</p><p>Fonte: https://t.ctcdn.com.br/L1ZMsNPkcUVPKgG2AAguEMEPf2A=/i263168.png. Acesso em: 3 abr. 2024.</p><p>1</p><p>1</p><p>1</p><p>Transmissão</p><p>A computação em nuvem executa aplicativos ou fornece conteúdo e serviços</p><p>por meio de transmissão on-line, em que, ao invés de acessar dados e arquivos</p><p>de um computador local ou físico, podem ser acessados on-line de qualquer</p><p>dispositivo que tenha acesso à internet e transmitido a qualquer hora, em</p><p>qualquer lugar.</p><p>A etapa de transmissão de dados permite que os dados possam chegar nos sis-</p><p>temas da organização a partir de uma rede de dispositivos conectados. Utilizando</p><p>recursos tecnológicos como Internet of Things, Big Data e cloud computing, os</p><p>organizadores terão a capacidade de transmitir e dar acesso a um incrível volume</p><p>de informação. Segundo a empresa Informática (BIG DATA..., 2018), cada vez</p><p>mais dados estão se movendo para a nuvem como uma plataforma econômica,</p><p>escalonável e ágil para armazenar, processar e gerenciar dados de transmissão em</p><p>tempo real, tornando fácil de coletar, entregar e processar grandes quantidades</p><p>de dados em tempo real de modo eficaz.</p><p>A fase de transmissão de computação em nuvem inclui:</p><p>Descrição da Imagem: a imagem representa um mapa mental formado por balões interligados. O balão</p><p>central é descrito como “Big Data”. Este balão central é interligado com os balões “visualização”, “segurança”,</p><p>“coleta e integração de dados”, “escalabilidade”, “armazenamento de dados”, “negócios” e “analytics”. O balão</p><p>“segurança” é conectado aos balões “ética”, “governança” e também de forma tracejada conectada ao balão</p><p>“coleta e integração de dados”. O balão “visualização” é conectado aos balões “estatística”, “correlação”,</p><p>“análise preditiva”, “semântica” e “mineração de dados”. O balão “analytics” é conectado ao balão “algorit-</p><p>mos” e “machine learning”. O balão “negócios” é conectado aos balões “competição”, “CRM”, “marketing” e</p><p>“redes sociais”. O balão “armazenamento de dados” é conectado aos balões “plataformas distribuídas”, “data</p><p>warehouse”, “SQL” e “NoSql”. O balão “escalabilidade” é conectado aos balões “processamento paralelo”,</p><p>“NoSQL” e “cloud computing”. Já o balão “coleta e integração de dados” é conectado aos balões “ingestão de</p><p>dados” e “data clearning”. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>ENTREGA DE DADOS COLETADOS</p><p>Utilizam mecanismos para entregar os dados coletados para aplicações e para dife-</p><p>rentes servidores externos. Por conseguinte, são necessários métodos para acessar a</p><p>rede por meio de gateways e tecnologias heterogêneas (por exemplo, com fio, sem</p><p>fio, satélite). Tais elementos são utilizados no processo de tratamento e envio dos</p><p>dados coletados a serem transmitidos.</p><p>TRANSMISSÕES POR MEIO DE REDES DE COMPUTADORES</p><p>São transmitidas e interligadas por milhares de computadores independentes, por</p><p>meio de redes mais pequenas utilizadas em nossas residências (Local Area Network –</p><p>LANs) e redes com vasta área geográfica (Wide Area Network – WANs), as quais bus-</p><p>cam constantemente que a transmissão de dados seja feita de forma segura, eficiente</p><p>e com menor custos.</p><p>CONTROLE DA TRANSMISSÃO NO IaaS E PaaS</p><p>Na IaaS (Infrastructure as a Service – Infraestrutura como Serviço) e na PaaS (Platform</p><p>as a Service – Plataforma como Serviço), os mecanismos de transmissão costumam</p><p>ser controlados pelo cliente, enquanto a tecnologia subjacente é gerenciada pelo</p><p>provedor; entretanto, isso dependerá das tecnologias em uso.</p><p>No SaaS (Software as a Service – Software como serviço), o provedor retém o</p><p>controle total dos mecanismos de transmissão. O cliente tem pouco ou nenhum</p><p>controle sobre como ou onde os dados são transmitidos dentro do ambiente de</p><p>nuvem. O cliente é responsável por garantir que os dados “clear-text” não sejam</p><p>passados ao provedor para transmissão para redes públicas ou ambientes não</p><p>confiáveis (como outros clientes em nuvem).</p><p>1</p><p>1</p><p>4</p><p>Coleta de dados</p><p>Os dados das organizações estão em constante manipulação e, muitas vezes, ao</p><p>se criar novos dados, são necessários novos investimentos em infraestrutura.</p><p>O site Data Science Academy (BIG BATA..., 2024) reforça que os requisitos de</p><p>infraestrutura para a capturar ou coletar dados dependem do tipo de dado que</p><p>será necessário, mas as principais opções podem incluir: sensores (que podem</p><p>ser instalados em dispositivos, máquinas, edifícios ou em veículos, embalagens</p><p>ou qualquer outro lugar de onde você gostaria de capturar dados), aplicativos</p><p>que geram dados de usuários (por exemplo, uma app para celular que permite</p><p>que os clientes façam pedidos mais facilmente), vídeo de circuito fechado de TV</p><p>(CCTV),</p><p>beacons (como iBeacons da Apple, que permitem capturar e transmitir</p><p>dados para telefones celulares), mudanças em seu site que levam os clientes a</p><p>obter mais informações e os perfis de redes sociais (BIG BATA..., 2024).</p><p>Figura 2 – Perfil de redes sociais</p><p>Descrição da Imagem: a imagem representa uma pessoa acessando um smartphone com um perfil de rede social</p><p>na tela. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 7</p><p>Na primeira etapa de Big Data ocorre uma coleta de dados para</p><p>armazenamento, por exemplo, os dados podem ser coletados</p><p>no e-commerce em cloud quando o usuário clicar em anúncios,</p><p>login do usuário no site, ao obter o endereço de IP, endereço de</p><p>e-mail, localização, históricos de buscas ou de compras, dentre</p><p>outros.</p><p>Vale lembrar que esse processo deve ser feito de modo trans-</p><p>parente e que comprove o consentimento da pessoa cujos dados</p><p>serão reunidos. Essa prática é importante para a reputação da</p><p>marca e evita complicações legais, especialmente quando a LGPD</p><p>entrar em vigor (ENTENDA..., 2019).</p><p>A Microsoft (ESTILO..., 2019) pontua que todas as soluções</p><p>de Big Data começam com uma ou mais fontes de dados, como</p><p>exemplos podemos incluir:</p><p>■ armazenamentos de dados de aplicativo, como bancos de</p><p>dados relacionais;</p><p>■ arquivos estáticos produzidos por aplicativos, como ar-</p><p>quivos de log do servidor web; e</p><p>■ fontes de dados em tempo real, como dispositivos IoT.</p><p>Processamento</p><p>A respeito do processamento de Big Data em computação em</p><p>nuvem, a Microsoft (ESTILO..., 2019) destaca que, como os</p><p>conjuntos de dados são muito grandes, geralmente uma solu-</p><p>ção de Big Data deve processar arquivos de dados usando tra-</p><p>balhos de lote de execução longa para filtrar, agregar e preparar</p><p>os dados para análise. Normalmente, esses trabalhos envolvem</p><p>ler arquivos de origem, processá-los e gravar a saída para novos</p><p>arquivos. Neste caso, opções incluem executar trabalhos de</p><p>U-SQL no Azure Data Lake Analytics, usar trabalhos Hive, Pig</p><p>ou de Mapear/Reduzir personalizados em um cluster HDIn-</p><p>sight Hadoop ou usar programas de Java, Scala ou Python em</p><p>um cluster HDInsight Spark.</p><p>1</p><p>1</p><p>1</p><p>No que abrange o tema de processamento dos dados a partir das soluções de Big</p><p>Data em computação em nuvem, a Microsoft (ESTILO..., 2019, on-line) vem nos</p><p>apresentar algumas importantes considerações a este respeito:</p><p>“ Ingestão de mensagens em tempo real: se a solução inclui fonte sem</p><p>tempo real, a arquitetura deve incluir uma maneira de capturar e</p><p>armazenar mensagens em tempo real para processamento de flu-</p><p>xo. Isso pode ser um armazenamento de dados simples, em que as</p><p>mensagens de entrada são removidas para uma pasta para proces-</p><p>samento. Opções incluem Hubs de Eventos do Azure, Hubs de IoT</p><p>do Azure e Kafka.</p><p>Processamento de fluxo: depois de capturar mensagens em tempo</p><p>real, a solução deve processá-las filtrando, agregando e preparando</p><p>os dados para análise. Os dados de fluxo processados são gravados</p><p>em um coletor de saída. O Azure Stream Analytics oferece um ser-</p><p>viço de processamento de fluxo gerenciado baseado em consultas</p><p>SQL em execução perpétua que operam em fluxos não associados.</p><p>Você também pode usar tecnologias de streaming Apache de soft-</p><p>ware livre, como Storm e Spark Streaming em um cluster HDInsight.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>Para muitos aplicativos, o tempo máximo que leva para processar uma solicitação</p><p>está relacionado ao tempo de execução do Sistema de Gerenciamento de Banco</p><p>de Dados (SGBD) que deve prezar pela sua qualidade ou desempenho. Técnicas</p><p>de provisionamento dinâmico foram projetadas para lidar com cargas de trabalho</p><p>irregulares e evitar violações de nível de acordo de serviço. No que diz respeito ao</p><p>processamento distribuído, Java disponibiliza diversos recursos de comunicação</p><p>entre componentes, tais como: chamadas de funções remotas (Sockets e RMI)</p><p>e integração com os protocolos conhecidos de internet (TCP/IP, HTTP, Telnet</p><p>etc.) (OLIVEIRA; FRAGA; MONTEZ, 2002).</p><p>O processamento em tempo real é um requisito necessário para muitas</p><p>situações, por exemplo, infraestruturas críticas e sistemas de saúde. Além dis-</p><p>so, em outros cenários, o verdadeiro conhecimento reside nos dados, já que</p><p>pode ser usado para evitar que certas situações surjam e ajam antecipadamente</p><p>(BALDISSERA, 2018).</p><p>Análise de dados</p><p>A partir do momento em que for necessário usar os dados armazenados para</p><p>descobrir algo útil, a organização precisará processá-los e analisá-los. Então, essa</p><p>área será primordial para transformar os dados em insights.</p><p>É nesse momento que as linguagens de programação e plataformas entram</p><p>em jogo (como, por exemplo, a linguagem R e Python), portanto, para o site Data</p><p>Science Academy (BIG BATA..., 2024), existem três etapas básicas nesse processo:</p><p>■ Preparar os dados (identificar, limpar e formatar os dados para que este-</p><p>jam prontos para análise).</p><p>■ Construir o modelo analítico.</p><p>■ Extrair a conclusão a partir dos conhecimentos adquiridos.</p><p>Por exemplo, existem diversos softwares de empresas como IBM, Oracle e Google</p><p>que podem ajudá-lo a realizar análises de dados, ou seja, converter dados “brutos”</p><p>em insights ou poderosas soluções de código aberto (como R e Python). O Goo-</p><p>gle tem o BigQuery, que é projetado para permitir que alguém com um pouco</p><p>de conhecimento em ciência de dados execute consultas em grandes datasets.</p><p>1</p><p>1</p><p>8</p><p>Por fim, e não menos importante, o uso de técnicas de análise avançadas,</p><p>machine learning (aprendizagem de máquina) com algoritmos especialmente</p><p>testados, desenvolvidos e aplicados para modelos de previsão permitem que o</p><p>terceiro V (velocidade) atenda às necessidades do negócio. Mostrar essas análises</p><p>de maneira adequada ao tomador de decisão ou estabelecer visualização para mo-</p><p>delos criados é o produto final de um projeto de Big Data (PODEROSO, 2014b).</p><p>Segundo a Microsoft (ESTILO..., 2019), a meta da maioria das soluções de Big</p><p>Data é gerar insights dos dados por meio de análise e relatórios (e gráficos para</p><p>análise por meio da ferramenta BI (business intelligence), como ilustra a Figura</p><p>4). Para capacitar os usuários a analisar os dados, a arquitetura pode incluir uma</p><p>camada de modelagem de dados, como um cubo OLAP multidimensional ou</p><p>um modelo de dados tabular no Azure Analysis Services.</p><p>Figura 3 – Gráficos para análise no BI</p><p>Descrição da Imagem: a imagem apresenta uma pessoa acessando o aplicativo BI por meio de um smartphone e</p><p>um computador. Nas telas da aplicação BI aparecem gráficos diversos para a análise de dados. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 7</p><p>Também pode dar suporte à business intelligence de</p><p>autoatendimento, usando as tecnologias de modelagem</p><p>e visualização do Microsoft Power BI ou do Microsoft</p><p>Excel. Análise e relatórios também podem assumir a for-</p><p>ma de exploração de dados interativos por cientistas de</p><p>dados ou analistas de dados. Para esses cenários, muitos</p><p>serviços do Azure dão suporte a blocos de anotações</p><p>analíticos, como Jupyter, permitindo que esses usuários</p><p>aproveitem suas habilidades existentes com Python ou R.</p><p>Para exploração de dados em larga escala, você pode usar</p><p>o Microsoft R Server, seja no modo autônomo ou com</p><p>Spark. Assim, segundo a IBM (2021, on-line),</p><p>“ a análise de Big Data é o uso de técni-</p><p>cas analíticas avançadas aplicadas em</p><p>conjuntos de dados muito grandes e di-</p><p>versos que incluem dados estruturados,</p><p>semiestruturados e não estruturados, de</p><p>diferentes fontes e de tamanhos diferen-</p><p>tes de terabytes a zettabytes.</p><p>Visualização de saída de dados</p><p>O componente de visualização é responsável por gerar</p><p>as informações extraídas da análise de dados, área res-</p><p>ponsável por transmiti-las às pessoas que necessitam</p><p>para realizar a tomada de decisões da organização (Fi-</p><p>gura 5). É essencial que essa informação transmitida</p><p>precise ser oferecida por meio de uma comunicação cla-</p><p>ra e concisa reportando resultados em forma de breves</p><p>relatórios, gráficos, figuras, recomendações-chave ou</p><p>dashboards interativos.</p><p>1</p><p>8</p><p>1</p><p>O site Data Science Academy (BIG BATA..., 2024) destaca que constantemente</p><p>se observa que as organizações enterram os reais “tesouros” de informações que</p><p>podem afetar a estratégia quando recebem um relatório de 50 páginas ou um</p><p>gráfico complicado que ninguém entende. É evidente que não se pode esperar</p><p>que pessoas muito ocupadas acessem uma montanha de dados com infinitos</p><p>apêndices de planilha e extraia mensagens-chave.</p><p>Essa mesma fonte enfatiza que se as ideias-chave não forem claramente apre-</p><p>sentadas, não resultarão em ação. Enfim, as principais opções de saída de dados</p><p>incluem dashboards de gerenciamento, plataformas de visualização de dados</p><p>comerciais que tornam os dados atraentes e fáceis de entender, utilizando gráfi-</p><p>cos simples (como barras e linhas) que comunicam informações. Para a maioria</p><p>das pequenas empresas que procuram melhorar a sua tomada de decisão, usar</p><p>gráficos simples ou ferramentas de visualização, como nuvens de palavras, são</p><p>mais do que suficientes para apresentar informações dos dados (BIG BATA...,</p><p>2024). Vejamos alguns recursos de visualização dos dados:</p><p>Figura 4 – Visualização e análise de dados</p><p>Descrição da Imagem: um especialista está acessando um computador. Na tela é apresentado um dashboard</p><p>com diversos gráficos. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>8</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>ENVOLVE TÉCNICAS ESTATÍSTICAS</p><p>A visualização dos dados envolve o uso e a prática de técnicas estatísticas adequadas</p><p>para responder às questões de negócio que justificarão o desenvolvimento do projeto.</p><p>Com esses importantes recursos da matemática, será possível estabelecer análises de</p><p>correlação que utilizam técnicas de data mining (mineração de dados) aplicadas em</p><p>um grande volume de dados (PODEROSO, 2014b).</p><p>COMPREENSÃO DOS PROCESSOS E NEGÓCIOS</p><p>As organizações poderão compreender seus processos e negócios ao visualizar todos</p><p>seus dados que estarão disponíveis (armazenados) nos mais variados tipos de banco</p><p>de dados. Na etapa de visualização por meio de gráficos, infográficos, planilhas e tabe-</p><p>las, por exemplo, ferramentas visuais que favorecem uma interpretação mais otimiza-</p><p>da das informações eliminando ruídos e fatores que desviem o foco durante a análise.</p><p>VISUALIZAÇÃO DE DADOS COMPLEXOS</p><p>É a parte difícil do Big Data porque significa tornar essa vasta quantidade de dados</p><p>compreensível de uma maneira fácil de ler e entender. Com as visualizações corretas,</p><p>os dados brutos podem ser colocados em uso. As visualizações, claro, não são gráficos</p><p>comuns ou gráficos de pizza, são gráficos complexos que podem incluir muitas variáveis</p><p>de dados, permanecendo legíveis e compreensíveis (OLIVEIRA JUNIOR, 2019).</p><p>USO DE FERRAMENTAS DE VISUALIZAÇÃO POWER BI</p><p>Power BI é uma ferramenta de visualização de dados e BI que converte dados de</p><p>diferentes fontes em dashboards e relatórios de BI. O Power Bi suite fornece vários</p><p>softwares, conectores e serviços, o Power BI Desktop, o Power BI Service baseado em</p><p>SaaS e o Power BI Mobile estão disponíveis para diversas plataformas. Esse conjunto</p><p>de serviços podem ser usados pelos usuários para consumir dados e criar relatórios.</p><p>USO DE FERRAMENTAS DE VISUALIZAÇÃO WEKA</p><p>O WEKA é um software open source que fornece ferramentas para pré-processamento</p><p>de dados, “implementação de vários algoritmos de machine learning e visualização</p><p>para que você possa desenvolver técnicas de aprendizado de máquina e aplicá-las a</p><p>problemas reais de mineração de dados” (OLIVEIRA JUNIOR, 2019, p. 6).</p><p>1</p><p>8</p><p>1</p><p>DESAFIOS PARA IMPLEMENTAÇÃO BIG DATA EM CLOUD</p><p>Agora, veremos alguns desafios para a implementação de Big Data em cloud</p><p>computing. Como em tudo sempre há o lado bom e ruim, analisaremos cloud</p><p>computing por diversas perspectivas.</p><p>Sendo assim, saiba mais acerca dos desafios e oportunidades do Big Data, len-</p><p>do o artigo Big Data Analytics: explosão de informação. https://inforchannel.com.</p><p>br/2017/06/18/big-data-analytics-explosao-de-informacao/.</p><p>EU INDICO</p><p>ESCALABILIDADE E ELASTICIDADE</p><p>Vejamos agora os conceitos e características de elasticidade e escalabilidade, que</p><p>apesar de serem semelhantes, apresentam algumas diferenças, ambos são essen-</p><p>ciais quando falamos em cloud computing.</p><p>ADAPTAÇÃO</p><p>À elasticidade tem “a capacidade de um sistema se adaptar às alterações de carga de</p><p>trabalho pela alocação e liberação de recursos, de maneira autônoma, de forma que,</p><p>a qualquer momento, o conjunto de recursos utilizados é o mais compatível possível</p><p>com a demanda instantânea” (COMPUTAÇÃO EM NUVEM, 2015, p. 37).</p><p>NECESSIDADES ORGANIZACIONAIS</p><p>A elasticidade na nuvem se aplica às necessidades táticas de curto prazo, en-</p><p>quanto a escalabilidade dá suporte às necessidades de longo prazo da empresa</p><p>ou estratégicas.</p><p>UNIASSELVI</p><p>1</p><p>8</p><p>1</p><p>https://inforchannel.com.br/2017/06/18/big-data-analytics-explosao-de-informacao/</p><p>https://inforchannel.com.br/2017/06/18/big-data-analytics-explosao-de-informacao/</p><p>TEMA DE APRENDIZAGEM 7</p><p>CAPACIDADE DE EXPANSÃO DE TECNOLOGIA</p><p>À escalabilidade refere-se à capacidade de um componente de expansão de funcio-</p><p>nalidades, meios de utilização e capacidade de armazenamento e processamento</p><p>serem alteradas, segundo as necessidades do negócio.</p><p>DISTRIBUIÇÃO DE SISTEMAS</p><p>Para a escalabilidade na área de tecnologia, que está ligada à distribuição de sistemas</p><p>(clusters), buscando melhorar a performance das máquinas: os clusters distribuem as</p><p>tarefas visando à utilização otimizada dos equipamentos e softwares. Dessa maneira,</p><p>os vários servidores não atuam independentemente, mas sim como um elo de uma</p><p>grande rede, que tem muito mais flexibilidade para atender as demandas tecnológicas</p><p>que surgem.</p><p>SUPORTE AO DESEMPENHO</p><p>A escalabilidade é “a habilidade de um sistema de suportar com desempenho</p><p>adequado cargas crescentes de trabalho, à medida que sejam adicionados novos</p><p>recursos computacionais” (COMPUTAÇÃO EM NUVEM, 2015, p. 36). Para que um</p><p>sistema seja dito como escalável, ele deve ser capaz de fazer uso de novos recursos</p><p>computacionais disponibilizados para sua execução no sentido de acompanhar o</p><p>aumento da demanda.</p><p>FLEXIBILIDADE DE RECURSOS UTILIZADOS</p><p>A elasticidade se refere à capacidade de um sistema de “esticar” e “encolher” em</p><p>termos de recursos utilizados em função da sua necessidade (COMPUTAÇÃO EM</p><p>NUVEM, 2015).</p><p>DISPONIBILIDADE DE RECURSOS ADICIONAIS</p><p>A escalabilidade é a característica que indica que um sistema é capaz de fazer uso de</p><p>recursos adicionais colocados à sua disposição.</p><p>1</p><p>8</p><p>4</p><p>Nasser (2012) exemplifica as diferenças desses termos, em um armazenamento</p><p>na nuvem (Figura 6). No lado esquerdo, temos a escalabilidade e do lado direito</p><p>a elasticidade.</p><p>ESCALABILIDADE</p><p>D</p><p>em</p><p>an</p><p>d</p><p>a</p><p>Tempo Recursos Ociosos</p><p>Falta de Recursos</p><p>D</p><p>em</p><p>an</p><p>d</p><p>a</p><p>Tempo</p><p>ELASTICIDADE</p><p>Figura 5 – Escalabilidade x elasticidade / Fonte: Nasser (2012, p. 21).</p><p>Descrição da Imagem: a imagem representa dois gráficos. À esquerda tem-se o gráfico de escalabilidade (de-</p><p>manda x tempo). À direita tem-se o gráfico de elasticidade (demanda x tempo). No interior dos gráficos de curvas</p><p>em cores azul, laranja e vermelho. Fim da descrição.</p><p>Com a elasticidade da nuvem, conseguimos provisionar e desprovisionar o re-</p><p>cursos de acordo com as necessidades, reduzindo ao máximo à ocorrência de</p><p>escassez (vermelho) e ociosidade (amarelo) de recursos, enquanto que, no mo-</p><p>delo tradicional (à esquerda), há a necessidade de escalar a infraestrutura pelos</p><p>picos de demanda, causando desperdício de recursos.</p><p>ESCALABILIDADE VERTICAL E HORIZONTAL</p><p>Escalabilidade vertical, segundo a FWC (ESCALABILIDADE..., 2019), refere-se</p><p>à possibilidade de incluir mais recursos ao servidor conforme a necessidade. Ela</p><p>é utilizada com mais frequência em aplicativos e produtos de médio porte, bem</p><p>como em pequenas e médias empresas. Normalmente, indica a necessidade de</p><p>atualização do hardware do servidor.</p><p>UNIASSELVI</p><p>1</p><p>8</p><p>5</p><p>TEMA DE APRENDIZAGEM 7</p><p>Os motivos mais comuns são decorrentes do aumento de IOPS (operações</p><p>de</p><p>entrada / saída), amplificação da capacidade da CPU / RAM e da capacidade do</p><p>disco. Em resumo, na escalabilidade vertical você pode aumentar a capacidade</p><p>do servidor (memória, storage CPU etc.).</p><p>VERTICAL HORIZONTAL</p><p>Figura 6 – Escalabilidade vertical x horizontal / Fonte: Possamai et al. (2021, p. 30).</p><p>Descrição da Imagem: a imagem apresenta duas gravuras. A primeira gravura, à esquerda, representa a esca-</p><p>labilidade vertical, com servidores agrupados um sobre o outro. A gravura à direita representa a escalabilidade</p><p>horizontal, na qual se tem computadores conectados de forma horizontal. Fim da descrição.</p><p>1</p><p>8</p><p>1</p><p>Já a escalabilidade horizontal envolve incluir mais unidades de processamento</p><p>ou máquinas físicas ao seu servidor ou banco de dados, ou seja, mais computa-</p><p>dores. A FWC afirma que “Isso envolve aumentar o número de nós no cluster e</p><p>reduzir as responsabilidades de cada nó membro, expandindo o espaço principal</p><p>e fornecendo pontos de extremidade adicionais para novas conexões” (ESCA-</p><p>LABILIDADE..., 2019, on-line).</p><p>LOCALIDADE DOS DADOS</p><p>Vamos começar analisando a Figura 8 proposta por Veras (2015), o qual afirma</p><p>que os serviços podem rodar internamente na organização, mas também podem</p><p>rodar em provedores regionais ou provedores globais.</p><p>Computação em nuvem</p><p>SaaS</p><p>PaaS</p><p>IaaS</p><p>Datacenters</p><p>Empresariais</p><p>Provedores</p><p>Globais</p><p>Provedores</p><p>Regionais</p><p>Figura 7 – Serviços de nuvem x localização / Fonte: Veras (2015 apud POSSAMAI et al., 2021, p. 31).</p><p>Descrição da Imagem: a imagem apresenta um diagrama que ilustra vários componentes associados à “com-</p><p>putação em nuvem”. Ela usa uma forma de nuvem e retângulos para representar diferentes elementos e suas</p><p>categorizações. A forma de nuvem está rotulada como “computação em nuvem”, representando o conceito geral</p><p>de computação em nuvem. Os retângulos à esquerda da imagem estão rotulados como “SaaS”, “PaaS” e “IaaS”,</p><p>indicando diferentes modelos de serviço de computação em nuvem. Os retângulos na parte inferior estão rotu-</p><p>lados como “datacenters empresariais”, “provedores regionais” e “provedores globais”, representando tipos de</p><p>provedores ou data centers envolvidos na computação em nuvem. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>8</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>A definição de onde os serviços de nuvem serão executados pode depender de</p><p>alguns fatores, desde fatores organizacionais até fatores técnicos, como a latência da</p><p>aplicação. A latência é considerada o intervalo de tempo entre a saída de um pacote</p><p>e sua entrega. Ou seja, por causa da latência, a escolha vai obrigar a aplicação a estar</p><p>mais perto do usuário. Devido às questões instrucionais, ela irá determinar onde</p><p>os dados devem ser armazenados. Ou seja, a velocidade da conexão e normas de</p><p>segurança irão influenciar na escolha. Vejamos cada uma em detalhe.</p><p>A computação em nuvem pode ser dividida em nuvem pública, privada e híbrida.</p><p>NUVEM PÚBLICA</p><p>Segundo a definição da Opus Software (COMPUTAÇÃO EM NUVEM, 2015,</p><p>p. 38) esse tipo de nuvem é oferecido pela internet por meio de um provedor</p><p>de serviços, “em que os recursos computacionais são compartilhados pelos seus</p><p>diversos clientes e o controle das instâncias, máquinas virtuais e recursos de pro-</p><p>cessamento e armazenamento ficam completamente delegados ao provedor”.</p><p>1</p><p>8</p><p>8</p><p>NUVEM PÚBLICA</p><p>NUVEM</p><p>PRIVADA</p><p>VIRTUAL</p><p>EXTERNO</p><p>INTERNO</p><p>NUVEM</p><p>PRIVADA</p><p>EMPRESA</p><p>NUVEM PRIVADA</p><p>Nuvens privadas, segundo o site Red Hat (O QUE É..., 2019), normalmente são</p><p>classificadas como ambientes de nuvem dedicados a um usuário final. É onde o</p><p>ambiente geralmente é executado por trás do firewall deste usuário. O site Red</p><p>Hat reforça, que “todas as nuvens se tornam privadas quando a infraestrutura de</p><p>TI subjacente é dedicada e o cliente tem acesso totalmente isolado a ela” (O QUE</p><p>É..., 2019, on-line).</p><p>UNIASSELVI</p><p>1</p><p>8</p><p>9</p><p>TEMA DE APRENDIZAGEM 7</p><p>MULTICLOUD</p><p>Multicloud é uma abordagem composta por mais de um serviço e de um forne-</p><p>cedor de nuvem, pública ou privada. Todas as nuvens híbridas são multiclouds,</p><p>mas nem todas as multiclouds são nuvens híbridas. As multiclouds tornam-se</p><p>nuvens híbridas quando várias nuvens estão conectadas por alguma forma de</p><p>integração ou orquestração.</p><p>NUVEM HÍBRIDA</p><p>Segundo o site Red Hat (TIPOS..., 2023, on-line), “uma nuvem híbrida é um ambien-</p><p>te de TI aparentemente único criado a partir de vários outros ambientes conectados</p><p>por redes locais (LANs), redes de área ampla (WANs), redes privadas virtuais (VPNs)</p><p>e/ou APIs”. Além disso, as características das nuvens híbridas são complexas e os re-</p><p>quisitos podem variar dependendo do profissional que atua em sua implementação.</p><p>Para compreender multicloud e a nuvem híbrida, leia o livro Fundamentos de En-</p><p>genharia de Dados de Joe Reis e Matt Housley.</p><p>https://www.google.com.br/books/edition/Fundamentos_de_Engenharia_de_</p><p>Dados/Q1fiEAAAQBAJ?hl=pt-BR&gbpv=1&dq=DIFEREN%C3%87A+ENTRE+A+MUL-</p><p>TICLOUD+E+A+NUVEM+H%C3%8DBRIDA%3F&pg=PT147&printsec=frontcover.</p><p>EU INDICO</p><p>1</p><p>9</p><p>1</p><p>https://www.google.com.br/books/edition/Fundamentos_de_Engenharia_de_Dados/Q1fiEAAAQBAJ?hl=pt-BR&gbpv=1&dq=DIFEREN%C3%87A+ENTRE+A+MULTICLOUD+E+A+NUVEM+H%C3%8DBRIDA%3F&pg=PT147&printsec=frontcover</p><p>https://www.google.com.br/books/edition/Fundamentos_de_Engenharia_de_Dados/Q1fiEAAAQBAJ?hl=pt-BR&gbpv=1&dq=DIFEREN%C3%87A+ENTRE+A+MULTICLOUD+E+A+NUVEM+H%C3%8DBRIDA%3F&pg=PT147&printsec=frontcover</p><p>https://www.google.com.br/books/edition/Fundamentos_de_Engenharia_de_Dados/Q1fiEAAAQBAJ?hl=pt-BR&gbpv=1&dq=DIFEREN%C3%87A+ENTRE+A+MULTICLOUD+E+A+NUVEM+H%C3%8DBRIDA%3F&pg=PT147&printsec=frontcover</p><p>Diversidade e interoperabilidade</p><p>Para que exista uma comunicação entre diferentes dispositivos com a nuvem é</p><p>necessária uma comunicação portável. Para isso, deve existir uma padronização</p><p>de dados por meio de protocolos.</p><p>“ Um dos principais protocolos de comunicação é o TCP/IP. O pro-</p><p>tocolo TCP/IP se utiliza de dois protocolos do modelo de referência</p><p>TCP/IP, o protocolo de transporte TCP e o protocolo de internet IP.</p><p>O protocolo IP especifica o formato dos pacotes enviados através</p><p>da internet entre aplicações Web, já o protocolo TCP especifica as</p><p>mensagens e os procedimentos que são utilizados para garantir a</p><p>transferência confiável (COMER, 2016, p. 299).</p><p>Xavier, Ferraz e Sette (2018) reforçam que mesmo que a interoperabilidade seja</p><p>uma característica fundamental nos diversos ambientes de nuvens, ainda exis-</p><p>tem muitos desafios para instalação, manutenção e operação desses ambientes</p><p>pela falta dessa interoperabilidade. Eles listam oito desses desafios que estão aqui</p><p>descritos quanto à sua motivação para ambientes de multinuvem:</p><p>REDE – CONECTIVIDADE</p><p>Gerência da infraestrutura física ou virtual de rede; endereçamento (mobilidade do</p><p>endereço IP); naming (nomes para identificar recursos nas várias nuvens); multicasting</p><p>(envio seletivo de pacotes para dispositivos em nuvens diferentes).</p><p>ECONOMIA – MERCADO</p><p>Estratégias de negociação referente ao uso de recursos de outras nuvens; preço</p><p>(definições de como comprar/vender/alugar/emprestar recursos com outras nuvens);</p><p>contabilidade e faturamento (quantificação de uso de recursos de/por terceiros e</p><p>estratégias de pagamento, pré e pós-pago).</p><p>UNIASSELVI</p><p>1</p><p>9</p><p>1</p><p>TEMA DE APRENDIZAGEM 7</p><p>PROVISIONAMENTO – DESCOBERTA</p><p>Descoberta de recursos em outras nuvens; seleção (escolha por provedores baseado</p><p>nas garantias e qualidade de serviço); alocação (estratégias de reservar recursos pre-</p><p>viamente ou sob demanda em outras nuvens).</p><p>ACORDO DE NÍVEL DE SERVIÇO (SLA)</p><p>Gerência (gerenciamento de contratos SLA pelas nuvens; acordo de nível de serviço</p><p>da federação (contrato que determina quais condições uma nuvem precisa para inte-</p><p>roperar com outras nuvens); monitoramento e dependência (verificação das nuvens</p><p>quanto o cumprimento dos contratos de SLA).</p><p>SEGURANÇA – CONFIANÇA</p><p>Garantia de confiança baseado em ranking de provadores mais confiáveis); autorização</p><p>e autenticação (acesso e ações que uma nuvem poderá usar de outra quando previa-</p><p>mente autenticada);</p><p>políticas e interoperabilidade semântica (garantia de equivalência</p><p>semântica quanto às permissões das nuvens).</p><p>AUTONOMIA E MONITORAMENTO</p><p>A autonomia corresponde à gerência autônoma dos recursos nas múltiplas nuvens, e</p><p>monitoramento à garantia de coleta de métricas de utilização em múltiplas nuvens.</p><p>PORTABILIDADE</p><p>“Portabilidade de dados (padronização de dados e de seus formatos); portabilidade de</p><p>VMs (migração de VMs entre nuvens homogêneas e heterogêneas)” (XAVIER; FERRAZ;</p><p>SETTE, 2018, p. 2).</p><p>1</p><p>9</p><p>1</p><p>Vimos que não basta decidir e armazenar as informações em um serviço de</p><p>nuvem, é preciso também decidir qual a informação que melhor se adeque ao</p><p>nosso cenário, e caso deseja mudar, como isso irá ocorrer.</p><p>Estudante, para nos aprofundarmos nas aplicações do Big Data em cloud com-</p><p>puting, bem como em seus desafios de implantação na nuvem, assista ao vídeo</p><p>A Ingestão de Dados, Processamento e Visualização dos Dados de um Big Data.</p><p>Recursos de mídia disponíveis no conteúdo digital do ambiente virtual de</p><p>aprendizagem</p><p>EM FOCO</p><p>NOVOS DESAFIOS</p><p>Você já parou para pensar quantas pessoas estão conectadas nas redes sociais</p><p>todos os dias, e a quantidade de dados que elas geram por meio das postagens,</p><p>comentários e cliques em fotos? Pois é, isso tudo está sendo armazenado, e,</p><p>como vimos em nosso estudo, o Big Data e a computação em nuvem são as fer-</p><p>ramentas que armazenam constantemente essas fotos dos nossos smartphones</p><p>e conversas pelo WhatsApp. No mundo corporativo, as empresas armazenam</p><p>dados dos seus negócios, incorporando sistemas de gestão na nuvem e arma-</p><p>zenando seus dados no Big Data.</p><p>De forma que a quantidade imensa de dados que são armazenados pode ser</p><p>utilizada com a finalidade de melhorar nossa navegação e nossa experiência, para</p><p>análise e tomada de decisão dos gestores, para apoiar pesquisa nas universidades</p><p>e empresas privadas, uma infinidade de aplicações. Assim, o mercado de trabalho</p><p>procura profissionais especializados em computação em nuvem e Big Data, que</p><p>tenham competências acerca de quais ferramentas e arquiteturas estão envolvidas</p><p>nestas tecnologias.</p><p>UNIASSELVI</p><p>1</p><p>9</p><p>1</p><p>1. Segundo o site Data Science Academy (BIG BATA..., 2024), o aumento da computação em</p><p>nuvem tem sido um precursor e facilitador para o surgimento do Big Data. Embora o Big</p><p>Data traga muitas oportunidades atraentes, as empresas também enfrentam muitos desa-</p><p>fios. Coleta dos dados, armazenamento, pesquisa, compartilhamento, análise e visualização.</p><p>Cada uma dessas tarefas requer diferentes abordagens, diferentes níveis de segurança,</p><p>infraestrutura e profissionais capacitados.</p><p>Com relação a essa abordagem de Big Data e computação em nuvem, analise as sentenças</p><p>a seguir:</p><p>I - Computação em nuvem e Big Data fornecem uma solução que é escalável e adaptável</p><p>para grandes conjuntos de dados e análise de negócios em que todos os recursos de</p><p>dados se tornam facilmente acessíveis e com custo reduzido para à organização.</p><p>II - A computação em nuvem não contém suportes necessários para extraírem do Big Data</p><p>os insights necessários para a tomada de decisão mais consciente, pois, como funcionam</p><p>de forma interdependentes, seus recursos tecnológicos de integração são insuficientes.</p><p>III - Com o Big Data, as organizações podem processar e armazenar grandes conjuntos de</p><p>dados de maneira interdependente, disponíveis tanto localmente quanto na computação</p><p>em nuvem, em que, juntos, estão transformando a forma de negócios desempenharem</p><p>suas funções.</p><p>É correto o que se afirma em:</p><p>a) I, apenas.</p><p>b) II, apenas.</p><p>c) II e III, apenas.</p><p>d) I e III, apenas.</p><p>e) I, II e III.</p><p>2. Buscar vantagens competitivas e alcançar resultados expressivos com seus investimentos</p><p>fez com que as organizações invistam em ferramentas e desenvolvimento de projetos em</p><p>Big Data para superar todos esses obstáculos de coletar, armazenar, pesquisar, compartilhar,</p><p>analisar e visualizar os dados.</p><p>No que diz respeito às oportunidades e aos benefícios na adoção de computação em nuvem</p><p>para projetos de Big Data, classifique V para as sentenças verdadeiras e F para as falsas:</p><p>AUTOATIVIDADE</p><p>1</p><p>9</p><p>4</p><p>( ) Escalabilidade com rápida expansão da infraestrutura para acomodar um novo projeto.</p><p>( ) Segurança e integrações dos dados normalmente menores do que na rede corporativa.</p><p>( ) Redução nos custos de backup de dados.</p><p>( ) Redução de custo com infraestrutura de TI para armazenamento de grandes conjuntos</p><p>de dados.</p><p>a) V – F – V – F.</p><p>b) V – F – V – V.</p><p>c) F – F – V – F.</p><p>d) V – V – F – V.</p><p>e) F – V – V – F.</p><p>3. Hoje em dia, muito se fala em computação em nuvem, ou cloud computing, e diversas em-</p><p>presas já estão migrando seus sistemas para a “nuvem”. Ou seja, os dados não ficam mais</p><p>localizados no mesmo espaço físico da empresa, isto é, usa-se a infraestrutura da internet</p><p>para acessar os recursos que estão alocados em outra localidade. Algumas características</p><p>são próprias da computação em nuvem, que define o seu conjunto de tecnologias. Uma</p><p>dessas características existentes é a capacidade de expandir e contrair a infraestrutura de</p><p>processamento conforme à demanda. Os recursos do armazenamento, processamento e me-</p><p>mória podem ser alterados ou eliminados de acordo com as alterações de picos de acesso.</p><p>Com base nas características apresentadas, assinale a alternativa correta:</p><p>a) Escalabilidade.</p><p>b) Elasticidade.</p><p>c) Adaptabilidade.</p><p>d) Heterogeneidade.</p><p>e) Disponibilidade.</p><p>AUTOATIVIDADE</p><p>1</p><p>9</p><p>5</p><p>REFERÊNCIAS</p><p>BALDISSERA, J. Integração de computação na nuvem e a internet das coisas. 2018. 27 f. Tra-</p><p>balho (Bacharelado em Sistemas de Informação) – Universidade Federal de Santa Catarina,</p><p>Florianópolis, 2018. Disponível em: http://www.inf.ufsc.br/~carlos.westphall/JuliaBaldissera.pdf.</p><p>Acesso em: 3 abr. 2024.</p><p>BIG DATA e cloud computing: desafios e oportunidades. Data Science Academy, [s. l.], 29 fev.</p><p>2024. Disponível em: http://datascienceacademy.com.br/blog/big-data-e-cloud-computing-</p><p>-desafios-e-oportunidades/. Acesso em: 3 abr. 2024.</p><p>BIG DATA streaming da informática. Informática, São Paulo, 2018. Disponível em: https://www.</p><p>informatica.com/content/dam/informatica-com/pt/collateral/data-sheet/informatica-intelli-</p><p>gent-streaming_data-sheet_3236pt.pdf. Acesso em: 3 abr. 2024.</p><p>COMER, D. E. Redes de computadores e internet. Porto Alegre: Bookman, 2016.</p><p>COMPUTAÇÃO EM NUVEM: o que você realmente precisa saber. São Paulo: Opus Software,</p><p>2015.</p><p>ENTENDA quais são as principais etapas de big data. Leucotron, [s. l.], 25 nov. 2019. Disponível</p><p>em: https://blog.leucotron.com.br/etapas-de-big-data/. Acesso em: 3 abr. 2024.</p><p>ESCALABILIDADE em cloud computing: por que ela é essencial? FWC, São Paulo, 12 set. 2019.</p><p>Disponível em: https://www.fwc.com.br/blog/cloud/escalabilidade-em-cloud-computing-</p><p>-por-que-ela-e-essencial/. Acesso em: 3 abr. 2024.</p><p>ESTILO de arquitetura de big data. Microsoft, [s. l.], 2019. Disponível em: https://docs.microsoft.</p><p>com/pt-br/azure/architecture/guide/architecture-styles/big-data. Acesso em: 3 abr. 2024.</p><p>NASSER, R. B. McCloud service framework: arcabouço para desenvolvimento de serviços ba-</p><p>seados na simulação de Monte Carlo na cloud. 2012. Tese (Mestrado em Informática) – Pontifícia</p><p>Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2012.</p><p>O QUE É uma nuvem privada? Red Hat, Brasília, DF, 6 nov. 2019. Disponível em: https://www.</p><p>redhat.com/pt-br/topics/cloud-computing/what-is-private-cloud. Acesso em:7 abr. 2021.</p><p>OLIVEIRA JUNIOR, J. C. de. Implementando uma plataforma Big Data para visualização de</p><p>dados gerados por dispositivos IoT. Revista Ubiquidade, Jundiaí, v. 2, n. 2, p. 85-111, jul./dez.</p><p>2019. Disponível em: https://revistas.anchieta.br/index.php/RevistaUbiquidade/article/down-</p><p>load/1527/1404/. Acesso em: 3 abr. 2024.</p><p>OLIVEIRA, R.; FRAGA, J.; MONTEZ, C.  Programação em sistemas distribuídos. In: X Escola de</p><p>Informática da SBC-Sul (ERI’02). Porto Alegre: Ed. Porto Alegre, 2002. v. 1. p. 39-84.</p><p>PODEROSO, C. Big data: arquitetura do ambiente. Canaltech,</p><p>[s. l.], 2014a. Disponível em: https://</p><p>canaltech.com.br/big-data/Big-Data-arquitetura-do-ambiente/. Acesso em: 3 abr. 2024.</p><p>1</p><p>9</p><p>1</p><p>REFERÊNCIAS</p><p>PODEROSO, C. Visão geral da arquitetura de Big Data. Canaltech, [s. l.], 2014b. Disponível em: ht-</p><p>tps://canaltech.com.br/big-data/Visao-geral-da-Arquitetura-de-Big-Data/. Acesso em: 3 abr.</p><p>2024.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>TIPOS de cloud computing. Red Hat, Brasília, DF, 7 ago. 2023. Disponível em: https://www.re-</p><p>dhat.com/pt-br/topics/cloud-computing/public-cloud-vs-private-cloud-and-hybrid-cloud.</p><p>Acesso em: 7 abr. 2021.</p><p>XAVIER, M. R.; FERRAZ, C. A. G.; SETTE, I. S. Kumo: um serviço para portabilidade em multi-nu-</p><p>vens heterogêneas. In: WORKSHOP DE TESES E DISSERTAÇÕES – SIMPÓSIO BRASILEIRO DE</p><p>SISTEMAS MULTIMÍDIA E WEB (WEBMEDIA), 24., 2018, Salvador. Anais [...]. Porto Alegre: Socie-</p><p>dade Brasileira de Computação, 2018. p. 25-30.</p><p>1</p><p>9</p><p>1</p><p>1. Alternativa D.</p><p>A Afirmativa I é verdadeira, já que à computação em nuvem e Big Data fornecem uma solu-</p><p>ção que é escalável e adaptável para grandes conjuntos de dados e análise de negócios. A</p><p>contratação pode ser adequada às necessidades do negócio e dimensionadas e ampliadas</p><p>conforme necessidade, como a capacidade de processamento, a velocidade e a capacidade</p><p>de transferência de dados com base na quantidade de informações processadas, isso indica</p><p>sua capacidade de escalabilidade.</p><p>A Afirmativa II está incorreta, pois o Big Data surgiu a partir do momento em que as organi-</p><p>zações se depararam com um volume e complexidade de dados muito grande e precisa-</p><p>vam realizar uma análise bem-feita desses dados, a fim de obter resposta que permitam a</p><p>geração de insights e tomadas de decisão sólidas tornando as organizações cada vez mais</p><p>competitivas.</p><p>A Afirmativa III está correta, pois o Big Data e computação em nuvem são dois conceitos</p><p>que funcionam de maneira interdependente, bem como integrados e estão transformando</p><p>a forma de negócios desempenharem suas funções.</p><p>2. Alternativa D.</p><p>A escalabilidade dá suporte às necessidades de longo prazo da empresa ou estratégicas. À</p><p>escalabilidade refere-se à capacidade de um componente de expansão de funcionalidades,</p><p>meios de utilização e capacidade de armazenamento e processamento serem alteradas,</p><p>segundo as necessidades do negócio.</p><p>À alternativa com relação à segurança, não há dúvida de que o armazenamento baseado em</p><p>nuvem é uma escolha excelente para a maioria das empresas, já que é muito flexível, não</p><p>precisa usar um sistema físico, reduzindo, assim, a preocupação com a segurança dos dados.</p><p>Com relação à redução dos custos, a computação em nuvem fornece, de maneira organiza-</p><p>da e prática, o acesso aos servidores e redes e, especialmente, com um custo reduzido, de</p><p>forma que a contratação pode ser adequada às necessidades do negócio e dimensionadas</p><p>e ampliadas conforme necessidade. Já o backup é um procedimento meio e não fim dos</p><p>serviços de nuvem e Big Data como coleta, processamento e visualização dos dados, não</p><p>sendo considerada uma redução de custo.</p><p>3. Alternativa B.</p><p>A elasticidade tem a capacidade de um sistema se adaptar às alterações de carga de traba-</p><p>lho pela alocação e liberação de recursos de maneira autônoma, de forma que, a qualquer</p><p>momento, o conjunto de recursos utilizados é o mais compatível possível com a demanda</p><p>instantânea.</p><p>GABARITO</p><p>1</p><p>9</p><p>8</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>9</p><p>9</p><p>MINHAS METAS</p><p>SEGURANÇA DA INFORMAÇÃO PARA</p><p>CLOUD COMPUTING E BIG DATA</p><p>Compreender os conceitos básicos de segurança da informação.</p><p>Apresentar os requisitos de segurança.</p><p>Entender as estratégias de contingência.</p><p>Compreender as ameaças crescentes.</p><p>Compreender as diferenças entre domínio administrativo e domínio operacional.</p><p>Entender os sistemas de detecção de intrusão.</p><p>Apresentar tipos de sistemas de detecção de intrusão.</p><p>T E M A D E A P R E N D I Z A G E M 8</p><p>1</p><p>1</p><p>1</p><p>INICIE SUA JORNADA</p><p>Olá, estudante! Vamos começar nossa jornada desvendando a segurança da</p><p>informação para a cloud computing e Big Data.</p><p>Já sabemos que a computação em nuvem tem como objetivo prover acesso</p><p>sob demanda para um pool de recursos computacionais, sendo que estes podem</p><p>ser liberados rapidamente. Essa rápida liberação ocorre já que o ambiente é dinâ-</p><p>mico e facilmente escalável. De forma que a principal motivação para computa-</p><p>ção em nuvem é que, a partir de serviços prestados por terceiros, se eliminam as</p><p>preocupações de gerenciamento de tecnologia de informação local. Isso significa</p><p>que a computação em nuvem oferece benefícios em relação à mobilidade, esca-</p><p>labilidade, disponibilidade e implantação de sistemas computacionais.</p><p>Já em um processo de transferência, bem como armazenamento, os usuá-</p><p>rios podem criptografar dados confidenciais em seu banco de dados e, ainda,</p><p>na memória com a chave pública do destinatário pretendido e, posteriormente,</p><p>descriptografá-los utilizando sua chave privada criptografada em memória, en-</p><p>tretanto, a grande questão dentro de segurança é a confiança que tem que haver</p><p>do usuário no prestador de serviço de cloud computing, que, para executar e</p><p>processar os dados, precisa descriptografá-los. A segurança da informação precisa</p><p>considerar muitos fatores, não sendo um problema de solução única, portanto,</p><p>sem uma gestão, não existe igualdade de segurança em toda à organização, e, ain-</p><p>da, sem um processo padrão estabelecido, algumas equipes ignoram a segurança.</p><p>É necessário compreender os princípios e pilares de segurança da informação no</p><p>contexto da computação em nuvem. Na prática, somente o uso de políticas de</p><p>segurança da informação e aplicação e conscientização de todos da organização</p><p>e fornecedores de serviços é possível mitigar todas as ameaças e riscos contra</p><p>à informação. É necessário sempre um olhar crítico no ambiente profissional</p><p>onde você poderá estar inserido, observando sempre as questões da segurança</p><p>da informação. Pense nisso!</p><p>Nossa jornada de segurança da informação com o Big Data e a computação</p><p>em nuvem apenas começou, e essas considerações são um convite para com-</p><p>preendermos os principais conceitos e requisitos de segurança da informação,</p><p>bem como as ameaças crescentes e os sistemas de detecção de intrusos.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 8</p><p>DESENVOLVA SEU POTENCIAL</p><p>CONCEITOS BÁSICOS DE SEGURANÇA DA INFORMAÇÃO</p><p>Segundo Fontes (2006) e Lyra (2008), a segurança da informação é uma área de</p><p>conhecimento que protege a informação por meio de ações e normas que preci-</p><p>sam ser cumpridas. Desse modo, Fontes (2006, p. 11) define:</p><p>“ A segurança da informação é definida como um conjunto de orien-</p><p>tações, normas, procedimentos, políticas e demais ações que tem</p><p>por objetivo proteger o recurso à informação, possibilitando que o</p><p>negócio da organização e a sua missão seja alcançada.</p><p>Para conhecer mais a respeito da segurança da informação com o Big Data e a</p><p>computação em nuvem, é necessário conhecer a certificação digital e criptografia.</p><p>Ouça nosso podcast. Recursos de mídia disponíveis no conteúdo digital do am-</p><p>biente virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>VAMOS RECORDAR?</p><p>Agora vamos recordar a segurança da informação para os sistemas em nuvem.</p><p>Você já parou para pensar como suas mensagens instantâneas ou transações online</p><p>conseguem viajar pelo ciberespaço sem serem interceptadas por olhares curiosos?</p><p>A resposta está em uma palavra: criptografia e certificação digital de documentos</p><p>digitais. Leia o artigo Certificação Digital e Arquivologia: benefícios e aplicações.</p><p>1</p><p>1</p><p>1</p><p>Agora, vamos analisar um item importante do processo de segurança que é a im-</p><p>plantação de uma política de segurança. A seguir, você pode visualizar as etapas</p><p>principais para elaboração adequada e segura de uma política organizacional.</p><p>DESENVOLVIMENTO DA POLÍTICA</p><p>A definição dos requisitos corporativos da política de segurança da informação, bem</p><p>como o estabelecimento de padrões para a documentação.</p><p>APROVAÇÃO</p><p>DA POLÍTICA</p><p>O gerenciamento da fase de identificação das necessidades da política até a autoriza-</p><p>ção da política final.</p><p>IMPLEMENTAÇÃO DA POLÍTICA</p><p>A solicitação e o recebimento do apoio executivo. Nesta etapa é elaborado um progra-</p><p>ma de conscientização de segurança corporativa.</p><p>CONFORMIDADE COM A POLÍTICA</p><p>Avaliação da conformidade e da efetividade da política implementada, bem como</p><p>elaborar ações corretivas para a não conformidade.</p><p>MANUTENÇÃO DA POLÍTICA</p><p>A realização de revisões formais da política e fundamentar um processo de gestão de</p><p>mudanças.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 8</p><p>É essencial, portanto, que seja abordada a hierarquia de documentos dentro</p><p>de uma organização, considerando principalmente a segurança da informação</p><p>(CARVALHO, 2017; FERREIRA, 2019). A hierarquia possibilita à organização a</p><p>apresentação dos documentos de segurança implementados ou aqueles que estão</p><p>na fase de planejamento (Figura 1).</p><p>Registros</p><p>Instruções de Trabalho</p><p>Procedimentos</p><p>Política</p><p>Manual</p><p>Figura 1 – Exemplificação de hierarquia de documentos</p><p>Fonte: https://bit.ly/36Xdgld. Acesso em: 3 abr. 2024.</p><p>Descrição da Imagem: a imagem apresenta uma pirâmide dividida em cinco partes, de cima para baixo: manual,</p><p>política, procedimentos, instruções de trabalho e registros. Fim da descrição.</p><p>Agora, vamos compreender os principais conceitos que estão inclusos na for-</p><p>mulação de uma política organizacional. Podemos, conforme Fontes (2008) e</p><p>Sêmola (2014), considerar os seguintes conceitos da segurança para garantir a</p><p>proteção da informação:</p><p>1</p><p>1</p><p>4</p><p>CONFIABILIDADE</p><p>A informação deve ser acessada e usada somente por aqueles que precisam dela para</p><p>efetuar suas atividades na organização, por isso deve existir uma prévia autorização.</p><p>INTEGRIDADE</p><p>A informação deve ser correta, verdadeira e ainda não pode estar corrompida.</p><p>DISPONIBILIDADE DA INFORMAÇÃO</p><p>A informação deve ser acessível para garantir o funcionamento do negócio e para que</p><p>seja atingido os objetivos propostos.</p><p>LEGALIDADE</p><p>O uso da informação precisa estar de acordo com as leis aplicáveis, licenças e contratos.</p><p>AUDITABILIDADE</p><p>O acesso e o uso da informação precisam ser registrados para identificar quem fez o</p><p>acesso e o que foi realizado com a informação.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 8</p><p>Para que as informações sejam protegidas, é essencial que se tenha claro os pilares</p><p>da segurança (Figura 2) primordiais para a proteção dos dados, possibilitando</p><p>um bom funcionamento das infraestruturas (FONTES, 2006; FONTES, 2008;</p><p>FERREIRA, 2019).</p><p>Desse modo, os padrões de segurança mostram as soluções adequadas para pro-</p><p>blemas recorrentes, bem como servem de modelo (FONTES, 2008; CARVALHO,</p><p>2017; FERREIRA, 2019).</p><p>O uso de padrões de segurança é uma estratégia que pode ser aplicada aos</p><p>processos de desenvolvimento de software, com objetivo de torná-los confiáveis</p><p>por meio da inserção de atividades que implementem a segurança de acordo com</p><p>a solução descrita no padrão (FONTES, 2008; SÊMOLA, 2014).</p><p>De acordo com Fontes (2006; 2008), Sêmola (2014) e Ferreira (2019), outros</p><p>conceitos fundamentais para a segurança da informação são:</p><p>Integridade</p><p>Confidenciabilidade</p><p>Disponibilidade</p><p>Segurança da Informação</p><p>P</p><p>r</p><p>o</p><p>c</p><p>e</p><p>s</p><p>s</p><p>o</p><p>s</p><p>T</p><p>e</p><p>c</p><p>n</p><p>o</p><p>l</p><p>o</p><p>g</p><p>i</p><p>a</p><p>P</p><p>e</p><p>s</p><p>s</p><p>o</p><p>a</p><p>s</p><p>Figura 2 – Pilares da segurança</p><p>Fonte: http://www.bluminformatica.com.br/images/artigoFabio.png. Acesso em: 3 abr. 2024.</p><p>Descrição da Imagem: a imagem apresenta os elementos fundamentais da segurança da informação — integri-</p><p>dade, confidencialidade e disponibilidade — apoiados por processos, tecnologia e pessoas. Visualmente transmite</p><p>como esses componentes trabalham juntos para garantir a segurança da informação. Fim da descrição.</p><p>1</p><p>1</p><p>1</p><p>AMEAÇA</p><p>Causa potencial de um incidente indesejado, resultando em dano para um sistema ou</p><p>organização. Pode ser ainda um agente externo ao ativo de informação se aproveitan-</p><p>do das vulnerabilidades para romper a confidencialidade, integridade ou disponibilida-</p><p>de da informação.</p><p>VULNERABILIDADE</p><p>Fragilidade de um ativo ou de um determinado grupo de ativos que pode ser explora-</p><p>da por ameaças.</p><p>IMPACTOS DE INCIDENTES</p><p>Potenciais prejuízos provocados aos negócios por fragilidades na segurança. Os</p><p>prejuízos acarretam perdas de recursos financeiros e profissionais, bem como a dete-</p><p>rioração da imagem da organização no mercado.</p><p>PRIVACIDADE</p><p>Proteção das informações e a sua utilização de modo adequado por meio da autori-</p><p>zação do cliente. Desse modo, uma maior quantidade de informações armazenadas</p><p>resulta em um maior investimento para garantir a segurança delas, portanto, muitas in-</p><p>formações armazenadas podem gerar um alto custo para a organização em detrimento</p><p>dos benefícios do armazenamento. É essencial verificar a relação do custo x benefício,</p><p>sendo necessário uma análise de quais informações trazem vantagem competitiva.</p><p>IDENTIFICAÇÃO</p><p>Identificar o usuário dentro do sistema, ou seja, um usuário para uma pessoa. Esta</p><p>prática possibilita a identificação do responsável por uma ação efetuada dentro da</p><p>aplicação por meio da trilha de auditoria.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 8</p><p>REQUISITOS DE SEGURANÇA</p><p>Os requisitos de segurança são definidos como necessidades do software para</p><p>atender às políticas regulatórias e institucionais de uma organização. Desse modo,</p><p>a definição dos requisitos de segurança é realizada pelos engenheiros de sistemas</p><p>em conjunto com os usuários (SÊMOLA, 2014; FERREIRA, 2019).</p><p>Assim, os requisitos de segurança de software precisam englobar as necessida-</p><p>des de segurança da organização definidas nas políticas organizacionais. O que se</p><p>percebe como ponto fundamental no delineamento dos requisitos de segurança é</p><p>AUTENTICAÇÃO</p><p>Prova que o usuário é ele mesmo, pois ele possui a identidade de acesso na aplicação.</p><p>O processo pode sofrer melhorias utilizando a autenticação multifator.</p><p>AUTORIZAÇÃO</p><p>Garantir que o usuário possua autorização concedida pelo cliente da aplicação a aces-</p><p>so às informações inseridas nela.</p><p>RESPONSABILIZAÇÃO</p><p>Garante que a ação executada possa ser atribuída a uma determinada pessoa ou sistema.</p><p>ASSURANCE</p><p>Garante que os controles de segurança foram implementados, avaliados e testados.</p><p>1</p><p>1</p><p>8</p><p>o reconhecimento das ameaças que o software está sujeito. Para isso, considera-se</p><p>as políticas de alto nível da organização para determinar a relevância de cada uma</p><p>das ameaças (SÊMOLA, 2014; CARVALHO, 2017; FERREIRA, 2019). Os requisi-</p><p>tos podem ser alinhados conforme as fontes, ou seja, um conjunto particular de</p><p>princípios, objetivos e os requisitos do negócio para o processamento da informa-</p><p>ção, tendo os seguintes tipos (FONTES, 2008; SÊMOLA, 2014; FERREIRA, 2019):</p><p>■ Fonte da análise/avaliação de riscos considera os objetivos e as estra-</p><p>tégias globais do negócio da organização. Mediante análise e avaliação de</p><p>riscos, são indicadas as ameaças aos ativos, bem como as vulnerabilidades</p><p>destes. Após esta etapa, é efetuada uma estimativa da probabilidade de ocor-</p><p>rência das ameaças e ainda o potencial do impacto causado ao negócio.</p><p>■ Fonte legal considera a legislação vigente; regulamentação, estatutos, e</p><p>cláusulas contratuais que a organização, parceiros comerciais, contratados</p><p>e provedores de serviços possuem.</p><p>O risco é considerado como algo que pode ou não acontecer, mas se aconte-</p><p>cer terá impactos negativos ao projeto em relação aos custos, prazos, qualidade,</p><p>tempo ou satisfação do usuário (SÊMOLA, 2014; CARVALHO, 2017). Um risco</p><p>pode ter uma causa definida ou várias causas e, se acontecer, pode gerar um ou</p><p>vários impactos (FONTES, 2008). O risco possui duas dimensões, no caso de sua</p><p>ocorrência (FONTES, 2008; SÊMOLA, 2014; FERREIRA, 2019):</p><p>■ Probabilidade de sua ocorrência está ligada à causa raiz. As ações</p><p>direcionadas sobre a causa do risco afetam a probabilidade de o risco</p><p>não acontecer.</p><p>■ Impacto no projeto está associado ao efeito. As ações sobre o efeito do</p><p>risco afetam o impacto.</p><p>A identificação de riscos gera uma</p><p>seleção de ocorrências que podem ameaçar ou</p><p>oferecer vantagens em relação aos objetivos do projeto. A causa de um risco pode</p><p>ser um requisito, uma restrição ou ainda uma condição que gere resultados nega-</p><p>tivos ou positivos (SÊMOLA, 2014; CARVALHO, 2017). Durante o processo de</p><p>levantamento, terão os riscos conhecidos que foram identificados resultando em</p><p>uma resposta, entretanto, alguns riscos não serão gerenciados, o que será preciso</p><p>que a equipe elabore um plano de contingência (SÊMOLA, 2014; CARVALHO,</p><p>2017; FERREIRA, 2019).</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 8</p><p>Vejamos, agora, a relação das principais estratégias de contingência adaptado</p><p>de Fontes (2008) e Lyra (2008).</p><p>HOT-SITE</p><p>Responsável para entrar em ação de modo imediato, sendo que o tempo de operacio-</p><p>nalização está atrelado ao tempo de tolerância à falha do objeto.</p><p>WARM-SITE</p><p>Utilizado em objeto com uma tolerância maior à paralisação, sendo que pode ficar</p><p>sujeito à indisponibilidade por mais tempo, até o retorno operacional da atividade.</p><p>COLD-SITE</p><p>Uma alternativa de contingência considerando um ambiente com mínimos recursos</p><p>(infraestrutura e telecomunicações).</p><p>REALOCAÇÃO DE OPERAÇÃO</p><p>Desviar a atividade que foi atingida pelo evento que causou a quebra da segurança</p><p>para outro ambiente físico, link ou equipamento, pertencentes à mesma organização.</p><p>BUREAU DE SERVIÇOS</p><p>Transferir o processo de operacionalização da atividade atingida para um ambiente</p><p>terceirizado. Esta estratégia é muito interessante.</p><p>1</p><p>1</p><p>1</p><p>AMEAÇAS CRESCENTES</p><p>Um grande ponto a ser considerado é que as organi-</p><p>zações precisam avaliar o risco e as opções de segu-</p><p>rança antes de mover seus sistemas e aplicativos para</p><p>o ambiente de computação em nuvem. Deve-se, então,</p><p>avaliar quais dados e serviços serão transferidos para o</p><p>ambiente externo da organização se a nuvem for pública</p><p>(FONTES, 2008; ALI et al., 2020).</p><p>Os principais tipos de ativos (assets) suportados pela</p><p>nuvem são:</p><p>■ Dados.</p><p>■ Aplicações.</p><p>■ Processos.</p><p>■ Serviços.</p><p>Esses ativos/recursos precisam ser analisados para de-</p><p>terminar sua importância para o negócio da empresa</p><p>(ALI et al., 2020).</p><p>Durante o processo de análise, é preciso fazer uma</p><p>avaliação dos impactos gerados caso ocorra a quebra de</p><p>algum requisito de segurança. É preciso considerar que</p><p>parte das transações e informações podem ser mantidas</p><p>dentro da empresa, ou seja, no ambiente privado (FON-</p><p>TES, 2008; TIGRE; NORONHA, 2013; ALI et al., 2020).</p><p>É importante destacar que, na computação em</p><p>nuvem se abre mão de alguns controles, enquanto se</p><p>mantêm as responsabilidades acerca do gerenciamento</p><p>operacional. Então, vamos entender as diferenças entre</p><p>os domínios administrativo e operacional a seguir, adap-</p><p>tado de Sanchez e Cappellozza (2012), Tigre e Noronha</p><p>(2013) e Ali et al. (2020):</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 8</p><p>Domínio administrativo</p><p>As ações legais por violação de contrato, gestão de proteção de dados sensíveis</p><p>quando o usuário ou o provedor podem ser os responsáveis por erros ou falhas</p><p>e a influência que a localização física da nuvem pode trazer para os aspectos</p><p>citados anteriormente.</p><p>■ O gerenciamento administrativo de risco refere-se à capacidade da orga-</p><p>nização gerenciar e mensurar o risco introduzido pela adoção do modelo</p><p>de computação em nuvem.</p><p>■ Assuntos legais relacionados ao uso da nuvem englobam a proteção da</p><p>informação e sistemas computacionais e contramedidas para remediar</p><p>as violações de segurança e privacidade.</p><p>■ A interoperabilidade entre provedores e consumidores precisa ser avalia-</p><p>da para que haja a migração correta dos dados.</p><p>Domínio operacional</p><p>Os procedimentos usados para implementar a segurança, políticas de continui-</p><p>dade do negócio e recuperação de desastres.</p><p>■ A correta operação da tecnologia de virtualização na computação em</p><p>nuvem é fundamental para mitigação do risco operacional.</p><p>■ Definição dos métodos para detectar incidentes e fornecer notificações</p><p>ou respostas com as respectivas contramedidas, gerando o tratamento</p><p>correto e a avaliação de incidentes.</p><p>O que você pode perceber é que a privacidade é essencial para a computação</p><p>em nuvem, seja em termos de conformidade legal ou confiança do consumidor.</p><p>A proteção da privacidade precisa ser avaliada em todas as fases de um projeto</p><p>para esse ambiente. Sendo assim, existem muitas perguntas que surgem acerca</p><p>da privacidade conforme a evolução desta tecnologia. A seguir, observe algumas</p><p>dessas perguntas fundamentais.</p><p>1</p><p>1</p><p>1</p><p>ACESSO</p><p>Todos os proprietários dos dados possuem o direito de saber quais informações serão</p><p>mantidas ou podem solicitar a remoção dessas informações.</p><p>QUESTIONAMENTOS:</p><p>Se um usuário exerce o seu direito de solicitar ao provedor a eliminação dos seus da-</p><p>dos, será possível garantir que todas as suas informações foram eliminadas da nuvem?</p><p>ADERÊNCIA</p><p>Um ambiente de nuvem pode ter inúmeras jurisdições, no caso de dados armazena-</p><p>dos em vários países.</p><p>QUESTIONAMENTOS:</p><p>Quais são os requisitos de conformidade à privacidade neste ambiente? Quais leis,</p><p>regulamentos, normas ou compromissos contratuais regem o uso das informações?</p><p>Qual o foro competente para regular esse ambiente ou as informações armazenadas</p><p>nele?</p><p>ARMAZENAMENTO</p><p>A legislação sobre privacidade pode limitar a capacidade dos provedores em transferir</p><p>determinadas informações para outros países.</p><p>QUESTIONAMENTOS:</p><p>Em qual parte da nuvem as informações estão armazenadas? Estão em um centro de</p><p>dados de outro país?</p><p>RETENÇÃO</p><p>QUESTIONAMENTOS:</p><p>Por quanto tempo a informação pode ser retida na nuvem? Quais as políticas de re-</p><p>tenção e descarte dessas informações? Quem rege essas políticas, o consumidor que</p><p>armazena as informações ou o provedor de computação em nuvem?</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 8</p><p>DESTRUIÇÃO</p><p>A disponibilidade por meio de replicação pode gerar problemas quando as informa-</p><p>ções forem destruídas.</p><p>QUESTIONAMENTOS:</p><p>Como deve ocorrer a destruição das informações que identificam o consumidor?</p><p>Como garantir que não foram conservadas cópias? Será que as réplicas da informação</p><p>foram destruídas ou apenas tornaram-se inacessíveis?</p><p>AUDITORIA</p><p>QUESTIONAMENTOS:</p><p>Como as organizações consumidoras podem monitorar e verificar se seus fornecedo-</p><p>res estão cumprindo os requisitos de privacidade?</p><p>VIOLAÇÃO DA PRIVACIDADE</p><p>Os riscos e ameaças à privacidade diferem de acordo com o cenário de uso da com-</p><p>putação em nuvem.</p><p>QUESTIONAMENTOS:</p><p>Em casos confirmados de violação, quais os responsáveis pela notificação, processos?</p><p>Como determinar a culpa de cada entidade envolvida?</p><p>1</p><p>1</p><p>4</p><p>SISTEMAS DE DETECÇÃO DE INTRUSÃO</p><p>Intrusão é denominada como qualquer ação ou conjunto de ações que objetivem</p><p>comprometer a integridade, confidencialidade e disponibilidade de um sistema</p><p>(FONTES, 2008; SÊMOLA, 2014; FERREIRA, 2019). Considerando uma defi-</p><p>nição mais abrangente, temos a intrusão como qualquer violação à política de</p><p>segurança de um sistema (SILVA NETTO; SILVEIRA, 2007; CORTEZ; KUBOTA,</p><p>2013; SÊMOLA, 2014).</p><p>O processo de detecção de intrusão é definido como o monitoramento de</p><p>eventos que ocorrem em um sistema computacional ou rede de sistemas compu-</p><p>tacionais, analisando-os em busca de problemas de segurança (ORATTO; DIAS,</p><p>2014; MARCHISOTTI; JOIA; CARVALHO, 2019).</p><p>Vejamos, agora, os tipos de sistemas responsáveis pela detecção e intrusão</p><p>adaptado de Fontes (2008), Oratto e Dias (2014), Sêmola (2014), e Marchisotti,</p><p>Joia e Carvalho (2019):</p><p>DETECÇÃO POR USO INDEVIDO (MISUSE DETECTION)</p><p>• São sistemas que procuram por padrões de ataques e intrusões previamente</p><p>conhecidos.</p><p>• Considera-se que existam ataques com características precisas, bem alinhadas e</p><p>que podem ser facilmente codificadas em um sistema especialista.</p><p>DETECÇÃO POR ANOMALIA (ANOMALY DETECTION)</p><p>• Buscam determinar ou elaborar modelos que representam o comportamento</p><p>normal ou, ainda, o esperado do sistema computacional ou rede em análise, e</p><p>alertam sempre que desvios nesse comportamento esperado forem</p><p>encontrados.</p><p>• Considera-se que as atividades de intrusão fazem parte do subconjunto compos-</p><p>to por atividades anômalas.</p><p>• O conjunto de atividades maliciosas será igual ao conjunto de atividades anôma-</p><p>las. Então, nessa situação, o sistema não gerará nenhum falso positivo e nenhum</p><p>falso negativo.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 8</p><p>DETECÇÃO PARA HOSTS</p><p>• Os sistemas que monitoram e procuram por intrusões em um único computador</p><p>(host).</p><p>• São sistemas especialistas que monitoram chamadas de funções do sistema ope-</p><p>racional, acesso a arquivos de considerados críticos, uso de recursos como pro-</p><p>cessador, disco e memória procurando por padrões que determinem um ataque</p><p>ou intrusão, ou por desvios significativos em relação ao perfil de uso considerado</p><p>normal e regular.</p><p>DETECÇÃO PARA REDES (NIDS)</p><p>• Sistemas que monitoram segmentos ou segmentos de rede procurando por co-</p><p>nexões e/ou pacotes maliciosos.</p><p>• São compostos por um módulo de captura de pacotes que trafegam na rede.</p><p>• O módulo opera configurando a placa de rede utilizada para monitoração em</p><p>modo de funcionamento promíscuo. Uma placa de rede em modo de funciona-</p><p>mento normal recebe todos os pacotes até detectar o endereço de destino dele.</p><p>Se o pacote não estiver endereçado ao próprio computador, ou não for um pa-</p><p>cote broadcast ou multicast endereçado a um grupo ao qual aquele computador</p><p>pertença, ele será descartado imediatamente.</p><p>SISTEMAS HÍBRIDOS</p><p>• Os sistemas híbridos usam como fonte de informações de análise e avaliação</p><p>tanto características relativas a aquele computador específico, quanto pacotes</p><p>transmitidos e recebidos em rede.</p><p>CENTRALIZADO</p><p>• Possuem em sua arquitetura, um ou mais módulos de monitoração que são</p><p>responsáveis pela coleta dos dados a serem analisados e que transmitem todos</p><p>esses dados coletados para um módulo central responsável pela análise, detec-</p><p>ção e resposta.</p><p>• Este modelo, conhecido como agente-gerente em sistemas de gerência, pode</p><p>ser empregado independentemente da classificação quanto à estratégia e esco-</p><p>po dos módulos agentes.</p><p>1</p><p>1</p><p>1</p><p>Vimos que a computação em nuvem (cloud computing) tem por objetivo</p><p>prover acesso sob demanda para um pool de recursos computacionais, sen-</p><p>do que estes podem ser liberados rapidamente. A principal motivação para</p><p>computação em nuvem é que a partir de serviços prestados por terceiros se</p><p>eliminam as preocupações de gerenciamento de tecnologia de informação</p><p>local. Também vimos que a segurança da informação é uma área de conheci-</p><p>mento que protege a informação por meio de ações e normas que precisam</p><p>ser cumpridas.</p><p>HIERÁRQUICO</p><p>• Os sistemas hierárquicos apresentam o modelo agente-gerente, mas permitindo</p><p>sua configuração em vários níveis distintos.</p><p>• Agentes que coletam informações referentes a rede (NIDS) podem estar subordi-</p><p>nados ao módulo gerente de redes. Agentes que analisam computadores especí-</p><p>ficos (HIDS) podem estar subordinados ao módulo gerente de hosts.</p><p>DISTRIBUÍDO</p><p>• Os sistemas de detecção de intrusão distribuídos permitem que parte (ou todo)</p><p>do processamento de análise e detecção seja realizada pelo módulo (agente) de</p><p>coleta.</p><p>• Distribuem, assim, a inteligência do sistema entre os módulos gerentes e os diver-</p><p>sos agentes que compõem o sistema.</p><p>Estudante, se aprofunde mais em segurança da informação para cloud computing</p><p>e Big Data, bem como em sua importância e princípios e pilares da segurança, as-</p><p>sistindo ao vídeo A Engenharia Social para a Nuvem, que corresponde ao método</p><p>de ataque digital relacionado a manipulação psicológica ou erro humano. Recursos</p><p>de mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 8</p><p>NOVOS DESAFIOS</p><p>Agora, vamos apresentar os novos desafios dos analistas de dados que impactam</p><p>a infraestrutura digital em relação à segurança da informação diante das novas</p><p>tecnologias que irão impactar a infraestrutura, especificamente questões rela-</p><p>cionadas à nuvem.</p><p>Dessa forma, podemos resumir o nosso estudo em quatro partes: conceitos</p><p>básicos de segurança da informação, requisitos de segurança, ameaças crescen-</p><p>tes e sistemas de detecção de intrusão. Esses temas promovem um conjunto de</p><p>orientações, normas, procedimentos, políticas e ações que tem por objetivo pro-</p><p>teger o recurso “informação”, como um importante ativo organizacional. Com a</p><p>proliferação e adoção acelerada de tecnologias nativas de cloud em praticamente</p><p>todas as camadas de infraestrutura, é preciso estar ciente da necessidade desse</p><p>conjunto de orientações de segurança da informação.</p><p>Nesse sentido, o profissional de dados deve se atentar aos requisitos de segu-</p><p>rança que as novas tecnologias que convergem. Os requisitos de segurança são</p><p>definidos como as necessidades do software para atender às políticas regulatórias</p><p>e institucionais de uma organização. Desse modo, a definição dos requisitos de</p><p>segurança é realizada pelos engenheiros de sistemas em conjunto com os usuá-</p><p>rios. De forma que o profissional de dados deve compreender que o risco é con-</p><p>siderado como algo que pode ou não acontecer, mas, se acontecer, terá impactos</p><p>negativos ao projeto em relação aos custos, prazos, qualidade, tempo ou satisfação</p><p>do usuário. Ficando alerta à instrução maliciosa por meio do monitoramento de</p><p>eventos que ocorrem nos sistemas ou redes de computadores, analisando-os em</p><p>busca de problemas de segurança.</p><p>1</p><p>1</p><p>8</p><p>1. Intrusão é denominada como qualquer ação ou conjunto de ações que objetivem com-</p><p>prometer a integridade, confidencialidade e disponibilidade de um sistema. Considerando</p><p>uma definição mais abrangente, temos a intrusão como qualquer violação à política de</p><p>segurança de um sistema.</p><p>Dessa forma, assinale a alternativa INCORRETA acerca dos tipos de intrusão que os sistemas</p><p>utilizam:</p><p>a) A Detecção por uso indevido são sistemas que procuram por padrões de ataques e</p><p>intrusões previamente conhecidas.</p><p>b) Detecção por anomalia consideram que existem ataques com características precisas,</p><p>bem alinhadas e que podem ser facilmente codificadas em um sistema especialista.</p><p>c) Detecção para hosts são sistemas que monitoram e procuram por intrusões em um</p><p>único computador.</p><p>d) Os sistemas híbridos usam como fonte de informações de análise e avaliação tanto</p><p>características relativas àquele computador específico, quantos pacotes transmitidos e</p><p>recebidos em rede.</p><p>e) Detecção centralizada são responsáveis pela coleta dos dados a serem analisados e</p><p>que transmitem todos estes dados coletados para um módulo central responsável pela</p><p>análise, detecção e resposta.</p><p>2. A computação em nuvem (cloud computing) tem por objetivo prover acesso sob demanda</p><p>para um pool de recursos computacionais, sendo que estes podem ser liberados rapida-</p><p>mente.</p><p>Com relação a esta abordagem de Big Data e computação em nuvem, analise as sentenças</p><p>a seguir:</p><p>I - A principal motivação para computação em nuvem é que, a partir de serviços prestados</p><p>por terceiros, se eliminam as preocupações de gerenciamento de tecnologia de infor-</p><p>mação local.</p><p>II - A computação em nuvem oferece benefícios em relação à mobilidade, escalabilidade,</p><p>disponibilidade e implantação de sistemas computacionais.</p><p>III - No processo de transferência, o usuário pode criptografar os dados confidenciais em</p><p>seu banco de dados e, posteriormente, descriptografá-los usando sua chave pública</p><p>criptografia em memória.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>9</p><p>É correto o que se afirma em:</p><p>a) I, apenas.</p><p>b) III, apenas.</p><p>c) I e II, apenas.</p><p>d) II e III, apenas.</p><p>e) I, II e III.</p><p>3. Os requisitos de segurança são definidos como as necessidades do software para atender</p><p>as políticas regulatórias e institucionais de uma organização. Desse modo, a definição dos</p><p>requisitos de segurança é realizada pelos engenheiros de sistemas em conjunto com os</p><p>usuários.</p><p>Com relação ao exposto, classifique V para as sentenças verdadeiras e F para as falsas:</p><p>( ) Os requisitos de segurança de software precisam englobar</p><p>as necessidades de segu-</p><p>rança da organização definidas nas políticas organizacionais.</p><p>( ) O risco é considerado como algo que pode ou não acontecer, mas se acontecer terá</p><p>impactos negativos ao projeto em relação aos custos, prazos, qualidade, tempo ou sa-</p><p>tisfação do usuário.</p><p>( ) Um risco pode ter uma causa definida ou várias causas e, se acontecer, pode gerar um</p><p>ou vários impactos.</p><p>( ) A causa de um risco pode ser um requisito, uma restrição ou ainda uma condição que</p><p>gere resultados negativos ou positivos.</p><p>Assinale a alternativa que apresenta a sequência correta.</p><p>a) V – V – V – V.</p><p>b) V – F – V – V.</p><p>c) F – F – V – V.</p><p>d) V – V – F – V.</p><p>e) F – V – V – F.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>1</p><p>REFERÊNCIAS</p><p>ALI, A. M. et al. Cloud computing based unsupervised fault diagnosis system in the context of</p><p>Industry 4.0. Gest Prod , São Carlos, v. 27, n. 3, p. 53-78, ago. 2020.</p><p>CARVALHO, E. T. R. de. Criação de um guia de boas práticas para desenvolvimento seguro.</p><p>2017. 105 f. Monografia (Bacharel em Engenharia de Software) – Universidade de Brasília (UnB),</p><p>Faculdade UnB Gama (FGA), Brasília, 2017.</p><p>CORTEZ, I. S.; KUBOTA, L. C. Contramedidas em segurança da informação e vulnerabilidade</p><p>cibernética: evidência empírica de empresas brasileiras. Rev Adm , São Paulo, v. 48, n. 4, p. 757-</p><p>769, dez. 2013.</p><p>FERREIRA, D. G. Arquitetura segura no desenvolvimento de software: abordagem à plataforma</p><p>digital U.OPENLAB. 2019. 75 f. Dissertação (Mestrado em Segurança Informática) – Departamen-</p><p>to de Ciência de Computadores, Faculdade de Letras da Universidade do Porto, Porto, 2019.</p><p>FONTES, E. Praticando a segurança da informação. Rio de Janeiro: Brasport, 2008.</p><p>FONTES, E. Segurança da informação. São Paulo: Saraiva, 2006.</p><p>LYRA, M. R. Segurança e auditoria em sistemas de informação. Rio de Janeiro: Ciência Moder-</p><p>na, 2008.</p><p>MARCHISOTTI, G. G.; JOIA, L. A.; CARVALHO, R. B. de. A representação social de cloud computing</p><p>pela percepção dos profissionais brasileiros de tecnologia da informação. Rev Adm Empres ,</p><p>São Paulo, v. 59, n. 1, p. 16-28, fev. 2019.</p><p>ORATTO, R.; DIAS, E. D. Security information in production and operations: a study on audit trails</p><p>in database systems. JISTEM, São Paulo, v. 11, n. 3, p. 717-734, dez. 2014.</p><p>POSSAMAI, A. A. et al. Aplicação de big data em cloud. Indaial: UNIASSELVI. 2021.</p><p>SANCHEZ, O. P.; CAPPELLOZZA, A. Antecedentes da adoção da computação em nuvem: efeitos</p><p>da infraestrutura, investimento e porte. Rev Adm Contemp , Curitiba, v. 16, n. 5, p. 646-663, out.</p><p>2012.</p><p>SÊMOLA, M. Gestão da segurança da informação: uma visão executiva. 2. ed. São Paulo: Else-</p><p>vier, 2014.</p><p>SILVA NETTO, A. da; SILVEIRA, M. A. P. da. Gestão da segurança da informação: fatores que in-</p><p>fluenciam sua adoção em pequenas e médias empresas. JISTEM, São Paulo, v. 4, n. 3, p. 375-397,</p><p>2007.</p><p>TIGRE, P. B.; NORONHA, V. B. Do mainframe à nuvem: inovações, estrutura industrial e modelos</p><p>de negócios nas tecnologias da informação e da comunicação. Rev Adm , São Paulo, v. 48, n. 1,</p><p>p. 114-127, jan./mar. 2013.</p><p>1</p><p>1</p><p>1</p><p>1. Alternativa B.</p><p>A detecção anômala está incorreta, pois esses tipos de sistemas de intrusão buscam de-</p><p>terminar ou elaborar modelos que representem o comportamento normal ou, ainda, o es-</p><p>perado do sistema computacional ou rede em análise e alertam sempre que desvios neste</p><p>comportamento esperado forem encontrados.</p><p>2. Alternativa C.</p><p>A Afirmativa I é verdadeira, já que a principal motivação para computação em nuvem é que</p><p>a partir de serviços prestados por terceiros se eliminam as preocupações de gerenciamento</p><p>de tecnologia de informação local.</p><p>A Afirmativa II é verdadeira, pois isso significa que a computação em nuvem oferece bene-</p><p>fícios em relação à mobilidade, escalabilidade, disponibilidade e implantação de sistemas</p><p>computacionais, já que as principais características que um serviços de nuvem devem</p><p>atender, devido à demanda do negócio do cliente.</p><p>À Afirmativa III está incorreta, já que em um processo de transferência, bem como</p><p>armazenamento, os usuários podem criptografar dados confidenciais em seu banco de dados</p><p>e, ainda, na memória com a chave pública do destinatário pretendido e, posteriormente,</p><p>descriptografá-los utilizando sua chave privada criptografada em memória.</p><p>3. Alternativa A.</p><p>A sentença “Os requisitos de segurança de software precisam englobar as necessidades</p><p>de segurança da organização definidas nas políticas organizacionais” é verdadeira, já que o</p><p>ponto fundamental no delineamento dos requisitos de segurança é o reconhecimento das</p><p>ameaças que o software está sujeito, para isso, considera-se as políticas de alto nível da</p><p>organização para determinar a relevância de cada uma das ameaças</p><p>A sentença “risco é considerado como algo que pode ou não acontecer, mas se acontecer terá</p><p>impactos negativos ao projeto em relação aos custos, prazos, qualidade, tempo ou satisfação</p><p>do usuário” é verdadeira, já a identificação de riscos gera uma seleção de ocorrências que</p><p>podem ameaçar ou oferecer vantagens em relação aos objetivos do projeto.</p><p>A sentença “Um risco pode ter uma causa definida ou várias causas e, se acontecer, pode</p><p>gerar um ou vários impactos” é verdadeira, pois quando esses riscos são identificados durante</p><p>o processo de levantamento, terão uma resposta (um ou mais impactos).</p><p>A sentença “A causa de um risco pode ser um requisito, uma restrição ou ainda uma condição</p><p>que gere resultados negativos ou positivos” é verdadeira, pois os requisitos de segurança são</p><p>definidos como as necessidades do software para atender às políticas regulatórias e institu-</p><p>cionais de uma organização. Pode ser também uma restrição ou uma condição de segurança.</p><p>GABARITO</p><p>1</p><p>1</p><p>1</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>1</p><p>1</p><p>MINHAS METAS</p><p>FERRAMENTAS DE</p><p>CLOUD COMPUTING</p><p>Compreender o conceito de Amazon Web Services (AWS).</p><p>Conhecer os principais recursos da AWS.</p><p>Conhecer os recursos de machine learning da AWS.</p><p>Conhecer os principais recursos e serviços da Microsoft Azure.</p><p>Conhecer as aplicações de Big Data e armazenamento da Microsoft Azure.</p><p>Conhecer os recursos de machine learning da Microsoft Azure.</p><p>Compreender o deploy de aplicações da Microsoft Azure.</p><p>Entender o que é Google Cloud?</p><p>T E M A D E A P R E N D I Z A G E M 9</p><p>1</p><p>1</p><p>4</p><p>INICIE SUA JORNADA</p><p>Agora, chegou o momento de aprofundarmos nossos estudos nas mais conhe-</p><p>cidas plataformas de cloud, como a Amazon Web Services (AWS), a Microsoft</p><p>Azure e a Google Cloud.</p><p>Como você já deve saber, a utilização da computação em nuvem está sendo</p><p>muito utilizada e consolidada em várias empresas e organizações dos mais varia-</p><p>dos segmentos, como uma poderosa ferramenta para agilizar respostas às diversas</p><p>demandas de mercado (TEBALDI, 2016). Para que essa utilização possa ser reali-</p><p>zada com agilidade e com eficiência, é necessário que sejam definidos medições e</p><p>planejamento das necessidades x benefício x custo, definindo quais ferramentas e</p><p>plataformas de cloud computing são viáveis para se alcançar estratégias eficazes</p><p>no negócio. Assim, é possível que os profissionais consigam utilizar a plataforma</p><p>selecionada de serviços com alta disponibilidade e alto poder de processamento</p><p>de dados, sendo possível, ainda, a escalabilidade.</p><p>Para isso, é necessário destacar em nosso estudo as principais plataformas do</p><p>mercado. Uma das empresas que se destaca nesse ramo é a Amazon, a qual possui</p><p>a plataforma Amazon Web Services (AWS) (TEBALDI, 2016). Outra importante</p><p>plataforma é a Microsoft Azure, uma plataforma de computação em nuvem pro-</p><p>jetada pela Microsoft, que ajuda no desenvolvimento, armazenamento de dados,</p><p>hospedagem de serviços, implantação e gerenciamento de aplicativos e serviços,</p><p>guardando esses aplicativos em data centers da própria Microsoft.</p><p>Já a plataforma Google Cloud compreende um conjunto de recursos lógicos</p><p>e físicos, o que inclui computadores e unidades de disco rígido, como, também,</p><p>recursos virtuais e máquinas virtuais (VMs), localizados nos data centers da Goo-</p><p>gle</p><p>interior contém um servidor PaaS. saindo desse servidor uma balão escrito “Server, operating system</p><p>support software”. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 1</p><p>O Instituto Nacional de Padrões e Tecnologia (NIST – National Institute of Stan-</p><p>dards and Technology) define IaaS como sendo o fornecimento de processamen-</p><p>to, armazenamento, redes e outros recursos de computação para o consumidor</p><p>poder implantar e executar operações de sistemas ou executar aplicações (VAC-</p><p>CA, 2017). Neste caso, o consumidor não controla a infraestrutura da nuvem,</p><p>mas possui controle de sistemas operacionais, do armazenamento e de aplicativos</p><p>implantados e, em alguns casos, possui certos controles de componentes de rede,</p><p>como o firewall, por exemplo (VACCA, 2017).</p><p>Por meio do IaaS, muitos dos recursos que são necessários em um data center</p><p>físico, para tarefas de gerenciamento e manutenção, assim como para infraestru-</p><p>tura física de servidores, como discos de armazenamento, manutenção de rede,</p><p>dentre outros, não são necessários na nuvem (VACCA, 2017). Todos os recursos</p><p>disponibilizados na nuvem são disponibilizados como uma coleção de serviços,</p><p>os quais podem ser acessados inclusive por meio de automatização, com scripts</p><p>ou ainda a partir de aplicações de web services (VACCA, 2017).</p><p>Dessa forma, os desenvolvedores possuem a tarefa de implementar os aplica-</p><p>tivos necessários, assim como os administradores precisam realizar a instalação</p><p>e gerenciamento de aplicações utilizadas de terceiros, e com isso não existe mais</p><p>o ciclo de compra de hardware, em que teria que realizar a solicitação de com-</p><p>pra, aguardar a chegada dos equipamentos, e, então, o trabalho de instalação e</p><p>configuração (VACCA, 2017).</p><p>Figura 6 – Exemplo de modelo PAAS / Fonte: Jamsa (2013, p. 7).</p><p>Descrição da Imagem: a imagem apresenta três estações “Enterprise” e uma estão “User” conectadas à uma</p><p>ilustração de uma nuvem. No interior na nuvem tem-se dois servidores, dos quais sai um balão escrito “Physical</p><p>servers”. Tem também, no interior da nuvem, dois dispositivos de discos IAAS e um balão escrito “Data storage</p><p>devices”. Fim da descrição.</p><p>Enterprise</p><p>User</p><p>Iaas</p><p>Physical</p><p>servers</p><p>Data-storage</p><p>devices</p><p>1</p><p>4</p><p>SERVIÇO DE TRANSMISSÃO AO VIVO</p><p>O streaming é um serviço da computação em nuvem e pode ser compreendido por</p><p>ser um modo de transmissão de vídeo contínuo, enviando dados do provedor (fonte)</p><p>diretamente para o receptor, assistindo ao vídeo em tempo de execução, porém, a ação</p><p>de um cliente de baixar (download) um arquivo de vídeo para depois assistir não</p><p>é streaming, sendo conhecida por mídia não streaming (KANNAN et al., 2016).</p><p>Desse modo, televisão ou rádio pertencem à categoria streaming e Compact</p><p>Discs (CDs) pertencem à categoria mídia não streaming ou non-streaming. Com</p><p>o passar dos anos, e principalmente atualmente, com a evolução dos equipamen-</p><p>tos de hardware, com recursos cada vez melhores, além da banda de internet e</p><p>com o aumento da capacidade de armazenamento, inclusive em nuvem, o strea-</p><p>ming se tornou muito utilizado (KANNAN et al., 2016).</p><p>Transferência RTSP</p><p>A transferência de dados por streaming necessita</p><p>que dados sejam rapidamente enviados e na</p><p>ordem correta, se utiliza de protocolos especiais</p><p>como o RTSP (Real-Time Streaming Protocol),</p><p>RTP (Real-Time Transfer Protocol) e outros. Estes</p><p>três protocolos trabalham em conjunto com</p><p>TCP/IP, o qual converte os grandes arquivos de</p><p>dados em pacotes enviando-os para rotas da</p><p>rede (KANNAN et al., 2016).</p><p>Arquitetura P2P</p><p>A arquitetura Peer-to-Peer (P2P) – streaming –</p><p>tem sido muito utilizada para distribuir conteúdo</p><p>multimídia ao vivo para inúmeros usuários da internet,</p><p>permitindo a visualização a qualquer momento</p><p>(KANNAN et al., 2016). Alguns serviços de streaming</p><p>de vídeo integram os benefícios da tecnologia P2P e</p><p>de computação em nuvem – cloud-P2P (PATHAN;</p><p>MONOWAR; FADLULLAH, 2013).</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 1</p><p>Serviço OTT</p><p>O serviço chamado de OTT (Over-The-Top) é um</p><p>tipo de transmissão ao vivo, no qual emissoras</p><p>de televisão utilizam o serviço de transmissão</p><p>de seus programas ao vivo pela internet. Este</p><p>serviço de compartilhamento de dados de</p><p>imagens de televisão possibilita atingir uma</p><p>grande parcela da população que utiliza mais</p><p>a internet para uma infinidade de atividades,</p><p>incluindo assistir jornais, filmes, séries, dentre</p><p>outros (FONSECA; BOUTABA, 2015).</p><p>Virtualização</p><p>À virtualização, se utiliza de máquina virtual, que</p><p>pode ser compreendida por ser um programa</p><p>que permite rodar outro sistema operacional</p><p>dentro dele e, este programa roda dentro do</p><p>sistema operacional principal do computador,</p><p>isto é, dentro de um software específico de</p><p>virtualização é possível instalar um outro</p><p>sistema operacional (KANNAN et al., 2016). Na</p><p>computação em nuvem, uma das principais</p><p>tecnologias emergindo é a virtualização, a qual</p><p>auxilia na criação de um ambiente em nuvem,</p><p>onde os recursos são otimizados por meio do</p><p>compartilhamento (CHANDRASEKARAN, 2015).</p><p>A NUVEM E BIG DATA</p><p>Agora vamos explorar onde a computação em nuvem pode ser aplicada e suas</p><p>perspectivas de utilização. Como vimos, a computação em nuvem se utiliza do Big</p><p>Data para a análise de dados. Esta técnica de obtenção de resultados está sendo</p><p>utilizada por pesquisadores de todo o mundo, que, com base em seus resultados,</p><p>são tomadas decisões importantes para os negócios de organizações. Desse modo,</p><p>1</p><p>1</p><p>se uma análise dessas é realizada com grande quantidade de dados, terabytes ou</p><p>petabytes, por exemplo, é chamada de análise de Big Data, termo recente utilizado</p><p>na computação, sendo que um exemplo de onde pode ser gerada essa enorme</p><p>quantidade de dados é a internet (CHANDRASEKARAN, 2015).</p><p>Para exemplificar o uso de Big Data na internet, pode ser tomada como</p><p>exemplo uma rede social, na qual o administrador deseja saber algo de um usuá-</p><p>rio, como o tipo de postagem que ele mais possui interesse, e, para chegar a essa</p><p>informação, pode ser realizada análise de todos os dados desse usuário. Outro</p><p>exemplo é uma companhia de seguros, a qual deseja fazer um ranking dos me-</p><p>lhores clientes no sentido de bons pagadores, se baseando em seus pagamen-</p><p>tos mensais, podendo chegar a esse resultado fazendo uso de análise de dados</p><p>(CHANDRASEKARAN, 2015).</p><p>Computação em nuvem (cloud computing) refere-se ao fornecimento de</p><p>recursos (hardware e software) compartilhados por meio de uma rede, geralmen-</p><p>te a internet, onde os usuários podem acessar as aplicações hospedadas em servi-</p><p>dores remotos utilizando browsers, desktops e até aplicativos móveis (CASTRO;</p><p>FERRARI, 2016, p. 3). A computação em nuvem permite que qualquer parte da</p><p>TI esteja armazenada e disponível na internet, oferecendo, em última análise, um</p><p>modelo mais flexível que se alinha melhor com os objetivos de negócios. Essa</p><p>nova estrutura de TI adaptável pode tornar muito mais fácil gerir questões de</p><p>custos, escala e agilidade (TURBAN; VOLONINO, 2013).</p><p>O armazenamento de dados em nuvem permite realizar a análise de dados,</p><p>processo de análise de dados brutos ou não processados que permite obter conclu-</p><p>sões, o qual pode ser realizado em</p><p>nuvem pública ou privada, cujo</p><p>resultado pode ser um ou vá-</p><p>rios valores ou ainda um gráfico</p><p>(CHANDRASEKARAN, 2015).</p><p>Um exemplo para a nuvem é</p><p>o Microsoft Azure, o qual pode</p><p>ser descrito como um ambiente</p><p>de desenvolvimento e também</p><p>servidor de hospedagem para</p><p>soluções SaaS, sendo confiável e</p><p>flexível, sendo que este ambiente</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 1</p><p>possui três níveis: IaaS, PaaS e o SaaS (BAI, 2015). Outro exemplo é o Google</p><p>Cloud Platform, o qual permite que desenvolvedores implementem aplicativos</p><p>em sua infraestrutura escalável e confiável, sendo suas infraestruturas de software</p><p>o MapReduce, BigTable e Dremel, inovações para desenvolvimento industrial</p><p>(CHANDRASEKARAN, 2015).</p><p>Uma das características do Google Cloud Platform são suas máquinas virtuais,</p><p>seu armazenamento</p><p>por todo o mundo. A questão é, como decidir entre as diversas plataformas</p><p>de cloud computing para atender o negócio de uma organização?</p><p>Para conhecer mais de computação em nuvem, vamos apresentar as principais</p><p>características dos sistemas distribuídos que envolvem a cloud computing em</p><p>nosso podcast. Recursos de mídia disponíveis no conteúdo digital do ambiente</p><p>virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 9</p><p>DESENVOLVA SEU POTENCIAL</p><p>CONCEITO DE AMAZON WEB SERVICES (AWS)</p><p>A Amazon Web Services (AWS) foi criada no ano de 2006, e, conforme já men-</p><p>cionado, pode ser compreendida como um provedor de serviços que oferece</p><p>recursos de computação por meio da internet, serviço chamado de computação</p><p>em nuvem (TEBALDI, 2016).</p><p>A Amazon Web Services (AWS) pode ser entendida por ser uma plataforma</p><p>de serviços em nuvem que disponibiliza diversos recursos computacionais, a qual</p><p>possui altos níveis de segurança.</p><p>VAMOS RECORDAR?</p><p>Para recordar a computação em nuvem, assista ao vídeo O Que é Computação</p><p>em Nuvem com a AWS? https://www.youtube.com/watch?v=OFIVUTmc2cs&ab_</p><p>channel=AmazonWebServices.</p><p>Esta plataforma disponibiliza os mais variados recursos de computação, a AWS</p><p>pode ser compreendida por ser uma coleção de serviços de computação remota</p><p>ou, ainda, serviços web, os quais, juntos, fundem-se em uma plataforma de com-</p><p>putação em nuvem, a qual é disponibilizada por meio da internet pela Amazon.</p><p>com (CHANDRASEKARAN, 2015). Dentre os serviços mais conhecidos, podem ser</p><p>citados o Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Queue</p><p>Service (Amazon SQS) e Amazon S3 (CHANDRASEKARAN, 2015).</p><p>APROFUNDANDO</p><p>Nesse sentido, a Amazon EC2 pode ser descrita como sendo um serviço de com-</p><p>putação, enquanto a Amazon SQS e Amazon S3 são definidas por serviços de su-</p><p>porte (CHANDRASEKARAN, 2015). Os serviços disponibilizados pela AWS são</p><p>1</p><p>1</p><p>1</p><p>https://www.youtube.com/watch?v=OFIVUTmc2cs&ab_channel=AmazonWebServices</p><p>https://www.youtube.com/watch?v=OFIVUTmc2cs&ab_channel=AmazonWebServices</p><p>anunciados por fornecerem uma grande capacidade de recursos de computação,</p><p>disponibilizados em muitos servidores, sendo muito mais rápido e barato do que</p><p>possuir um data center físico (CHANDRASEKARAN, 2015). Ainda, segundo</p><p>Chandrasekaran (2015), os data centers da Amazon são localizados em vários</p><p>locais do mundo.</p><p>A utilização de infraestrutura em nuvem é uma grande mudança de para-</p><p>digma para uma empresa, pois, no modelo tradicional de infraestrutura, se uma</p><p>empresa possui servidores locais, dentro de um data center, com a necessidade do</p><p>aumento de recursos de computação, existe a possibilidade de investimento em</p><p>equipamentos, como servidor, storage ou rede, por exemplo (ESPADOTO, 2014).</p><p>Como você estudará a seguir, a Amazon Web Services (AWS) disponibiliza</p><p>alternativas que podem resolver a todos esses problemas, e pode ser dito que, com</p><p>ao uso da AWS, é como se existisse uma infraestrutura “infinita” de recursos para o</p><p>cliente, permitindo alocar recursos sempre que necessário, de forma rápida e barata.</p><p>Principais vantagens da AWS</p><p>Uma das vantagens em se utilizar a AWS (Amazon Web Services) é a possibilidade</p><p>de selecionar a região do servidor onde a aplicação será executada, o que torna o</p><p>tempo de resposta menor e, inclusive, já existe data center da AWS no Brasil (AN-</p><p>TUNES, 2016). Ainda, segundo Antunes (2016), esses data centers são divididos por:</p><p>REGIÕES</p><p>Representa a região do mundo onde o data center está localizado, isto é, um local físico</p><p>do mundo onde estão agrupados determinados data centers, sendo que cada região da</p><p>AWS é constituída de várias AZs (Availability Zones) ou zonas de disponibilidade.</p><p>ZONA DE DISPONIBILIDADE</p><p>É cada data center dentro de uma região, os quais são independentes, mas que</p><p>possuem uma conexão muito rápida entre eles e data centers de outras regiões. Cada</p><p>grupo de data centers lógicos é chamado de zona de disponibilidade. Cada AZ possui</p><p>energia, refrigeração e segurança física independentes umas das outras, estando</p><p>conectadas por meio de redes redundantes de latência ultrabaixa.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 9</p><p>Em uma região existem vários servidores que são responsáveis por realizar a</p><p>distribuição de conteúdo com velocidades muito rápidas, além de taxa de latência</p><p>baixa, sendo que estes servidores são chamados de pontos de presença (edge</p><p>locations) (ANTUNES, 2016).</p><p>Dentre todos os provedores de serviços em nuvem, a AWS é a que oferece</p><p>uma presença global muito mais extensa, sendo que a AWS está abrindo novas</p><p>regiões por todo o mundo (ANTUNES, 2016). A AWS mantém várias regiões</p><p>geográficas, incluindo regiões da América do Norte, África do Sul, América do</p><p>Sul, Europa, China, Ásia-Pacífico e Oriente Médio (ANTUNES, 2016).</p><p>Vejamos algumas vantagens da AWS e seu serviço de computação em nuvem:</p><p>NÃO HÁ INTERRUPÇÕES DE SERVIÇO</p><p>A queda de um servidor não indica que um serviço foi interrompido, pois, neste mo-</p><p>delo de nuvem, um recurso pode ser desalocado assim que não for mais útil. Além</p><p>disso, o modelo chamado de “pague pelo que usar”, permite que o custo da operação</p><p>de algum serviço seja reduzido, em comparação com um servidor físico (CHANDRA-</p><p>SEKARAN, 2015).</p><p>DEMANDA TEMPORÁRIA</p><p>Caso seja necessário um servidor para suprir uma determinada demanda temporária,</p><p>no modelo tradicional de infraestrutura de servidores, existe a exigência de ser rea-</p><p>lizada a contratação de um servidor por um determinado período mínimo de tempo</p><p>(CHANDRASEKARAN, 2015).</p><p>ELASTICIDADE</p><p>Um cliente pode realizar a alocação de quantas máquinas forem necessárias para a</p><p>realização de algum processo pesado, e quando não for mais útil, realizar a desaloca-</p><p>ção dessa infraestrutura que não é mais útil, sendo pago somente o que foi utilizado</p><p>(CHANDRASEKARAN, 2015).</p><p>1</p><p>1</p><p>8</p><p>Vejamos, agora, os principais recursos disponíveis na AWS:</p><p>CUSTO X BENEFÍCIO</p><p>Uma das vantagens é o custo x benefício, que, dentre as vantagens de se utilizar</p><p>os serviços de infraestrutura de TI em nuvem da Amazon Web Service, uma das</p><p>principais é o baixo custo, o qual é variável, isto é, a cobrança é realizada apenas dos</p><p>recursos que foram utilizados e não como uma mensalidade fixa. Com esta vantagem</p><p>de não haver despesas iniciais, assim como compromissos a longo prazo de uma</p><p>mensalidade, e por ser possível a flexibilidade de capacidade de recursos (memória</p><p>RAM, processadores, servidores) conforme necessidade do cliente, torna-se mais fácil</p><p>a realização de um melhor planejamento financeiro.</p><p>ACESSO RÁPIDO</p><p>Por ser um serviço em nuvem, o acesso do cliente ao serviço é rápido e instantâneo,</p><p>podendo ser realizado por desktop ou smartphone. Alterações nas configurações da</p><p>infraestrutura física em nuvem, pelo administrador da conta, podem ser realizadas</p><p>por alguns passos simples e, dessa forma, sem ter que aguardar um hardware novo</p><p>chegar, além do custo ser muito menor.</p><p>RECURSOS HÍBRIDOS</p><p>A possibilidade que sejam utilizados recursos híbridos, utilizando serviços locais e em</p><p>nuvem, tornando possível a realização de testes em seus serviços, para que o cliente</p><p>não precise realizar a migração de seus serviços de uma só vez, mas aos poucos.</p><p>EXPANSÃO GEOGRÁFICA VIRTUAL</p><p>A expansão geográfica virtual é atendida pela AWS globalmente e, com isso, o cliente</p><p>não precisa se preocupar em manter espaços físicos.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 9</p><p>PRINCIPAIS RECURSOS DA AWS</p><p>A Amazon Web Services (AWS) oferece uma ampla varie-</p><p>dade de serviços em nuvem globais, que, segundo Tebaldi</p><p>(2016), podem ser:</p><p>■ Computação.</p><p>■ Armazenamento.</p><p>■ Bancos de dados.</p><p>■ Análises.</p><p>■ Redes.</p><p>■ Dispositivos móveis.</p><p>■ Ferramentas para desenvolvedores.</p><p>■ Ferramentas para gerenciamento.</p><p>Todos esses serviços possibilitam às empresas serem mais</p><p>produtivas e à utilizarem seu foco em assuntos que real-</p><p>mente lhe interessam, isto é, seu negócio, sendo o objetivo</p><p>principal da AWS ser um provedor global de serviços, re-</p><p>duzindo</p><p>custos e oferecendo escalabilidade computacio-</p><p>nal (CHANDRASEKARAN, 2015). A Amazon Web Ser-</p><p>vices possui mais de 200 serviços disponíveis, dos quais, a</p><p>seguir, serão listados apenas os principais.</p><p>Elastic Compute Cloud (EC1)</p><p>A Amazon EC2 (Elastic Compute Cloud) é um provedor</p><p>de serviço do tipo IaaS oferecido pela AWS, sendo um dos</p><p>maiores provedores líderes de IaaS no mercado atual, ali-</p><p>mentado por uma gigante infraestrutura para administrar</p><p>os negócios de varejo, oferecendo um ambiente de com-</p><p>putação virtual (CHANDRASEKARAN, 2015). Vejamos</p><p>algumas características do EC2:</p><p>1</p><p>1</p><p>1</p><p>HOSPEDAGEM DE DADOS</p><p>Serviço de hospedagem de dados que possui alta escalabilidade, possuindo uma</p><p>interface simples de administração, cujo gestor de TI possui o controle da forma como</p><p>recursos são contratados e gerenciados (TEBALDI, 2016).</p><p>ESCALABILIDADE</p><p>Sempre que houver a necessidade por parte do utilizador do serviço, o ambiente</p><p>computacional contratado pode ser alterado para atendimento de demandas novas,</p><p>evitando, assim, necessidades de custos e tempo desnecessários com configuração e</p><p>instalação de hardware como em servidores locais (TEBALDI, 2016).</p><p>CONFIGURAÇÃO DOS RECURSOS</p><p>Possui uma variedade grande de máquinas virtuais, sistemas operacionais e pacotes</p><p>de software para serem selecionados pelo cliente, sendo possível a escolha do tipo de</p><p>máquina virtual desejada por meio de interface web (CHANDRASEKARAN, 2015). Nes-</p><p>se sentido, o próprio usuário pode alterar as configurações (capacidade de recursos e</p><p>outras características) da máquina virtual, utilizando as interfaces web, esse é um dos</p><p>motivos desse serviço ser chamado de elastic.</p><p>VIRTUALIZAÇÃO E DIFERENTES INSTÂNCIAS</p><p>Segundo Chandrasekaran (2015), a infraestrutura do EC2 é virtualizada, à qual utiliza o</p><p>software de virtualização conhecido por hipervisor Xen, e diferentes tipos de instância,</p><p>fornecidos da seguinte forma:</p><p>• Instância padrão: adequada para a maioria dos aplicativos.</p><p>• Micro instâncias: adequada para aplicativos de baixo rendimento.</p><p>• Instâncias de alta memória: adequadas para aplicativos de alto rendimento.</p><p>• Instâncias de alta CPU: adequadas para aplicativos de computação intensiva.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 9</p><p>Outro recurso interessante do Elastic Compute Cloud (EC2) é a possibilidade</p><p>de os usuários realizarem à distribuição e equilíbrio automático do tráfego do</p><p>aplicativo de entrada entre as instâncias em execução, baseado em métricas, como</p><p>contagem de solicitações e latência de solicitações, por meio do recurso Elastic</p><p>Load Balancing (ELB) (CHANDRASEKARAN, 2015).</p><p>Na Figura 1, é apresentada uma estrutura de instâncias EC2, nela você pode</p><p>analisar duas instâncias, as quais são acessadas pelo VPC, de forma segura, e a</p><p>comunicação entre elas balanceada pelo Load Balancer.</p><p>AWS</p><p>Users Internet</p><p>gateway</p><p>Load</p><p>balancer</p><p>EC2 instance</p><p>Subnet 1</p><p>EC2 instance</p><p>Subnet 2</p><p>Auto Scaling</p><p>group</p><p>VPC</p><p>A</p><p>va</p><p>ila</p><p>b</p><p>ili</p><p>ty</p><p>Z</p><p>on</p><p>e</p><p>A</p><p>A</p><p>va</p><p>ila</p><p>b</p><p>ili</p><p>ty</p><p>Z</p><p>on</p><p>e</p><p>B</p><p>Figura 1 – Alta disponibilidade de instâncias EC2</p><p>Fonte: https://bit.ly/3HFcgyG. Acesso em: 3 abr. 2024.</p><p>Descrição da Imagem: a imagem representa um diagrama com dois retângulos concêntricos e dois retângulos</p><p>mais internos. O mais externo representa a nuvem AWS que é acessada pelos usuários por meio da internet</p><p>gateway. O retângulo intermediário representa uma área de nuvem controlada pelo load balancer, que distribui</p><p>os recursos EC1 e EC2 (retângulos mais internos). O EC1 é a Instância 1 (Subnet 1). O EC2 é a Instância 2 (Subnet</p><p>2). Tem-se também uma área tracejada na vertical (retângulos), denominada VPC (acesso) que transpassa o EC1</p><p>e EC2. Tem-se, também, duas áreas na horizontal (retângulos) que cobrem cada instância. A availability zone A</p><p>cobre a instância EC1. A availability zone B cobre a instância EC2. Fim da descrição.</p><p>1</p><p>1</p><p>1</p><p>Por último, mais um recurso disponibilizado é o Elastic Block Storage (EBS), o</p><p>qual permite o armazenamento persistente, sendo que o EBS fornece armazena-</p><p>mento altamente confiável e seguro (CHANDRASEKARAN, 2015). Dessa forma,</p><p>os volumes de armazenamento podem ser utilizados para realizar a inicialização</p><p>de uma instância do Amazon EC2.</p><p>Simple Storage Service (S1)</p><p>O serviço conhecido por Amazon Simple Storage Service, ou também Amazon</p><p>S3, possui a funcionalidade de armazenamento para a internet, o qual foi proje-</p><p>tado para tornar a computação em escala da web mais simples para os desenvol-</p><p>vedores, além de fornecer uma interface de serviço web que pode ser utilizada</p><p>para armazenamento e recuperação de dados (CHANDRASEKARAN, 2015).</p><p>No Amazon S3, a mesma infraestrutura escalonável, confiável, segura, rápida</p><p>e econômica que é utilizada pela Amazon para execução de sua rede global de</p><p>sites, é disponibilizada para os desenvolvedores, aumentando os benefícios de</p><p>escalabilidade (CHANDRASEKARAN, 2015).</p><p>Para conhecer mais do Amazon S3, acesse Armazenamento S3 – Simple Storage</p><p>Service. https://aws.amazon.com/pt/s3/.</p><p>EU INDICO</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>https://aws.amazon.com/pt/s3/</p><p>TEMA DE APRENDIZAGEM 9</p><p>RECURSOS DE MACHINE LEARNING DO AWS</p><p>Figura 2 – Veículos identificados por meio de Machine Learning</p><p>Descrição da Imagem: a imagem apresenta veículos transitando em um rodovia. Tem-se árvores ao redor da</p><p>rodovia. Os veículos estão contornados por quadrados amarelos. Fim da descrição.</p><p>O machine learning corresponde, por meio de algoritmos computacionais supor-</p><p>tados por cálculos estatísticos, à busca por padrões em uma massa de dados, como</p><p>por exemplo o Big Data. Se a máquina conseguir aprender a identificar novos</p><p>padrões de dados, além de uma base treinada, como na Figura 2, por exemplo,</p><p>placas de veículos e suas letras e números, ela é inteligente.</p><p>Amazon EMR</p><p>O Amazon EMR possui ferramentas incorporadas para machine learning, como</p><p>o Apache Spark MLlib, TensorFlow e o Apache MXNet para algoritmos.</p><p>1</p><p>1</p><p>4</p><p>Apache Spark MLlib</p><p>O MLlib é uma biblioteca da Apache Spark, cujo objetivo é o aprendizado de má-</p><p>quina (machine learning), permitindo tornar o aprendizado de máquina prático,</p><p>escalonável e mais fácil.</p><p>Amazon Rekognition Video</p><p>O Amazon Rekognition Video pode ser entendido como sendo um serviço</p><p>de análise de vídeo com aprendizado de máquina (machine learning), o qual</p><p>consegue detectar objetos, cenas, rostos, textos, atividades e conteúdos ina-</p><p>propriados nos vídeos armazenados no Amazon S3. Além disso, esse serviço</p><p>fornece recursos para análise facial, o que lhe permite a pesquisa da face de</p><p>uma pessoa, com alta precisão de detecção e, com isso, ele consegue entender</p><p>o movimento de pessoas nos vídeos.</p><p>Para a criação de um índice para permitir que se consiga realizar uma análise</p><p>posterior do vídeo, cada retorno de detecção é vinculado a um timestamp, e para o</p><p>caso de objetos, faces e textos, o Rekognition Video retorna coordenadas da caixa</p><p>delimitadora, a qual pode ser descrita como sendo a localização da detecção no</p><p>quadro do vídeo.</p><p>CONCEITOS DA MICROSOFT AZURE</p><p>A plataforma Microsoft Azure disponibiliza uma série de recursos computacionais.</p><p>Na área da tecnologia, esses recursos se referem a instrumentos de apoio para a</p><p>realização de algum serviço. Alguns recursos disponíveis na Microsoft Azure são:</p><p>■ suporte a vários sistemas operacionais;</p><p>■ linguagens de programação;</p><p>■ frameworks;</p><p>■ ferramentas;</p><p>■ dispositivos;</p><p>■ banco de dados.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 9</p><p>A Azure permite também a criação de aplica-</p><p>tivos LOB (linha de negócios), com uma in-</p><p>terface moderna, desenvolvidos com rapidez</p><p>e a um baixo custo. As interfaces (front-end)</p><p>podem ser feitas com o sistema “arrasta e sol-</p><p>ta” para distribuir os componentes na tela. O</p><p>aproveitamento de componentes predefinidos</p><p>aumenta o desempenho de desenvolvimento.</p><p>Os aplicativos podem ser criados e implanta-</p><p>dos com facilidade em sistemas operacionais</p><p>iOS, Android, Windows ou na própria web.</p><p>Existe um ganho de produtividade de 74% no</p><p>desenvolvimento de aplicativos, além de ter</p><p>acesso a soluções prontas de chatbots, mapas</p><p>com sensibilidade geográfica, dentre outras</p><p>(DOCUMENTAÇÃO..., 2024).</p><p>Tipos de serviço</p><p>Os serviços disponibilizados pela platafor-</p><p>ma Azure podem auxiliar na produtividade,</p><p>economia e crescimento da empresa peran-</p><p>te o mercado. Com um catálogo de serviços</p><p>que oferece soluções para desenvolvimento,</p><p>soluções em inteligência artificial, análise de</p><p>dados, nuvem híbrida e infraestrutura, além</p><p>de serviços para governança e segurança (SO-</p><p>LUÇÕES..., 2024). Dessa forma, encontramos</p><p>diversos tipos de serviços oferecidos pela Mi-</p><p>crosoft Azure, assim, para facilitar a sua com-</p><p>preensão, Carutasu et al. (2016) os classificou</p><p>em três categorias, computador, serviços de</p><p>dados e redes. Vejamos cada um deles:</p><p>1</p><p>1</p><p>1</p><p>Analisando todos esses serviços, você ainda pode estar se perguntando, qual o ganho</p><p>real de uma empresa ao usar a Microsoft Azure? A tecnologia Azure pode potenciali-</p><p>zar os serviços operacionais e administrativos, além de fornecer uma grande economia</p><p>em recursos de infraestrutura e, também, economia de tempo automatizando tarefas</p><p>rotineiras. Fornece também um ganho em segurança, em performance do sistema e</p><p>em produtividade em todos os seus departamentos. Utilizando o conceito de Big Data,</p><p>permite a coleta e análise de grandes quantidades de dados, permite a inserção de BI</p><p>(Business Intelligence), facilita no acompanhamento de indicadores de desempenho</p><p>e ajuda no controle de gestões financeiras, operacionais e administrativas.</p><p>AZURE VIRTUAL MACHINE</p><p>Permite configurar máquinas virtuais na nuvem com imagens do Windows Server ou</p><p>Linux, dessa forma você pode optar por imagens que já estão na galeria da Azure ou</p><p>usar suas próprias imagens.</p><p>AZURE CLOUD SERVICES</p><p>Os serviços de nuvem permitem que você não se preocupe em gerenciar a infraes-</p><p>trutura e foque em outras atividades como desenvolvimento, implantação e gerencia-</p><p>mento de outros aplicativos.</p><p>AZURE WEB SITES</p><p>Ajuda na instalação de aplicativos web em estrutura de nuvem escalável, podendo ser</p><p>dimensionado os recursos ou número de nós.</p><p>AZURE MOBILE SERVICES PROVIDES</p><p>Permite compilar aplicativos de plataforma cruzada e nativa (Windows, Android, iOS</p><p>ou Mac), além de sincronizar dados off-line para aplicativos dinâmicos.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 9</p><p>APLICAÇÕES DE BIG DATA E ARMAZENAMENTO NA</p><p>MICROSOFT AZURE</p><p>O conceito de Big Data está relacionado à análise e interpretação de grandes</p><p>volumes de dados. Está diretamente relacionado com velocidade, volume e va-</p><p>riedade de dados que são analisados para revelar padrões ou tendências (BIG</p><p>DATA, 2022; PAINCHAUD, 2018).</p><p>Big Data se refere a um conjunto de estratégias e tecnologias que reúnem, orga-</p><p>nizam, processam e extraem um volume de dados de grandes proporções para gerar</p><p>novos conhecimentos. Dentro desse universo, conheça os principais Vs de Big Data:</p><p>Leia o artigo O que é Big Data? Da Oracle Brasil, para saber mais de Big Data e os</p><p>seus Vs: https://www.oracle.com/br/big-data/what-is-big-data/.</p><p>EU INDICO</p><p>Depois de acessar a base de dados, o próximo passo é integrar e armazenar esses</p><p>dados, e uma das soluções disponíveis na Azure é o HDInsight, que é baseado</p><p>em Apache Hadoop (PAINCHAUD, 2018).</p><p>O Apache Hadoop é uma biblioteca de software que possui uma estrutura</p><p>que concede o processamento distribuído, utilizando grandes quantidades de</p><p>dados em clusters, ou seja, utilizando uma estrutura computacional que melhora</p><p>o desempenho, a agilidade e a confiabilidade para executar processos complexos</p><p>(APACHE HADOOP, 2024).</p><p>Dentro da utilização do Big Data na Azure, o HDInsight é uma solução nativa em nu-</p><p>vem, podendo ser integrada a diversas ferramentas que aumentam a produtividade,</p><p>em que destacamos o Microsoft Visual Studio, Eclipse e IntelliJ, para desenvolvimento</p><p>suportando as plataformas Java, .Net, Python, Scala e R (PAINCHAUD, 2018). Desta-</p><p>camos que o HDInsight processa grandes volumes de dados de forma rápida, fácil e</p><p>econômica. Além do Hadoop, você pode utilizar o HDInsight com outras estruturas de</p><p>código aberto, como: Spark, Hive, LLAP, Kafka, Storm, R, dentre outras (HOWELL, 2023).</p><p>APROFUNDANDO</p><p>1</p><p>1</p><p>8</p><p>https://www.oracle.com/br/big-data/what-is-big-data/</p><p>Já que podemos trabalhar com grandes volumes de dados, efetuando sua análise</p><p>e processamento, precisamos também ter uma solução para poder armazenar</p><p>estas informações, de forma que possamos utilizá-las futuramente.</p><p>Para isso, o Azure fornece soluções de armazenamento que podem ser uti-</p><p>lizadas para Big Data. Nos recursos de armazenamento do Azure, destacamos</p><p>o Banco de Dados SQL do Azure, SQL Data Warehouse e Redis Cache (PAIN-</p><p>CHAUD, 2018).</p><p>Na etapa de análise, podemos usar serviços como o Azure Analysis Services,</p><p>Log Analytics e Stream Analytics, cada qual com a sua função. Conheça o Azure</p><p>Synapse Analytics:</p><p>Conheça o Azure Analysis Services, o Log Analytics e o Azure Stream Analytics.</p><p>https://azure.microsoft.com/pt-br/products/synapse-analytics/?ef_id=_k_633a5134987f-</p><p>1899cac634d3e28b03fd_k_&OCID=AIDcmmzmnb0182_SEM__k_633a5134987f1899ca-</p><p>c634d3e28b03fd_k_&msclkid=633a5134987f1899cac634d3e28b03fd.</p><p>https://azure.microsoft.com/pt-br/updates/log-analytics-new-query-experien-</p><p>ce-example-queries/.</p><p>https://azure.microsoft.com/pt-br/products/stream-analytics/.</p><p>EU INDICO</p><p>Fechando este ciclo, só é preciso efetuar a geração e visualização de relatórios.</p><p>Para esse serviço, podem ser usados o SQL Server Reporting Services, Microsoft</p><p>Power Bi, SharePoint ou mesmo extrair e exibir os dados com o Microsoft Excel.</p><p>RECURSOS DE MACHINE LEARNING NA MICROSOFT AZURE</p><p>A tecnologia Azure possui um serviço específico para trabalhar com o aprendi-</p><p>zado de máquina, chamado de Azure Machine Learning, utilizado para a criação</p><p>e implantação de modelos cognitivos e estatísticos. Segundo Sameki et al. (2024),</p><p>o aprendizado de máquina na Microsoft possui os seguintes valores:</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>9</p><p>https://azure.microsoft.com/pt-br/products/synapse-analytics/?ef_id=_k_633a5134987f1899cac634d3e28b03fd_k_&OCID=AIDcmmzmnb0182_SEM__k_633a5134987f1899cac634d3e28b03fd_k_&msclkid=633a5134987f1899cac634d3e28b03fd</p><p>https://azure.microsoft.com/pt-br/products/synapse-analytics/?ef_id=_k_633a5134987f1899cac634d3e28b03fd_k_&OCID=AIDcmmzmnb0182_SEM__k_633a5134987f1899cac634d3e28b03fd_k_&msclkid=633a5134987f1899cac634d3e28b03fd</p><p>https://azure.microsoft.com/pt-br/products/synapse-analytics/?ef_id=_k_633a5134987f1899cac634d3e28b03fd_k_&OCID=AIDcmmzmnb0182_SEM__k_633a5134987f1899cac634d3e28b03fd_k_&msclkid=633a5134987f1899cac634d3e28b03fd</p><p>https://azure.microsoft.com/pt-br/updates/log-analytics-new-query-experience-example-queries/</p><p>https://azure.microsoft.com/pt-br/updates/log-analytics-new-query-experience-example-queries/</p><p>https://azure.microsoft.com/pt-br/products/stream-analytics/</p><p>TEMA DE APRENDIZAGEM 9</p><p>■ Entender modelos de machine learning</p><p>• Interpretar e explicar o comportamento do modelo.</p><p>• Avaliar e mitigar a imparcialidade do modelo.</p><p>■ Proteger pessoas e seus dados</p><p>• Evitar a exposição de dados com privacidade diferencial.</p><p>• Trabalhar com dados criptografados usando a criptografia homomórfica.</p><p>■ Controlar o processo de machine learning de ponta a ponta</p><p>• Documentar o ciclo de vida de machine learning com folhas de dados.</p><p>Para interpretar dados, pode ser usado o InterpretML dentro do Azure Machine</p><p>Learning. O Azure Machine Learning pode ser usado para as tarefas de treina-</p><p>mento, implantação, automatização, gerenciamento e rastreamento de modelos</p><p>de aprendizado de máquina. Destacando, ainda, que ele pode ser utilizado para</p><p>um aprendizado clássico até o chamado aprendizado profundo, além de apren-</p><p>dizado supervisionado e não supervisionado (FRANKS, 2024).</p><p>O InterpretML é um pacote de software que dá suporte para várias técnicas de in-</p><p>terpretação. Os processos de avaliação e de mitigação são utilizados para reduzir</p><p>a imparcialidade em sistemas de inteligência artificial. Para auxiliar nesses proces-</p><p>sos, o FairLearn (pacote de código-fonte</p><p>aberto) permite que sejam avaliadas di-</p><p>versas estratégias de forma que irá contribuir na identificação do impacto e como</p><p>reduzir a imparcialidade na análise dos dados coletados (SAMEKI et al., 2024).</p><p>APROFUNDANDO</p><p>O QUE É GOOGLE CLOUD?</p><p>Para melhor entendermos tal conceito, a Google Cloud compreende um conjun-</p><p>to de recursos lógicos e físicos, o que inclui computadores e unidades de disco</p><p>rígido, como também, recursos virtuais e máquinas virtuais (VMs), localizados</p><p>nos data centers da Google por todo o mundo. Ainda, ressaltamos que cada local</p><p>do data center está em uma região.</p><p>1</p><p>4</p><p>1</p><p>Então, vamos explicar melhor essa organização: cada região é uma coleção</p><p>de zonas isoladas entre si. Cada zona é identificada por um nome que combi-</p><p>na um identificador de letra com o nome da região. Para a escrita deste tema,</p><p>verificamos que a Google Cloud já atingiu mais de 200 países e territórios e 73</p><p>zonas com estimativas sempre ascendentes. Conforme indicação na platafor-</p><p>ma, em breve expandirá os serviços para as seguintes regiões: “Délhi (Índia),</p><p>Doha (Catar), Madrid (Espanha), Melbourne (Austrália), Milão (Itália), Paris</p><p>(França) Santiago (Chile), Toronto (Canadá), Varsóvia (Polônia)” (PRIMEIROS</p><p>PASSOS..., 2024, on-line).</p><p>A Google Cloud oferece um conjunto sólido de soluções utilizadas pe-</p><p>las empresas para modernizar a TI e transformar os negócios. Projetada</p><p>para oferecer suporte a todos os aspectos dos seus negócios, ele inclui as</p><p>seguintes ferramentas:</p><p>■ Google Cloud Platform, com ferramentas e serviços como armazena-</p><p>mento, infraestrutura, rede, dados, operações, análises, desenvolvimento</p><p>de aplicativos, APIs e ferramentas de machine learning.</p><p>■ G Suíte, uma coleção integrada de ferramentas nativas da nuvem para</p><p>produtividade e colaboração.</p><p>■ APIs empresariais para Google Maps.</p><p>■ Tablets, smartphones Android e Chromebooks para a empresa.</p><p>Utilização de recursos na Google Cloud</p><p>Como sabemos, GCP é um pacote de ferramentas de cloud computing que reúne</p><p>muitos produtos e serviços ligados a universos como computação, armazena-</p><p>mento x banco de dados, redes, Big Data, Internet das Coisas, machine learning,</p><p>ferramentas de gerenciamento, ferramentas de desenvolvedor e identidade x se-</p><p>gurança etc. Vamos abordar, aqui, recursos ofertados pela GCP, conforme cita</p><p>Krishnan e Gonzalez (2015). Acompanhe, a seguir, os recursos de gerenciamento,</p><p>adaptado de Krishnan e Gonzalez (2015).</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 9</p><p>Acompanhe, a seguir, os recursos de armazenamento, adaptado de Krishnan e</p><p>Gonzalez (2015):</p><p>COMPUTE ENGINE</p><p>O Compute Engine é uma infraestrutura como serviço (IaaS) de produtos. Usando-o,</p><p>você pode iniciar máquinas virtuais, criar redes e conectar discos permanentes locais</p><p>e remotos baseados em tecnologias magnéticas ou de estado sólido. Você também</p><p>pode projetar e construir arquiteturas avançadas que incluem carga balanceamento e</p><p>escalonamento automático e que abrangem várias zonas em uma região ou regiões</p><p>geográficas em todo o mundo. O Compute Engine oferece o máximo de flexibilidade e</p><p>está voltado, principalmente, para administradores de sistemas.</p><p>APP ENGINE</p><p>O App Engine é um produto de Plataforma como Serviço (PaaS). Usando isso, você</p><p>pode criar aplicativos de escalonamento automático em escala da web. App Engine</p><p>é direcionado a desenvolvedores de software e abrevia uma coleção de bibliotecas.</p><p>Usando, você pode simplesmente fazer upload de um aplicativo para uma plataforma</p><p>e o App Engine.</p><p>CONTAINER ENGINE</p><p>Aplicativos em contêineres estão sendo explorados na próxima etapa nos procedi-</p><p>mentos padrão DevOps e na próxima geração de desenvolvimento de aplicações.</p><p>Docker está na vanguarda dessa revolução e está construindo um consenso em todo</p><p>o setor acerca do formato e a interface do ambiente de aplicativos. Um contêiner de</p><p>aplicativo é ativado por um conjunto de núcleos inovações no kernel do Linux que a</p><p>Google inventou há quase uma década. Este coloca a Google na vanguarda da adoção</p><p>de contêineres entre os desenvolvedores.</p><p>VMs GERENCIADAS</p><p>As máquinas virtuais gerenciadas são a próxima geração de aplicativos e apresentam</p><p>muitos novos recursos, como formatado em Docker containers de aplicativos, dis-</p><p>cotecas locais graváveis e depuração em tempo real de aplicativos sobre SSH. Pense</p><p>que o Container Engine permite que você crie aplicativos multicamadas em que cada</p><p>nó é um contêiner Docker e VMs gerenciadas.</p><p>1</p><p>4</p><p>1</p><p>Cloud SQL</p><p>O Cloud SQL é um produto RDBMS gerenciado e compatível com software de</p><p>servidor MySQL de código aberto. A Google gerencia todas as tarefas relaciona-</p><p>das ao gerenciamento de banco de dados, enquanto, você pode se concentrar na</p><p>construção de um aplicativo que precisa de um SQL de back-end. O Cloud SQL</p><p>oferece suporte para configurações avançadas, como leitura (internas e externas)</p><p>e conexões SSL.</p><p>Armazenamento em nuvem</p><p>O armazenamento em nuvem é o armazenamento de arquivos baseado em ob-</p><p>jetos que você pode usar para guardar arquivos, sem se preocupar com a con-</p><p>figuração e manutenção do sistema de arquivos. Esse tipo de armazenamento</p><p>inclui cache de borda global transparente e automático para que você não precise</p><p>configurar outra entidade manualmente.</p><p>Cloud Datastore</p><p>O Cloud Datastore é um banco de dados NoSQL gerenciado e sem esquema para</p><p>armazenar dados não relacionais. O Cloud Datastore é escalonado conforme</p><p>suas necessidades de dados aumentam, e você paga apenas por espaço que você</p><p>consome. Acompanhe, acerca de Big Data, segundo Krishnan e Gonzalez (2015).</p><p>BigQuery</p><p>BigQuery é uma plataforma hospedada de análise de Big Data.</p><p>CLOUD PUB/SUB</p><p>O Cloud Pub/Sub é um produto típico de mensagens.</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 9</p><p>Google Cloud Platform (GCP) da Google Cloud</p><p>A Google Cloud Platform é construída na mesma infraestrutura global projeta-</p><p>da pela Google, ela tem uma das maiores e avançadas redes de computadores do</p><p>mundo, fornecendo bilhões de resultados de pesquisa em milissegundos. Permite</p><p>que desenvolvedores de aplicativos de software usem a infraestrutura escalável da</p><p>Google para criar, testar, implantar e monitorar aplicativos. A diferença na plata-</p><p>forma do gigante da tecnologia está em atributos como velocidade, segurança e</p><p>escalabilidade. Com isso, o aplicativo pode obter melhor desempenho, o que ajuda</p><p>a organizar e chamar a atenção dos consumidores (PRIMEIROS PASSOS..., 2024).</p><p>Vejamos algumas características do GCP conforme a Google Cloud (PRI-</p><p>MEIROS PASSOS..., 2024) e Lecheta (2015):</p><p>REDUÇÃO DO TEMPO DE INATIVIDADE</p><p>A Google Cloud Platform (GCP) não apenas nos permite acessar uma das maiores</p><p>redes do mundo, mas também garante que os usuários reduzam o tempo de inativida-</p><p>de, porque podemos usar a migração em tempo real de máquinas virtuais.</p><p>CONJUNTO DE SOLUÇÕES E APLICATIVOS DE ALTO DESEMPENHO</p><p>A plataforma é um conjunto de soluções e aplicativos de mesmo nome da empresa</p><p>americana que podem auxiliar na execução de blocos de serviços em nuvem. Possui</p><p>alto desempenho, proteção e velocidade.</p><p>CLOUD DATAFLOW</p><p>Cloud Dataflow é um sistema simples, flexível e poderoso que você pode usar para</p><p>executar tarefas de processamento de dados de qualquer tamanho. Ele permite que</p><p>você crie, implante, e execute pipelines de processamento de dados complexos.</p><p>1</p><p>4</p><p>4</p><p>CAMADA BACK-END</p><p>Os aplicativos web possuem um back-end, ou seja, um sistema que funciona por trás</p><p>do aplicativo, isto é, coordena as regras de operação dos recursos do computador –</p><p>mais estruturados e com capacidade de expansão em larga escala.</p><p>RECURSOS SOB MEDIDA</p><p>A GCP pode ser executada em hardware de propriedade da empresa. Esses serviços</p><p>são feitos sob medida e você pode alugar apenas os recursos de seu interesse.</p><p>CONTROLE DE GERENCIAMENTO</p><p>É possível aumentar o controle do gerenciamento de operações e obter uma exporta-</p><p>ção completa e protegida para armazenamento em nuvem. Isso se aplica até mesmo</p><p>a depósitos customizados de acordo com as necessidades de cada cliente.</p><p>FUNÇÕES</p><p>PARA O DESENVOLVIMENTO DE APLICATIVOS</p><p>Além de proteger a segurança dos dados, a Google Cloud Platform também oferece</p><p>funções para o desenvolvimento de aplicativos. Como resultado, o design se torna</p><p>mais rápido, econômico e seguro. Por exemplo, um sistema projetado para controlar</p><p>o portfólio de investimentos de um cliente, pode aprovar vendas automaticamente e</p><p>concentrar os produtos da empresa em um só lugar.</p><p>Pratique na Google Cloud Platform. https://console.cloud.google.com/projectse-</p><p>lector2/apis/dashboard?pli=1&supportedpurview=project.</p><p>EU INDICO</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>5</p><p>https://console.cloud.google.com/projectselector2/apis/dashboard?pli=1&supportedpurview=project</p><p>https://console.cloud.google.com/projectselector2/apis/dashboard?pli=1&supportedpurview=project</p><p>TEMA DE APRENDIZAGEM 9</p><p>Aplicações de Big Data e armazenamento da Google Cloud</p><p>Existem os vários serviços de computação e armazenamento disponíveis na Goo-</p><p>gle Cloud Platform (GCP), incluindo Google App Engine, Google Compute En-</p><p>gine, Google Kubernetes Engine, Google Cloud Storage, Google Cloud SQL e,</p><p>finalmente, BigQuery. BigQuery é um produto chamado Dremel desenvolvido</p><p>pela Google Research (BISONG, 2019).</p><p>BigQuery e Dremel compartilham as mesmas características de infraestrutura e</p><p>desempenho. Os usuários podem usar o BigQuery para aproveitar ao máximo os</p><p>recursos da Dremel para aproveitar as vantagens da infraestrutura de computação</p><p>em larga escala da Google. Ele tem vantagens valiosas, como replicação múltipla</p><p>entre regiões e alta escalabilidade de data centers distribuídos globalmente, o</p><p>que fornece baixa latência e disponibilidade. Mais importante ainda, essa infraes-</p><p>trutura não requer o gerenciamento dos desenvolvedores (BISONG, 2019).</p><p>APROFUNDANDO</p><p>Para conhecer a ferramenta BigQuery, leia o artigo Data Warehouse em Nuvem</p><p>para Impulsionar sua Inovação Orientada por Dados. https://cloud.google.com/</p><p>bigquery/?hl=pt-br.</p><p>EU INDICO</p><p>1</p><p>4</p><p>1</p><p>https://cloud.google.com/bigquery/?hl=pt-br</p><p>https://cloud.google.com/bigquery/?hl=pt-br</p><p>Recursos de machine learning da Google Cloud</p><p>A machine learning como base operacional da IA é capaz de criar vários am-</p><p>bientes especializados para a solução de diferentes problemas criando modelos</p><p>personalizados de máquinas inteligentes ou utilizando os modelos já pré-trei-</p><p>nados da Google.</p><p>O serviço Cloud AutoML permite que os desenvolvedores com conhecimen-</p><p>to limitado de ML criem modelos personalizados de alta qualidade adaptados</p><p>às suas necessidades de negócios. Para a linguagem, você pode usar a linguagem</p><p>AutoMLNatural e a tradução do AutoML. Para visualizar, você pode usar AutoML</p><p>Vision e AutoMLVideo. Para dados estruturados, você pode usar tabelas AutoML</p><p>para criar e implementar modelos.</p><p>“ Em soluções de IA prontas para usar, permite que você administre</p><p>seus negócios com mais rapidez e mais suave. Contact Center AI po-</p><p>siciona você para fornecer atendimento ao cliente excepcional, en-</p><p>quanto com Documento AI, você pode facilmente extrair insights,</p><p>informações e conhecimento de toda a empresa (APP ENGINE,</p><p>2024, on-line).</p><p>A Google Cloud fornece ferramentas para gerenciar sistemas de ML em pro-</p><p>dução em massa. Com os pipelines da plataforma AI e o Cloud Composer, você</p><p>pode orquestrar e automatizar os dados e pipelines de ML. A construção em</p><p>nuvem e o registro de contêiner permitem que você crie e implante sistemas de</p><p>ML personalizados (APP ENGINE, 2024).</p><p>Estudante, se aprofunde nas ferramentas em cloud computing, bem como em</p><p>suas aplicações de implantação na nuvem, assistindo ao vídeo Como Escolher a</p><p>Melhor Plataforma em Nuvem, para Armazenamento Big Data, Deployment de Apli-</p><p>cações e Machine Learning? Recursos de mídia disponíveis no conteúdo digital</p><p>do ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>UNIASSELVI</p><p>1</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 9</p><p>NOVOS DESAFIOS</p><p>Agora, vamos resumir nosso estudo por meio de uma situação que ocorre muito</p><p>no mercado de trabalho de tecnologia em relação a certas preocupações com o uso</p><p>das plataformas e ferramentas em cloud computing. Imagine que você foi recrutado</p><p>como um perito em computação em nuvem por uma companhia alimentícia cha-</p><p>mada Alimentos Ltda. Em seu primeiro dia, você assiste a uma reunião liderada pelo</p><p>departamento de TI, na qual é destacado que, em meio à pandemia, a empresa almeja</p><p>rapidez, qualidade e redução de custos em seus projetos de inovação de produtos</p><p>e processos, e, com orçamentos cada vez mais restritos, a disponibilidade de infor-</p><p>mações instantâneas, seguras e precisas torna-se crucial para decisões estratégicas.</p><p>Foi percebido que a empresa ainda não conseguiu visualizar cenários prospectivos</p><p>devido à instabilidade de saúde e econômica no mundo. Apenas sabe-se que a criação</p><p>de estratégias que apoiam a inovação de produtos e processos pode ser uma saída.</p><p>O CIO também comenta que, para suprir a demanda de dados, tratamento e</p><p>visualização de informações inteligentes, é necessário dimensionar a infraestrutu-</p><p>ra necessária. Para isso, o CIO diz a todos da equipe de TI que foi contratado um</p><p>analista de tecnologia com conhecimentos em cloud computing. Você, no caso!</p><p>Após várias reuniões, chegaram à uma conclusão da arquitetura de dados</p><p>para à ingestão de dados, independente dos dados serem de tipos diferentes, o que</p><p>seria ideal diante das hipóteses apresentadas. A tecnologia que atende os quatro</p><p>Vs (volume, velocidade, variedade e veracidade) é o Big Data.</p><p>Diante das sugestões e hipóteses comentadas entre a equipe de projetos, o coor-</p><p>denador de TI questionou a você, o especialista em cloud computing, contratado</p><p>pela empresa de alimentos, quais são as ferramentas necessárias para suprir a in-</p><p>gestão, armazenamento, processamento inteligente e visualização de dados da nova</p><p>arquitetura. Você, conhecedor das tecnologias em nuvem, sabe que três plataformas</p><p>podem atender à demanda: AWS, Microsoft Azure e Google Cloud. Você comentou</p><p>à equipe que é necessário avaliar os três maiores provedores de nuvem do mercado.</p><p>É uma tarefa complexa e deve ser avaliada de acordo com as necessidades do pro-</p><p>jeto. Você apresentou os principais pontos de cada plataforma, contudo, explicou</p><p>que é necessário realizar uma comparação com o custo x benefício x necessidade.</p><p>Enfim, a reunião se encerra com a as novas tarefas para relacionar os be-</p><p>nefícios às necessidade dos provedores de nuvem de acordo com o orçamento</p><p>disponibilizado do projeto.</p><p>1</p><p>4</p><p>8</p><p>1. O futuro do negócio digital não é mais baseado em produtos, mas sim em plataformas</p><p>que permitam uma abordagem inovadora para modelos de negócios que são flexíveis o</p><p>suficiente para mapear novos processos digitais e apoiar ideias inovadoras. Empresas como</p><p>o Alibaba, Airbnb e Uber já provaram como bons negócios podem ser criados com a ajuda</p><p>de plataformas digitais. Não é mágica, mas exige decisões corajosas na direção correta ao</p><p>longo da jornada para uma empresa completamente digital.</p><p>Com base no exposto, analise as sentenças a seguir:</p><p>I - Google Cloud Platform (GCP) é a opção de serviço de nuvem pública da Google.</p><p>II - Google Cloud é um conjunto de soluções, serviços e produtos na nuvem.</p><p>III - A plataforma AI, ao contrário do que todos dizem, é uma plataforma que não possibilita</p><p>criar, implantar e gerenciar modelos de aprendizado de máquina.</p><p>É correto o que se afirma em:</p><p>a) I, apenas.</p><p>b) III, apenas.</p><p>c) II, apenas.</p><p>d) II e III, apenas.</p><p>e) I, II e III.</p><p>2. A Amazon Web Services (AWS) fornece plataformas de recursos da computação em nuvem,</p><p>sob demanda, para pessoas, empresas e governos, cuja cobrança pelos serviços é realizada</p><p>conforme os recursos utilizados.</p><p>Nesse sentido, assinale a alternativa correta que descreve características da AWS:</p><p>a) Não é possível utilizar recursos híbridos, isto é, servidores locais e serviços da AWS ao</p><p>mesmo tempo para as mesmas necessidades.</p><p>b) Na AWS, o termo zona de disponibilidade representa a região do mundo onde o data</p><p>center está localizado.</p><p>c) Cada zona de disponibilidade possui energia, refrigeração</p><p>e segurança física depen-</p><p>dentes umas das outras, isto é, se ocorrer um problema de segurança física, as demais</p><p>poderão ser afetadas.</p><p>d) Existe a possibilidade de selecionar a região do servidor onde a aplicação será executada,</p><p>se obtendo um tempo de resposta menor.</p><p>e) As zonas de disponibilidade são regiões onde ficam os provedores isolados e separados</p><p>fisicamente em uma área geográfica.</p><p>AUTOATIVIDADE</p><p>1</p><p>4</p><p>9</p><p>3. A plataforma Microsoft Azure trabalha com o conceito de computação em nuvens desta</p><p>forma, ela possui um catálogo de oferta de serviços que podem ser utilizados, dependendo</p><p>do tipo de solução desejada.</p><p>Com base nos serviços oferecidos para o trabalho em serviços de dados, assinale a alter-</p><p>nativa CORRETA:</p><p>a) O serviço Azure Service Bus coordena a replicação ou a recuperação de máquinas vir-</p><p>tuais.</p><p>b) O serviço Visual Studio on-line gerencia o armazenamento de código auxiliando na co-</p><p>laboração e rastreamento de tarefas ou problemas.</p><p>c) O serviço Hyper-V Recovery Manager possui recursos de gerenciamento de acesso aos</p><p>aplicativos que estão na nuvem.</p><p>d) O serviço Azure Multi-Factor Authentication fornece uma solução distribuída na memória</p><p>que permite a utilização de aplicativos responsivos de alta disponibilidade e escalabi-</p><p>lidade.</p><p>e) Azure é o HDInsight é uma solução para integrar e armazenar dados baseado no Apache</p><p>Hadoop.</p><p>AUTOATIVIDADE</p><p>1</p><p>5</p><p>1</p><p>REFERÊNCIAS</p><p>ANTUNES, J. L. Amazon AWS: descomplicando a computação na nuvem. São Paulo: Casa do</p><p>Código, 2016.</p><p>APACHE HADOOP. 17 mar. 2024. Disponível em: https://hadoop.apache.org/. Acesso em: 3 abr.</p><p>2024.</p><p>APP ENGINE. Google Cloud, [s. l.], c2024. Disponível em: https://bit.ly/3tzDEb9. Acesso em: 19</p><p>abr. 2021.</p><p>BISONG, E. Google BigQuery. In: BISONG, E. Criação de modelos de aprendizado de máquina</p><p>e aprendizado profundo no Google Cloud Platform. Berkeley: Apress, 2019.</p><p>CARUTASU, G. et al. Cloud computing and windows azure. In: INTERNATIONAL CONFERENCE</p><p>– ELECTRONICS, COMPUTERS AND ARTIFICIAL INTELLIGENCE, 8., 2016, Ploiesti. Proceedings</p><p>[...]. Piscataway: IEEE, 2016. Disponível em: https://bit.ly/325GCbm. Acesso em: 3 abr. 2024.</p><p>BIG DATA: o que é, conceito e definição. Cetax, [s. l.], 2016. Disponível em: https://www.cetax.</p><p>com.br/blog/big-data/. Acesso em: 3 abr. 2024.</p><p>CHANDRASEKARAN, K. Essentials of cloud computing. Boca Raton:Chapman and Hall; CRC</p><p>Press, 2015.</p><p>DOCUMENTAÇÃO do Azure Stream Analytics. Microsoft, [s. l.], c2024. Disponível em: https://</p><p>docs.microsoft.com/pt-br/azure/stream-analytics/. Acesso em: 3 abr. 2024.</p><p>ESPADOTO, M. Introdução ao Amazon Web Services. DEV Media, [s. l.], 2014. Disponível em: ht-</p><p>tps://www.devmedia.com.br/introducao-ao-amazon-web-services/30995. Acesso em: 3 abr.</p><p>2024.</p><p>FRANKS, L. O que é o Azure Machine Learning? Microsoft, [s. l.], 29 jan. 2024. Disponível em: ht-</p><p>tps://docs.microsoft.com/pt-br/azure/machine-learning/overview-what-is-azure-ml. Acesso</p><p>em: 3 abr. 2024.</p><p>HOWELL, J. O que é o Azure HDInsight? Microsoft, [s. l.], 5 dez. 2023. Disponível em: https://docs.</p><p>microsoft.com/pt-br/azure/hdinsight/hdinsight-overview. Acesso em: 3 abr. 2024.</p><p>KRISHNAN, S. P. T.; GONZALEZ, J. U. Building: your next big thing with google cloud platform – a</p><p>guide for developers and enterprise architects. Nova York: Apress, 2015.</p><p>LECHETA, R. R. Web services RESTful: aprenda a criar web service RESTful em Java na nuvem</p><p>Google. São Paulo: Novatec, 2015.</p><p>PAINCHAUD, A. 4 etapas para construir uma incrível solução de Big Data no Microsoft Azure.</p><p>Sherweb, Quebec, 12 abr. 2018. Disponível em: https://www.sherweb.com/blog/cloud-server/</p><p>building-big-data-solution-azure/. Acesso em: 3 abr. 2024.</p><p>1</p><p>5</p><p>1</p><p>https://www.sherweb.com/blog/cloud-server/building-big-data-solution-azure/</p><p>https://www.sherweb.com/blog/cloud-server/building-big-data-solution-azure/</p><p>REFERÊNCIAS</p><p>PRIMEIROS PASSOS no Google Cloud. Google Cloud, [s. l.], c2024. Disponível em: https://cloud.</p><p>google.com/docs/get-started?hl=pt-br. Acesso em: 21 jan. 2021.</p><p>SAMEKI, M. et al. O que é a IA responsável? 31 jan. 2024. Disponível em: https://docs.microsoft.</p><p>com/pt-br/azure/machine-learning/concept-responsible-ml. Acesso em: 3 abr. 2024.</p><p>SOLUÇÕES de nuvem do Azure. Microsoft, [s. l.], c2024. Disponível em: https://azure.microsoft.</p><p>com/pt-br/solutions/. Acesso em: 3 abr. 2024.</p><p>TEBALDI, P. C. Amazon web services: como funcionam a AWS. OpServices, Porto Alegre, 2 dez.</p><p>2016. Disponível em: https://www.opservices.com.br/amazon-web-services/. Acesso em: 3 abr.</p><p>2024.</p><p>1</p><p>5</p><p>1</p><p>1. Alternativa C.</p><p>A Afirmativa I está incorreta, já que a nuvem GCP tanto pode ser pública, privada ou híbrida.</p><p>A Afirmativa II é verdadeira, já que a Google Cloud Platform é um pacote de ferramentas</p><p>de cloud computing que reúne muitos produtos e serviços ligados a universos como a</p><p>computação.</p><p>A afirmativa III é incorreta, pois a plataforma AI possibilita criar, implantar e gerenciar modelos</p><p>de aprendizado de máquina.</p><p>2. Alternativa D.</p><p>A alternativa está correta devido que uma das vantagens em se utilizar a AWS (Amazon</p><p>Web Services) é a possibilidade de selecionar a região do servidor onde a aplicação será</p><p>executada, o que torna o tempo de resposta menor.</p><p>3. Alternativa E.</p><p>A alternativa está correta, pois a ferramenta Azure é o HDInsight é uma solução nativa em</p><p>nuvem, podendo ser integrada a diversas ferramentas que aumentam a produtividade, em</p><p>que destacamos o Microsoft Visual Studio, Eclipse e IntelliJ, para desenvolvimento supor-</p><p>tando as plataformas Java, .Net, Python, Scala e R. O HDInsight processa grandes volumes</p><p>de dados de forma rápida, fácil e econômica.</p><p>GABARITO</p><p>1</p><p>5</p><p>1</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>5</p><p>4</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>5</p><p>5</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>5</p><p>1</p><p>unidade 1</p><p>INTRODUÇÃO AO</p><p>CLOUD COMPUTING</p><p>SOFTWARE COMO SERVIÇO – SAAS</p><p>PLATAFORMA COMO SERVIÇO PAAS</p><p>unidade 2</p><p>CONTÊINERES COMO SUPORTE</p><p>AO DESENVOLVIMENTO</p><p>CONTÊINER COMO SERVIÇO (CAAS)</p><p>VERSIONAMENTO E DEPLOY</p><p>EM NUVEM</p><p>unidade 3</p><p>APLICAÇÃO DE BIG DATA EM</p><p>CLOUD COMPUTING</p><p>SEGURANÇA DA INFORMAÇÃO PARA CLOUD COMPUTING E BIG DATA</p><p>FERRAMENTAS DE</p><p>CLOUD COMPUTING</p><p>_4eq2gofkwir5</p><p>_605oatgr47yw</p><p>_8o7n76wip5df</p><p>_2mtg5vl4qhu3</p><p>_s971mqz1609a</p><p>_owko9nruseqp</p><p>_77tzlzsgu19t</p><p>_mkmbuvcj5ebt</p><p>_gbfkrwk7krg6</p><p>_s2ijl6ceeeyr</p><p>_xe6taa9thias</p><p>_ncdcypdfan7d</p><p>_hdna5ycqwwtt</p><p>_yu2sj9du36n0</p><p>_yr6uyy7k722g</p><p>_rshkj8ngzyjk</p><p>_8vy6dc6389eb</p><p>_bpb8gn4suttd</p><p>_tgh5ce8uptn3</p><p>_bqysi3am9aiw</p><p>_q4hsokava7ks</p><p>_t8gwffg7nqg0</p><p>_Hlk161993248</p><p>_wze74r8z487v</p><p>_t23gzn2nreyk</p><p>_55gjgj2961so</p><p>_6zlzoss4wavr</p><p>_30j0zll</p><p>_dhq4tms7u66f</p><p>_30j0zll</p><p>_acdprouixrll</p><p>_gqfi5cye80sk</p><p>_bovf6g2fjl7k</p><p>_avhqldv7g169</p><p>_hkaj39jq7pip</p><p>_ub64zxicq0z2</p><p>_x2jri4gc9sat</p><p>_8cnwlsbafdjn</p><p>_f5u9sceoh7tg</p><p>_h9bwhnlfq9ni</p><p>_k7kxqbt4396</p><p>_iz8j10aozo25</p><p>_i7k1ctmgka19</p><p>_qd0uqv823hue</p><p>_taoax8bi6muf</p><p>_kc8eh8qbyse</p><p>_hk9kvc1urx6o</p><p>_ja4jeyg32ci4</p><p>_1kk8r4s46kat</p><p>_1haexq3tntl1</p><p>_w7h58crbz08d</p><p>_ppljo1odpvre</p><p>_p5zad9k3twrx</p><p>_tyvmc5nzusyv</p><p>_g1co7n5ibemx</p><p>_8lgy8fm72lb7</p><p>_xiprvvl52dny</p><p>_tm3ruvey8n8y</p><p>_nrno0jto51yr</p><p>_46e6g5hj12ui</p><p>_b0y72njy55us</p><p>_eagfezr6d2l1</p><p>_ltzp1dajay8v</p><p>_byatz15w6fbx</p><p>_cl0afgirxm3j</p><p>_exfppo6a248f</p><p>_atn4rfm0jii4</p><p>_tyfne5sdrh1y</p><p>_h9uj7neqaa9t</p><p>_6nq9hbk6k160</p><p>_8isixe8s0h8y</p><p>_k5xs49krrlpp</p><p>_u98913fkpbyn</p><p>_42hc6sltqqis</p><p>Button 28:</p><p>Forms - Uniasselvi:</p><p>em bloco, armazenamento de dados NoSQL além de análise de</p><p>Big Data, fornecendo uma variedade de serviços de armazenamento e permitindo</p><p>fácil manutenção e rápido acesso aos dados (CHANDRASEKARAN, 2015).</p><p>Estudante, para nos aprofundarmos mais na computação em nuvem e suas prin-</p><p>cipais características, a internet e as redes de comunicação, assista ao vídeo A</p><p>Importância das Redes Distribuídas Para a Computação em Nuvem. Recursos de</p><p>mídia disponíveis no conteúdo digital do ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>NOVOS DESAFIOS</p><p>Estudante, agora falaremos de um caso fictício da importância do uso da com-</p><p>putação em nuvem e das redes descentralizadas por meio da tecnologia do</p><p>blockchain nas organizações e das aplicações de transações descentralizadas de</p><p>documentos seguros. O blockchain é uma tecnologia da computação em nuvem</p><p>que utiliza as redes de computadores descentralizadas pear-to-pear, de forma</p><p>que o usuário realiza o acesso remoto seguro a serviços de armazenamento e</p><p>processamento de dados. Enfatizando, aqui, a computação em nuvem pode ser</p><p>considerada um provedor de nuvem comunitária para fins específicos, neste caso,</p><p>para realizar transações financeiras.</p><p>Veja, por meio do assunto estudado, que a computação em nuvem é uma</p><p>tecnologia inovadora e pode trazer grandes benefícios, como armazenamento</p><p>seguro, uso dos recursos distribuídos em uma rede 2P2, mediante uma infraes-</p><p>trutura distribuída, como hardware e software, por meio da internet.</p><p>1</p><p>8</p><p>1. A computação em nuvem possui uma característica orientada a serviços, ou seja, oferece</p><p>serviços computacionais de forma remota, a partir de tecnologia de virtualização de soft-</p><p>ware e hardware. De forma que esse fornecimento de serviços é realizado via internet e um</p><p>conjunto de componentes de redes de computadores, no qual o usuário pode escolher o</p><p>serviço e a demanda desejada, para atender a sua necessidade.</p><p>Diante do excerto apresentado, a computação em nuvem se baseia na demanda de serviços</p><p>por meio da virtualização de software e hardware, explique a definição e as características</p><p>da virtualização.</p><p>2. Algumas empresas possuem um setor de tecnologia de informação internamente, para</p><p>sanar muitos problemas e apresentar soluções para o dia a dia dos negócios.</p><p>Com relação à computação em nuvem, assinale a alternativa correta:</p><p>a) Computação em nuvem, ou cloud computing, é uma solução viável apenas para em-</p><p>presas que precisam hospedar sites e disponibilizar na internet.</p><p>b) Computação em nuvem, ou cloud computing, é uma solução para uso de recursos na</p><p>internet que existe a menos de três anos.</p><p>c) Computação em nuvem, ou cloud computing, facilita o uso de recursos de computação,</p><p>por meio da internet, aumentando a ociosidade dos recursos.</p><p>d) Computação em nuvem, ou cloud computing, permite que recursos de computação</p><p>sejam disponibilizados pela internet, e evita ociosidade destes.</p><p>e) Computação em nuvem, ou cloud computing é uma solução para o gerenciamento do</p><p>desempenho de recursos no cliente.</p><p>AUTOATIVIDADE</p><p>1</p><p>9</p><p>3. “No modelo de serviços em nuvem, as operações do data center são separadas das ta-</p><p>refas de computação do usuário final, residindo em alguma extremidade remota e sendo</p><p>gerenciados pelo provedor do serviço, o que deixa os usuários livres para se concentrar</p><p>exclusivamente em suas tarefas específicas” (SILVA; SOARES; SERPA, 2020, p. 55).</p><p>Marque a alternativa que corresponde a um dos principais objetivos da utilização da com-</p><p>putação em nuvem:</p><p>a) Fornece redução de custos computacionais no maquinário e equipamentos de produção</p><p>industrial.</p><p>b) Fornece recursos computacionais como processamento, armazenamento e rede de</p><p>computadores dividida com outros clientes.</p><p>c) Fornece infraestrutura computacional à organização desconectando o foco computa-</p><p>cional do foco de negócio.</p><p>d) Fornece redução no espaço físico da tecnologia da informação transferindo os equipa-</p><p>mentos para a nuvem.</p><p>e) Realiza transferência de equipamento e pessoal especializado em computação para a</p><p>nuvem.</p><p>AUTOATIVIDADE</p><p>1</p><p>1</p><p>REFERÊNCIAS</p><p>BAI, H. Zen of cloud: learning cloud computing by examples on microsoft azure. Boca Raton, FL:</p><p>CRC Press, 2015.</p><p>BUYYA, R.; BROBERG, J.; GOSCINSKI, A. Cloud computing: principles and paradigms. Hoboken:</p><p>John Wiley & Sons, 2011. Disponível em: http://dhoto.lecturer.pens.ac.id/lecture_notes/inter-</p><p>net_of_things/CLOUD%20COMPUTING%20Principles%20and%20Paradigms.pdf. Acesso em:28</p><p>set. 2020.</p><p>CASTRO, L. N. de; FERRARI, D. G. Introdução à mineração de dados: conceitos básicos, algorit-</p><p>mos e aplicações. São Paulo: Saraiva. 2016.</p><p>CHANDRASEKARAN, K. Essentials of cloud computing. Boca Raton: Chapman and Hall; CRC</p><p>Press, 2015.</p><p>FAYNBERG, I.; LU, H.; SKULER, D. Cloud computing: business trends and technologies. Hoboken:</p><p>John Wiley & Sons, 2016.</p><p>FONSECA, N. L. S. da; BOUTABA, R. Cloud services, networking, and management. Hoboken:</p><p>John Wiley & Sons, 2015.</p><p>JAMSA, K. Cloud computing: SaaS, PaaS, IaaS, virtualization, business models, mobile, security,</p><p>and more. Burlington, MA: Jones & Barlett Learning, 2013.</p><p>KANNAN, R. et al. Managing and processing Big Data in cloud computing. Hershey, PA: Infor-</p><p>mation Science Reference, 2016.</p><p>PATHAN, A.; MONOWAR, M. M.; FADLULLAH, Z. M. Building next-generation converged net-</p><p>works: theory and practice. Boca Raton, FL: CRC Press. 2013.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>SILVA, K. C. N. da. Sistemas de informações gerenciais: computação na nuvem. Porto Alegre:</p><p>SAGAH, 2020.</p><p>SILVA, F. R.; SOARES, J. A.; SERPA, M. da S. et al. Cloud computing. São Paulo: Grupo A, 2020.</p><p>SULLIVAN, D. The definitive guide to cloud computing. San Francisco: Realtime Publishers, 2010.</p><p>TANENBAUM, A. S.; WETHERALL, D. Redes de computadores. São Paulo: Pearson Prentice Hall.</p><p>2011.</p><p>TAURION, C. Computação em nuvem: transformando o mundo da tecnologia da informação.</p><p>Rio de Janeiro: Brasport, 2009.</p><p>TURBAN, E.; VOLONINO, L. Tecnologia da informação para gestão: em busca do melhor de-</p><p>sempenho estratégico e operacional. Porto Alegre: Bookman. 2013.</p><p>VACCA, J. R. Computer and information security handbook. Maryland Heights: Elsevier, 2017.</p><p>1</p><p>1</p><p>1. Resposta:</p><p>A virtualização é realizada por software, o qual realiza a representação dos recursos físicos</p><p>de computação, em uma camada especial e abstrata. Mediante hospedagem de aplicativos</p><p>em servidores e da abstração destes recursos, é possível virtualizar o armazenamento volátil</p><p>e não volátil, processamento, sistemas operacionais, dados e aplicativos, permitindo que a</p><p>camada de software seja isolada da camada de hardware.</p><p>2. Alternativa D.</p><p>A computação em nuvem corresponde ao gerenciamento e fornecimento de serviços de</p><p>computação por meio da internet disponibilizados sob demanda, trazendo eficiência para a</p><p>utilização dos serviços computacionais.</p><p>3. Alternativa C.</p><p>O fundamento da computação em nuvem, de acordo como o projeto que se pretende</p><p>implantar, é deslocar ou contratar a computação via internet por empresas especializadas,</p><p>reduzindo os custos computacionais, fornecendo uma infraestrutura computacional, sem a</p><p>necessidade de ter, como principal foco, a computação, ou seja, sem ser o seu core business</p><p>(núcleo de negócios).</p><p>GABARITO</p><p>1</p><p>1</p><p>MINHAS ANOTAÇÕES</p><p>1</p><p>1</p><p>MINHAS METAS</p><p>SOFTWARE COMO SERVIÇO – SAAS</p><p>Conhecer o conceito de SaaS.</p><p>Apresentar as características de SaaS.</p><p>Compreender as aplicações Saas em cenários de Big Data.</p><p>Apresentar quais são as plataformas de Saas.</p><p>Conhecer os principais benefícios do modelo SaaS.</p><p>Conhecer as principais recomendações de serviços SaaS.</p><p>Entender os principais problemas com o uso do uso de SaaS.</p><p>T E M A D E A P R E N D I Z A G E M 2</p><p>1</p><p>4</p><p>INICIE SUA JORNADA</p><p>O Software como um Serviço (SaaS) é um modelo de serviço no qual o consu-</p><p>midor configura parâmetros do aplicativo enquanto o provedor lida com in-</p><p>fraestrutura e lógica do software. Ele oferece uma variedade de serviços,</p><p>como</p><p>ERP, CRM, redes sociais e gestão de documentos eletrônicos. Além disso, inclui</p><p>soluções para segurança, monitoramento, testes e categorias de dados como bu-</p><p>siness intelligence e visualização de dados (KAVIS, 2014). O SaaS revoluciona a</p><p>entrega de software, substituindo a instalação tradicional por serviços na nuvem</p><p>acessível via navegador em diversos dispositivos.</p><p>Empresas devem terceirizar aplicativos não essenciais, como RH e CRM,</p><p>aproveitando a acessibilidade e eficiência do SaaS. Ele abrange uma variedade</p><p>de ferramentas de produtividade, incluindo colaboração, desenvolvimento, pes-</p><p>quisas e campanhas por e-mail.</p><p>O e-mail, exemplificado pelo Gmail, e serviços de streaming, como Netflix,</p><p>são exemplos comuns de aplicativos SaaS. No Gmail, os usuários acessam suas</p><p>informações simplesmente inserindo login e senha no site. Na Netflix, os usuários</p><p>pagam por um plano que permite acesso a séries e filmes, com configurações de</p><p>conta simples e manutenção exclusiva pelo provedor (SOARES, 2020).</p><p>Paramos, agora, para refletir um pouco sobre o SaaS: você acredita que, com</p><p>o advento do modelo SaaS, é apenas uma questão de tempo até que a maioria</p><p>dos softwares e sistemas, tanto privados quanto públicos, estejam hospedados</p><p>na nuvem?</p><p>Para conhecer mais a respeito das vantagens e benefícios da computação em nu-</p><p>vem, ouça nosso podcast sobre os protocolos de envio e recebimento de mensa-</p><p>gens eletrônicas SMTP, POP e IMAP. Recursos de mídia disponíveis no conteúdo</p><p>digital do ambiente virtual de aprendizagem</p><p>PLAY NO CONHECIMENTO</p><p>UNIASSELVI</p><p>1</p><p>5</p><p>TEMA DE APRENDIZAGEM 2</p><p>DESENVOLVA SEU POTENCIAL</p><p>CONCEITO DE SAAS</p><p>Segundo Silva (2017), o modelo de entrega de serviço SaaS tem potencial para</p><p>revolucionar a forma como as empresas vão investir em sistemas de informação.</p><p>Na perspectiva de adoção, esse modelo é ideal para empresas iniciantes, que</p><p>não têm capital para entregar sistemas de grande porte, caso em que é necessário</p><p>investir altas taxas em implantação e manutenção dos sistemas.</p><p>Enfatiza o autor que, com o SaaS, a pequena empresa poderá contratar</p><p>sistemas de informação robustos e consagrados no mercado pagando apenas</p><p>uma fatura mensal referente ao uso. Muitas vezes, será possível a utilização</p><p>de software de diversos dispositivos ou locais pagando apenas um único</p><p>contrato. Na perspectiva de venda de serviços computacionais e software,</p><p>empresas que possuem sistemas de alto custo poderão se inserir em um novo</p><p>segmento de mercado, na medida em que poderão vender seus serviços de</p><p>acordo com o volume de utilização. Os aplicativos SaaS também são cha-</p><p>mados de softwares baseados na web, softwares sob demanda ou softwares</p><p>hospedados (SAAS, 2023).</p><p>VAMOS RECORDAR?</p><p>Para recordarmos o uso do modelo SAAS (Software como Serviço), suas</p><p>características e benefícios, acesse o artigo científico Crescimento e Expansão no</p><p>Uso de Software como Serviço (SaaS): Estratégias e Obstáculos para Empresas De</p><p>tecnologia, de Correia, Barreto e Alves, publicado em janeiro de 2024, o qual apresenta</p><p>os desafios da tecnologia da informação no impulsionamento do desenvolvimento</p><p>das empresas, mas com um olhar atraente para a utilização do SaaS. Além dos</p><p>obstáculos e soluções na transição do SaaS em empresas de tecnologia.</p><p>1</p><p>1</p><p>Figura 1 – Especialista utilizando gráficos do BI baseado na web da computação em nuvem</p><p>Fonte: https://br.freepik.com/fotos-gratis/pessoa-de-negocios-olhando-para-graficos-de-finan-</p><p>cas_44137997.htm#fromView=search&page=2&position=34&uuid=c5dfc942-24ab-4e52-b59e-f-</p><p>3de8413931b. Acesso em: 21 mar. 2024.</p><p>Para Furht e Escalante (2010), o SaaS é baseado no uso de software de li-</p><p>cenciamento sob demanda que pode ter sido desenvolvido e implantado na</p><p>camada PaaS ou IaaS de uma plataforma em nuvem. O SaaS substitui o uso</p><p>tradicional de software por um modelo de aluguel, reduzindo os custos de</p><p>implantação e gerenciamento de equipamentos físicos do usuário. As nuvens</p><p>SaaS também podem permitir aos usuários compor serviços existentes para</p><p>atender aos seus requisitos.</p><p>Descrição da Imagem: a imagem apresenta uma pessoa em um ambiente profissional analisando dados esta-</p><p>tísticos por meio de ferramentas BI. A pessoa está usando um laptop e um smartphone para analisar gráficos,</p><p>indicando uma abordagem de análise de dados com múltiplos dispositivos. No laptop, é exibido “annual statistics”</p><p>com dados gráficos, incluindo gráficos de linhas sobre um fundo de mapa mundial. O smartphone exibe gráficos</p><p>de barras coloridos rotulados como “statistics”. Além disso, há uma folha de papel com anotações manuscritas,</p><p>esboços de gráficos e cálculos matemáticos ao lado do laptop. Isso destaca a integração de várias ferramentas</p><p>na análise de dados moderna. Fim da descrição.</p><p>UNIASSELVI</p><p>1</p><p>1</p><p>TEMA DE APRENDIZAGEM 2</p><p>As organizações optam por utilizar soluções SaaS para funções não essenciais, ou</p><p>seja, tarefas que não fazem parte de seu escopo ou produto de desenvolvimento</p><p>para que não precisem oferecer suporte à infraestrutura de aplicativos, fornecer</p><p>manutenção e contratar pessoal para gerenciar tudo. Em vez disso, eles pagam uma</p><p>taxa de assinatura e simplesmente usam o serviço pela rede da internet como um</p><p>serviço baseado em nuvem (KAVIS, 2014).</p><p>O provedor SaaS pode fornecer serviços de negócios, redes sociais, gerencia-</p><p>mento de documentos e serviços de correio, como mostra a Figura 2. Segun-</p><p>do Chandrasekaran (2015), os serviços comerciais que incluem ERP, CRM,</p><p>cobrança, vendas e recursos humanos, as redes sociais que adotaram o SaaS</p><p>por sua sustentabilidade, os gerenciamentos de documentos usados para criar,</p><p>gerenciar e rastrear documentos eletrônicos e, por fim, os serviços de e-mail</p><p>pessoais e organizacionais.</p><p>Business</p><p>services</p><p>Social</p><p>networks</p><p>SaaS</p><p>Mail services</p><p>Document</p><p>management</p><p>Figura 2 – Serviços Fornecidos pelos Provedores SAAS / Fonte: Chandrasekaran (2015, p. 86).</p><p>Descrição da Imagem: a imagem apresenta um diagrama que representa os serviços do SaaS na forma de</p><p>retângulo dividido em quatro partes. Na parte superior esquerda se tem o serviço business services; no canto</p><p>superior direito, o serviço social networks; no canto inferior esquerdo, o serviço document management; e no</p><p>canto inferior direito, o serviço mail services. No centro do diagrama aparece a palavra “SaaS”. Fim da descrição.</p><p>1</p><p>8</p><p>Para Kavis (2014), os provedores de SaaS controlam totalmente a infraestrutura, o</p><p>desempenho, a segurança, a escalabilidade, a privacidade e muito mais, e os forne-</p><p>cedores de SaaS geralmente oferecem duas maneiras para seus clientes usarem seus</p><p>aplicativos. A primeira maneira é prover acesso em qualquer dispositivo que possa se</p><p>conectar à internet por meio de uma interface de usuário baseada na Web amigável, e</p><p>a outra maneira é fornecer APIs para seus clientes, para que os consumidores de ser-</p><p>viços possam integrar recursos aos aplicativos existentes ou com outras soluções SaaS.</p><p>Do ponto de vista do desenvolvimento de sistemas, para Silva (2017), para adotar</p><p>SaaS a equipe de desenvolvimento deve criar aplicações fazendo uso de PaaS e</p><p>as implantam na IaaS da nuvem, ou seja, pensar em que tipo de modelo de serviço</p><p>(IaaS, PaaS, SaaS) o arquiteto deve usar a solução e também detalhar conforme os</p><p>requisitos de negócios qual tipo de modelo de implantação em nuvem (público,</p><p>privado, híbrido) deve ser utilizado.</p><p>APROFUNDANDO</p><p>Segundo Kavis (2014), se uma empresa estiver criando sites voltados para o consu-</p><p>midor, nos quais os usuários trocam voluntariamente seus dados pessoais por um</p><p>serviço gratuito (Facebook, X, Instagram etc.), a empresa pode facilmente justificar</p><p>colocar tudo em uma nuvem pública. Se uma empresa está vendendo para outras</p><p>empresas como estabelecimentos de varejo, hospitais e agências governamentais,</p><p>há uma chance muito boa de alguns clientes exigirem que, pelo menos, alguns dos</p><p>dados estejam em uma nuvem privada ou não saiam de suas instalações.</p><p>Para desenvolver um SaaS, levando em consideração os requisitos de negócios</p><p>e requisitos de sistemas, Kavis (2014) nos apresenta as seguintes recomendações:</p><p>RECOMENDAÇÃO 1</p><p>Compreenda os requisitos de negócios e as expectativas dos clientes da computação</p><p>em nuvem antes de selecionar modelos de serviço e tipos de nuvem.</p><p>UNIASSELVI</p><p>1</p><p>9</p><p>TEMA DE APRENDIZAGEM 2</p><p>Características de SAAS</p><p>Os serviços SaaS são diferentes e oferecem mais benefícios aos usuários finais</p><p>do que o software tradicional. A seguir, são apresentadas, por Chandrasekaran</p><p>(2015), as características essenciais dos serviços SaaS que o tornam único em</p><p>relação ao software tradicional:</p><p>UM PARA MUITOS</p><p>Os serviços SaaS são entregues como um modelo para muitos, no qual uma única ins-</p><p>tância do aplicativo pode ser compartilhada por vários ou múltiplos locatários ou clientes.</p><p>ACESSO À WEB</p><p>Os serviços SaaS fornecem acesso à web ao software, no qual o usuário final acessa o</p><p>aplicativo a partir de qualquer local, se o dispositivo estiver conectado à Internet.</p><p>RECOMENDAÇÃO 2</p><p>Obter clareza da definição e os requisitos do produto, fazendo uma avaliação regula-</p><p>tória e de segurança dos requisitos e adicione o código mais importante em todo o log</p><p>de produto.</p><p>RECOMENDAÇÃO 3</p><p>Tenha à mão uma lista de perguntas frequentes que respondam a todas as perguntas</p><p>e preocupações que o cliente típico terá para a solução baseada em nuvem.</p><p>4</p><p>1</p><p>GERENCIAMENTO CENTRALIZADO</p><p>Como os serviços SaaS são hospedados e gerenciados a partir do local central, o geren-</p><p>ciamento do aplicativo SaaS se torna mais fácil. Normalmente, os provedores de SaaS</p><p>executam as atualizações automáticas que garantem que cada locatário esteja acessan-</p><p>do a versão mais recente do aplicativo sem nenhuma atualização do lado do usuário.</p><p>SUPORTE A VÁRIOS DISPOSITIVOS</p><p>Os serviços SaaS podem ser acessados a partir de qualquer dispositivo do usuário</p><p>final, como desktops, laptops, tablets, smartphones e fino cliente (thin client).</p><p>MELHOR ESCALABILIDADE</p><p>Como a maioria dos serviços SaaS utiliza PaaS e IaaS para seu desenvolvimento e</p><p>implantação, ela garante uma melhor escalabilidade do que o software tradicional.</p><p>O dimensionamento dinâmico dos recursos subjacentes da nuvem faz com que os</p><p>aplicativos SaaS funcionem com eficiência, mesmo com cargas variadas.</p><p>ALTA DISPONIBILIDADE</p><p>Os serviços SaaS garantem a disponibilidade de 99,99% dos dados do usuário, à medi-</p><p>da que os mecanismos adequados de backup e recuperação são implementados no</p><p>back-end.</p><p>INTEGRAÇÃO DE API</p><p>Os serviços SaaS têm a capacidade de integração com outro software ou serviço por</p><p>meio de APIs padrão.</p><p>UNIASSELVI</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 2</p><p>O portal Noventiq (IAAS..., 2022) destaca que qualquer um conhece o SaaS por-</p><p>que plataformas como o Facebook e o X, ou aplicativos como o Skype, OneDrive,</p><p>Google Docs e o Office 365, funcionam dessa maneira. Então, o SoftLine enfatiza</p><p>que o SaaS é bastante recomendado para pequenas empresas que não podem</p><p>gastar com a compra de licenças, trabalhos que durem apenas um curto período</p><p>de tempo, quando tem a necessidade de acesso remoto aos aplicativos, como no</p><p>caso de softwares de CRM ou de gestão de redes sociais.</p><p>Vale destacar que só paga por aquilo que se usa dos aplicativos SaaS, ou seja,</p><p>consumido sob demanda e necessidade de cada empresa ou usuário. Para Chan-</p><p>drasekaran (2015), além dos benefícios relacionados aos custos, os serviços SaaS</p><p>oferecem os seguintes benefícios:</p><p>NENHUMA INSTALAÇÃO NO LADO DO CLIENTE</p><p>Os serviços SaaS não exigem a instalação do software no lado do cliente. Os usuários</p><p>finais podem acessar os serviços diretamente do centro de dados do provedor de</p><p>serviços sem nenhuma instalação. Não há necessidade de hardware de ponta para</p><p>consumir SaaS.</p><p>4</p><p>1</p><p>SERVIÇOS</p><p>Ele pode ser acessado a partir de qualquer dispositivo portátil, reduzindo, assim, o</p><p>gasto inicial na compra de hardware de última geração.</p><p>ECONOMIA DE CUSTOS</p><p>Como os serviços SaaS seguem o faturamento com base em serviços públicos ou</p><p>com o pagamento conforme o uso, é necessário que os usuários finais paguem pelo</p><p>que usaram. A maioria dos provedores de SaaS oferecem planos de assinatura dife-</p><p>rentes para beneficiar clientes diferentes. Às vezes, os serviços SaaS genéricos, como</p><p>processadores de texto, são oferecidos gratuitamente aos usuários finais.</p><p>MENOS MANUTENÇÃO</p><p>Os serviços SaaS eliminam a sobrecarga adicional de manter o software do lado do cliente.</p><p>Por exemplo, no software tradicional, o usuário final é responsável por executar atualiza-</p><p>ções em massa, no entanto, no SaaS, o próprio provedor de serviços mantém as atualiza-</p><p>ções automáticas, o monitoramento e outras atividades de manutenção dos aplicativos.</p><p>FACILIDADE DE ACESSO</p><p>Os serviços SaaS podem ser acessados a partir de qualquer dispositivo, se estiver conec-</p><p>tado à internet. A acessibilidade dos serviços SaaS não se restringe a dispositivos específi-</p><p>cos. É adaptável a todos os dispositivos, pois usa a interface de usuário da web responsiva.</p><p>ESCALA DINÂMICA</p><p>Os serviços SaaS são conhecidos popularmente pela escala dinâmica elástica. É muito</p><p>difícil para o software local fornecer capacidade de dimensionamento dinâmico, pois</p><p>requer hardware adicional. Como os serviços SaaS aproveitam os recursos elásticos</p><p>fornecidos pela computação em nuvem, ele pode lidar com qualquer tipo de carga</p><p>variável sem interromper o comportamento normal do aplicativo.</p><p>UNIASSELVI</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 2</p><p>Segundo Chandrasekaran (2015), o principal problema com os serviços SaaS é a</p><p>segurança dos dados. Todas as empresas estão preocupadas com a segurança de</p><p>seus dados hospedados no data center do provedor de serviços. A seguir, estão</p><p>os principais problemas com os serviços SaaS:</p><p>RECUPERAÇÃO DE DESASTRES</p><p>Com mecanismos adequados de backup e recuperação, as réplicas são mantidas para</p><p>todos os serviços SaaS. As réplicas são distribuídas por muitos servidores. Se algum</p><p>servidor falhar, o usuário final poderá acessar o SaaS de outros servidores. Elimina o</p><p>problema do ponto único de falha. Também garante a alta disponibilidade do aplicativo.</p><p>MULTILOCAÇÃO</p><p>Múltiplo locatário é a capacidade dada aos usuários finais de compartilhar uma única</p><p>instância do aplicativo. A multilocação aumenta a utilização de recursos do lado do</p><p>provedor de serviços.</p><p>SEGURANÇA</p><p>A segurança é a principal preocupação na migração para o aplicativo SaaS. Como o</p><p>aplicativo SaaS é compartilhado entre muitos usuários finais, existe a possibilidade de</p><p>vazamento de dados. Aqui, os dados são armazenados no centro de dados do provedor</p><p>de serviços. Não podemos simplesmente confiar em algum provedor de serviços tercei-</p><p>rizado para armazenar nossos dados confidenciais e sensíveis à empresa. O usuário final</p><p>deve ter cuidado ao selecionar o provedor SaaS para evitar perda de dados</p><p>REQUISITOS DE CONECTIVIDADE</p><p>Os aplicativos SaaS requerem conectividade com a internet para acessá-lo. Às vezes, a</p><p>conectividade com a internet do usuário final pode ser muito lenta. Em tais situações,</p><p>o usuário não pode acessar os serviços com facilidade. A dependência da conexão à</p><p>internet de alta velocidade é um grande problema nos aplicativos SaaS.</p><p>4</p><p>4</p><p>APLICAÇÕES SAAS EM CENÁRIOS DE BIG DATA</p><p>Perez (2018) explica que as plataformas de dados convencionais e as soluções</p><p>de Big Data se esforçam para cumprir seu propósito fundamental, permitir que</p><p>qualquer usuário trabalhe com quaisquer dados, sem limites de escala, desem-</p><p>penho ou flexibilidade.</p><p>Percebendo que a realidade é bem outra, Perez (2018) nos faz o seguinte</p><p>questionamento:</p><p>PERDA DE CONTROLE</p><p>Como os dados são armazenados em um local externo e externo, o usuário final não</p><p>tem controle dos dados. O grau de controle do aplicativo SaaS e os dados é menor</p><p>que o aplicativo local.</p><p>UNIASSELVI</p><p>4</p><p>5</p><p>TEMA DE APRENDIZAGEM 2</p><p>“ Neste caso, vamos supor que uma porcentagem considerável de seus</p><p>dados estejam em sua solução de CRM. Há anos você utiliza um</p><p>CRM baseado em nuvem, o que significa que seus dados de cliente,</p><p>oportunidade</p><p>e engajamento já estão armazenados on-line. Nesse</p><p>cenário, faz pouco sentido extrair esses dados da nuvem para um</p><p>sistema local - especialmente quando você considera que os dados</p><p>têm massa, o que significa que também têm inércia e gravidade.</p><p>Quanto mais os dados residem em um sistema em silos, menos</p><p>viável a consulta cruzada se torna. Enfim, conclui o autor que uma</p><p>abordagem melhor seria contar com uma ferramenta de análise</p><p>SaaS construída para a nuvem, ou seja, uma solução SaaS moderna</p><p>e instantaneamente elástica pode fazer flutuações em computação</p><p>e armazenamento - por hora, minuto ou segundo - prática padrão e</p><p>uma oportunidade viável para seu negócio (PEREZ, 2018, on-line).</p><p>O uso de soluções SaaS envolvendo Big Data é utilizado para que todo o potencial</p><p>de dados das empresas seja utilizado a favor delas. Por meio das técnicas em Big</p><p>Data, é possível entender o comportamento do consumidor e buscar entender de</p><p>formas inteligentes as melhorias dos serviços e produtos. O conceito de amarrar</p><p>SaaS com Big Data busca a revolução na produção de dados, na qual os dados</p><p>passam a ser gerados em diversos formatos diferentes, sem estrutura ou associa-</p><p>ção entre eles, em alta velocidade, basicamente o tempo todo, em fontes como a</p><p>internet e sistemas internos.</p><p>Big Data faz parte dos serviços do Google Cloud mais utilizados nas empresas</p><p>para análise de dados, seus serviços permitem processar e consultar Big Data na</p><p>nuvem para receber respostas rápidas para perguntas complicadas (APP ENGI-</p><p>NE, 2024). O Google BigQuery oferece serviços de “análise de dado”, em que se</p><p>permite (INFORMAÇÕES..., 2024).</p><p>VOCÊ SABE RESPONDER?</p><p>A maioria dos dados da sua empresa, senão todos, já residem na nuvem?</p><p>4</p><p>1</p><p>ESQUEMAS PERSONALIZADOS</p><p>Criar esquemas personalizados que organizam os dados em conjuntos de dados e</p><p>tabela.</p><p>DATA STREAMING</p><p>Carregar dados de uma grande variedade de fontes, como dados de streaming.</p><p>COMANDOS PADRÃO SQL</p><p>Usar comandos semelhantes aos do SQL para consultar conjuntos de dados enormes</p><p>em um instante. O BigQuery foi projetado e otimizado para oferecer velocidade.</p><p>INTERFACE GRÁFICA WEB</p><p>Usar a IU da web, a interface de linha de comando ou a API.</p><p>SERVIÇOS DE DADOS</p><p>Carregar, consultar, exportar e copiar dados usando Jobs.</p><p>SEGURANÇA DE DADOS</p><p>Gerenciar e proteger dados usando permissões.</p><p>UNIASSELVI</p><p>4</p><p>1</p><p>TEMA DE APRENDIZAGEM 2</p><p>Já o Data Flow oferece um serviço gerenciado e um conjunto de SDKs que você</p><p>pode usar para realizar tarefas de processamento de dados em lote e streaming.</p><p>É um recurso que funciona bem para computação de alto volume, especialmen-</p><p>te quando as tarefas de processamento podem ser divididas facilmente e de for-</p><p>ma clara em cargas de trabalho em paralelo. É excelente para tarefas de extração,</p><p>transformação e carga, que são úteis para migrar dados entre diferentes mídias de</p><p>armazenamento, fazer a transformação de dados para um formato mais desejável</p><p>ou carregar dados em um novo sistema de armazenamento (PRODUTOS..., 2024).</p><p>Figura 3 – Netflix serviço de streaming</p><p>Descrição da Imagem: a imagem apresenta uma tela de computador com a interface da Netflix aberta, está</p><p>escrito “Netflix” e “see what’s next”. Fim da descrição.</p><p>Os dados streaming, como os da Netflix (Figura 3), devem ser gerenciados nas tarefas de</p><p>processamento, programadas e manutenidas para diferentes mídias de armazenamento.</p><p>Por fim, o Pub/Sub é um “serviço de mensagens assíncronas”. O aplicati-</p><p>vo pode enviar mensagens no formato de estruturas de dados JSON para uma</p><p>unidade de publicação, chamada tópico. Como os tópicos do Pub/Sub são um</p><p>recurso global, outros aplicativos nos seus projetos podem se inscrever no tópico</p><p>para receber as mensagens na solicitação HTTP ou nos corpos de resposta.</p><p>4</p><p>8</p><p>A utilidade de Pub/Sub não se limita ao Big Data. É possível usar o Pub/Sub em</p><p>muitas situações em que um serviço de mensagens assíncrono é necessário. Para con-</p><p>ferir um exemplo que usa Pub/Sub para coordenar o App Engine e o Compute Engine,</p><p>consulte programação de tarefas confiável no Compute Engine (PRODUTOS..., 2024).</p><p>Considerando as oportunidades de aplicar Big Data em SaaS, à medida que a tecno-</p><p>logia se torna mais robusta e os custos continuam a diminuir, e com a crescente espe-</p><p>cialização dos fornecedores de ferramentas e serviços de computação em nuvem, as</p><p>empresas estão começando a utilizar de maneira mais eficiente as informações dis-</p><p>poníveis. Estruturar, analisar e tomar decisões com dados gerados pelos clientes fica</p><p>cada vez mais possível e, com isso, também fica mais fácil inovar em relacionamentos,</p><p>produtos e serviços, portanto, a interpretação rápida de informações para pautar a equi-</p><p>pe de vendas ou para criar peças de comunicação mais assertivas só é possível graças</p><p>às ferramentas criadas para lidar com o Big Data e com a infraestrutura oferecida pela</p><p>cloud. Os gestores de TI agora passam a ter sob sua responsabilidade esse domínio das</p><p>possibilidades tecnológicas, tornando-se executivos que formam grandes parcerias e</p><p>administram pessoas capazes de lidar com as demandas e as ambições corporativas.</p><p>APROFUNDANDO</p><p>O modelo de cobrança do SaaS funciona como um aluguel, sendo cobrado de</p><p>diferentes formas, com semanais, mensais, semestrais, anuais ou apenas de acor-</p><p>do com seu uso. São vendidos em forma de assinaturas, nas quais a empresa</p><p>ou o usuário paga uma taxa contínua, mas há casos de SaaS que disponibilizam</p><p>uma versão gratuita com funcionalidades mais básicas contendo propagandas</p><p>de anunciantes que mantêm essa versão. Soares (2020) explica que o cliente paga</p><p>por um pacote, por aquilo que usar ou pela versão desejada, para ter acesso a</p><p>determinados recursos, números de logins, volume de tráfego suportado etc.</p><p>PLATAFORMAS DE SAAS</p><p>Uma empresa deve usar o SaaS para terceirizar todos os aplicativos, recursos e</p><p>serviços que não são sua competência essencial, assumindo que atenda às suas</p><p>necessidades e seja acessível. São diversos os modelos de aplicação de SaaS. Aqui,</p><p>apresentaremos alguns dos principais provedores de SaaS:</p><p>UNIASSELVI</p><p>4</p><p>9</p><p>TEMA DE APRENDIZAGEM 2</p><p>Google App</p><p>O SaaS é parte do DNA da Google</p><p>App oferecendo soluções inovado-</p><p>ras de ponta para análise de dados</p><p>e machine learning, permitindo ge-</p><p>renciamento eficiente de usuários.</p><p>DropBox</p><p>O DropBox foi um dos primeiros</p><p>serviços de armazenamento em</p><p>nuvem, é acessível em várias plata-</p><p>formas e sincroniza arquivos altera-</p><p>dos com a nuvem.</p><p>Google Drive</p><p>O Google Drive é uma aplicação</p><p>SaaS muito popular, é usado para</p><p>armazenar e compartilhar arquivos,</p><p>possui 15 GB de armazenamento</p><p>gratuito distribuídos entre os apli-</p><p>cativos do Google.</p><p>OneDrive</p><p>OneDrive, da Microsoft, é um servi-</p><p>ço de armazenamento em nuvem</p><p>gratuito para usuários do Office 365,</p><p>suportando iOS, Android e Windo-</p><p>ws, para guardar diversos arquivos.</p><p>5</p><p>1</p><p>NOVOS DESAFIOS</p><p>Agora, vamos explorar mais onde o modelo SaaS da computação em nuvem</p><p>pode ser aplicado e suas perspectivas de utilização. Alguns serviços SaaS,</p><p>muito utilizados para a segurança das informações nas organizações, são os</p><p>antispam, antivírus e ferramentas contra phishing e malwares. O spam é uma</p><p>mensagem eletrônica que é transferida de forma massiva com objetivos diver-</p><p>sos, como a propagação de informações relacionadas a vendas ou marketing</p><p>de produtos, ou até mesmo golpes financeiros, dos mais variados tipos, como,</p><p>por exemplo, o envio de links de informações falsas que levam o usuário a</p><p>obter prejuízos financeiros. O spam também pode ser considerado uma men-</p><p>sagem maliciosa que, de alguma forma, dissemina algum tipo de vírus, worms</p><p>ou trojans, ou, as vezes, pode ser considerada qualquer mensagem indevida,</p><p>não solicitada pelo destinatário.</p><p>Se um spam estiver cadastrado em uma lista DNSBL (Domain Name</p><p>System Blacklists), qualquer servidor de e-mail poderá encontrá-lo por</p><p>meio de consultas e poderá realizar a classificação de uma mensagem</p><p>como um spam.</p><p>O Google Drive está disponível em: https://www.google.com/drive/.</p><p>EU INDICO</p><p>Estudante, para nos aprofundarmos no modelo computacional de serviço em</p><p>nuvem software como serviço (SaaS), assista ao vídeo Aplicações em Nuvem: as</p><p>Vantagens e os Desafios. Recursos de mídia disponíveis no conteúdo digital do</p><p>ambiente virtual de aprendizagem</p><p>EM FOCO</p><p>UNIASSELVI</p><p>5</p><p>1</p><p>https://www.google.com/drive/</p><p>TEMA DE APRENDIZAGEM 2</p><p>“ Existem inúmeros servidores DNSBL disponíveis na internet. Cada</p><p>um deles trata de categorias específicas de spams, ou seja, o usuário</p><p>de um serviço de DNSBL, deve escolher qual servidor se enqua-</p><p>dra na categoria de spam que se deseja pesquisar. Como exemplo,</p><p>é possível consultar um que possui somente cadastro de spammers</p><p>(remetente de um e-mail não-solicitado ou malicioso) de redes de</p><p>banda larga (redes de computadores são utilizadas para o envio de</p><p>spams) ou de um hosts da internet que, em algum momento, ‘abu-</p><p>saram’ da quantidade de e-mails enviados em um curto período [...]</p><p>(prática também comum de um spammer) (SILVA; TOSCANO,</p><p>2006, p. 335).</p><p>Além das listas negras, existem as chamadas listas cinzas (greylisting). Estas lis-</p><p>tas utilizam técnicas de filtragem de spam, as quais exigem que o servidor de</p><p>e-mail do destinatário rejeite e-mails de remetentes desconhecidos, informando</p><p>uma mensagem temporária de bloqueio e um registro da informação apropriada</p><p>(marcação como spam na lista cinza). Para Silva e Toscano (2006, p. 338) “seu</p><p>funcionamento baseia-se na postergação da entrega da mensagem, empregando</p><p>para tanto, [...] o SMTP – sistema sincronizado de comunicação para trafegar</p><p>mensagens em meio eletrônico”. Dessa forma, quando um e-mail é recebido no</p><p>servidor, a mensagem é temporariamente bloqueada retornando como uma men-</p><p>sagem “tente novamente mais tarde”. As informações da primeira tentativa de</p><p>entrega do spam, são realizadas por meio de um conjunto de regras e um banco</p><p>de dados, armazenadas em uma lista de informações (greylisting), identificando,</p><p>assim, de forma única, cada mensagem, posteriormente, o e-mail é reencaminha-</p><p>do. Ao receber a mensagem reenviada, o servidor pesquisa a base de dados e o</p><p>histórico de mensagens bloqueadas.</p><p>Assim o modelo SaaS atende recursos de softwares diversos, desde e-mail com</p><p>seus diversos protocolos de comunicação via internet, áreas de armazenamento,</p><p>aplicativos web, aplicativos de antispam, antivírus e ferramentas contra phishing</p><p>e malwares. O profissional de TI ou especialista em computação em nuvem, para</p><p>enfrentar os desafios computacionais da atualidade, ou seja, os serviços de soft-</p><p>wares sob demanda, deve ter competências e habilidades específicas dos possíveis</p><p>softwares que podem atender as necessidades dos usuários.</p><p>5</p><p>1</p><p>1. O software as a Service (SaaS) surgiu por volta de 1999 e suas aplicações são licenciadas</p><p>como um serviço sob demanda com um modelo de distribuição do serviço.</p><p>Com base no Software as a Service (SaaS), analise as afirmativas a seguir.</p><p>I - No SaaS os aplicativos rodam diretamente nos servidores do fornecedor.</p><p>II - Os aplicativos são instalados na máquina do cliente e ficam disponíveis permanente-</p><p>mente.</p><p>III - As aplicações SaaS são atualizadas com frequência, pois são hospedadas em um único</p><p>local em um servidor, o que evita que os clientes tenham que instalar as novas versões.</p><p>a) As sentenças I e II estão corretas.</p><p>b) Somente a sentença II está correta.</p><p>c) As sentenças I e III estão corretas.</p><p>d) Somente a sentença III está correta.</p><p>e) Somente a sentença I está correta.</p><p>2. Os provedores SaaS oferecem serviços para criar, gerenciar e rastrear documentos e ser-</p><p>viços eletrônicos, sendo utilizado para designar uma nova maneira de distribuição e co-</p><p>mercialização de software.</p><p>Nesse sentido, os provedores SaaS possuem como uma das suas principais características:</p><p>a) Fornece serviço de suporte ao software no computador do cliente.</p><p>b) Os serviços são hospedados e gerenciados a partir de vários locais na nuvem.</p><p>c) Não precisa de licença para ser utilizado.</p><p>d) Executam as atualizações automáticas garantindo que cada cliente acesse a versão mais</p><p>recente do aplicativo sem nenhuma atualização do lado do usuário.</p><p>e) Fornece atualização diretamente na máquina do cliente, não precisando configurar a</p><p>aplicação.</p><p>AUTOATIVIDADE</p><p>5</p><p>1</p><p>3. Diferentes protocolos têm sido criados para fornecer acesso ao e-mail. Um protocolo de</p><p>acesso é distinto de um protocolo de transferência porque um acesso envolve somente</p><p>um usuário interagindo com sua caixa de correio, enquanto uma transferência envolve o</p><p>envio de mensagens de um usuário qualquer em um computador para uma caixa de correio</p><p>qualquer em outro computador.</p><p>Diante do excerto apresentado, cada tipo de protocolo promove um serviço específico ou</p><p>possui funcionalidades adicionais. Com relação aos protocolos de acesso e transferência</p><p>de mensagens, analise as afirmativas a seguir.</p><p>I - Os protocolos de transferência permitem ao usuário ver cabeçalhos, baixar, excluir ou</p><p>enviar mensagens individuais.</p><p>II - Os protocolos de acesso fornecem acesso à caixa de correio do usuário.</p><p>III - Os protocolos de acesso rodam o cliente no computador ou no dispositivo do usuário.</p><p>IV - Os protocolos de transferência rodam o servidor POP no computador onde a caixa de</p><p>correio está armazenada.</p><p>Está correto apenas o que se afirma em:</p><p>a) I e III apenas.</p><p>b) I, II e III apenas,</p><p>c) I, II e III apenas.</p><p>d) II e IV apenas.</p><p>e) II e III apenas.</p><p>AUTOATIVIDADE</p><p>5</p><p>4</p><p>REFERÊNCIAS</p><p>APP ENGINE. Google Cloud, Mountain View, Ca, c2024. Disponível em: https://cutt.ly/wf0nSGi.</p><p>Acesso em: 21 mar. 2024.</p><p>COMER, D. E. Rede de computadores e internet. 6. ed. Porto Alegre: Bookamn, 2016.</p><p>FURHT, B.; ESCALANTE, A. Handbook of cloud computing. Miami: Springer Science & Business</p><p>Media, 2010.</p><p>IAAS, PaaS e SaaS: entenda os modelos de nuvem e suas finalidades. Noventiq, São Paulo, 2 set.</p><p>2022. Disponível em: https://noventiq.com.br/sobre-a-empresa/blog/iaas-paas-saas-nuvem#.</p><p>Acesso em: 21 mar. 2024.</p><p>INFORMAÇÕES gerais do BigQuery. Google Cloud, Mountain View, Ca, c2024. Disponível em:</p><p>https://cloud.google.com/bigquery/docs/introduction?hl=pt-br#bigquery-analytics. Acesso</p><p>em: 21 mar. 2024.</p><p>KAVIS, M. J. Architecting the cloud: designs decisions for cloud computing service models</p><p>(SaaS, PaaS and IaaS). Hoboken: John Wiley & Sons, 2014.</p><p>O QUE É software como serviço. Google Cloud, Mountain View, Ca, c2024. Disponível em: ht-</p><p>tps://cloud.google.com/saas?hl=pt-br. Acesso em: 21 mar. 2024.</p><p>PEREZ, R. Is SaaS data analytics right for you? Snowflake, San Mateo, 26 jun. 2018. Disponível em:</p><p>https://www.snowflake.com/blog/is-saas-data-analytics-right-for-you/. Acesso em: 21 mar. 2024.</p><p>POSSAMAI, A. A. et al. Fundamentos ao cloud computing e deploy na nuvem. Indaial: UNIAS-</p><p>SELVI. 2020.</p><p>PRODUTOS do Google Cloud. Google Cloud, Mountain View, Ca, c2024. Disponível em: https://</p><p>cloud.google.com/products?hl=pt-br#big-data. Acesso em: 21 mar. 2024.</p><p>SAAS: o que é software as service? Salesforce, São Paulo, c2023. Disponível em: https://www.</p><p>salesforce.com/br/saas/. Acesso em: 12 ago. 2020.</p><p>SILVA, E. A. N. da. Uma abordagem dirigida por modelos para desenvolvimento de aplicações</p><p>multi-paas. 2017, 178 f. Tese (Doutorado em Ciência de Computação e Matemática Computa-</p><p>cional) – Instituto de Ciências Matemáticas e de Computação. Universidade de São Paulo, 2017.</p><p>Disponível em: https://teses.usp.br/teses/disponiveis/55/55134/tde-08022018-103528/publi-</p><p>co/EliasAdrianoNogueiradaSilva_revisada.pdf. Acesso em: 21 mar. 2024.</p><p>SILVA, F. E. da; TOSCANO, W. Técnicas de detecção e classificação de spam. Exacta, São Paulo,</p><p>v. 4, p. 333-342. jul./dez. 2006.</p><p>SOARES, J. A. Infraestrutura de TI. Porto Alegre: SAGAH, 2020.</p><p>TUTIDA, D. OneDrive, Google Drive ou Dropbox: 4 coisas a considerar ao fazer sua escolha. En-</p><p>contre um Nerd, São Paulo, 10 ago. 2021. Disponível em: https://encontreumnerd.com.br/blog/</p><p>onedrive-google-drive-ou-dropbox. Acesso em: 21 mar. 2024.</p><p>5</p><p>5</p><p>https://cutt.ly/wf0nSGi</p><p>https://www.snowflake.com/blog/is-saas-data-analytics-right-for-you/</p>

Mais conteúdos dessa disciplina