Logo Passei Direto
Buscar

Cloud Computing e Deploy na Nuvem

User badge image
Aldira

em

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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