Prévia do material em texto
AUTOMAÇÃO E PROVISIONAMENTO DE SERVIÇOS EM NUVEM W B A 04 81 _v 1. 0 2 Fernanda Rosa da Silva Londrina Editora e Distribuidora Educacional S.A. 2020 AUTOMAÇÃO E PROVISIONAMENTO DE SERVIÇOS EM NUVEM 1ª edição 3 2020 Editora e Distribuidora Educacional S.A. Avenida Paris, 675 – Parque Residencial João Piza CEP: 86041-100 — Londrina — PR e-mail: editora.educacional@kroton.com.br Homepage: http://www.kroton.com.br/ Presidente Rodrigo Galindo Vice-Presidente de Pós-Graduação e Educação Continuada Paulo de Tarso Pires de Moraes Conselho Acadêmico Carlos Roberto Pagani Junior Camila Braga de Oliveira Higa Carolina Yaly Giani Vendramel de Oliveira Henrique Salustiano Silva Mariana Gerardi Mello Nirse Ruscheinsky Breternitz Priscila Pereira Silva Tayra Carolina Nascimento Aleixo Coordenador Henrique Salustiano Silva Revisor Luis Vinicius Antunes Palma Editorial Alessandra Cristina Fahl Beatriz Meloni Montefusco Gilvânia Honório dos Santos Mariana de Campos Barroso Paola Andressa Machado Leal Dados Internacionais de Catalogação na Publicação (CIP)__________________________________________________________________________________________ Silva, Fernanda Rosa da S586a Automação e provisionamento de serviços em nuvem/ Fernanda Rosa da Silva, – Londrina: Editora e Distribuidora Educacional S.A. 2020. 44 p. ISBN 978-65-5903-061-3 1. Automação. 2. Serviços. 3. Nuvem. I. Título. CDD 004.678 ____________________________________________________________________________________________ Raquel Torres - CRB: 6/2786 © 2020 por Editora e Distribuidora Educacional S.A. Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação, sem prévia autorização, por escrito, da Editora e Distribuidora Educacional S.A. 4 SUMÁRIO Provedores e a orquestração de recursos ___________________________ 05 Gerenciamento de recursos orquestrados na nuvem _______________ 20 Disponibilidade e tolerância em Cloud Computing __________________ 35 Monitoramento de serviços na nuvem ______________________________ 48 AUTOMAÇÃO E PROVISIONAMENTO DE SERVIÇOS EM NUVEM 5 Provedores e a orquestração de recursos Autoria: Fernanda Rosa da Silva Leitura crítica: Luis Vinicius Antunes Palma Objetivos • Definir o gerenciamento da infraestrutura da nuvem e como os recursos podem ser provisionados para atender às necessidades da nuvem. • Explorar como os recursos são organizados e coordenados pelos provedores na nuvem e como é possível gerenciá-los de forma automatizada. • Descrever como a orquestração de fluxo de trabalho pode ser realizada entre vários provedores. 6 1. Gerenciamento da infraestrutura na nuvem Mesmo com todos os benefícios que a nuvem oferece, sua infraestrutura requer o gerenciamento adequado das soluções. Para isso, é comum que a organização aloque um profissional experiente para essa função, atuando no processo de gestão e organização do ambiente e execução de todas as rotinas. O gerenciamento da infraestrutura de nuvem de forma geral é de responsabilidade dos administradores, que têm controle sobre tudo que é operado na nuvem, desde os usuários que realizam acesso aos recursos até os próprios recursos, que podem ser definidos como dados, aplicações, serviços e qualquer informação armazenada na nuvem. Para que o gerenciamento do ambiente como um todo seja realizado de maneira correta, é necessário que ferramentas adequadas sejam utilizadas, entregando todos os requisitos necessários para que o funcionamento das aplicações na nuvem seja possível. Essas ferramentas costumam ser largamente utilizadas para implantação de recursos, rastreamento de uso, integração de dados e até mesmo recuperação de desastres, fornecendo, além disso, um controle financeiro e administrativo completo. Na prática, o gerenciamento da infraestrutura de nuvem auxilia na manutenção, gestão, implementação dos serviços e correção de problemas. Essas ações, de acordo com Barsotti ([s.d.].), propiciam alcançar resultados eficientes, atingir a confiança da organização e aplicar o processo de governança de TI da melhor forma. Alguns exemplos de fornecedores que oferecem ferramentas que permitem o gerenciamento da infraestrutura da nuvem são: Red Hat e Solarwinds. Na maioria das vezes, o software de gerenciamento é implementado em ambiente de nuvem já existente, como uma máquina virtual (VM), que contém uma estrutura completa, com sistema e banco de dados, 7 e realiza a comunicação por meio de interfaces de programação de aplicações (APIs) para conectar o banco de dados e os recursos virtuais que sustentam a nuvem. Esse gerenciamento é realizado por meio da coleta de informações relevantes sobre o desempenho da infraestrutura virtual e o processamento de dados e do envio regular de relatórios aos administradores para que os dados e a performance da nuvem sejam analisados, sendo possível retransmitir comandos para a nuvem com os ajustes necessários (REDHAT, [s.d.]). Assim, o gerenciamento de nuvem utiliza uma combinação de softwares e tecnologias para gerenciar os ambientes, sendo algumas das ferramentas oferecidas de forma nativa por parte de provedores da nuvem pública, projetadas para fornecer funcionalidade consistente em vários provedores. O gerenciamento da infraestrutura na nuvem é definido pelas seguintes tarefas para que o ambiente seja mantido em conformidade: • Administração e suporte aos sistemas Por meio da plataforma da nuvem, é possível gerenciar de forma unificada todos os recursos, como instalação de sistemas e pacotes, atualização de pacotes, aplicação de correções, agendamento de manutenção e gerenciamento de usuários em relação ao uso de softwares. Esse tipo de gerenciamento proporciona maior agilidade para que as demandas internas sejam atendidas, agregando flexibilidade ao ambiente corporativo e flexibilizando o acesso de informações a partir de qualquer lugar que tenha acesso à internet. Os processos de manutenção na nuvem podem ser automatizados e aplicados simultaneamente em todo o sistema. • Monitoramento de recursos Assim como todas as redes de computadores, a nuvem é um ambiente que pode apresentar falhas e estar suscetível a problemas, sejam eles humanos ou operacionais, e é o gerenciamento da nuvem que 8 permite que processos operacionais, recursos de rede e acessos sejam monitorados, além do gerenciamento de incidentes. De acordo com Malheiros (2019), os provedores monitoram os recursos a fim de contabilizar de forma minuciosa as requisições e o tempo de alocação por parte dos clientes. • Banco de dados, recursos de rede e ambiente web O gerenciamento em cloud também pode ser utilizado para definir regras de controle de acesso, tanto para os recursos de rede quanto para o banco de dados ou ambiente web criado por meio da nuvem, mantendo-se, assim, o sigilo de informações. Além dessas rotinas, com o gerenciamento da infraestrutura da nuvem, é possível definir e disponibilizar recursos de rede, como VPN, e recursos de segurança, como Firewall (MOREIRA; MACÊDO; MACHADO, 2011). • Virtualização A técnica de virtualização também é muito utilizada para o gerenciamento de infraestrutura, permitindo o isolamento de serviços hospedados em máquinas virtuais com maior segurança. De acordo com Moreira, Macêdo e Machado (2011), com a virtualização, é possível otimizar o uso de recursos de hardware. 1.1 A arquitetura e os recursos de infraestrutura da nuvem A arquitetura de referência da computação em nuvem do Instituto Nacional de Padrões de Tecnologia (NIST) define como cinco os principais atores da nuvem: consumidor, provedor, auditor, agente e operadora da nuvem. Todos os atores definem indivíduos ou grupose seus principais papéis em relação à infraestrutura da nuvem, de acordo com IBGP ([s.d.]), e estão presentes nos processos e nas tarefas que envolvem a operação da nuvem. 9 Sobre os demais papéis estabelecidos, vejamos a figura a seguir. Figura 1 – Autores da nuvem e suas funções no provisionamento de recursos Fonte: adaptada de IBGP ([s.d.]). Considerando a responsabilidade do provedor, as modalidades de serviço oferecidas (IaaS, PaaS e SaaS) alteram os aspectos e as responsabilidades entre os provedores e o escopo de infraestrutura oferecido, como controle, segurança e configuração de recursos. O gerenciamento de infraestrutura é realizado de forma diferente para cada uma das modalidades oferecidas na nuvem. Enquanto aplicativos em SaaS usam aplicativos sobre demanda e seus serviços possam ser medidos em termos de tempo de uso, largura de banda da rede e quantidade/duração de dados armazenada; em PaaS, os consumidores empregam ferramentas e recursos e os executam conforme fornecido pelo provedor, com o principal objetivo de 10 desenvolver, testar e implementar aplicativos, sendo cobrados pelo número de consumidores, pelos recursos e pela duração de uso da plataforma. Já em IaaS, os consumidores são provisionadores dos seus próprios recursos e podem acessar máquinas virtuais, componentes de infraestrutura de rede e recursos fundamentais de computação, implementando seus serviços e sendo cobrados pela quantidade de recursos consumidos. O gerenciamento realizado por todos os envolvidos na infraestrutura de nuvem é de forma sincronizada, permitindo que os serviços sejam provisionados de forma elástica e rápida. Porém, podem ser mais eficientes com o uso de técnicas como automação e orquestração dos serviços. 2. Provedores e a automação de serviços na nuvem A computação em nuvem é conhecida por oferecer e hospedar serviços de larga escala, representados de forma dinâmica e escalável, com suporte a uma infinita oscilação de carga de trabalho. A adoção da nuvem vem crescendo por parte de empresas que buscam maior capacidade computacional e um menor esforço para manter seus serviços. Com isso, surgiu a possibilidade de automatizar tarefas na nuvem por parte de diversos provedores, facilitando o uso. Apesar de oferecer os serviços sob demanda, a realidade que acompanha esse benefício oferecido pela nuvem mostra que, apesar da facilidade oferecida, os recursos precisam ser manualmente adequados, testados e monitorados pela organização, responsável por realizar o gerenciamento necessário para a sua demanda, o que pode representar algum esforço manual. 11 Dessa forma, a maioria dos gerentes estão optando por adotar a automação em nuvem, e, com isso, os datacenters passam a ser geridos com a utilização de softwares locais ao mesmo tempo que utilizam os serviços da nuvem. Sendo assim, os sistemas de automação, quando implementados, trazem às empresas a solução para auxiliar no controle e na manutenção dos dados de forma imediata, controlando eficientemente os recursos de processamento, rede e armazenamento. O processo de automação garante a agilidade nas tarefas do trabalho, de acordo com Foxfly (2015). Assim, tarefas complexas e extensas que levavam um longo tempo para serem concluídas podem ser aceleradas em um tempo mínimo, sendo personalizadas pela empresa de acordo com suas necessidades. Utilizando a função de automação em nuvem, é possível monitorar os recursos constantemente, controlando se o consumo está de acordo com a demanda e remanejando ou movimentando aplicações entre os provedores de serviço para automatizar custos. No entanto, Perry (2019) afirma que a automação da nuvem não está embutida em seus serviços, e, por isso, é necessário o uso de ferramentas específicas. O termo DCaaS (Datacenter como um Serviço), também tem sido um conceito difundido na computação em nuvem, sendo datacenters virtuais oferecidos pelos provedores de nuvem. 2.1 Casos de uso da automação na nuvem A automação em nuvem é útil a uma diversidade de cenários, sendo utilizada por organizações para atender aos fluxos de trabalho de desenvolvimento. Assim, temos: • Infraestrutura como código (IaC) 12 É um conjunto de práticas que usam “código” (em vez de comandos manuais) para manusear recursos, provisionar e configurar máquinas e redes (virtuais), além de executarem tarefas específicas na nuvem, como instalação de pacotes, configuração do ambiente para receber uma aplicação, entre outras. A infraestrutura gerenciada por esse código inclui recursos físicos variados, como equipamentos (bare metal), máquinas virtuais, contêineres e redes definidas por software. Antes de entrar em produção, esse tipo de recurso deve, no entanto, ser criado, testado e armazenado adequadamente para que possa ser controlado de maneira eficiente (AMARAL, 2018). No paradigma IaC, a infraestrutura de TI é definida por meio de arquivos de configuração previamente configurados, que são iniciados automaticamente de acordo com a especificação e devem ser mantidos no controle de versão, bem como gerenciados, testados e evoluídos, tal qual o código-fonte. Com esse objetivo, a automação da nuvem agregada ao uso de IaC e torna os processos mais ágeis, já que tanto nas nuvens públicas como privadas é possível que qualquer sistema, independentemente de sua complexidade, seja controlado em todos os seus aspectos. • Gerenciamento de carga de trabalho A estratégia mais eficiente para tratar uma carga de trabalho, de acordo com Perry (2019), é o dimensionamento automático, recurso da automação de nuvem que, além de possibilitar o controle de custos, também permite rastrear o que está sendo executado, adaptando o ambiente à demanda atual. Ademais, reduz os recursos quando eles não estiverem sendo utilizados ou aumenta a capacidade do sistema quando necessário, equilibrando a utilização de acordo com os requisitos operacionais. • Desenvolvimento e teste de aplicativos 13 Em um ambiente de desenvolvimento de forma geral, as aplicações são implementadas e entregues de forma contínua, atribuindo práticas, como desenvolvimento ágil (conjunto de comportamentos, processos, práticas e ferramentas utilizados para a criação de produtos); uma rotina de testes muitas vezes exaustiva; homologação de softwares; entre outras etapas, que muitas vezes exigem ambientes provisionados automaticamente. Para isso, a automação em nuvem tem sido uma das principais formas de suprir essa necessidade, gerando ambientes precisos de desenvolvimento. Malheiros (2019) aponta que o ambiente de nuvem é bastante utilizado para desenvolvimento, testes e implantação (deploy) de ferramentas, devido aos mecanismos sofisticados que oferece. • Nuvem híbrida Os ambientes híbridos contêm uma maior complexidade quando comparados com as nuvens pública e privada e exigem que os sistemas estejam integrados. Com o uso de automação em nuvem, é possível sincronizar ativos entre os datacenters locais e recursos da nuvem, facilitando processos críticos, como recuperação de desastres. Outras possibilidades de uso da automação em nuvem são ilustradas na Figura 2: Figura 2 – Utilização de automação na nuvem Fonte: elaborada pela autora. A automação em nuvem pode contribuir de forma decisiva para automatizar a TI de uma organização e ser utilizada ainda em conjunto com a orquestração (fluxo de atividades entre diversos fornecedores) para trazer ainda mais benefícios ao ambiente. 14 3. A orquestração do fluxo de trabalho entre provedores A primeira ideia que se tem sobre a nuvem é a possibilidade oferecida por ela de disponibilizar recursos computacionais virtualmente ilimitados. Porém, na prática, o provedor de nuvem aplica algumas limitações para a utilização de cada usuário a fim de que seja possível atender à grande demanda de utilização do ambiente. Para superar os limites da nuvem, por mais que de uma maneira geral eles não estejam explícitos, as organizaçõessão capazes de construir aplicações que combinem recursos fornecidos por diversos provedores de nuvem, utilizem recursos oferecidos por diversos provedores e que passem a ser combinados entre si. Como resultado, é possível arquitetar uma infraestrutura diversificada para a nuvem, para a arquitetura ou para a localização geográfica. Com a orquestração, é possível gerenciar a infraestrutura em nuvem, permitindo que os recursos necessários sejam fornecidos, como: • Comparar valores entre nuvens orquestradas antes de alocar um recurso. • Lançar recursos computacionais automatizados, facilitando as tarefas do administrador. • Definir arquitetura de projetos e gerenciamento eficaz de recursos de rede, diminuindo os custos e a subutilização de recursos. • Criar, modificar e apagar recursos e fluxos de trabalho, assim como orquestrar e gerenciar cargas de trabalho. • Outras funções incluem coletar e atender a solicitações de usuários, além de controlar mudanças, gestão de custos e proteção de dados. 15 Acredita-se que o grande objetivo da maioria das organizações é viabilizar a infraestrutura de TI em termos de custo e, sobretudo, de uma forma que consiga suportar a missão da empresa, garantindo confiabilidade e segurança na entrega dos serviços. Existem processos que tornam o gerenciamento de infraestrutura na nuvem mais simples, como automação e orquestração de serviços. Outro ponto importante é o fato de a maioria dos provedores de nuvem terem foco em negócios específicos e nem sempre disporem de todas as ferramentas necessárias para uma mesma organização. Dessa forma, a combinação de recursos também é bem-vinda. As características citadas nos parágrafos anteriores definem a orquestração de ambientes em nuvem, que permite o uso de diversos produtos de diversos provedores ao mesmo tempo, confeccionando uma única solução que pode ser gerenciada de forma centralizada em uma única estrutura. No entanto, ela vai além da automação, pois permite que as tarefas sejam agendadas e sigam uma ordem cronológica de acordo com o objetivo do processo, integrando diversas ferramentas e garantindo o funcionamento correto do sistema, principalmente quando existem dependências técnicas ao decorrer de todo o processo. Para que fique mais claro, imaginemos que um aplicativo hospedado pelo Provedor 1 precisa consultar um banco de dados hospedado pelo Provedor 2. Com a orquestração, isso se torna possível, garantindo que os dois serviços se comuniquem remotamente por meio da internet, aplicando dimensionamento automático e regras de permissões e segurança adequadas. A orquestração na nuvem é um processo complexo, que envolve, de acordo com Venugopal (2016), a automatização da organização, a coordenação e o gerenciamento de sistemas complexos de computação, serviços e componentes de aplicações, como middlewares, acelerando a entrega de serviços em menos tempo. 16 Em ambientes complexos, a integração de sistemas é necessária para conectar múltiplos sistemas ou componentes, que são essenciais para a realização de provisionamento e gerenciamento de serviços, sendo esta a função da orquestração. Damasceno (2015) afirma que, mesmo que algumas tarefas ainda tenham que ser executadas de forma manual pelos administradores de nuvem, provedores de serviços estão buscando automatizar essas funções o máximo possível. A orquestração é definida em três aspectos: • Orquestração de recursos: os recursos (serviços e aplicações) são alocados por meio da orquestração. • Orquestração de serviços: os serviços são alocados em servidores ou no ambiente de nuvem com o uso da orquestração. • Orquestração de carga de trabalho: as cargas de trabalho (ou seja, demandas tratadas na nuvem) são compartilhadas pelos recursos alocados. 3.1 Mecanismos de orquestração São diversos os mecanismos e técnicas disponíveis para aplicar a orquestração na nuvem. Essas tecnologias devem ser selecionadas de acordo com as particularidades e necessidades de cada organização. Vejamos algumas de acordo com Venugopal (2016): • Chef e Puppet O Chef é uma plataforma que trata da automação, sendo capaz de transformar infraestruturas complexas em código, criando soluções completas, como servidores e serviços de rede; e implementando a orquestração na nuvem para não somente automatizar a configuração e a implementação, mas também para gerenciar todos os aplicativos de rede, sistemas operacionais e correções/soluções de problemas. 17 O Puppet é uma ferramenta de estrutura semelhante ao Chef, sendo utilizada geralmente em nível do middleware (software intermediário que fornece serviços para aplicativos além daqueles disponibilizados pelo sistema operacional), como para a instalação de banco de dados. Para comparar as duas ferramentas citadas, indicaremos as diferenças de uso entre elas e suas principais características de acordo com Venugopal (2016): • O Puppet é uma ferramenta mais indicada para administradores do sistema, que precisam especificar configurações, como dependências de aplicações, e a relação entre elas; enquanto o Chef é mais adequado para desenvolvedores, que geram códigos para a implementação. • O Chef utiliza um instalador desenvolvido por terceiros, o que facilita a instalação, enquanto o Puppet é caracterizado por uma configuração inicial mais complexa. • Quando uma automação em nível de sistema operacional é necessária, o Chef é mais utilizado, mas, para implementações que envolvem servidores e soluções de problemas em camadas abaixo do sistema, o Puppet pode ser a melhor escolha, pois é o ideal para processos de automação de nível intermediário, como instalação de banco de dados. • O uso do Puppet exige menos experiência em programação, já o Chef é mais voltado para equipes de operação especializadas. • Docker Refere-se à plataforma de código aberta que fornece contêineres para que tanto desenvolvedores quanto administradores de sistema possam desenvolver, implementar e executar aplicativos distribuídos, entregando softwares de maneira rápida. Além disso, a ferramenta contribui também para a velocidade no envio do código. 18 • Kubernetes Refere-se a uma plataforma Open Source que oferece recursos de orquestração e gerenciamento para implantar contêineres. Ela automatiza as operações e elimina boa parte dos processos manuais que são necessários para implantar e escalar as aplicações em contêineres, formados por diversos hosts que maximizam o poder de processamento e execução de aplicações. Assim, as atualizações passam a ser controladas e automatizadas por meio de recursos de armazenamento. Além disso, as aplicações hospedadas na nuvem têm seu estado monitorado, para que sua integridade possa ser verificada sempre que precisem ser executadas. Outro recurso que se tornou útil nos processos de automação e orquestração na nuvem foi a arquitetura de microsserviços, que garante a utilização dos sistemas distribuídos. Com isso, a construção de aplicações monolíticas precisou ser abandonada, de acordo com Fowler (2017), dando espaço à arquitetura de microsserviços, que resolve problemas de latência e velocidade na nuvem no uso de multicloud (múltiplas nuvens de diversos fornecedores interligadas). Ademais soluciona problemas de escalabilidade para a arquitetura e traz maior eficiência para o uso dos serviços. Ainda existe uma certa confusão entre os conceitos de automação e orquestração, mas, como podemos notar, a complexidade da orquestração é maior por envolver multicloud (uso de uma coleção de serviços de computação e armazenamento em nuvem em uma única arquitetura heterogênea), enquanto a automação geralmente está focada em uma única tarefa. Além disso, a orquestração tem funções diretamente relacionadas com o gerenciamento de serviços, como pós- implementação, gerenciamento de recursos de alta disponibilidade, processos críticos que refletem na recuperação de falhas, ajuste de escala, entre outros. 19 ReferênciasBibliográficas ADTSYS. Tudo sobre Orquestração e Cloud Computing. [s.d.]. Disponível em: https://www.adtsys.com.br/tudo-sobre-orquestracao-e-cloud-computing/. Acesso em: 23 jul. 2020. AMARAL, A. O que é a infraestrutura como código?. 2018. Disponível em: https:// blog.tivit.com/o-que-e-infraestrutura-como-codigo. Acesso em: 05 .nov. 2020. BARSOTTI, D. Gerenciamento de infraestrutura na nuvem: o que é e por que usar? [s.d.]. Disponível em: https://www.inmetrics.com.br/gerenciamento-de- infraestrutura-na-nuvem-o-que-e-e-por-que-usar/. Acesso em: 22 jul. 2020. DAMASCENO, J. C. Ucloud: uma abordagem para implementação de nuvem privada para a administração pública federal. Tese (Doutorado em Ciência da Computação) – Centro de Informática, Universidade Federal de Pernambuco, Recife, 2015. Disponível em: https://repositorio.ufpe.br/bitstream/123456789/17341/1/jcd-phd_ thesis_final-entrega-biblioteca.pdf. Acesso em: 05 .nov. 2020. FOWLER, S. J. Microsserviços prontos para a produção. São Paulo: Novatec, 2017. FOXFLY. Quais as principais vantagens da automação em nuvem. 2015. Disponível em: http://foxfly.com.br/quais-as-principais-vantagens-da-automacao- em-nuvem/. Acesso em: 22 jul. 2020. IBGP. Arquitetura de referência do NIST. 201-[s.d.]. Disponível em: https://forum. ibgp.net.br/arquitetura-de-referencia-do-nist/. Acesso em: 05. nov. 2020. MALHEIROS, N. C. Computação em nuvem. Londrina: Editora e Distribuidora Educacional S.A., 2019. MOREIRA, L.; MACÊDO, F.; MACHADO, C. Gerenciamento de dados na nuvem. 2011. Disponível em: http://200.17.137.109:8081/novobsi/Members/josino/ fundamentos-de-banco-de-dados/2012.1/Gerenciamento_Dados_Nuvem.pdf. Acesso em: 25 jul. 2020. PERRY, Y. Automação de computação em nuvem. 2019. Disponível em: https:// cloud.netapp.com/blog/cloud-automation-why-where-and-how-cvo-blg#H1_1. Acesso em: 22 jul. 2020. REDHAT. O que é o gerenciamento da nuvem. [s.d.]. Disponível em: https://www. redhat.com/pt-br/topics/cloud-computing/what-is-cloud-management. Acesso em 22 jul. 2020. VENUGOPAL, S. Tecnologias de orquestração em Computação em nuvem. 2016. Disponível em: https://developer.ibm.com/br/articles/cl-cloud-orchestration- technologies-trs/. Acesso em: 22 jul. 2020. 20 Gerenciamento de recursos orquestrados na nuvem Autoria: Fernanda Rosa da Silva Leitura crítica: Luis Vinicius Antunes Palma Objetivos • Definir a arquitetura de projetos com base nas funcionalidades da nuvem e em suas características. • Descrever como ocorre o gerenciamento de acessos e serviços na nuvem. • Analisar práticas para plataformas de orquestração e recursos de rede. 21 1. Arquitetura de projetos em nuvem A arquitetura de nuvem trouxe diversas possibilidades, porém gerenciar o ambiente continua sendo uma tarefa importante. Diferenciar as funções e responsabilidades atribuídas a um ambiente de nuvem, controlar seus acessos e aplicar boas práticas para que os serviços funcionem de maneira sincronizada devem ser algumas das prioridades de um administrador, garantindo a confiabilidade e a continuidade do negócio na nuvem. Os projetos na nuvem, assim como os projetos implementados na infraestrutura local, são divididos em três fases: desenvolvimento, homologação e produção de aplicações e sistemas, possibilitando que o uso do ambiente seja realizado de maneira adequada, definindo os objetivos ligados ao ambiente e mantendo a funcionalidade de uma aplicação durante todo o seu ciclo de desenvolvimento, validação e até mesmo quando ela já estiver em constante utilização. Vejamos como esses processos ocorrem em um projeto de nuvem (Figura 1): Figura 1 – Ambientes em nuvem Fonte: elaborada pela autora. 22 Desenvolvimento O ambiente de desenvolvimento é onde os desenvolvedores trabalham em uma aplicação que será refletida no ambiente de produção, quando estiver finalizada e disponibilizada para o acesso aos usuários. Nele, todas as funcionalidades são criadas para uma determinada aplicação, considerando todas as características que devem integrar sua estrutura. Além disso, pontos de falha são identificados, testados e corrigidos, aplicando-se a solução necessária e garantindo que, ao ser implementada no ambiente de produção, a aplicação seja capaz de se recuperar caso essas falhas ocorram. De forma geral, ambientes como PaaS e IaaS são utilizados nessa etapa, por oferecerem o suporte necessário para criar aplicações e programas. O processo de desenvolvimento envolve testes e atualizações de software, os quais são importantes para garantir a funcionalidade das novas aplicações, que precisam ser analisadas em diversos aspectos, antes que possam ser disponibilizadas no ambiente de produção. Fowler (2017) garante que, quando esses testes são realizados diretamente na estrutura da nuvem, o processo traz melhores respostas, otimizando os resultados e permitindo que o ambiente e as configurações sejam customizados conforme necessário. A nuvem permite que recursos como balanceamento de carga, escalabilidade, performance e integração sejam empregados em conjunto com as aplicações, sem comprometer a integridade do ambiente e proporcionando diversos benefícios, como baixo custo e provisionamento de recursos sob demanda. Diversas são as ferramentas disponíveis para testes em cloud computing, proporcionando um tempo de configuração menor, quando comparado a um ambiente de testes em infraestrutura local. Afinal, os recursos são projetos previamente e não há necessidade de atualizar 23 e instalar instrumentos complexos ou mitigar problemas relacionados ao hardware em si para cada ambiente. Além disso, as ferramentas podem ser facilmente integradas em uma única solução, tornando visível a economia financeira. Em seguida, quando o desenvolvimento do software é finalizado, ele é transferido para o ambiente de homologação. Homologação Após a fase de desenvolvimento, a aplicação candidata é migrada para o ambiente de homologação com a finalidade de ser testada e validada. Camarão (2016) aponta que levar o ambiente de desenvolvimento para um ambiente de homologação na nuvem fornece agilidade e outros benefícios para as empresas, o que permite que, em um ambiente isolado, testes efetivos envolvendo a capacidade da aplicação e sua funcionalidade em atividades reais para as quais será atribuída possam ser realizados. A homologação, de acordo com IPM (2018), caracteriza a validação dos dados migrados e é onde ocorre o reconhecimento oficial de que o processo foi desenvolvido corretamente. Nessa etapa, o cliente ou algum usuário selecionado passa a ter acesso à aplicação, acompanhado de um responsável técnico para avaliar os serviços. Geralmente os dados que a migração deve suportar são migrados para sua base, simulando um ambiente de produção para que os testes sejam os mais fidedignos possíveis. Implementar ambiente de testes e homologação em nuvem, segundo Camarão (2016), permite ainda a criação de templates para agilizar e automatizar tarefas específicas na etapa de testes. Além disso, o ambiente pode ser desativado após os testes para que custos não sejam gerados desnecessariamente, sendo religados quando outro processo de homologação for necessário. 24 Quando necessárias, as alterações são realizadas no ambiente de desenvolvimento e replicadas novamente para o ambiente de homologação. Após a verificação de que tudo está em conformidade no ambiente de homologação, a aplicação é transferida para o ambiente de produção, quando será de fato utilizada pela organização. Produção De acordo com Fowler (2017), uma aplicação ou um serviço pronto para produção é aquele que oferece confiança e disponibilidade, comportando-se de forma razoável e oferecendo o desempenho necessário para que a operação do ambiente seja possível. Um ambiente de produção na nuvem deve se comportar de forma razoável, com baixo tempo de inatividade, sendo denominado de downtime. No entanto, para saber se o ambiente está pronto, é necessário reconhecertodos os requisitos do serviço, entendendo se ele é capaz de cumprir o objetivo necessário para atender ao tráfego de produção da melhor maneira, tornando as aplicações na nuvem confiáveis. Fowler (2017) afirma que os princípios para todo microsserviço, aplicação ou sistema distribuído devem estar bem claros e que uma padronização deve existir para que tudo faça sentido. Para isso, ele aponta os requisitos que devem ser levados em consideração em um ambiente produtivo: 1. Escalabilidade e confiabilidade. 2. Tolerância a falhas, prontidão para catástrofes e desempenho. 3. Monitoramento e documentação adequada. A produção é o último estágio de uma aplicação, que sobreviveu ao ciclo de desenvolvimento, passou pelas fases de testes e correções necessárias (homologação) e finalmente foi publicada. Para isso, nesse ponto, todo e qualquer erro já deve ter sido descoberto, mitigado e resolvido. Um serviço pronto para a produção deve estar preparado para enfrentar possíveis imprevistos que possam surgir mesmo depois que esteja em produção. 25 • Primeiramente, em relação à tolerância a falhas, um sistema não deve contar com um ponto único de falha, mas deve envolver equipamentos redundantes, principalmente na camada de rede e física. • É importante que um sistema de monitoramento seja implementado e permita que falhas sejam detectadas e reparadas de forma automática. Por isso, padronizar o tratamento de incidentes e interrupções dentro da equipe que está realizando o desenvolvimento do serviço melhora o processo em produção. • A organização pode manter uma equipe dedicada que seja responsável por responder a qualquer solicitação ligada à infraestrutura, aos serviços e aos microsserviços (quando estiverem distribuídos). Atualmente, a cultura DevOps está sendo disseminada rapidamente na nuvem, sendo implementada com o intuito de integrar todos os ambientes. A operação desse método baseia-se na integração da equipe de desenvolvimento e da equipe de operações, que passam a atuar como uma só. Em alguns casos, podem tornar-se uma única equipe, que funciona durante todo o ciclo de vida do software (desenvolvimento, teste e implantação), trazendo maior facilidade ao processo. 2. Gerenciamento de acessos e serviços na nuvem Quando uma aplicação está sendo efetivamente utilizada na nuvem, é importante controlar os acessos realizados aos serviços, ainda mais quando dados críticos são armazenados no ambiente. Assim como na infraestrutura local, é necessário que o gerenciamento aos serviços seja mantido, protegendo da melhor maneira possível todas as informações e dados hospedados. 26 Garantir a privacidade dos serviços na nuvem envolve o gerenciamento de acessos e mecanismos de proteção que possam minimizar a liberação ampla de recursos, ainda mais quando isso é feito de forma desnecessária. Para garantir que cada usuário mantenha os acessos considerando a conformidade da nuvem, é necessário o gerenciamento de identidades em um ambiente de nuvem para promover a privacidade dos dados de cada usuário. A seguir veremos como funciona o IDaaS, serviço utilizado para gerenciar acesso aos serviços na nuvem. 2.1 IDaaS (Identity as a Service) A identidade como serviço, de acordo com Santos (2019), é um recurso utilizado para resolver problemas de identificação dos usuários, mantendo a autenticação e a integridade dos recursos internos da nuvem em relação aos acessos e ao monitoramento de identidades. Os componentes de IDaaS estão ilustrados na Figura 2: Figura 2 – Componentes de IDaaS Fonte: adaptada de Data Flair ([s.d.]). 27 • Segurança: recursos que auxiliam na recuperação de informações, como biometria e acesso digital. • Log on único e federação: combinação de senhas, gerenciamento de autenticação segura para serviços de terceiros na nuvem. • Análise e inteligência: relata o uso de privilégios de acesso. • Governança, risco e conformidade: suportam a modificação dos recursos de automação e inteligência de um sistema de IDaaS. São utilizadas Ferramentas específicas para realizar o monitoramento e garantir a conformidade dos serviços, para que eles possam ser gerenciados adequadamente. O gerenciamento e a conformidade (GRC) são tratados como parte do serviço e refletem na maneira com que as organizações podem adotar tais ferramentas. O gerenciamento de identidade é um fator crítico, pois, quando não é realizado de forma correta, pode se tornar uma ameaça para qualquer organização, já que inclui fatores diretamente ligados à segurança, como autenticação, autorização e qualquer requisito de auditoria. Já o gerenciamento de acessos pode ser considerado, nas palavras de Santos (2019), um recurso para permitir que os usuários possam utilizar os serviços disponíveis na nuvem, incluindo dados e qualquer outro ativo de TI que corresponda à arquitetura da nuvem (de forma lógica), assim como ocorre em uma infraestrutura tradicional. Quando há o gerenciamento correto de acessos, ele auxilia na proteção e na confidencialidade dos dados, garantindo sejam mantidos de forma íntegra e estejam disponíveis em tempo integral. Isso assegura que os usuários autorizados apenas sejam capazes de acessar os recursos correspondentes à sua permissão. Além disso, o nível de acesso pode ser estabelecido: acesso, modificação, criação de recursos, entre outros. 28 O gerenciamento de acessos atribui e implementa políticas de segurança da informação, chamadas de gerenciamento de direitos ou gerenciamento de identidade, as quais promovem a classificação dos usuários de acordo com o ambiente que pode ser acessado por ele na nuvem. Por isso, geralmente os usuários têm esses direitos atribuídos com base em sua área de atuação, seu setor ou sua função, sendo fracionados em grupos. Essa atribuição garante que as informações sensíveis sejam sempre reservadas e protegidas de acessos não autorizados. Nesse caso, todos os acessos concedidos na nuvem possuem uma identificação única para cada usuário e compreendem uma permissão específica para ele, determinando a quais informações e serviços ele terá acesso. O processo compreende a verificação de identidade e de diretrizes que definem o direito de acesso atribuído à determinada conta, incluindo a concessão de acessos e serviços autorizados. Esses acessos podem ser registrados, rastreados e revogados sempre que necessário. Geralmente essas ações são tomadas, quando a função ou o status de um funcionário é alterado dentro de uma organização. 3. Modelos de orquestração e implementação na nuvem A orquestração e a implementação de serviços distribuídos na nuvem envolvem o gerenciamento de Microsserviços, utilizados para dividir as aplicações em componentes menores, unindo-os em contêineres virtuais capazes de serem movidos ou duplicados para lidar com cargas de trabalho pesadas. De forma geral, esses modelos são oferecidos por meio de infraestrutura pré-criada de ambientes de execução, praticamente prontas para receber os recursos, de acordo com Fowler (2017). 29 Figura 3 – Aplicações orquestradas na nuvem Fonte: elaborada pela autora. Esses serviços podem ser desenvolvidos de forma independente, mas necessitam de alguns cuidados, incluindo boas práticas de operação, que envolvem a segurança e o endereçamento dos serviços para manter sua funcionalidade de forma adequada quando a distribuição dos serviços é adotada. A arquitetura de microsserviços e a orquestração de serviços na nuvem ainda se diferem de um ambiente tradicional, quando comparamos seus mecanismos de segurança. Nessa arquitetura, a superfície de ameaças e possíveis ataques é minimizada, permitindo uma maior segmentação dos componentes de aplicação. Pelo fato de as aplicações estarem segmentadas, o monitoramento se torna um pouco mais complexo, com o uso de ferramentas tradicionais de segurança, e por isso existem alguns conceitos que permitem configurar o ambiente e garantir maior proteção dos dados, de acordo comSynnex Westcon ([s.d.]): • Segurança na orquestração de nuvem Cada instância de serviço ainda é o terminal de uma rede exclusiva (o tipo de nó de uma rede de comunicação independente). Embora 30 a superfície de ataque do aplicativo não esteja mais concentrada no servidor isolado, ela aumenta com a expansão do serviço, porque mais portas são abertas e APIs são expostas, o que torna a autenticação um problema de distribuição. É fácil implantar novos serviços e instâncias dinâmicas de serviços, mas, se o administrador não conhecer as regras que regem sua interação, complicará a definição de políticas de segurança. Além disso, o aumento de serviços no datacenter ou na nuvem significa que mais transações estão exigindo interação entre serviços constantemente. Ao falar sobre orquestração em nuvem, é compreensível que essa operação envolva uma infraestrutura híbrida. De acordo com RedHat ([s.d.]), a segurança em um ambiente de nuvem híbrida define os requisitos de proteção para dados, aplicativos e infraestrutura associados à arquitetura de TI, que possui um certo grau de portabilidade em vários ambientes, incluindo o gerenciamento de desempenho, orquestração e carga de trabalho de TI em uma combinação de pelo menos uma nuvem pública ou privada. As nuvens híbridas oferecem oportunidades para reduzir a possível exposição de dados e são essenciais quando se considera um ambiente orquestrado. O uso desse modelo de nuvem permite excluir dados críticos ou confidenciais da nuvem pública e ainda usar o ambiente em nuvem para obter dados sem trazer os mesmos riscos relacionados. Por isso, as empresas que adotam nuvens híbridas podem escolher onde armazenar dados e cargas de trabalho com base em requisitos de conformidade, auditoria, política ou segurança. Embora os vários ambientes que compõem a nuvem híbrida sejam entidades únicas e independentes, a migração entre eles é feita por contêineres, os quais transferem recursos e cargas de trabalho ou APIs (interfaces de programação de aplicativos) criptografadas. Essa arquitetura independente está interconectada, permitindo que as 31 empresas executem cargas de trabalho críticas em nuvens privadas e cargas de trabalho menos sensíveis em público. Essa combinação pode minimizar o vazamento de dados e permitir que as empresas personalizem um portfólio flexível de produtos de TI. Além disso, a orquestração em nuvem permite executar muitas tarefas importantes, incluindo provisionamento, implantação de servidores, gerenciamento de armazenamento e redes, gerenciamento de identidades e privilégios e criação de cargas de trabalho. Os hackers geralmente realizam ataques de orquestração para roubar informações de log in da conta ou chaves de criptografia privadas. Assim, uma vez que tenham o acesso à nuvem, passam a criar cargas de trabalho adicionais (ou remover cargas importantes), adquirindo privilégio para roubar o máximo de informações e causar danos em grande escala (NADEAU, 2019). Para uma boa prática contra ataques de orquestração, é necessário manter o monitoramento adequado do sistema para procurar padrões de contas e comportamentos anormais no ambiente de nuvem que possam indicar vulnerabilidades. No entanto, se os privilégios para essa função estiverem configurados incorretamente, um invasor poderá executar várias tarefas por meio da função, o que inclui acessar dados ou criar contas. Nadeau (2019) aponta algumas práticas e técnicas que podem ser consideradas para manter a segurança de ambientes orquestrados pré- criados na nuvem: Ferramentas – As ferramentas de segurança implantadas em um ambiente em nuvem devem ser inerentes a ele e capazes de proteger aplicativos da Web e cargas de trabalho alocadas no ambiente. Arquitetura – É necessário definir a arquitetura com base nos benefícios de segurança e gerenciamento fornecidos pela nuvem, em 32 vez de usar a mesma arquitetura usada nos datacenters tradicionais. Ademais, o ideal, em vez de ter que corrigir vulnerabilidades na implantação na nuvem, é evitá-las, além de automatizar a implantação de correções necessárias, a fim de obter um nível de controle sobre a infraestrutura. Ponto de conexão – É necessário determinar o ponto em que a implantação na nuvem está interconectada com um datacenter tradicional, pois esse ponto de conexão muitas vezes pode ser uma fonte de problemas, já que as implantações de nuvem híbrida tendem a enfrentar a maioria dos incidentes de segurança. Endereçamento IP A inspeção de tráfego de rede também é importante nesses ambientes. A implementação de um ambiente de computação em nuvem requer coordenação e orquestração, por isso esse tipo de teste traz uma série de desafios. Por exemplo, o verdadeiro teste de recuperação de desastre exigirá isolamento do ambiente e dos caminhos de conexão – o que significa que os endereços IP de produção não podem estar ativos em dois locais ao mesmo tempo – em datacenters e soluções elásticas na nuvem. Portanto, descobrir como bloquear um segundo conjunto de endereços IP em um ambiente de produção permite que os testes sejam abrangentes sem contaminar as atividades de produção. É por esse motivo que o gerenciamento e o isolamento do endereço IP são mais importantes do que nunca na nuvem, já que, quando a internet se torna parte do processamento de produção e ambiente de teste flexível, poderá trazer grandes riscos. Na orquestração em nuvem, os contêineres (modelo de virtualização utilizado na nuvem, em nível de sistema operacional, para implementar aplicativos distribuídos) podem ser movidos em questão de segundos. 33 Por isso, o endereçamento IP, utilizado em modo dinâmico, passa a ser inviável na nuvem. Os contêineres aumentam o nível de confusão nos sistemas e na infraestrutura, porque podem ser dinamicamente orquestrados em todos os serviços ou na nuvem. Por isso, a configuração de segurança no aplicativo externo ainda é um problema, uma vez que a origem do tráfego não pode ser identificada devido ao endereçamento IP se tornar invisível externamente. Em um ambiente orquestrado, o endereço IP não é persistente, porque sempre que um aplicativo é expandido ou reduzido, ou quando um erro é encontrado e precisa ser reiniciado, seu endereço IP desaparece e precisa ser reatribuído. Por essa razão, ferramentas específicas permitem o gerenciamento de IP virtual, para que qualquer tráfego endereçado a ele seja roteado para o conjunto de recursos correspondente. Portanto, mesmo que o serviço seja alterado, o endereço IP permanecerá estático. Gerenciar o ambiente, o acesso e os recursos na nuvem é uma tarefa importante para o sucesso dos aplicativos na infraestrutura da nuvem. Portanto, manter o controle dos serviços e adaptar-se às questões de segurança e gerenciamento do ambiente são essenciais para integrar qualquer software, garantindo que ele siga os padrões do modelo na nuvem, o que agrega valor ao negócio. Referências Bibliográficas CAMARÃO, R. Usar a nuvem para seu ambiente de testes e homologação. 2016. Disponível em: http://www.4core.com.br/usar-a-nuvem-para-seu-ambiente-de- testes-e-homologacao. Acesso em: 31 jul. 2020. DATA FLAIR. Identity as a Service (IDaaS): Working & Benefits of Single Sign-On (SSO). [s.d.]. Disponível em: https://data-flair.training/blogs/identity-as-a-service- idaas/. Acesso em: 5 nov. 2020. 34 FOWLER, S. J. Microsserviços prontos para a produção. São Paulo: Novatec, 2017. IPM. Passo-a-passo como funciona a implantação do sistema em nuvem. 2018. Disponível em: https://www.ipm.com.br/blog/passo-a-passo-como-funciona-a- implantacao-do-sistema-em-nuvem. Acesso em: 31 jul. 2020. NADEAU, M. Como garantir segurança na nuvem. 2019. Disponível em: https:// cio.com.br/como-garantir-seguranca-na-nuvem-especialistas-mostram-caminho- das-pedras. Acesso em: 31 jul. 2020. REDHAT. O que é segurança em nuvem híbrida? [s.d.]. Disponível em: https:// www.redhat.com/pt-br/topics/security/what-is-hybrid-cloud-security.Acesso em: 31 jul. 2020. SANTOS, T. Gerenciamento de Serviços em Nuvem. São Paulo: Senac, 2019. SYNNEX WESTCON. Segurança em arquiteturas de microsserviços. [s.d.]. Disponível em: https://blogbrasil.westcon.com/seguranca-em-arquiteturas-de- microsservicos. Acesso em: 31 jul. 2020. 35 Disponibilidade e tolerância em Cloud Computing Autoria: Fernanda Rosa da Silva Leitura crítica: Luis Vinicius Antunes Palma Objetivos • Identificar as características de um datacenter e suas camadas, entendendo o gerenciamento dos recursos e a tolerância a falhas oferecida no ambiente da nuvem. • Identificar a criação de instâncias na computação em nuvem e a elasticidade fornecidas para as cargas de trabalho tratadas na nuvem com o uso de virtualização. • Reconhecer os conceitos de clusterização e balanceamento e os recursos utilizados para aplicar as técnicas na nuvem. 36 1. Características de um datacenter na nuvem Atualmente, a computação em nuvem utiliza diversos recursos para atingir os níveis ideais de elasticidade e disponibilidade na nuvem. Seu componente central em qualquer organização é o datacenter, no qual todos os serviços estão hospedados e são gerenciados por meio da nuvem de forma centralizada. Todos os equipamentos armazenados no datacenter são conectados com o mundo externo por meio da rede de telecomunicações e servem à carga de TI, definida por todas as instalações, à largura de banda necessária e ao sistema de telecomunicações. Dessa forma, Veras (2012) classifica os datacenters em dois grupos: A. Datacenters empresariais (eDC): construídos dentro da própria organização que os utiliza. B. Datacenters de internet (iDC): responsáveis por disponibilizar os serviços de nuvem para terceiros. No modelo de nuvem, a função do datacenter é alcançar o nível apropriado de serviço para cada uma das aplicações hospedadas, com base na criticidade de cada uma delas, melhorando a capacidade e a eficiência das aplicações. Os recursos na nuvem são provisionados de forma mais flexível, de acordo com Veras (2012), por meio dos componentes do datacenter, que devem atender à eficácia e às necessidades do negócio, reduzindo os custos e permitindo o gerenciamento de forma centralizada. Além disso, o datacenter deve prover: • Desempenho. • Disponibilidade. • Escalabilidade. 37 • Segurança. • Gerenciabilidade. Esses padrões devem ser utilizados para provisionamento e dimensionamento dos diversos dispositivos que compõem o datacenter, além de definirem a qualidade dos serviços a serem fornecidos por meio das aplicações. A computação em nuvem fornece diversas ferramentas que garantem a otimização de recursos na nuvem, gerando alta disponibilidade e possibilitando a eliminação de todos os pontos de falha. Ao criar redundância em processos e equipamentos, é possível fazer com que, caso um servidor venha a falhar por qualquer motivo, o outro servidor continue em execução. Essas alterações podem ser feitas de forma imediata (failover) e os usuários nem perceberão as alterações, devido à agilidade de sincronização entre os equipamentos envolvidos. No entanto, esses serviços também devem ser projetados para funcionar de forma integrada, e geralmente integralizam as instâncias por meio da virtualização, para que possam ser gerenciadas no ambiente da nuvem. Figura 1 – Datacenter virtualizado na nuvem Fonte: adaptada de Veras (2012, p. 200). 38 1.1 Camadas de um datacenter Um datacenter pode ser dividido em quatro camadas (tiers), que servem para avaliar efetivamente seu desempenho. Elas são criadas pelo Uptime Institute a partir das exigências de negócios para a disponibilidade de um sistema (UPTIME INSTITUTE, [s.d.]). Tier 1: Básico Neste modelo, não há redundância em nível físico ou lógico da infraestrutura de TI. Uma falha elétrica pode causar interrupção parcial ou total na operação da infraestrutura. O datacenter geralmente possui um ponto central único de falha, pois nenhum equipamento de rede, como roteador e switch, é redundante. Tier 2: Componentes Redundantes Os equipamentos de telecomunicações, os equipamentos de telecomunicações da operadora e os equipamentos de rede que envolvem a infraestrutura LAN devem conter módulos de alimentação redundantes. Geralmente os cabos são de cobre ou fibra ótica, mas, mesmo assim, qualquer ponto de falha nos sistemas de refrigeração e energia pode ocasionar falha em todos os componentes. Tier 3: Manutenção sem Paradas Neste modelo, pelo menos dois provedores/operadoras de telecomunicação estão envoltos, com cabeamento para garantir a conectividade do ambiente, sendo pelo menos duas salas mantidas para hospedar os equipamentos, as quais devem estar devidamente protegidas contra incêndios, com o uso de sistemas de energia e ar condicionado independente. Além disso, recursos redundantes devem ser mantidos como fibra e os dispositivos críticos como storages (armazenamento), devendo estar redundantes. 39 Tier 4: Tolerante a Falhas Todo cabeamento, dispositivo e caminho são redundantes, contendo duas alimentações de energia pelo menos, comunicação automatizada até os dispositivos de backup, zonas de proteção de incêndio e capacidade de resfriamento com contingência. Falhas não irão acometer o ambiente. Além das especificações citadas para o datacenter mantido pelo provedor de nuvem, em ambiente similar ao tradicional, porém com o objetivo de fornecer todas as características da nuvem, ainda existe a possibilidade de adquirir a opção de Datacenter como Serviço (DCaaS). Essa solução fornece instalações e infraestrutura para datacenters físicos fora dos clientes, os quais podem alugar servidores, redes, armazenamento e outros recursos de computação dos provedores de DCaaS, tendo maior controle sobre os recursos, em comparação com o que ocorre em modelos convencionais, como SaaS, PaaS e IaaS. Nessa solução, é possível manter o acesso aos recursos que são complementados por outras ofertas, como Backup as a service (BaaS), Disaster Recovery as a Service (DRaaS), viabilizando a continuidade do negócio por meio de planos de contingência, e Security as a Service (SaaS), para proteger o datacenter contra ameaças e focos de vulnerabilidade. 2. Virtualização, instâncias na nuvem e suas características Os serviços de computação em nuvem criam redundância em diferentes camadas operacionais. Esse recurso pode ser aplicado, de acordo com Veras (2012), na camada de hardware, envolvendo dois sistemas de energia e duas formas diferentes de resfriamento para garantir a operação normal sob quaisquer condições, ou em relação à contratação, 40 assegurando a comunicação entre o datacenter e o ponto de coleta de tráfego. Além disso, servidores também trabalham em conjunto, evitando a indisponibilidade dos sistemas hospedados por eles e mantendo a operação da infraestrutura. Além de todas essas possibilidades, a virtualização permite o alcance da alta disponibilidade aplicada na camada de IaaS para a organização, enquanto o balanceador gerencia a carga e direciona os aplicativos para o servidor ativo. Isso facilita a manutenção dos serviços por meio das instâncias virtuais, otimizando o tempo de ajustes e configurações, sem que para isso o servidor precise ser interrompido. A otimização oferecida pela virtualização inclui ainda todos os recursos da infraestrutura de TI, como servidores, storages e dispositivos de rede, englobando todos os recursos da Infraestrutura de TI em um ambiente virtual e compartilhado. Vamos analisar os principais recursos contidos em um datacenter virtual: • Recursos de processamento e memória, incluindo servidores e clusters virtuais que permitem criar conjuntos de servidores, o que possibilita agregar recursos de forma dinâmica. • Recursos de Storage, utilizados para armazenamento de dados e informações. • Recursos de conectividade. • Recursos virtuais de memória e processamento sob demanda. • Algumas vantagens são atribuídas aogerenciamento de instâncias virtuais em vez de servidores físicos: • Os recursos de processamento e memória incluídos em servidores e clusters podem ser particionados e divididos por meio de pools de recursos. 41 • O administrador é capaz de definir suas próprias políticas de sistemas e ter maior flexibilidade. Um datacenter virtualizado é definido por Veras (2012) como um conjunto de tecnologias (computing pods) que funcionam como qualquer outro, considerando um sistema de energia e refrigeração projetado para otimizar o uso dos recursos, além de fornecer uma plataforma simplificada de gerenciamento e provisionamento. A virtualização aplicada para as instâncias na nuvem tem como principal objetivo particionar um servidor físico em vários servidores lógicos. Assim, os servidores podem ser o resultado de um conjunto de servidores combinados, sendo cada um responsável por oferecer redundância aos recursos essenciais de rede, armazenamento e processamento. Vejamos como isso é possível (Figura 2): Figura 2 – Servidores e instâncias virtualizadas na nuvem Fonte: adaptada de Veras (2012, p. 164). Na arquitetura tradicional, o servidor executa um sistema operacional exclusivo, e, além disso, uma infraestrutura local é formada por dispositivos físicos de entrada e saída conectados ao servidor. Já na 42 virtualização, essa arquitetura é modificada, e invalida o conceito inicial de que um servidor físico é um único, podendo atualmente ser segmentado em diversos (servidores virtuais). Ademais, é possível que imagens baseadas em sistemas operacionais possam ser movimentadas entre diversos servidores de acordo com a necessidade da infraestrutura de TI, trazendo mobilidade à instância. 3. Clusterização e balanceamento na nuvem A demanda por alta disponibilidade decorre da confiança da organização em sistemas de automação e computadorizados, e essa necessidade requer disponibilidade em tempo integral e tarefas baseadas no uso da tecnologia. Em ambientes de nuvem, é possível selecionar zonas de disponibilidade, localizadas em diversas regiões, para garantir maior segurança sob os dados. Assim, caso um dos pontos falhe, a possibilidade de que a outra zona selecionada ainda esteja íntegra é maior, já que estão localizadas em diferentes datacenters. A AWS da Amazon, por exemplo, implementa zonas de disponibilidade, em que a rede apresenta uma baixa latência entre as instâncias, facilitando a construção entre processos de alta disponibilidade. Dessa forma, os recursos são protegidos quando existe um ponto de falha, o que possibilita que um alto nível de proteção seja alcançado em relação a qualquer desastre que possa intervir na operação do ambiente. De acordo com Critchley (2014), se o sistema puder se recuperar de uma falha sem perder dados dentro de um tempo razoável (dependendo da criticidade do ambiente), será considerado como altamente disponível. No início dos mainframes, o uso de sistemas operacionais era limitado aos seus fabricantes, e eles dependiam de softwares específicos para que pudessem ser executados. Porém, com o desenvolvimento e o crescimento das redes de computadores, essa restrição foi rompida, 43 aproximando-se cada vez mais e evoluindo também para as soluções na nuvem. Dessa forma, assim como a virtualização é capaz de resolver problemas relacionados à subutilização de recursos em servidores físicos, a clusterização age de forma reversa, revertendo problemas referente à falta de recursos (VERAS, 2012). Um cluster por trás da nuvem funciona da mesma maneira que em uma infraestrutura local e pode ser aplicado tanto a nível de sistema operacional como de hardware (envolvendo os dispositivos gerenciados pelo datacenter), sendo esse recurso aplicado antes da camada de virtualização e gerenciamento da nuvem. Vejamos a Figura 3: Figura 3 – Clusters na computação em nuvem Fonte: elaborada pela autora. Um cluster serve para incrementar o desempenho ou a disponibilidade de um servidor e pode ser classificado da seguinte forma: 44 • Clusters de alta disponibilidade (High Availability – HA): atribuem redundância com capacidade de failover automático (atribui as funções a outro servidor, quando um falhar). • Clusters de balanceamento de carga (Load Balancing – LB): tem foco em adicionar capacidade à carga de trabalho gerada, na qual os servidores trabalham simultaneamente, balanceando as atividades e dando vazão às demandas da rede (Workload). • Clusters de alta performance (HPC e HTC): tratam do desempenho aprimorado do aplicativo. • Clusters em Grid: endereçam o melhor dos dois mundos, combinando recursos de alta disponibilidade e alto desempenho. Os tipos de clusters diferem-se em: • Clusters de alta disponibilidade: apresentam maior demora no processamento de dados, pois seus dados são frequentemente atualizados para que sejam capazes de substituir um ao outro, quando necessário. Dessa forma, os nós (servidores) que compõem o cluster monitoram um ao outro ajustando todas as informações, quando necessário. São comumente utilizados por serviços de armazenamento, impressão e banco de dados. • Clusters de balanceamento: funcionam de forma independente, sendo utilizados para balancear uma carga de trabalho entre dois ou mais servidores e evitando que apenas um fique sobrecarregado. Geralmente funcionam em estado de leitura de dados, como servidores web e VPNs; servidores FTP, firewalls e servidores proxy também costumam usar o cluster do tipo Load Balancing. Um exemplo de LB, citado por Veras (2013), é o Elastic Load Balancing, da Amazon, utilizado em conjunto com instâncias criadas no EC2, na plataforma do provedor, melhorando a capacidade de tolerância a falhas 45 e fornecendo capacidade de carga em resposta à entrada de serviços. Além disso, essa solução detecta de forma automática problemas que possam ocorrer nas instâncias, transferindo o tráfego para nós saudáveis e mantendo a continuidade do negócio. • Clusters de alto desempenho: adequar o cluster de alto desempenho pode ser um desafio, porque, para chegar ao resultado esperado, é necessário combinar supercomputadores ou vários clusters. • Clusters em Grid: o grid é uma evolução do conceito de datacenter na nuvem, definindo um aglomerado de clusters conectados pela rede e geralmente considerando a conexão de recursos geograficamente distantes. Veras (2012) afirma que esse tipo de recurso garante maior desempenho e processamento, com custo mais baixo e utilizando um supercomputador de grande potência. Esse tipo de cluster geralmente é utilizado para tarefas específicas e após defeitos, apenas desfazendo a relação entre os clusters estabelecidos com o uso de software específico. Um exemplo de Grid é um ambiente em que duas empresas localizadas em países/ regiões em fusos horários diferentes combinam seus servidores. Nesse caso, cada um utiliza os recursos em períodos em que estão ociosos. Dessa forma, os horários de pico entre as duas organizações ocorrem em períodos diferentes, e, assim, os recursos podem dar vazão a toda a demanda de forma alternada, ocasionando uma redução de custos para ambas as partes. Um exemplo de provedor que oferece serviços com essas características é a Microsoft, com o Windows Azure. A plataforma roda atualmente em seis datacenters diferentes espalhados geograficamente. Assim, o desenvolvedor/ usuário escolhe onde irá rodar sua aplicação e se precisa ou não utilizar a contingência mantida por mais datacenters, considerando a criticidade do seu negócio. 46 Em sua plataforma, a Microsoft oferece um recurso denominado Windows Azure Traffic Manager, distribuindo essas aplicações com melhor desempenho, alta disponibilidade ou balanceamento de carga. A Figura 4 ilustra sua estrutura: Figura 4 – Traffic Manager Microsoft Fonte: adaptada de Veras (2012, p. 201). Para o gerenciamento dessa plataforma, a Microsoft oferece outra ferramenta, denominada System Center Virtual Machine Manager.Ela é formada por uma camada crítica de gerenciamento que permite um controle centralizado dos recursos, o que oferece uma plataforma unificada e uma infraestrutura virtualizada entre várias plataformas criadas, incluindo hosts, sistemas operacionais e banco de dados. O modelo de serviço de computação em nuvem permite que os usuários sejam capazes de optar por testar qualquer aplicativo em diferentes configurações e instâncias virtuais, selecionando o cluster que melhor atenda às necessidades do aplicativo. No modelo de infraestrutura como serviço (IaaS), por exemplo, é possível selecionar recursos como núcleos 47 de processamento, que muitas vezes estão atrelados a clusters criados no datacenter do provedor. Referências Bibliográficas CRITCHLEY, T. High availability IT services. Flórida: CRC Press, 2014. UPTIME INSTITUTE. Sistema Tier de classificação. [s.d.]. Disponível em: https:// pt.uptimeinstitute.com/tiers. Acesso em: 7 ago. 2020. VERAS, M. Arquitetura em nuvem. Amazon Web Services (AWS). Rio de Janeiro: Brasport, 2013. VERAS, M. Cloud Computing: nova arquitetura de TI. Rio de Janeiro: Brasport, 2012. 48 Monitoramento de serviços na nuvem Autoria: Fernanda Rosa da Silva Leitura crítica: Luis Vinicius Antunes Palma Objetivos • Descrever sobre a importância do monitoramento de serviços e quais serviços devem ser monitorados para manter a operação da nuvem corretamente. • Apontar as ferramentas de monitoramento utilizadas para controle e administração dos serviços em nuvem, do desempenho e do nível de serviço. • Discorrer sobre os benefícios resultantes da adoção de boas práticas e técnicas para monitoramento dos serviços na nuvem. 49 1. Monitoramento de serviços na nuvem Desde o surgimento da computação, uma simples falha no computador central já era capaz de causar total indisponibilidade e paralisar toda a operação de uma organização. Hoje, o mesmo poderia ocorrer na nuvem se um único ponto de operação fosse mantido e não fosse corretamente monitorado. A nuvem é um modelo de serviços centralizado mantido por um conjunto de recursos computacionais, por isso é necessário manter o controle de todos eles, por mais complexo que isso se torne. Ao realizar a transição de serviços e as aplicações para a nuvem, de acordo com Costa et al. (2019), a responsabilidade atrelada à organização/provedor depende do modelo contratado, o que leva a uma mudança sobre como serão conduzidos o monitoramento e o acompanhamento de logs de segurança e a análise de informações sobre aplicativos, serviços, dados e usuários na nuvem. Quando uma máquina virtual se torna indisponível na nuvem por algum problema de configuração, gargalo de recursos ou problemas relacionados ao sistema operacional, uma série de recursos passa a ser interrompida. Por isso, geralmente agrupamentos são criados para garantir a alta disponibilidade. De qualquer forma, os serviços na nuvem devem ser constantemente monitorados para que se possa agir de forma proativa, quando algum recurso precisar de atenção. Problemas de rede também podem trazer grandes problemas para o ambiente, afetando a conexão com a nuvem. Uma solução de monitoramento de rede adequada pode realizar todas essas tarefas por meio de um sistema central. Além disso, pode alertar imediatamente os administradores de TI em caso de falha de sua própria infraestrutura de TI local e interferência, quando se mantém 50 uma nuvem privada, ou alertar sobre os serviços hospedados em uma nuvem pública, por meio do dashboard disponibilizado pelo próprio provedor de nuvem. No entanto, monitorar a infraestrutura de computação em nuvem não se limita apenas a analisar ferramentas básicas de rede e verificar problemas simples do dia a dia da empresa. Os métodos de inspeção atuais fornecem uma abordagem mais ampla, permitindo o uso de ferramentas capazes de analisar e resolver problemas de redes, aplicações, fluxo de dados e verificar problemas e causas que podem acarretar diversos problemas e falhas na camada de virtualização e do sistema operacional. Com o apoio das informações fornecidas pelas ferramentas centralizadas na nuvem, é possível tomar decisões em momentos críticos e estratégicos, visualizando a estrutura da nuvem e o ciclo de vida das operações e ajudando, assim, continuamente a tomar melhores decisões. Outro ponto que deve ser considerado é a segurança. Esse fator depende diretamente do monitoramento para que brechas de vulnerabilidade e ameaças sejam detectadas, evitando que ocorram ataques cibernéticos e roubo de informações por meio de mecanismos desenvolvidos para corromper os serviços e as aplicações mantidos na nuvem, o que pode trazer grandes prejuízos e perda de informações. Em relação ao monitoramento, Chaves (2010) aponta diversos motivos para que ele seja realizado em um ambiente de nuvem: a. Garantir que as máquinas virtuais entreguem a capacidade estipulada pelos ANS (Acordo de Nível de Serviço). b. Coletar dados para contabilizar se a cobrança está sendo realizada de acordo com o que é oferecido. 51 Além disso, o autor também reforça que o monitoramento deve ser realizado em dois níveis: a. Medições em nível da infraestrutura para níveis de memória e largura de banda, por exemplo. b. Indicadores diretamente ligados ao desempenho das aplicações, definidos para monitorar, por exemplo, o número de usuários conectados na nuvem. Além disso, as ferramentas na nuvem também são utilizadas para monitorar o comportamento de funcionários e usuários na Intranet ou Internet e como eles conduzem o uso dos recursos dentro do ambiente da nuvem. Na modalidade SaaS, as atualizações, as manutenções e todo o processo de monitoramento são de responsabilidade do provedor de serviços, o que isenta a organização dessa responsabilidade, não necessitando que seja investido tempo no gerenciamento dos recursos de infraestrutura. Porém, em PaaS e IaaS, a atenção deve ser redobrada. Existem diversos recursos essenciais que devem ser considerados para o monitoramento de um ambiente em nuvem (Figura 1): Figura 1 – Monitoramento de recursos na nuvem Fonte: elaborada pela autora. 52 • Infraestrutura de rede e hardware A infraestrutura de rede é responsável por todos os recursos essenciais na comunicação com a nuvem, sendo necessária para que qualquer operação seja possível. Todos os componentes hospedados em um datacenter precisam ser bem gerenciados para manter os serviços disponíveis, e esse controle apenas é possível com o monitoramento do ambiente. Definir quais processos devem ser executados para contornar problemas técnicos e as ferramentas para o monitoramento de links de internet, switches e roteadores são tarefas necessárias, ainda mais no modelo IaaS, em que a organização retém o controle total dos recursos hospedados desde a camada de virtualização. • Software Antes de qualquer coisa, o monitoramento dos sistemas operacionais deve ser considerado um item crítico, quando ambiente é IaaS. O monitoramento nesse nível é muito importante para verificar a disponibilidade dos serviços, realizar qualquer otimização, quando necessário, e acompanhar o tempo de resposta e informações, como versões instaladas e updates. Já os softwares são aplicativos usados para atender geralmente a funcionários e clientes e podem ter a funcionalidade de tratar demandas tanto internas como externas, de grande importância para a organização. Além de verificar todas as soluções utilizadas no dia a dia, normalmente existe uma equipe de suporte para solucionar problemas e esclarecer dúvidas dos usuários. O monitoramento evita que problemas em softwares fiquem muito tempo sem solução. 53 • Banco de dados Bancos de dados são os repositórios que mais armazenam informações em massa, e, por esse motivo, precisam ser constantemente monitorados. Qualquer indisponibilidade em um sistema de banco de dados pode ocasionar grandes prejuízos financeiros. Utilizando ferramentascorretas, é possível, no entanto, acompanhar processos, monitorar o estado do banco e garantir a funcionalidade dos recursos de backup. • Segurança A segurança da informação, na verdade, contornou todos os departamentos descritos nesta lista, mas esse ponto se refere à indisponibilidade, ao corrompimento de dados ou até mesmo a informações inverídicas, tendo como consequência riscos financeiros, caso ocorra um incidente de segurança. Por isso, é importante monitorar acessos indevidos, controlar acessos de usuários e analisar logs de contas sempre que necessário. Tanto os recursos computacionais como recursos de segurança e todos os fatores que envolvem a forma como os serviços em nuvem são gerenciados devem ser monitorados para que possam ser medidos e controlados. Alguns conceitos devem ser compreendidos acerca do monitoramento na nuvem, como veremos na próxima seção. 2. Conceitos básicos sobre gerenciamento e monitoramento de serviços Quando se fala em nuvem privada, o controle por parte da organização se torna mais efetivo, mas, em nuvens públicas, muitas vezes o provedor precisa ser acionado em alguns casos. De acordo com Santos (2019), o GNS (Gerenciamento de Nível de Serviço) deve ser utilizado para medição desses serviços, pois é com o uso dessa ferramenta que se torna possível o processo de ligação entre o provedor e o cliente. 54 Esse método de gerenciamento tem o objetivo de acompanhar a gestão de qualidade de serviço (QoS) com o uso de indicadores de desempenho (Key Performance Indicator – KPI). Sendo assim, por meio da interação dos indicadores, é possível identificar se o desempenho real está de acordo com as expectativas predefinidas para determinar se ações são ou não necessárias em relação à qualidade de determinado serviço na infraestrutura de TI. Com o suporte do GNS, é possível identificar problemas de desempenho, criando alertas e minimizando, dessa forma, o risco relacionado ao tempo de inatividade de um sistema. Sempre que os níveis de serviço precisarem ser monitorados, devem ser considerados parâmetros claros para que essa medição seja possível, incluindo: segurança, continuidade de operações e qualidade de serviço que atendam às necessidades individuais. É necessário especificar métricas de medição e monitoramento para que os serviços possam ser controlados, estabelecendo quais seriam as consequências causadas por descumprimento dos níveis estabelecidos. As organizações devem, por meio do monitoramento, rastrear as taxas de uso/consumo para garantir que as tarifas cobradas pelo provedor estejam de acordo com a forma como os serviços estão sendo efetivamente prestados e não excedam os valores disponíveis em orçamento pré- estabelecidos quando o contrato foi estabelecido. Para isso, podem ser desenvolvidas ferramentas de monitoramento de desempenho e medição de consumo para capturar de forma precisa todas as informações importantes que permitam que esse controle seja possível, de forma independente dos sistemas de provedores, garantindo que o conhecimento sobre esses indicadores não se perca de nenhuma maneira. O monitoramento também é útil para que a organização monitore necessidades ligadas ao uso da nuvem e a possibilidade de migrar seus serviços para outro escopo fornecido, quando necessário. Por exemplo, passar a utilizar PaaS em vez de SaaS, à medida que o mercado amadurece essa ideia e aperfeiçoa a forma como essas ferramentas 55 são oferecidas, mantendo um foco mais direto no que se busca, com mais confiança no provedor. Além disso, as tecnologias disponibilizadas pelo(s) provedor(es), como Internet das Coisas (IoT), Inteligência Artificial (AI) e sua evolução, também devem ser consideradas. Frameworks como ITIL são comumente utilizados para manter o monitoramento do nível de serviço em conformidade com o que a organização busca para os seus serviços, apontando melhores práticas por meio da conformidade dos serviços. Akabane (2012 apud SANTOS, 2019) classifica ITIL como um conjunto de práticas capazes de conduzir as seguintes tarefas: • Identificar cada serviço e seus requisitos. • Definir, construir e gerenciar o catálogo de serviços. • Negociar os acordos de nível de serviços entre as partes envolvidas. • Identificar requisitos vigentes para contratos e serviços. • Monitorar e gerenciar os serviços e seus respectivos SLAs. • Propor ações de melhoria para processos e serviços. • Fornecer informações úteis para o gerenciamento da qualidade de serviços. Santos (2019) destaca também a ISO 20000 (ISO, 2018), que utiliza as informações e o conhecimento como base para planejar e monitorar os serviços. Essa norma aborda a forma como as políticas do gerenciamento de TI são adotadas pelo provedor de nuvem para que seja possível melhorar, manter e monitorar os serviços eficientemente baseados em ITIL e suas fases, como o design, a transição, a entrega e a melhoria dos serviços de TI. Para complementar o que é citado por Santos (2019), podemos considerar o que apontam Fernandes e Abreu (2012). Segundo eles, a 56 ISO 20000 (ISO, 2018) sugere a aplicação de um ciclo de PDCA (plan-do- check-act), que pode ser implementado pelos provedores para garantir todos os processos de acompanhamento para um serviço de TI na nuvem, conforme etapas ilustradas na Figura 2: Figura 2 – Sistema de gerenciamento de processos e serviços de TI Fonte: elaborada pela autora. • Planejar (plan): define o planejamento do gerenciamento do serviço. • Fazer (do): implementação do desenho, transição, entrega e melhoria dos serviços. • Checar (check): monitoramento, medição e checagem dos serviços. • Agir (act): implementar ações que visam à melhoria contínua dos serviços. Todas as etapas do monitoramento e da operação em nuvem devem ser seguidas para garantir que a operação flua corretamente. Assim, nenhuma ação deve ser implementada sem que o monitoramento e a análise correta dos serviços sejam realizados. Para esse fim, diversas ferramentas estão disponíveis para a nuvem, além de serviços como MaaS (monitoramento como serviço), oferecidos pelos próprios 57 provedores de nuvem, que definem o provisionamento terceirizado de segurança para plataformas de negócio que utilizam a internet como base para seus serviços. 3. Ferramentas de monitoramento na nuvem O monitoramento da nuvem é uma tarefa de grande importância tanto para os provedores como para os clientes, por permitir o controle do hardware e do software que estão sendo utilizados por meio dos serviços disponibilizados na nuvem. Antes de iniciar o monitoramento dos serviços, é necessário definir quais indicadores são realmente relevantes no ambiente de nuvem, evitando a complexidade desnecessária e filtrando somente por itens que realmente sejam importantes para manter a funcionalidade dos serviços na nuvem. Tanure (2019) sugere as seguintes etapas para um processo de definição dos indicadores de monitoramento: Figura 3 – Indicadores de avaliação de desempenho e requisitos da nuvem Fonte: adaptada de Tanure (2020). 58 Além disso, as informações sobre o desempenho e os indicadores sobre o comportamento da plataforma, das aplicações e dos serviços podem ser monitoramentos por meio de diversas ferramentas na nuvem, que são diferenciadas pelo seu foco e seus objetivos. Monitores como Data Dog, Logic Monitor, AppDynamics e Ganglia podem ser aplicados com essa funcionalidade. DataDog: utilizado não somente para monitorar os serviços na nuvem, mas para escalar serviços, monitorar aplicações de alto desempenho e avaliar o uso dos serviços. Esse monitor atualmente é utilizado de forma integrada em diversas plataformas, como Amazon, Auto Scaling, Apache e BitBucket. É uma ferramenta open-source e passa por constantes melhorias pela comunidade, mantendo uma interface que permite a visualização dos dados de diversas formas. Logic Monitor: utilizado para monitorar ambientes SaaS de código fechado. Chaves (2012) cita algumasempresas que utilizam essa ferramenta, como Adidas, Siemens e Sophos. Seu foco é prover monitoramento para plataformas em camadas, agregando fácil controle de acesso, segurança e possibilidade de realizar o acesso às informações monitoradas obtidas com total confiabilidade. AppDynamics: é um software criado e mantido pela Cisco que tem como principal funcionalidade monitorar aplicações de alto desempenho, por meio de componentes configuráveis dentro de sua estrutura: controller, MySQL database, events service, além de outros disponíveis somente para sistemas Linux e Windows Server. Suas principais características são flexibilidade e dinamismo, que permitem a coleta de dados em tempo real, emitindo alertas que podem ser enviados aos usuários, especificando problemas e falhas por meio de filtros configurados para cada ambiente. 59 Ganglia: promete um monitoramento distribuído para o uso em computação de alta performance e tolerância a falhas, incluindo sistemas de cluster e grids. A utilização de ferramentas de monitoramento garante controle de ativos, aumentando a visibilidade e o controle das operações executadas por meio deles. Quando uma organização migra seus serviços para a nuvem, de alguma forma a visibilidade sobre os seus ativos diminui, pois a responsabilidade mesmo que parcial sob essas atividades é transferida para o provedor de nuvem, ainda que o nível de responsabilidade dependa do modelo de serviço em nuvem adquirido e de sua relação com o monitoramento em nível de logs e segurança mantida pela organização. No entanto, as organizações devem estar preocupadas em realizar o monitoramento e a análise de informações sobre aplicativos, serviços, dados e usuários na nuvem, e, para isso, é necessário criar uma estratégia adequada, ainda mais quando são mantidos ambientes híbridos, migrados parcialmente para a nuvem, mas que ainda são compostos por infraestrutura local, já que garantir o desempenho e a alta disponibilidade, com um custo acessível para diferentes infraestruturas, torna-se mais complexo. A automação é responsável por facilitar o monitoramento no ambiente da nuvem, tendo um papel fundamental para qualquer estratégia de monitoramento, principalmente nesse modelo de ambiente, o que melhora a coleta dos dados e reduz problemas de desempenho e indisponibilidade. De acordo com Chaves (2012), nuvens públicas e privadas tratam diferentes tipos de dados. Por isso, o monitoramento se torna mais difícil quando se trata de identificar problemas e dimensionar dinamicamente os recursos utilizados pelas infraestruturas. Assim, uma 60 boa prática é agregar um subconjunto de dados de monitoramento de cada uma das plataformas em uma única camada de gerenciamento. Existem diversos frameworks que foram idealizados para permitir o monitoramento correto dos serviços em nuvem, e alguns deles, de acordo com Chaves (2012), são o Grid Monitoring Architecture (GMA) ou arquitetura de monitoramento em grade, o PRTG e o Nagios: • Grid Monitoring Architecture (GMA) A arquitetura do GMA é definida por três componentes: • Serviço de diretório: especifica as mensagens que os produtores e os consumidores resolvem aceitar para controlar e monitorar os recursos e a comunicação entre eles. • Produtores: responsáveis por tornar os dados de desempenho disponíveis. • Consumidores: recebem os dados de desempenho disponibilizados por meio dos provedores. Nessa arquitetura, a comunicação entre os componentes envolvidos ocorre por meio de mensagens especificas: publish/subscribe, os interessados se inscrevem para receber mensagens especificas; query/ response, os interessados solicitam as informações em um esquema de pergunta/resposta; e notificação, maneira como o produtor envia informações para os consumidores. • PRTG Focado no monitoramento de serviços em infraestrutura local, também teve a ferramenta adaptada para monitoramento na nuvem, utilizando sensores que permitem monitorar protocolos, como o HTTP e diversos serviços na nuvem, possibilitando a análise da acessibilidade 61 dos serviços e o desempenho em nuvens localizadas em diversos continentes, com tempos de resposta determinados para qualquer parte do mundo. O PRTG permite monitoramento para tecnologias VMware e Microsoft OneDrive, exibindo espaço de armazenamento, indicadores de uso e sinais de escassez que podem e corrigidos. Ele ainda disponibiliza um sensor de nuvem para monitorar tempos de PING e seus serviços. Além disso, fornece suporte para Google Analytics, Amazon CloudWatch, Dropbox e diversos serviços da Amazon, aplicando sensores para monitorar os desempenhos. • NAGIOS O Nagios é um framework de código aberto utilizado para monitoramento com o intuito de identificar falhas no sistema da nuvem. Ele fornece diversas funcionalidades, como: a. Monitoramento dos componentes de infraestrutura, aplicações, serviços, sistemas operacionais e componentes de rede. b. Monitoramento de todos os processos de maneira centralizada, visando ao controle das operações do negócio. c. Organização e planejamento de atualizações na infraestrutura de forma proativa. Os aspectos do monitoramento na nuvem e as características das ferramentas de monitoramento devem ser destacados na computação em nuvem, visando ao controle adequado da nuvem e à conformidade dos processos mantidos pelo provedor. Considerando todas as atividades gerencias da nuvem, o monitoramento desempenha um papel muito importante e fundamental para o acompanhamento desses sistemas, servindo como base para o planejamento e a implantação de melhorias do ambiente. Acompanhar 62 as mudanças deve ser uma tarefa constante, para impulsionar as tecnologias e evoluir no modelo de nuvem, implementado, estendendo os recursos ou regredindo, se necessário, para manter a conformidade entre a nuvem e os negócios. Referências Bibliográficas CHAVES, S. A. Arquitetura e sistema de monitoramento para computação em nuvem privada. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal De Santa Catarina, Florianópolis, 2010. Disponível em: https://repositorio.ufsc.br/xmlui/bitstream/handle/123456789/93827/287315. pdf?sequence=1&isAllowed=y. Acesso em: 17 ago. 2020. COSTA, B. et al. Desmistificando a Adoção de Serviços em Nuvem Governamental. Brasília: IBGP, 2019. FERNANDES, A. A.; ABREU, V. F. Implantando a Governança de TI: da estratégia à gestão dos processos e serviços. Rio de Janeiro: Brasport, 2012. ISO. ISO 20000. 2018. Disponível em: https://www.iso.org/obp/ui/#iso:std:iso- iec:20000:-1:en. Acesso em 05.nov.2020. SANTOS, T. Gerenciamento de Serviços em Nuvem. São Paulo: Senac, 2019. TANURE, R. Como monitorar a infraestrutura em nuvem AWS. 2019. Disponível em: http://emaster.clou/blog/como-monitorar-a-infraestrutura-em-nuvem-aws. Acesso em: 17 ago. 2020. BONS ESTUDOS!