Tecnologias e Soluções de Computação em Nuvem
Aula 1
Tecnologias de suporte a nuvem
Tecnologias de suporte a nuvem
Olá estudante! Nesta videoaula, exploraremos tecnologias de containerização de aplicações, exploração de tecnologias-chave, como Docker e container.
Também abordaremos as tecnologias de virtualização de servidores, explicação sobre virtualização de servidores e seu papel na criação de ambientes virtuais e a evolução de tecnologias de redes, como a visão geral da evolução das tecnologias de redes.
Ao seguir esse esboço, você terá uma visão abrangente e prática das tecnologias essenciais em containerização, virtualização de servidores e evolução de redes e datacenters. Isso o preparará para compreender e aplicar efetivamente esses conceitos em ambientes reais de TI.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!
Ponto de Partida
Caro estudante, estudar tecnologias de suporte a nuvem é fundamental devido à crescente adoção de computação em nuvem em organizações de todos os tamanhos e setores. Aqui estão algumas razões pelas quais estudar essas tecnologias é valioso.
Nesta aula você irá aprender sobre containerização de aplicações e virtualização de servidores. Os containers encapsulam aplicações e suas dependências, tornando-as portáteis entre ambientes de desenvolvimento, teste e produção. Isso simplifica o processo de implantação e reduz problemas relacionados a diferenças de ambiente. A virtualização de servidores isola aplicações e sistemas operacionais em máquinas virtuais distintas, o que contribui para a segurança e confiabilidade.
Estudar essas tecnologias não só atende às demandas do mercado de trabalho, mas também capacita os profissionais de TI a projetar, implementar e gerenciar infraestruturas de maneira mais eficiente, segura e ágil. As organizações modernas frequentemente buscam profissionais com habilidades nessas áreas para impulsionar a inovação e otimizar operações.
Bons estudos!
Vamos Começar!
Tecnologias de containerização de aplicações
A containerização de aplicações é uma tecnologia que permite empacotar e distribuir aplicações juntamente com suas dependências e configurações em um ambiente isolado. Isso oferece consistência no ambiente de execução, facilita a implantação e escalabilidade das aplicações. Duas tecnologias de containerização amplamente utilizadas são Docker e Kubernetes.
Um modelo alternativo à virtualização baseada em hypervisor é a virtualização baseada em contêiner, que ocorre no nível do sistema operacional (Bachiega; Souza; Bruschi, 2017). Nesse caso, um conceito importante é o contêiner de aplicação (Application Container), que pode ser entendido como um componente de software autossuficiente, no sentido em que ele encapsula uma aplicação e todas as suas dependências (como bibliotecas, arquivos de configuração, etc.) (Silva, 2017). Diferentemente de uma máquina virtual, o contêiner não inclui um sistema operacional. Na verdade, o sistema operacional do servidor é compartilhado entre os contêineres em execução. A Figura 1 ilustra o esquema de contêineres em um servidor físico. Com uma ferramenta de gerenciamento de contêineres (container engine), pode-se instanciar vários contêineres em uma única máquina física. O hardware e o sistema operacional dessa máquina são compartilhados entre os contêineres (Silva, 2017).
Uma vez que a imagem de uma máquina virtual inclui um sistema operacional, ela é maior que a imagem de um contêiner que envolve somente software no nível de usuário (aplicações, bibliotecas, etc.). Portanto, em termos de desempenho, o uso de contêineres pode oferecer vantagens em relação ao uso de máquina virtuais (Silva, 2017). Por ser mais leve, um contêiner demora menos tempo para inicializar ou para ser transmitido de um servidor para outro. Entretanto, uma vez que os contêineres compartilham o sistema operacional subjacente, o nível de isolamento e segurança é menor, quando comparado às máquinas virtuais, que emulam um ambiente computacional completo e independente, com seu próprio sistema operacional.
A principal característica do contêiner é permitir que o ambiente de execução da aplicação seja sempre o mesmo, pois tudo que a aplicação precisa é estar encapsulada no contêiner, independentemente da plataforma subjacente (Docker, 2019). Isso favorece a portabilidade e facilita a replicação da aplicação em vários servidores. Basta, para isso, que um gerenciador de contêiner compatível esteja instalado em cada servidor e uma cópia do contêiner seja copiada e executada em cada um deles. Essa agilidade para replicar aplicações ou migrar aplicações de um servidor para outro é muito importante em um ambiente de computação em nuvem, do qual se espera o escalonamento dinâmico de aplicações.
Docker
O Docker é uma plataforma de código aberto para desenvolvimento, envio e execução de aplicações em containers. Ele utiliza contêineres para empacotar e distribuir aplicações, incluindo suas bibliotecas e dependências. Os benefícios são portabilidade, consistência entre ambientes de desenvolvimento e produção, isolamento de recursos, rapidez no provisionamento.
Kubernetes
O Kubernetes (também conhecido como K8s) é um sistema de orquestração de contêineres de código aberto para automatizar o deploy, escala e gerenciamento de aplicações em contêineres. O Kubernetes gerencia a distribuição e o escalonamento de contêineres em um cluster, garantindo alta disponibilidade e resiliência. Os benefícios são orquestração eficiente, autoescalonamento, automação de implantação, gerenciamento de recursos, atualizações sem tempo de inatividade.
A combinação de Docker e Kubernetes é frequentemente utilizada para desenvolvimento, empacotamento, distribuição e orquestração eficientes de aplicações em ambientes de contêineres. Essas tecnologias desempenham um papel significativo na modernização de infraestruturas e no desenvolvimento de aplicações em escala.
Tecnologias de virtualização de servidores
A virtualização de servidores é uma tecnologia que permite a criação de máquinas virtuais (VM), cada uma das quais opera como um servidor independente, em um único hardware físico. Essa abstração do hardware facilita a consolidação de recursos, aumenta a eficiência do servidor e oferece flexibilidade na implantação de aplicações.
Como explicado em (ERL, 2013), os softwares de virtualização permitem a criação de múltiplas instâncias lógicas de um recurso computacional, de forma que esse recurso possa ser compartilhado entre diversos usuários. O conceito de virtualização não é recente, mas, somente com os ganhos em termos de desempenho e confiabilidade das ferramentas de virtualização modernas, foi possível viabilizar características como a elasticidade rápida e self-service sob demanda, próprias dos serviços de computação em nuvem.
As plataformas de computação em nuvem, como o OpenStack, utilizam as ferramentas de virtualização para gerenciar o compartilhamento de recursos computacionais disponíveis na infraestrutura do ambiente de computação em nuvem. Por exemplo, a criação de máquinas virtuais no OpenStack pode ser realizada por meio de diversas ferramentas de virtualização, como VMware ESXi, XenServer ou Hyper-V (MICROSOFT, 2019).
Os centros de dados (data centers) modernos fazem uso de tecnologias de virtualização para obter eficiência e flexibilidade na administração da infraestrutura de TI. As ferramentas de virtualização, também denominadas Hypervisor, abstraem os recursos computacionais (como servidores e equipamentos de rede) na forma de componentes virtualizados que podem, então, ser facilmente alocados ou liberados (Erl; Puttini; Mahmood, 2013). Isso é fundamental para a elasticidade rápida dos ambientes de computação em nuvem.
A virtualização pode ser definida como “uma tecnologia que permite criar vários ambientes simulados ou recursos dedicados a partir de um único sistema de hardware físico” (Redhat, 2019). Como ilustrado na Figura 2, o ambiente lógico criado sobre o equipamento físico é denominado máquina virtual (VM – Virtual Machine). A virtualização permite, por exemplo, que um mesmo servidor seja compartilhado por várias aplicações (Apps) de diferentes usuários, de forma isolada e segura, pois cada aplicação pode ser executada em uma máquina virtual diferente no mesmo servidor. Observe que cada máquina virtual tem seu próprio sistema operacional (SO), então, é possível ter máquinas virtuais com sistemas operacionais diferentes no mesmo servidor.
A virtualização viabiliza três fatores fundamentais para a computação em nuvem: independência de hardware, possibilidade de consolidação de servidores e facilidade de replicação de recursos (Erl, 2013).
- Independência de hardware: a ferramenta de virtualização abstrai as peculiaridades dos recursos físicos, de forma que problemas de compatibilidade são minimizados. Assim, a migração de uma aplicação em uma máquina virtual não depende das características do hardware do equipamento de destino, desde que o formato da máquina virtual seja suportado pelo hypervisor.
- Consolidação de servidores: a consolidação de servidores é um processo para aumentar a taxa de utilização dos servidores em um centro de dados a fim reduzir custos e economizar energia (Ahmad, 2015). Uma das formas de consolidação de servidores é migrar as máquinas virtuais para o menor número possível de servidores. Por exemplo, se existe apenas uma máquina virtual em um servidor, ela pode ser migrada para outro servidor que ainda tem recursos disponíveis para que o primeiro servidor, agora sem nenhuma máquina virtual, possa ser desligado.
- Facilidade de replicação: o terceiro fator importante é a facilidade na replicação das instâncias de máquinas virtuais. Isso decorre do fato de que a máquina virtual é software e pode ser replicada com operações simples de manipulação de arquivos. Assim, é mais fácil instanciar e replicar máquinas virtuais do que servidores físicos.
Siga em Frente...
Evolução de tecnologias de redes e datacenter
A evolução das tecnologias de redes e data centers tem sido significativa nas últimas décadas, impulsionada por avanços na computação, armazenamento, virtualização, automação e demandas crescentes por desempenho, escalabilidade e eficiência.
Redes
As redes desempenham um papel fundamental na computação em nuvem, fornecendo a infraestrutura necessária para conectar usuários, aplicativos e serviços distribuídos em ambientes em nuvem. Aspectos importantes das redes:
- Infraestrutura de rede em nuvem: os provedores de nuvem, como Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP), oferecem infraestrutura de rede virtualizada. Isso inclui serviços como redes virtuais, sub-redes, balanceadores de carga, gateways e firewalls.
- Redes virtuais: as redes virtuais permitem a criação de ambientes de rede isolados e personalizados para diferentes aplicativos ou ambientes de clientes dentro da infraestrutura em nuvem. Isso facilita a segmentação e o isolamento de recursos.
- Conectividade: as soluções em nuvem oferecem conectividade global. Empresas podem interconectar diferentes regiões ou data centers de maneira eficiente, permitindo alta disponibilidade e recuperação de desastres.
- Load Balancing: serviços de balanceamento de carga distribuem o tráfego entre instâncias de aplicativos, garantindo uma distribuição uniforme da carga para otimizar o desempenho e a confiabilidade.
- Gateway de rede (Nuvem para On-Premises): muitas organizações mantêm parte de sua infraestrutura on-premise. Os gateways de rede em nuvem facilitam a conexão segura e eficiente entre ambientes locais e a nuvem.
- Serviços de DNS: os serviços de Sistema de Nomes de Domínio (DNS) em nuvem facilitam a administração e resolução de nomes de domínio, garantindo uma comunicação eficiente entre os serviços hospedados na nuvem.
- Redes Privadas Virtuais (VPN): em nuvem, permitem a criação de conexões seguras entre redes corporativas e ambientes em nuvem, garantindo comunicações seguras através da Internet.
- Controle de acesso: soluções de controle de acesso ajudam a garantir a segurança da rede em nuvem, controlando quem pode acessar recursos específicos e aplicando políticas de segurança.
- Serviços de CDN (Content Delivery Network): em nuvem, distribuem conteúdo de maneira eficiente, melhorando o desempenho e a entrega de conteúdo aos usuários finais, reduzindo a latência.
- Monitoramento e gerenciamento: plataformas em nuvem oferecem ferramentas robustas para monitoramento de desempenho, gerenciamento de tráfego, análise de registros e diagnóstico de problemas de rede.
- Escalabilidade dinâmica: as redes em nuvem são projetadas para serem altamente escaláveis. Elas podem se ajustar dinamicamente às demandas de tráfego, permitindo que os recursos de rede cresçam ou diminuam conforme necessário.
- Segurança: é uma consideração crítica nas redes em nuvem. Isso inclui a proteção contra ameaças, criptografia de dados em trânsito e em repouso, além de controles de acesso granulares.
Ao adotar a computação em nuvem, as organizações podem aproveitar essas capacidades de rede para melhorar a flexibilidade, a eficiência operacional e a escalabilidade de seus aplicativos e serviços. A nuvem oferece um modelo mais dinâmico e ágil para as redes, alinhado às necessidades modernas de negócios.
Data Center
Os data centers desempenham um papel fundamental na computação em nuvem, fornecendo a infraestrutura física necessária para suportar serviços em nuvem, armazenamento de dados, processamento e rede. Aspectos importantes dos data centers:
- Infraestrutura física: os data centers em nuvem consistem em servidores físicos, armazenamento, dispositivos de rede, switches, roteadores, sistemas de refrigeração, sistemas de alimentação elétrica redundantes e outros componentes necessários para suportar operações contínuas.
- Escalabilidade: os data centers em nuvem são projetados para serem altamente escaláveis, permitindo que os provedores de nuvem adicionem recursos de hardware conforme a demanda aumenta. Essa capacidade de escalabilidade permite acomodar um grande número de usuários e cargas de trabalho variáveis.
- Virtualização: é uma tecnologia-chave nos data centers em nuvem. Permite a criação de máquinas virtuais e contêineres, para que múltiplos ambientes de computação sejam executados em um único servidor físico.
- Distribuição geográfica: muitos provedores de nuvem têm data centers distribuídos globalmente. Isso permite que eles ofereçam serviços mais próximos dos usuários finais, reduzindo a latência e melhorando o desempenho.
- Alta disponibilidade: inclui cópias de dados em vários locais, sistemas de energia redundantes e sistemas de resfriamento para garantir operações ininterruptas.
- Recuperação de desastres: os provedores de nuvem implementam estratégias de recuperação de desastres para garantir a continuidade dos negócios em caso de falhas. Isso pode incluir a replicação de dados entre data centers e a capacidade de restaurar serviços rapidamente.
- Eficiência energética: os data centers em nuvem estão focados na eficiência energética para reduzir os custos operacionais e minimizar o impacto ambiental. Isso envolve o uso de hardware eficiente, técnicas de resfriamento avançadas e práticas de gerenciamento de energia.
- Segurança física e lógica: a segurança é uma prioridade nos data centers em nuvem. Isso inclui medidas físicas, como controle de acesso e vigilância, bem como medidas lógicas, como criptografia de dados, firewalls e detecção de ameaças.
- Automação e orquestração: a automação desempenha um papel crucial nos data centers em nuvem. Ferramentas de orquestração automatizam tarefas operacionais, como provisionamento de recursos, gerenciamento de carga de trabalho e manutenção.
- API (Interfaces de Programação de Aplicações): são fundamentais para a integração e automação em ambientes de nuvem. Elas permitem que os desenvolvedores interajam com os serviços em nuvem e automatizem processos.
- Modelo de pagamento sob demanda: operam em um modelo de pagamento sob demanda, no qual os usuários pagam apenas pelos recursos que consomem. Isso proporciona flexibilidade financeira e evita a necessidade de investimentos significativos em infraestrutura.
Os data centers na computação em nuvem são a espinha dorsal que sustenta a entrega de serviços em nuvem. Eles são projetados para oferecer escalabilidade, flexibilidade, confiabilidade e eficiência operacional para atender às crescentes demandas das organizações modernas.
Vamos Exercitar?
Nível de Virtualização
Descrição da situação-problema
Uma empresa vai lançar um novo aplicativo para gestão de tarefas colaborativas. O objetivo é promover aumento de produtividade para pequenas empresas e profissionais liberais. O sistema inclui um serviço web e um banco de dados no qual são compartilhados os dados das tarefas. O aplicativo conecta-se no serviço web por meio de requisições HTTP para manipular os recursos do sistema. A empresa está com grande expectativa de sucesso. Para atender muitos clientes, já escolheu um grande provedor de nuvem pública para hospedar o sistema. Você foi contratado como consultor para definir a melhor estratégia de implantação do serviço web e do banco de dados nesse provedor específico que oferece apenas serviços nos modelos PaaS e IaaS. Você precisa determinar qual a melhor opção para implantação do serviço web e do banco de dados em termos do modelo de serviço e tecnologia de virtualização.
Resolução da situação-problema:
O Quadro 1 apresenta um resumo comparativo das tecnologias de virtualização. A máquina virtual é considerada um modelo de virtualização ao nível de hardware. Já o contêiner é considerado um modelo de virtualização ao nível de sistema operacional. Por isso, a imagem da máquina virtual é muito grande, comparada à do contêiner, pois a imagem da máquina virtual precisa conter seu próprio sistema operacional. Por outro lado, os contêineres compartilham o sistema operacional da máquina física no qual executam. A desvantagem é que a aplicação incluída no contêiner tem que ter sido implementada para o mesmo sistema operacional no qual o gerenciador de contêiner está executando.
Máquina Virtual | Contêineres | |
Abordagem | Virtualização no nível de hardware | Virtualização no nível de sistema operacional |
Denominação da ferramenta de virtualização | Hypervisor | Container Engine |
Vantagens |
|
|
Quadro 1 | Comparação entre contêineres e máquinas virtuais.
Vamos avaliar cada componente do sistema para determinar qual dos dois modelos de virtualização é mais adequado. O banco de dados pode conter dados sobre os quais os clientes desejam privacidade, portanto a proteção e o isolamento dos dados é um critério relevante. Além disso, o banco de dados possui uma ou apenas algumas réplicas, não há necessidade de escalar para um número elevado de instâncias dos SGBD. Portanto, a melhor estratégia é implantar o banco de dados em uma máquina virtual alocada no modelo IaaS.
O outro componente do sistema é o serviço web, que podem necessitar de replicação em escala para balanceamento de carga. O serviço web se beneficia de tecnologias abertas e padronizadas disponíveis em plataformas pré-configuradas na maioria dos provedores, sem necessidade de gerenciamento de infraestrutura. Nesse caso, a opção mais adequada para implantar o serviço web seria um serviço PaaS baseado em contêiner para agilizar a replicação das instâncias.
Saiba Mais
É importante salientar que contêineres e máquinas virtuais não são necessariamente tecnologias concorrentes. Na verdade, essas tecnologias podem ser utilizadas de forma complementar para compartilhar a infraestrutura dos provedores entre vários clientes. Isso é possível porque um gerenciador de contêineres, como o Docker (Docker, 2019c), pode ser instalado em uma máquina virtual, que então poderia suportar a execução de contêineres. Além disso, existem aplicações para as quais a implantação em máquina virtual é mais interessante, por exemplo, devido a requisitos de segurança. Em outros cenários, a implantação de contêineres é mais indicada, por exemplo, no caso da replicação automática de aplicações web em provedores de Plataforma como Serviço (Silva, 2017; Pereira, 2019).
Referências Bibliográficas
AHMAD, R. W. et al. A survey on virtual machine migration and server consolidation frameworks for cloud data centers. Journal of Network and Computer Applications, v. 52, p. 11–25, 2015.
BACHIEGA, N. G.; SOUZA, P. S. L. de; BRUSCHI, S. M. Avaliação de desempenho de virtualização baseada em contêiner. In: Escola Regional de Alto Desempenho de São Paulo - ERAD-SP, SBC, 2017.
ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013.
SILVA, E. A. N. da. Uma abordagem dirigida por modelos para portabilidade entre plataformas de computação em nuvem. 2013. Dissertação (Mestrado em Ciências Exatas e da Terra) – Universidade Federal de São Carlos, São Carlos, 2013.
Aula 2
Provedores de Computação em Nuvem
Provedores de computação em nuvem
Olá estudante! Nesta videoaula, exploraremos os principais provedores, como Amazon Web Services (AWS), Microsoft Azure e Google Cloud.
Vamos abordar os recursos oferecidos pelos provedores e os modelos de tarifação de serviços em nuvem.
Esse conteúdo é importante para a sua prática profissional, pois a utilização de provedores de computação em nuvem é vital para a prática profissional, oferecendo vantagens significativas em termos de eficiência, agilidade, segurança e inovação.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!
Ponto de Partida
Caro estudante, vamos começar mais uma etapa de nosso estudo sobre as tecnologias e soluções empregadas nos provedores de computação em nuvem.
Você conhece os modelos utilizados pelos provedores para determinar os preços dos serviços? Sabe quais são as métricas utilizadas para contabilizar o uso dos recursos de TI?
Nesta aula, você estudará os principais provedores de computação em nuvem no mundo, as métricas de custo, modelos de tarifação e principais provedores de nuvem pública.
Bons estudos!
Vamos Começar!
Métricas de custo de serviços em nuvem
O gerenciamento dos custos de serviços em nuvem é uma tarefa difícil, uma vez que o cálculo do custo total envolve várias métricas e os preços dos recursos computacionais podem variar de acordo com a localização da infraestrutura ou a forma de tarifação (Rodamilans, 2014). Além disso, as empresas podem utilizar serviços de diferentes provedores para implementar uma solução, o que caracteriza um cenário denominado multicloud (Petcu, 2013). Assim, mesmo que cada provedor ofereça uma ferramenta de gerenciamento de custos, faz-se necessária uma solução adicional centralizada para agregar os custos dos diferentes provedores.
Uma das características dos serviços de computação em nuvem é o pagamento baseado no uso. Na prática, existem diversas métricas que são utilizadas para calcular os custos para o tempo de uso de cada tipo de recurso computacional. Em geral, três métricas básicas são consideradas na determinação do custo de serviços em nuvem:
- Uso de recursos de processamento é uma métrica calculada a partir do tempo de uso de núcleos de processamento de máquinas virtuais. Em geral esse custo é proporcional à quantidade de memória RAM. O provedor tem a sua calculadora de custos, para estimar os custos e a economia em escolher cada um deles; um exemplo é a calculadora da Amazon.
- Uso de recursos de armazenamento serve para tarifar o espaço utilizado para armazenamento persistente de dados e, em geral, é uma cobrança mensal para cada gigabyte de dados armazenados.
- Uso de recursos de transmissão de dados serve para tarifar os dados transferidos entre a rede do provedor e outras redes. Como a transmissão pode ocorrer nos dois sentidos, o provedor pode definir preços diferentes para tráfego de saída e de entrada. Assim, se você aloca uma máquina virtual, além de pagar pelo uso da máquina e do armazenamento, também poderá ser cobrado pelos dados que foram enviados para essa máquina ou dessa máquina para outro computador qualquer. Além das métricas básicas, existem também métricas adicionais, associadas ao uso de componentes de software. Nesse caso, é usual a precificação por evento, e não pelo tempo de uso. Assim, um provedor poderia tarifar o cliente pelo número de operações de escrita em um SGBD ou pelo número de requisições a uma aplicação web. Por exemplo, um provedor poderia cobrar do cliente R$ 2,00 para cada 1.000 requisições a um serviço web.
O gerenciamento eficiente dos custos é uma consideração crítica ao utilizar serviços em nuvem. Existem várias métricas e estratégias que podem ser empregadas para monitorar e otimizar os custos associados aos serviços em nuvem. Algumas métricas importantes:
- Custo por hora/minuto: pode fornecer uma visão detalhada dos gastos e ajudar na otimização.
- Custo por transação: em serviços baseados em transações, como armazenamento de dados ou transferência de dados, monitorar o custo por transação pode ser útil para identificar padrões de uso e otimizar o que for possível.
- Custo por armazenamento: monitorar o custo associado ao armazenamento de dados, incluindo armazenamento em blocos, objetos e serviços de banco de dados, permite identificar oportunidades para reduzir custos ou otimizar a utilização.
Além de monitorar essas métricas, é importante implementar práticas de otimização contínua, como o uso eficiente de instâncias reservadas, dimensionamento automático, política de desativação de recursos ociosos e a implementação de estratégias de custo personalizadas para atender às necessidades específicas da sua aplicação e negócio. Utilizar ferramentas de gerenciamento de custos fornecidas pelos provedores de nuvem também é uma prática comum para monitoramento e controle mais eficazes.
O Quadro 1 apresenta um resumo das métricas básicas para tarifação de serviços de computação em nuvem.
Métrica | Descrição | Tipo de cobrança | Exemplo |
Uso de recursos de processamento. | Medida da capacidade de processamento alocada. Representa o pagamento pelo uso de núcleos de processamento e memória RAM. | Por tempo (em geral, por hora). | R$ 0,80 por hora de uso de máquina virtual com 2 núcleos de processamento e 4 GB de memória RAM |
Uso de recursos de armazenamento. | Medida da capacidade de armazenamento alocada. Representa o pagamento pelo uso espaço de memória secundária (armazenamento persistente). | Por tempo (em geral, por mês). | R$ 0,60 por mês para cada 1 GB de dados armazenados em uma unidade de armazenamento (disco virtual). |
Uso de recursos de transmissão de dados. | Medida do volume de dados transferidos. Representa o pagamento pela transferência de dados para ou da rede do provedor. | Por evento (em geral, por GB transferido). | R$ 0,05 para cada 1 GB de dados transferido de/para uma máquina virtual. |
Quadro 1 | Principais provedores de serviços de computação em nuvem.
Para cada tipo de serviço, o provedor pode combinar as três métricas para determinar o custo final do serviço.
Siga em Frente...
Modelos de tarifação de serviços em nuvem
Os provedores de serviços em nuvem oferecem diferentes modelos de tarifação para seus serviços, adaptando-se às diversas necessidades dos usuários.
Alguns dos modelos de tarifação mais comuns em serviços de nuvem são:
- Pague pelo uso (Pay-as-You-Go): os usuários pagam apenas pelos recursos que realmente utilizam. É uma abordagem flexível, os custos estão diretamente relacionados ao consumo efetivo de recursos, como tempo de computação, armazenamento ou largura de banda. A vantagem é a flexibilidade para escalar recursos conforme necessário, custos alinhados ao uso real.
- Reservas (Reserved Instances): os usuários podem optar por reservar capacidade de recursos (como instâncias de máquinas virtuais) antecipadamente por um período fixo. Em troca, recebem descontos significativos em comparação com o pagamento pelo uso. As vantagens são economias substanciais para cargas de trabalho estáveis e previsíveis.
- Preços por compromisso (Committed Use Discounts): semelhante às reservas, mas oferecendo mais flexibilidade, os usuários comprometem-se a gastar um valor específico por mês em recursos específicos, obtendo descontos com base nesse compromisso financeiro. A vantagem é a maior flexibilidade em comparação com reservas tradicionais.
- Preços por região: os custos podem variar com base na região geográfica em que os recursos são provisionados. Algumas regiões podem ter custos mais altos ou mais baixos, dependendo da oferta e demanda local. A vantagem é permitir otimizar custos escolhendo regiões com preços mais competitivos.
Cada modelo de tarifação tem seus prós e contras e a escolha depende das características específicas da carga de trabalho, dos requisitos de negócios e das preferências orçamentárias da organização. É importante entender os detalhes da tarifação de cada provedor para otimizar os custos e escolher o modelo mais adequado.
Principais provedores de nuvem pública (por exemplo, AWS, Azure, Google Cloud)
Considerando os provedores de nuvem pública de serviços de infraestrutura e plataforma (IaaS e PaaS), podemos mencionar a AWS (Amazon Web Services), o Microsoft Azure e o Google Cloud Platform (RANGER, 2019).
Em se tratando de soluções corporativas de software como serviço (SaaS), podemos citar a Microsoft Salesforce, Adobe, Oracle e SAP (Columbus, 2018). É importante mencionar que a Salesforce, pioneira em software corporativo em nuvem, também mantém o Heroku, um provedor PaaS, assim como o Openshit da Red Hat e o Cloud Foundry, que é uma plataforma livre originalmente criada pela VMWare e, hoje, mantida pela Cloud Foundry Fundation.
O Quadro 2 apresenta um resumo dos principais provedores e respectivos serviços.
Modelo de Serviço | Provedor | Exemplo de serviço ou produto |
IaaS | AWS (AWS, 2019c) | AWS Elastic Cloud Computing (EC2): máquinas virtuais (AWS, 2019e). |
Microsoft Azure (Azure, 2019) | Azure Virtual Machines: máquinas virtuais (Azure, 2019c). | |
Google Cloud Platform (Google, 2019) | Google Compute Engine: máquinas virtuais (Google, 2019c). | |
PaaS | AWS | AWS Elastic Beanstalk: ambiente gerenciado para desenvolvimento e im plantação de aplicações (AWS, 2019d). |
Microsoft Azure | Azure App Service: ambiente gerenciado para desenvolvimento e implanta- ção de aplicações (Azure, 2019b). | |
Google Cloud Platform | Google App Engine: ambiente gerenciado para desenvolvimento e implantação de aplicações (Google, 2019b). | |
Salesforce (Salesforce, 2019) | Heroku Platform: ambiente gerenciado para desenvolvimento e implantação de aplicações (Heroku, 2019), | |
Red Hat OpenShift (Openshift, 2019) | Red Hat OpenShift: ambiente gerenciado para desenvolvimento e implanta- ção de aplicações. | |
Cloud Foundry (Cloud Foundry, 2019) | Cloud Foundry: uma plataforma baseada em contêineres, distribuída como software livre, para desenvolvimento e implantação de aplicações. | |
SaaS | Microsoft Office 365 (Microsoft, 2019) | Microsoft Office 365: aplicativos de produtividade e colaboração. |
Salesforce | Salesforce Essentials: aplicações de CRM (Customer Relationship Management) (Salesforce, 2019b). | |
Adobe Experience Cloud (Adobe, 2019) | Adobe Experience Cloud: aplicações para marketing coorporativo. | |
Oracle Cloud (Oracle, 2019) | Oracle Cloud Applications: aplicações para gestão coorporativa (Oracle, 2019b). | |
SAP Cloud Platform (SAP, 2019) | Cloud ERP (Enterprise Resource Planning): aplicações para gestão corporativa (SAP, 2019b). |
Quadro 2 | Resumo dos principais provedores e respectivos serviços.
Os provedores têm suas próprias características, preços e ecossistemas de serviços exclusivos, e a escolha entre eles, muitas vezes, depende dos requisitos específicos do projeto, preferências da empresa e integração com as tecnologias existentes.
Outros provedores de nuvem pública, embora em menor escala, também oferecem serviços valiosos e podem ser considerados, dependendo das necessidades específicas.
Vamos Exercitar?
Infraestrutura própria ou na nuvem
Descrição da situação-problema
Considere o caso de uma empresa que precisa executar uma aplicação de mineração de dados. A execução vai durar 20 meses e requer 8 servidores. A empresa pode montar sua própria infraestrutura ou alocar os servidores virtuais na nuvem. No primeiro caso, a empresa teria que arcar com a compra dos servidores que custam R$ 6.000 cada e também com manutenção da infraestrutura, que custaria R$ 2.500 por mês para gastos com equipe técnica e refrigeração do ambiente. Se optar por um usar um provedor de serviços em nuvem, a empresa tem a opção de alocar servidores virtuais de capacidade compatível pelo valor de R$ 600 por mês cada.
- Qual opção representa a solução de menor custo para a empresa?
- E se o prazo do projeto mudasse para 24 meses?
Resolução da situação-problema:
O custo de manter a infraestrutura própria consiste em adquirir 8 servidores por R$ 6.000 cada, mais um custo de operação mensal de R$ 2.000 por 20 meses. Isso equivale a um total de R$ 98.000 de custo de execução do projeto.
O custo de alocar a infraestrutura no provedor consiste em pagar pelo uso de 8 servidores que custam R$ 600 por mês cada por um período total de 20 meses. Isso equivale a um total de R$ 96.000 de custo de execução do projeto. Portanto, a solução em nuvem representa a opção de menor custo.
No entanto, se a duração do projeto fosse de 24 meses, a situação se inverteria. O custo da execução do projeto em infraestrutura própria seria de R$ 108.000, enquanto o custo na nuvem seria de R$ 115.200. Isso acontece porque o investimento inicial é maior no caso de infraestrutura própria, mas o custo operacional mensal no caso da nuvem é maior. Com um prazo maior, o custo operacional acaba por representar uma parcela mais significativa do custo total. Por outro lado, prazos maiores também levam a uma maior depreciação da infraestrutura própria. De fato, cada caso tem que ser analisado isoladamente para se verificar qual é mais vantajoso.
Saiba Mais
No artigo indicado a seguir, é feito um estudo que compara o custo da aquisição de servidores físicos com o custo do uso de máquinas virtuais em um provedor de nuvem pública. O cenário hipotético apresentado ilustra diversas variáveis envolvidas na análise dos custos, por exemplo, a taxa de utilização dos servidores.
SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Computação em nuvem: Conceitos, tecnologias, aplicações e desafios. II Escola Regional de Computação Ceará, Maranhão e Piauí (ERCEMAPI), 2009.
Referências Bibliográficas
AMAZON. Amazon Elastic Compute Cloud (Amazon EC2). Disponível em: https://aws.amazon.com/pt/ec2/ Acesso em: 31 jan. 2024.
AWS. Migração de dados para a nuvem. Disponível em: https://aws.amazon.com/pt/cloud-data-migration/ Acesso em: 31 jan. 2024.
ROSE, C. A. F. D. O que é esta tal de nuvem e o que pode fazer por você? 1. ed. Porto Alegre: PUCRS, 2020.
SOUSA NETO, M. V. de. Computação em nuvem. 1. ed. Rio de Janeiro: Brasport, 2015.
Aula 3
Migração de Aplicações para a Nuvem
Migração de aplicações para a nuvem
Olá, estudante! Nesta videoaula, exploraremos as razões para migrar aplicações para a nuvem, como escalabilidade, redução de custos, maior flexibilidade e acessibilidade global.
Vamos abordar o gerenciamento de identidade que é uma parte crítica da segurança e operação eficiente em ambientes de nuvem, garantindo que apenas usuários autorizados tenham acesso aos recursos apropriados, enquanto também fornece uma trilha de auditoria para monitoramento e conformidade.
Esse conteúdo é importante para a sua prática profissional, pois a migração de aplicações para a nuvem é uma estratégia importante para a modernização e eficiência dos negócios, e profissionais que compreendem e aplicam esses princípios estão em uma posição vantajosa para impulsionar o sucesso de suas organizações.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!
Ponto de Partida
Caro estudante, vamos aprender as soluções e tecnologias utilizadas pelos provedores para oferta dos serviços. De que forma podemos acessar os provedores para instanciar e configurar serviços? Como as empresas controlam quais usuários podem configurar ou acessar cada serviço? Vamos entender essas questões e outros tópicos importantes relacionados à migração de dados e aplicações para ambientes de computação em nuvem.
Nesta aula, iremos compreender os diversos fatores associados à migração e acesso a serviços em ambientes de computação em nuvem.
Em seguida, serão descritos o conceito de gerenciamento de identidade, o acesso e suas principais funcionalidades. Vamos ainda caracterizar diversas formas de acesso a serviços na nuvem.
Por fim, vamos aprender sobre hospedagem de aplicações em nuvem.
Bons estudos!
Vamos Começar!
Migração de dados e aplicações para a nuvem
Muitas empresas têm adotado soluções de TI baseadas no modelo de computação em nuvem em virtude de vários benefícios, como redução de custos e maior escalabilidade. No caso de novas aplicações, as decisões de projeto já consideram características e tecnologias dos ambientes de computação em nuvem. O que pode ser feito no caso de aplicações já existentes que estão em execução em um ambiente tradicional de TI? Essas aplicações também podem se beneficiar das tecnologias de computação em nuvem e , para isso, as aplicações que estão em um ambiente tradicional precisam ser reimplantadas em um ambiente de computação em nuvem. Esse processo é denominado migração para a nuvem (Pahl; Xiong, 2013).
A migração de aplicações e dados para a nuvem não é uma tarefa simples. Pelo contrário, trata-se de um processo que envolve muitos desafios, portanto, exige análise e planejamento cuidadosos para garantir o correto funcionamento dos sistemas na infraestrutura de computação em nuvem e assegurar que não haverá violação dos requisitos de segurança e privacidade (Morais, 2015). Para viabilizar a migração, podem ser necessárias, por exemplo, mudanças na arquitetura do sistema ou nas tecnologias utilizadas. No processo de migração de dados e de aplicações para um novo ambiente, o custo é um dos fatores mais relevantes. Entre os principais, podemos citar:
- Treinamento de profissionais para gerenciamento do ambiente de computação em nuvem.
- Modificação nas aplicações ou necessidade de implementar novos componentes de software.
- Transferência de grandes volumes de dados.
Se a migração envolve uma aplicação com uma base de dados extensa, a transmissão dos dados pode durar semanas ou até meses, de acordo com o desempenho da rede e com o volume de dados (AWS, 2019). Múltiplos processos têm que ser capazes de acessar a informação concorrentemente (a informação deve ser independente de qualquer processo).
A portabilidade, pode ser entendida como a facilidade com a qual um sistema pode ser levado de um ambiente para outro (Silva, 2013). O desejável é que a migração possa ser feita com o mínimo de adaptações necessárias nos sistemas. É importante observar que a compatibilidade não é esperada apenas em termos de ambiente de execução ou padrões de comunicação entre componentes de software, mas também em relação às tecnologias de gerenciamento de dados. Esses aspectos são relevantes no processo de migrar sistemas para a nuvem e também na migração entre provedores de nuvem, caso necessário.
Em geral, o processo de migração para a nuvem pode ser divido em três etapas (Morais, 2015):
- Planejamento: envolve atividades como: levantamento de requisitos; análise de riscos; escolha de ferramentas de migração, provedores e modelos de serviço e implantação; análise de custos e viabilidade e definição da estratégia de migração.
- Execução: consiste nas ações para levar o sistema para o novo ambiente, conforme planejado. Essa etapa envolve atividades como: extração, conversão e transferência de dados; adaptação na arquitetura do sistema; alterações nas aplicações existentes, substituição ou implementação de novos componentes e bibliotecas.
- Avaliação: consiste na validação do processo e testes do sistema. Essa etapa inclui atividades como: avaliação de desempenho e segurança; testes de integridade e validação da qualidade de experiência do usuário.
Estratégia de migração
Uma das tarefas da etapa de planejamento é a definição da estratégia de migração. Existem diversas abordagens (AWS, 2018), entre as quais podemos destacar:
- Re-host: migrar a aplicação sem qualquer mudança arquitetural ou modificação de código. Isso é possível, por exemplo, quando a aplicação já executa em ambiente virtualizado, e as máquinas virtuais são copiadas para um provedor de nuvem pública. Os custos são reduzidos, mas a solução não é otimizada para ambiente de nuvem, portanto alguns mecanismos, como balanceamento dinâmico de carga, podem ser inviabilizados.
- Re-platform: a arquitetura geral do sistema não é alterada, mas os componentes são migrados de forma independente para aproveitar os serviços em nuvem. Por exemplo, instâncias de banco de dados são migradas para um provedor DBaaS (data base as a service) e aplicações são migradas para ambientes PaaS. É uma abordagem intermediária em termos da relação custo-benefício.
- Re-factor ou Re-architect: a aplicação é remodelada e reimplementada a partir de tecnologias e mecanismos típicos de computação em nuvem. É a estratégia que envolve maior custo e tempo de implementação. Por outro lado, permite aproveitar todo potencial do ambiente de nuvem.
Gerenciamento de identidade em provedores de computação em nuvem
Uma vez que um sistema é migrado para a nuvem, seus administradores precisam redefinir como o sistema será gerenciado e utilizado no novo ambiente. Em particular, é necessário determinar como será o acesso remoto aos componentes do sistema que passaram a executar em infraestrutura de computação em nuvem. Isso envolve dois aspectos principais: o controle de permissões e as tecnologias de acesso. Isso é relevante mesmo nos casos em que um sistema é migrado para ambiente de nuvem privada, pois o controle de acesso é parte das plataformas de computação em nuvem usadas tanto em modelo de nuvem pública quanto de nuvem privada.
Um dos mecanismos mais importantes para controle é o Gerenciamento de Acesso e Identidade (IAM – Identity and Access Management). Esse mecanismo consiste nos componentes e políticas necessários para verificar e monitorar a identidade e as permissões de cada usuário em relação ao uso dos recursos computacionais disponíveis no ambiente de nuvem (Erl; Puttini; Mahmood, 2013). Em geral, um mecanismo IAM inclui três funcionalidades principais:
- Autenticação: verificação da identidade do usuário, por exemplo, a partir de senha ou certificado digital. Mecanismos mais sofisticados incluem uso de biometria, assim como a restrição do acesso de acordo com o dispositivo utilizado pelo usuário ou até mesmo sua localização.
- Autorização: controle dos níveis de acesso e das permissões concedidas para um usuário em relação aos serviços e recursos disponíveis.
- Gerenciamento de usuários e credenciais: permite criar ou alterar cadastro de usuários, assim como grupos de usuários, políticas de segurança ou regras de acesso para facilitar o controle de uso dos recursos e lidar com ameaças de segurança e privacidade.
Esse mecanismo permite que os administradores do sistema especifiquem os níveis ou permissões de acesso para cada profissional ou grupo de profissionais envolvidos no desenvolvimento e operação da aplicação em ambiente de computação em nuvem e também dos usuários da aplicação. Esse controle é imprescindível, pois o acesso aos serviços de suporte ou à própria aplicação é feito por meio da rede.
Por outro lado, um rigoroso controle de acesso leva a uma necessidade de autenticação e verificação de permissão de acesso para cada serviço em nuvem utilizado para implantar uma aplicação, ou seja, máquinas virtuais, bancos de dados, componentes de software, etc. A situação pode ser mais complicada no caso em que uma mesma aplicação faz uso de serviços em provedores diferentes. Para lidar com essas questões, foram criados mecanismos de autenticação unificada (SSO – Single Sign On). Essa abordagem introduz o papel de um provedor de autenticação, por meio do qual um usuário pode acessar diversos serviços, inclusive em diferentes provedores, mediante um único processo de autenticação (Erl; Puttini; Mahmood, 2013). A Figura 1 ilustra esse cenário. Depois de realizar a autenticação, um cliente pode acessar diversos serviços, inclusive em provedores diferentes, por meio da mesma identidade.
Siga em Frente...
Hospedagem de aplicações em nuvem
A hospedagem de aplicações em nuvem refere-se ao processo de executar e manter aplicativos em servidores remotos, geralmente fornecidos por provedores de serviços de computação em nuvem. Isso permite que as empresas evitem investir em infraestrutura física e se beneficiem da flexibilidade e escalabilidade oferecidas pela nuvem.
Os modelos de serviço comuns para hospedagem em nuvem, são:
- IaaS (Infraestrutura como Serviço): fornece recursos de infraestrutura, como servidores virtuais e armazenamento.
- PaaS (Plataforma como Serviço): oferece uma plataforma completa de desenvolvimento, incluindo ferramentas e serviços.
- SaaS (Software como Serviço): disponibiliza aplicativos diretamente aos usuários finais pela internet.
Na prática, a estratégia básica de migração inicial ou empresas de pequeno porte é a estratégia Re-Platform, como explicado anteriormente. Uma forma de usar essa estratégia é migrar os componentes do sistema para serviços PaaS. Isso significa enviar o código já existente da aplicação para um ambiente de desenvolvimento compatível na nuvem e implantar (fazer o deploy) da aplicação. Adicionalmente, um serviço DBaaS pode ser usado para hospedar o banco de dados da aplicação, se for o caso. As principais dificuldades são a portabilidade do código e o paradigma de gerenciamento de dados. Para aplicações feitas em plataformas populares na indústria de TI, como Java, Python ou JavaScritp, a portabilidade não é um problema, pois a maioria dos provedores PaaS suporta essas e outras plataformas como Ruby e PHP. A maioria dos provedores também suporta diversos SGBDs, tanto os que seguem o modelo relacional, quanto os bancos NoSQL (De Souza et al., 2014).
Essa abordagem de hospedagem de aplicações e bases de dados na nuvem por meio de provedores PaaS permite a redução de custos, escalabilidade e dispensa a responsabilidade de gerenciamento de máquinas virtuais. O Quadro 1 apresenta alguns entre os principais serviços de hospedagem de aplicações em provedores PaaS.
Serviço PaaS | Tecnologias Suportadas |
AWS Elastic Beanstalk. | Java, .NET, PHP, Node.js, Python, Ruby, Go e Docker. |
Google App Engine. | Java, PHP, Node.js, Python, C#, .Net, Ruby e Go. |
Heroku Platform. | Node, Ruby, Java, PHP, Python, Go, Scala, Clojure e contêineres customizados. |
Azure App Service. | NET, Java, Node.js, PHP, e Python em Windows, .NET Core, Node.js, PHP ou Ruby em Linux e contêineres. |
Quadro 1 | Principais serviços de hospedagem de aplicações em nuvem pública.
Chegamos ao final de mais uma unidade, na qual aprendemos muitos tópicos interessantes, como fatores importantes na migração de sistemas para ambientes de computação em nuvem, gerenciamento de identidade em provedores de computação em nuvem e hospedagem de aplicação em nuvem. Com o conhecimento adquirido até aqui, você será capaz de analisar as melhores estratégias para migrar aplicações para provedores considerando aspectos como a escalabilidade.
Vamos Exercitar?
Migração do banco de dados para as nuvens
Descrição da situação-problema
Imagine que uma empresa de médio porte está enfrentando desafios relacionados ao tempo necessário para transferir seu banco de dados para um ambiente de nuvem. O banco de dados contém informações críticas para as operações da empresa, e a migração para a nuvem é vista como uma medida estratégica para melhorar a escalabilidade, a acessibilidade e a segurança dos dados. No entanto, a equipe de TI está preocupada com o tempo que essa migração pode levar, impactando as operações diárias e possivelmente causando interrupções nos serviços.
A migração do banco de dados pode resultar em períodos de downtime, afetando a disponibilidade dos sistemas.
Baseado no problema relatado, monte um planejamento detalhado para a migração do banco de dados para as nuvens.
Resolução da situação-problema:
Segue a relação das práticas e estratégias para empresa minimizar o tempo necessário para a transferência do banco de dados para a nuvem, garantindo uma migração suave e eficiente, com o mínimo impacto nas operações diárias:
- Inicie com um planejamento detalhado, identificando os requisitos de migração, definindo metas claras e elaborando um cronograma realista.
- Utilize ferramentas de migração de dados eficientes fornecidas pelos provedores de nuvem. Algumas plataformas oferecem serviços que permitem a replicação de dados em tempo real para reduzir o impacto no tempo de inatividade.
- Divida a migração em etapas menores e menos impactantes. Comece transferindo dados menos críticos e prossiga para dados mais sensíveis à medida que ganha confiança no processo.
- Utilize a capacidade de realizar migrações em paralelo, transferindo diferentes conjuntos de dados simultaneamente para acelerar o processo.
- Antes da migração, otimize o banco de dados, removendo dados obsoletos ou desnecessários. Isso reduzirá o volume de dados a ser transferido.
- Realize testes exaustivos em um ambiente de teste antes da migração completa. Isso ajuda a identificar possíveis problemas e aprimorar o processo.
- Comunique-se efetivamente com as partes interessadas, informando sobre o cronograma de migração, possíveis períodos de downtime e as medidas tomadas para minimizar impactos.
- Realize backups completos e verificados do banco de dados antes da migração para garantir a possibilidade de restauração em caso de problemas inesperados.
- Implemente ferramentas de monitoramento contínuo durante o processo de migração para identificar possíveis problemas em tempo real e tomar ações corretivas imediatas.
- Capacite a equipe para lidar com situações durante a migração. Garanta que a equipe esteja ciente dos procedimentos e possa responder rapidamente a problemas potenciais.
Saiba Mais
Com os avanços das soluções fornecidas pelos ambientes de nuvem, fica cada vez mais difícil para o gestor escolher a melhor opção para adicionar os seus serviços, se em um ambiente de nuvem ou de forma local. Já que existe a necessidade de analisar minuciosamente cada aspecto das soluções e determinar a que melhor se adéqua aos objetivos da empresa, indicamos a leitura do artigo Uma metodologia para avaliação multicritério da tomada de decisão sobre a adoção de serviços de nuvem SaaS ou local.
Referências Bibliográficas
AMAZON. Amazon Elastic Compute Cloud (Amazon EC2). Disponível em: https://aws.amazon.com/pt/ec2/ Acesso em: 31 jan. 2024.
AWS. Migração de dados para a nuvem. Disponível em: https://aws.amazon.com/pt/cloud-data-migration/ Acesso em: 31 jan. 2024.
ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: concepts, technology & architecture. Rio de Janeiro: Prentice Hall, 2013.
MORAIS, N. S. de. Proposta de modelo de migração de sistemas de ambiente tradicional para nuvem privada para o Polo de Tecnologia da Informação do Exército brasileiro. Dissertação (Mestrado Profissional em Computação Aplicada) – Universidade de Brasília, Brasília, 2015. Disponível em: http://icts.unb.br/jspui/bitstream/10482/18758/1/2015_NathanielSimchMorais.pdf Acesso em: 3 fev. 2024.
PAHL, C.; XIONG, H. Migration to PaaS clouds-migration process and architectural concerns. In: Proceedings of the IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems, 2013.
Aula 4
Custos e Economia em Nuvem
Custos e economia em nuvem
Olá, estudante! Nesta videoaula, vamos explorar os custos e economia em nuvem. Vamos abordar os principais conceitos e estratégias que as organizações utilizam para otimizar seus investimentos em serviços em nuvem
Esse conteúdo é importante para a sua prática profissional, pois a expertise em custos e economia em nuvem não apenas contribui para a eficiência operacional, mas também desempenha um papel estratégico na maximização dos benefícios que a computação em nuvem pode oferecer para as organizações. Essa habilidade é valiosa em qualquer função relacionada à implementação e gestão de soluções em nuvem.
Vamos lá!!!
Ponto de Partida
Caro estudante, a computação em nuvem introduziu uma verdadeira mudança de paradigma no escopo da computação. Ao contrário do modelo convencional, a cloud fornece a computação como um serviço entregue sob demanda (Mell; Grance, 2011). Nela, os recursos são gerenciados por provedores e podem ser medidos em volume ou tempo de uso.
Nesta aula, você conhecerá modelos de precificação em nuvem, e é importante que as organizações compreendam esses modelos para tomar decisões informadas sobre como otimizar custos e escolher a estratégia de precificação mais adequada para suas necessidades operacionais e orçamentárias. Depois, veremos a otimização de custos e recursos que é um processo contínuo que requer monitoramento, análise e ajustes regulares. A migração para a nuvem envolve uma análise cuidadosa dos custos associados a fim de garantir uma transição eficiente e econômica.
Bons estudos!
Vamos Começar!
Modelos de precificação em nuvem
A computação em nuvem surgiu na última década como resultado da convergência de várias tecnologias anteriores e modelos operacionais de TI. Do ponto de vista técnico, ela foi possibilitada por uma combinação de virtualização, computação em cluster, computação em grade, rede de banda larga e data centers em larga escala centralizados em locais de baixo custo. O desenvolvimento de arquiteturas de software para criar processos de negócios entregues como serviços, juntamente a acordos de nível de serviço (Service Level Agreements — SLAs) que especificam contratualmente itens como tempo de entrega e requisitos de desempenho, viabiliza ainda mais o fornecimento desse tipo de computação. A adoção acelerada da computação em nuvem decorre principalmente de seus benefícios, pois as empresas foram forçadas a encontrar soluções de TI econômicas para tornar seus produtos competitivos no mercado atual. Quando utilizavam o modelo de computação tradicional, as organizações tinham de investir pesadamente em infraestrutura, mão de obra e treinamento para montar seu departamento de TI. Isso consumia tempo, era relativamente inflexível e caro. Agora, com a evolução da computação em nuvem, ela se tornou a solução ideal para todos os tipos de empresas, pois pode ajudar as organizações a economizar tempo e dinheiro, além de oferecer vários benefícios. Muitos provedores de nuvem confiáveis geralmente fornecem várias configurações personalizadas para atender às necessidades de todos os tipos de pequenas ou grandes empresas. Por esse motivo, o retorno do seu investimento em tecnologia costuma ser alto à medida que seus negócios passam para a nuvem. A economia da computação em nuvem lida com o conhecimento sobre os princípios, custos e benefícios que ela pode oferecer. Para qualquer organização obter o maior valor para os seus negócios, ela deve determinar especificamente como os serviços em nuvem podem afetar o orçamento, a segurança e a infraestrutura de TI. Não existe uma fórmula fácil e rápida para determinar isso; tudo depende da avaliação dos custos relacionados à infraestrutura, ao gerenciamento e à necessidade de pessoal, pesquisa, desenvolvimento, segurança e suporte. Todos esses fatores são analisados para determinar se a migração para a nuvem é o próximo passo lógico, de acordo com as circunstâncias e necessidades específicas da organização.
De acordo com Bhowmik (2017), os provedores de nuvem geralmente oferecem dois planos de provisionamento de recursos ou modelos de preços diferentes para atender aos requisitos dos consumidores, para atender a diferentes fins comerciais. Os planos são conhecidos como “plano de curto prazo sob demanda” e “plano de reserva de longo prazo”. A maioria dos provedores comerciais de nuvem oferece ambos os planos.
Plano de curto prazo sob demanda
Nesse modelo de precificação, os recursos são alocados no curto prazo, conforme a demanda. Quando a demanda aumenta, os recursos são provisionados de acordo com a necessidade. Quando a demanda diminui, os recursos alocados são liberados da aplicação e retornados ao pool de recursos livres. Os consumidores são cobrados com base no uso. Portanto, com esse plano sob demanda, a alocação de recursos segue a abordagem de provisionamento dinâmico para atender às demandas que apresentam flutuações e são imprevisíveis em relação ao uso de recursos. No plano sob demanda de curto prazo, é responsabilidade do provedor garantir o desempenho da aplicação provisionando recursos durante a alta demanda. Isso requer um planejamento adequado por parte do fornecedor. A estimativa dos requisitos de recursos durante a alta demanda desempenha um papel vital nesse modelo de preços.
Plano de reserva de longo prazo
No plano de reserva de longo prazo, também conhecido como “provisionamento antecipado”, é realizado um contrato de serviço entre o consumidor e o provedor em relação à necessidade de recursos. O provedor, em seguida, organiza antecipadamente e mantém certo volume de recursos do pool de recursos para atender às necessidades do consumidor em tempo de urgência. Essa reserva de recursos é feita antes do início do serviço. Nesse modelo de provisionamento, o preço não é baseado na demanda. Em vez disso, é cobrada uma taxa única por um período fixo (geralmente contado em meses ou anos). Para o fornecedor, a complexidade computacional e o custo são menores nesse plano em comparação ao plano sob demanda. Isso ocorre porque o provedor toma conhecimento do requisito máximo de recursos do consumidor e mantém o pool de recursos pronto para atender às demandas. Isso reduz o custo do fornecedor e, como efeito, os consumidores podem obter o serviço em uma taxa muito mais barata (geralmente quando é feito um contrato de longo prazo) do que no plano sob demanda (se as taxas de uso por hora forem consideradas). Como um volume fixo de recursos é organizado de acordo com o SLA, há possibilidades de subprovisionamento (provisionamento de recursos inferior ao necessário) ou superprovisionamento (provisionamento de recursos superior à demanda) de recursos. É importante que o consumidor da nuvem estime os requisitos cuidadosamente para que esses problemas possam ser evitados e para que, ao mesmo tempo, o custo de provisionamento de recursos possa ser minimizado. Esse objetivo pode ser alcançado por meio de um plano de gerenciamento de recursos.
Para Buyya, Vecchiola e Selvi (2013), em termos dos modelos de precificação introduzidos pela computação em nuvem, três estratégias diferentes são adotadas pelos provedores:
- Preços diferenciados: nesse modelo, os serviços em nuvem são oferecidos em várias camadas. Cada uma delas oferece especificação de computação fixa e SLA a um preço específico por unidade de tempo. Esse modelo é usado pela Amazon para precificar o serviço Elastic Compute Cloud (EC2), que disponibiliza diferentes configurações de servidor e capacidades de computação, com diferentes custos por hora.
- Preço por unidade: esse modelo é mais adequado para os casos em que a principal fonte de receita do provedor de nuvem é determinada em termos de unidades de serviços específicos, como transferência de dados e alocação de memória. Nesse cenário, os clientes podem configurar seus sistemas com mais eficiência, de acordo com as necessidades da aplicação. Esse modelo é usado, por exemplo, pelo GoGrid; os clientes pagam de acordo com as unidades de Random Access Memory (RAM)/hora pelos servidores implantados na nuvem.
- Preços baseados em assinaturas: esse é o modelo usado principalmente pelos provedores de SaaS. Os usuários pagam uma taxa de assinatura periódica pelo uso do software ou pelos serviços de componentes específicos integrados em suas aplicações.
Todos esses custos são baseados em um modelo de pagamento conforme o uso, que constitui uma solução mais flexível para dar suporte à entrega sob demanda de serviços de TI. É isso que realmente possibilita a conversão dos custos de capital de TI em custos operacionais, uma vez que o custo de compra de hardware se transforma em um custo para locá-lo, e o custo gerado pela compra de software se transforma em uma taxa de assinatura paga para usá-lo.
Siga em Frente...
Otimização de custos e recursos
A otimização de custos e recursos na computação em nuvem é uma prática essencial para garantir eficiência operacional e maximizar o valor dos investimentos. Veja algumas estratégias e práticas para otimizar custos e recursos na nuvem:
- Monitoramento contínuo: implemente ferramentas de monitoramento para acompanhar o uso de recursos em tempo real, identificar padrões de uso e entender as demandas sazonais ajuda na tomada de decisões informadas.
- Dimensionamento automático: utilize recursos de dimensionamento automático para ajustar dinamicamente a capacidade de computação com base nas necessidades. Isso permite a expansão ou redução automática de instâncias de acordo com a demanda, evitando subutilização.
- Escolha de tipos de instância adequados: selecione tipos de instância de acordo com as características específicas das cargas de trabalho. Plataformas em nuvem oferecem uma variedade de tipos de instância otimizados para computação, memória, armazenamento, etc.
- Reservas e commitments: aproveite descontos oferecidos por reservas de instâncias ou compromissos a longo prazo. Esses programas podem resultar em significativas economias de custos para cargas de trabalho estáveis e previsíveis.
- Desativação de recursos não utilizados: desative ou desligue recursos que não estão sendo utilizados, como instâncias, volumes de armazenamento ou bancos de dados. Isso evita custos desnecessários associados a recursos ociosos.
- Gerenciamento eficiente de armazenamento: adote políticas de gerenciamento de armazenamento eficientes, como a exclusão regular de snapshots não utilizados, a alocação dinâmica de armazenamento e a implementação de políticas de retenção.
- Escolha de região estratégica: avalie as tarifas em diferentes regiões e escolha a que oferece os melhores preços para os serviços necessários. Algumas regiões podem ter custos mais baixos para tipos específicos de recursos.
- Use serviços gerenciados: utilize serviços gerenciados oferecidos pelos provedores de nuvem para reduzir a carga operacional. Esses serviços geralmente otimizam recursos automaticamente e oferecem manutenção de infraestrutura embutida.
- Implementação de políticas de orçamento: estabeleça políticas de orçamento para monitorar os gastos e receber alertas quando os custos se aproximarem dos limites definidos. Isso ajuda a evitar surpresas desagradáveis nas faturas.
- Análise de dados para tomada de decisões: utilize ferramentas de análise de custos fornecidas pelos provedores de nuvem para identificar áreas de oportunidade, entender padrões de gastos e tomar decisões informadas para otimização.
A otimização de custos e recursos na computação em nuvem é um processo contínuo que requer monitoramento, análise e ajustes regulares. Ao adotar essas práticas, as organizações podem colher os benefícios da eficiência operacional e da maximização do retorno sobre o investimento em serviços em nuvem.
Análise dos custos na migração para nuvem
A migração para a nuvem envolve uma análise cuidadosa dos custos associados a fim de garantir uma transição eficiente e econômica. Veja os principais aspectos a serem considerados ao realizar uma análise de custos na migração para a nuvem:
- Custo inicial da migração: avalie os custos iniciais relacionados à migração, incluindo aquisição de ferramentas de migração, treinamento da equipe, custos de consultoria e possíveis ajustes necessários nas aplicações existentes.
- Custos de infraestrutura: compare os custos de infraestrutura entre o ambiente local e a nuvem. Considere fatores como aquisição de hardware, manutenção, espaço físico e custos associados à escalabilidade.
- Licenciamento de software: avalie os custos de licenciamento de software para garantir conformidade na nuvem. Alguns provedores de nuvem oferecem modelos BYOL (Bring Your Own License), enquanto outros incluem licenças em seus serviços.
- Custos operacionais: analise os custos operacionais, incluindo monitoramento, backup, segurança e suporte técnico. Em muitos casos, esses custos são incorporados nos serviços em nuvem, mas devem ser considerados na comparação total.
- Análise de TCO (Custo Total de Propriedade): realize uma análise de TCO para entender os custos totais de propriedade ao longo do tempo. Isso envolve a consideração de custos de capital e operacionais, além de eventuais economias de escala na nuvem.
- Estratégia de dimensionamento: considere a estratégia de dimensionamento, identificando os recursos necessários para atender às demandas da carga de trabalho. A capacidade de ajustar dinamicamente os recursos na nuvem pode influenciar significativamente os custos.
- Gestão de dados: avalie os custos associados à gestão de dados, como armazenamento, transferência de dados e serviços de banco de dados. Escolha estratégias de armazenamento eficientes e otimize a transferência de dados entre ambientes.
- Contratos e Acordos de Nível de Serviço (SLA): entenda os termos contratuais e SLAs dos provedores de nuvem em relação aos custos. Algumas empresas oferecem descontos por compromissos a longo prazo, e SLAs podem impactar os custos associados a interrupções ou falhas.
- Modelos de precificação dos provedores: analise os modelos de precificação dos provedores de nuvem, compreendendo os custos associados a serviços específicos, como instâncias de máquinas virtuais, armazenamento, transferência de dados e outros recursos.
- Previsões de crescimento e escala: projete os custos considerando o crescimento e a escala previstos. Antecipe aumentos de demanda e planeje a capacidade de acordo para evitar surpresas nos custos.
- Análise de Retorno sobre Investimento (ROI): realize uma análise de ROI para entender quando os benefícios financeiros da migração para a nuvem começarão a superar os custos iniciais. Isso é crucial para justificar o investimento.
Uma análise completa dos custos na migração para a nuvem é essencial para garantir uma tomada de decisão informada. Cada organização é única, e a análise deve ser adaptada aos requisitos específicos, considerando a infraestrutura existente, as metas de negócios e as características das cargas de trabalho.
Vamos Exercitar?
Migração para a nuvem
Descrição da situação-problema
Uma empresa de médio porte que recentemente migrou suas operações para a nuvem está enfrentando desafios significativos em relação aos custos associados aos serviços em nuvem. A equipe de TI percebeu que, apesar das promessas de eficiência e economia, os gastos estão aumentando rapidamente, e a empresa está preocupada com a sustentabilidade financeira dessa transição.
Resolução da situação-problema:
Para otimizar os custos em computação em nuvem, a empresa implementa uma série de estratégias e práticas, como:
- Avaliação abrangente de custos: a equipe de TI realiza uma análise aprofundada dos custos, identificando os serviços e recursos que mais contribuem para as despesas. Isso inclui revisar os modelos de precificação, uso de instâncias e custos associados a serviços específicos.
- Implementação de monitoramento contínuo: ferramentas de monitoramento são implementadas para rastrear o uso de recursos em tempo real. Isso permite identificar padrões de uso, identificar picos de demanda e otimizar a alocação de recursos de acordo.
- Adoção de estratégias de dimensionamento automático: para evitar subutilização ou falta de recursos, isso garante que a capacidade de computação seja ajustada dinamicamente com base nas demandas reais, evitando custos desnecessários.
- Revisão e seleção de tipos de instância adequados: a equipe revisa os tipos de instância em uso e seleciona aqueles que melhor se alinham com as necessidades específicas de cada carga de trabalho. Tipos de instância otimizados são escolhidos para garantir eficiência e economia.
- Implementação de políticas de desativação de recursos: para desativar automaticamente recursos não utilizados durante períodos específicos. Isso inclui instâncias, bancos de dados e outros serviços que podem ser desligados durante horas não comerciais.
- Negociação de contratos e reservas: a equipe de finanças e TI trabalha em conjunto para negociar contratos mais favoráveis com o provedor de nuvem. Estratégias de reservas são exploradas para obter descontos significativos em compromissos a longo prazo.
- Implementação de Governança Financeira (FinOps): Práticas são adotadas, promovendo uma abordagem colaborativa entre as equipes financeiras e de operações de TI. Essa colaboração visa otimizar custos, melhorar a transparência financeira e alinhar os gastos com os objetivos do negócio.
- Treinamento da equipe e conscientização: A equipe de TI é treinada para entender os modelos de precificação, estratégias de otimização e a importância da governança financeira. A conscientização é promovida para garantir que todas as partes compreendam a necessidade de otimização de custos.
- Revisão contínua e melhoria: a empresa adota uma abordagem de melhoria contínua, revisando regularmente as estratégias implementadas, analisando novos serviços oferecidos pelo provedor de nuvem e ajustando as práticas conforme necessário para garantir a otimização contínua.
Ao implementar essas estratégias, a empresa consegue otimizar seus custos em computação em nuvem, garantindo que a transição para a nuvem seja não apenas eficiente do ponto de vista operacional, mas também financeiramente sustentável a longo prazo.
Saiba Mais
O conceito de computação em nuvem quase sempre é associado a benefícios em relação ao compartilhamento e segurança de dados. Contudo, ele também pode ser um grande aliado das empresas que buscam maximizar a eficiência e economia em seus processos. Para saber mais sobre esse assunto, consulte o artigo 5 momentos em que a computação em nuvem reduz os custos da sua empresa.
Referências Bibliográficas
BHOWMIK, S. Cloud computing. Cambridge: Cambridge University Press, 2017.
MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Porto Alegre: SAGAH, 2020.
SOUSA NETO, M. V. Computação em nuvem. Rio de Janeiro: Brasport, 2015.
Encerramento da Unidade
Tecnologias e Soluções de Computação em Nuvem
Videoaula de Encerramento
Olá estudante! Nesta videoaula, você irá conhecer as soluções de computação em nuvem que proporcionam flexibilidade, escalabilidade e eficiência operacional para organizações, permitindo que se concentrem em suas operações principais sem a necessidade de gerenciar diretamente a infraestrutura de TI.
Esse conteúdo é importante para a sua prática profissional, pois ter um entendimento sólido das soluções de computação em nuvem é relevante em um ambiente de negócios cada vez mais digital e dinâmico.
Prepare-se para essa jornada de conhecimento! Vamos lá!!!
Ponto de Chegada
Olá, estudante!
A escolha do hardware e software dependerá dos requisitos e das preferências do provedor de serviços em nuvem. É essencial entender os principais modelos e tipos de serviços oferecidos:
Modelos de serviços na nuvem:
- IaaS (Infraestrutura como Serviço): oferece recursos de infraestrutura virtualizados, como servidores, armazenamento e redes e permite que usuários implantem e gerenciem seus próprios sistemas operacionais e aplicativos.
- PaaS (Plataforma como Serviço): fornece uma plataforma completa de desenvolvimento, incluindo ferramentas e serviços para facilitar o ciclo de vida do desenvolvimento de aplicativos e elimina a necessidade de gerenciar a infraestrutura subjacente.
- SaaS (Software como Serviço): aplicações de software totalmente hospedadas e gerenciadas pelo provedor de serviços em nuvem e os usuários acessam o software por meio de um navegador da web, sem a necessidade de instalação local.
Algumas soluções de computação em nuvem:
- Infraestrutura como serviço (IaaS): fornece recursos de infraestrutura virtualizada, como máquinas virtuais, armazenamento e redes. Exemplos: Amazon EC2, Microsoft Azure Virtual Machines, Google Compute Engine.
- Plataforma como serviço (PaaS): oferece uma plataforma completa de desenvolvimento, incluindo ferramentas e serviços, sem a necessidade de gerenciar a infraestrutura subjacente. Exemplos: Heroku, Google App Engine, Microsoft Azure App Service.
- Software como serviço (SaaS): disponibiliza aplicativos diretamente aos usuários finais pela internet, sem a necessidade de instalação local. Exemplos: Microsoft 365, Salesforce, Google Workspace.
- Computação sem servidor (Serverless): permite que os desenvolvedores executem código sem se preocupar com a infraestrutura, pagando apenas pelo tempo de execução. Exemplos: AWS Lambda, Azure Functions, Google Cloud Functions.
- Armazenamento em nuvem: oferece serviços de armazenamento escalável e seguro para dados. Exemplos: Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage.
- Bancos de dados em nuvem: fornecem serviços de gerenciamento e armazenamento de dados, permitindo acesso rápido e seguro. Exemplos: Amazon RDS, Google Cloud SQL, Microsoft Azure Cosmos DB.
- Redes em nuvem: fornece serviços para criar, gerenciar e otimizar redes virtuais. Exemplos: Amazon VPC, Google Cloud Virtual Network, Microsoft Azure Virtual Network.
- Contêineres e orquestração: facilitam o empacotamento de aplicações e sua implementação consistente, escalável e gerenciada. Exemplos: Kubernetes, Docker, OpenShift.
- Segurança em nuvem: inclui serviços e ferramentas para garantir a segurança dos dados e aplicações na nuvem. Exemplos: AWS Identity and Access Management (IAM), Azure Active Directory, Google Cloud Identity and Access Management.
- Analytics e Big Data: oferece serviços para processamento, análise e visualização de grandes conjuntos de dados. Exemplos: Amazon EMR, Google BigQuery, Microsoft Azure HDInsight.
- Inteligência Artificial (IA) e Machine Learning (ML): fornecem serviços e frameworks para desenvolvimento e implantação de modelos de IA e ML. Exemplos: Amazon SageMaker, Google AI Platform, Microsoft Azure Machine Learning. Entender esses conceitos é fundamental para explorar efetivamente os benefícios da computação em nuvem.
É Hora de Praticar!
Desafios significativos em sua infraestrutura de TI
Descrição da situação-problema
Uma empresa de médio porte enfrenta desafios significativos em sua infraestrutura de TI, que atualmente é baseada em uma abordagem tradicional de data center local. A empresa está enfrentando crescentes demandas de escalabilidade, flexibilidade e custos operacionais mais baixos. A equipe de TI percebe que é necessário modernizar a infraestrutura para acompanhar a dinâmica do mercado e melhorar a eficiência operacional. O que a empresa poderia fazer para enfrentar esses desafios?
Reflita
- Quais as estratégias e práticas recomendadas para garantir a conformidade e a segurança de dados em um ambiente de nuvem?
- Como os serviços de computação em nuvem podem ser integrados efetivamente em uma estratégia de Internet das Coisas (IoT)?
- Qual a importância da orquestração de contêineres na nuvem?
Resolução do estudo de caso
Resolução da situação-problema
A solução proposta para resolver esses desafios é migrar para uma arquitetura de computação em nuvem. Seguem os passos para a implementação dessa solução:
- Avaliação de necessidades: conduzir uma análise detalhada das necessidades de negócios, identificando os requisitos de escalabilidade, segurança e conformidade.
- Seleção de modelo de serviço: escolher o modelo de serviço mais adequado (IaaS, PaaS ou SaaS) com base nos requisitos específicos da empresa.
- Escolha de provedor de nuvem: avaliar diferentes provedores de nuvem (como AWS, Azure ou Google Cloud) e selecionar aquele que melhor atende às necessidades da empresa em termos de serviços, preços e suporte.
- Migração gradual: planejar para minimizar impactos e garantir a continuidade dos negócios. Começar com aplicativos menos críticos antes de migrar os sistemas essenciais.
- Implementação de práticas de segurança: implementar medidas robustas, incluindo criptografia, controle de acesso e monitoramento constante para proteger dados sensíveis.
- Treinamento e adoção: oferecer treinamento para a equipe de TI para garantir uma transição suave e uma rápida adoção das novas práticas e tecnologias.
- Otimização de recursos: utilizar recursos de nuvem de forma eficiente, otimizando o dimensionamento de recursos conforme necessário para evitar custos desnecessários.
- Monitoramento contínuo: implementar ferramentas de monitoramento para rastrear o desempenho da infraestrutura, identificar possíveis problemas e otimizar continuamente a operação.
- Integração de novas tecnologias: avaliar e integrar tecnologias emergentes, como contêineres e orquestração, para melhorar ainda mais a agilidade e a eficiência operacional.
- Avaliação pós-migração: realizar uma avaliação pós-migração para medir o sucesso da transição, ajustar estratégias conforme necessário e garantir que os objetivos de negócios sejam alcançados.
A empresa poderá aproveitar os benefícios da computação em nuvem, como escalabilidade sob demanda, custos operacionais reduzidos e maior flexibilidade, ao mesmo tempo em que enfrenta os desafios inerentes à mudança para essa nova abordagem tecnológica.
Dê o play!
Assimile
A computação em nuvem é uma revolução na forma como as organizações gerenciam e entregam serviços de TI. As tecnologias e soluções associadas a essa abordagem fornecem flexibilidade, escalabilidade e eficiência operacional.
A figura a seguir mostra o resumo de tecnologias e soluções em computação em nuvem.
Referências
CARVALHO, A. C. P. L. F.; LORENA, A. C. Introdução à computação. São Paulo: GEN, 2017.
ERL, T.; PUTTINI, R.; MAHMOOD, Z. Cloud Computing: Concepts, Technology & Architecture. Rio de Janeiro: Prentice Hall, 2013.
MEIRELES, A.; OLIVEIRA, H. S.; PICHETTI, R. F. Cloud Computing. Revisão técnica de Adriano José Vogel. Porto Alegre: SAGAH, 2020.