Buscar

COMPUTAÇÃO EM NUVEM

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MBA EM TECNOLOGIA E CONECTIVIDADE
MODULO 3
COMPUTAÇÃO EM NUVEM
1 - O início da Computação em Nuvem
 
Até recentemente, as organizações que precisavam de novas soluções de software para suas diversas práticas de negócios, como contabilidade, vendas, manufatura e assim por diante, precisariam planejar e construir seu novo sistema em detalhes antes de começar a usá-lo. Isso muitas vezes incluiria a construção de uma nova infraestrutura de TI, incluindo novos prédios e salas, chamados centros de dados, que hospedariam os servidores, os dispositivos de rede e os dispositivos de armazenamento. Lembre-se de que esses prédios não eram estruturas regulares, pois normalmente precisavam de acesso extra seguro, sistemas de refrigeração de última geração e fontes de alimentação confiáveis. Em outros casos, uma infraestrutura de TI atualizada simplesmente exigia novo hardware para datacenters existentes.
Apesar de todo o planejamento, era muito comum as organizações superestimarem ou subestimarem as necessidades de computação de seus novos sistemas. Isso significava que muitos sistemas em um data center consumiam grandes quantidades de espaço, energia e dinheiro com baixo uso geral, ou que as soluções de software apresentavam um desempenho insatisfatório devido ao pouco poder computacional para suportá-las.
A Solução
Em vez de precisar estimar o uso de seu computador e apostar financeiramente nos resultados, imagine que você pode aumentar e diminuir sua infraestrutura de computação com base nas suas necessidades reais. Portanto, em vez de criar um data center e proteger seus aplicativos, imagine ter todo esse trabalho feito remotamente e automaticamente.
Na verdade, as organizações nem precisam imaginar; Tudo o que eles precisam fazer é procurar a nuvem para encontrar ofertas de infraestrutura de TI disponíveis comercialmente que possam atender às suas necessidades comerciais exclusivas. A computação em nuvem torna a infra-estrutura de computação em crescimento e redução muito mais ágil e flexível. Você pode pensar na computação em nuvem como o agrupamento de serviços, como armazenamento, rede e computadores, ao mesmo tempo em que fornece funcionalidade a usuários e administradores com uma sobrecarga de gerenciamento reduzida. Os serviços podem ser desenvolvidos e reduzidos conforme necessário, o que proporciona maior elasticidade ao sistema, eficiência e agilidade para o negócio e responsabilidade pelo sistema real. 
O que faz a Computação na Nuvem possível?
É importante observar que, até a nuvem estar disponível, as organizações não tinham a opção de adotar essa cara fase de planejamento e soluções detalhadas. Para serem competitivos, precisavam fornecer a seus negócios a velocidade e a precisão da tecnologia de computação de dados, mas muitas vezes eram limitadas devido a restrições em sua rede, ou riscos de inatividade ou perda de dados. Recentemente, novas tecnologias e conceitos amadureceram para criar as condições perfeitas para a nuvem nascer, incluindo:
· Virtualização de cargas de trabalho computacional
· 
· Conectividade de Internet de banda larga
· 
· Dispositivos inteligentes de ponto final
· 
· As Economias de serviços modernos (Economia Digital)
· 
· Comércio eletrônico
· 
Sem qualquer uma dessas condições, a computação em nuvem não seria prática. 
Tudo Faz Sentido
As organizações viram um enorme crescimento nos próprios dados de transações e eventos que eles geram. Estima-se que os dados do mundo dobrem a cada dois anos. Isso significa que nos próximos dois anos geraremos a mesma quantidade de dados que todos os dados que geramos desde o início do tempo. É difícil armazenar, filtrar e analisar todos esses dados e, por essa razão, as organizações também procuraram a nuvem para ajudá-los a obter insights sobre seus enormes armazenamentos de dados. As organizações do passado tropeçariam nos astronômicos custos iniciais de armazenar todos esses dados e hardware de computação para executar seus sistemas, mas agora eles podem disponibilizá-los instantaneamente usando a nuvem.
Definindo a nuvem
A computação em nuvem, ou “a nuvem”, se tornou uma tendência líder em TI. No entanto, sua definição é ambígua e algumas das terminologias relacionadas a ela podem ser confusas. Tentar definir a nuvem em termos puramente tecnológicos é difícil. É melhor pensar nisso como um conceito abstrato que encapsula as técnicas usadas para fornecer serviços de computação a partir de um conjunto de recursos compartilhados.
As soluções em nuvem abstraem o hardware físico e as apresentam como recursos virtualizados para serem usados ​​no processamento, na memória, no armazenamento e na rede. Muitas soluções em nuvem adicionam mais camadas de abstração para definir serviços específicos que podem ser provisionados e usados.
A nuvem pode significar coisas diferentes para pessoas diferentes, dependendo de como a usam, seja acessando e-mails, usando softwares on-line, armazenando arquivos on-line e assim por diante.
Benefícios da nuvem
Existem muitas boas razões para implementar uma solução em nuvem para o seu negócio. Este tópico se concentra em três importantes benefícios de negócios que direcionam as empresas na direção das soluções em nuvem.
Agilidade:
As oportunidades de negócios e de mercado podem emergir e mudar muito rapidamente. Uma oportunidade comercial viável hoje pode não ser mais relevante amanhã. As modernas operações de TI precisam ser ágeis e capazes de responder rápida e facilmente às mudanças nos negócios, permitindo que uma empresa permaneça competitiva.
Eficiência Operacional e Gerencial:
Também se tornando mais proeminente é algo chamado Shadow IT. Shadow IT é um termo que se refere a aplicativos e infraestrutura de Tecnologia da Informação (TI) que são gerenciados e operados sem o conhecimento do departamento de TI da organização. Onde a TI é incapaz de responder com rapidez suficiente para atender às necessidades de negócios, uma tendência crescente tem sido o uso de soluções de terceiros por funcionários e departamentos para fornecer os requisitos de TI que atenderão às suas necessidades. Isso pode resultar em aumento do risco para os negócios em termos de controle reduzido, segurança e problemas de conformidade, bem como falta de visibilidade. Portanto, um fator importante é a necessidade de os departamentos de TI se posicionarem como empresas capacitadoras, em vez de serem percebidas como inibidoras.
Custo reduzido:
A economia também é um dos principais impulsionadores da nuvem. Em muitos casos, é simplesmente muito mais barato para uma empresa utilizar um serviço de nuvem do que construir, gerenciar e manter os serviços em si. Isso leva a um uso mais eficiente dos recursos e a relatórios claros e concisos, o que ajuda a reduzir os custos gerais.
Principais Vantagens da Nuvem
Para falarmos das principais vantagens da Nuvem fazemos a comparação entre a utilização de uma Infraestrutura de TI própria versus a utilização de serviços de Computação na Nuvem:
· Planejamento de Custos - CAPEX para OPEX. Dificuldade de fazer os investimentos iniciais. Na nuvem você paga pelo o que usa, sem investimentos iniciais.
· 
· Sistemas Corporativos de Alto Nível – grandes corporações utilizam sistemas sofisticados de TI. A Nuvem traz esse nível de Sistemas Corporativos (ERP, CRM, BI, BigDATA, AI, etc) para a lojinha da esquina ou a padaria do seu Antônio aí perto da sua casa. Ou seja, qualquer negócio, qualquer tipo de empresa, grande ou pequena, pode ter acesso a tecnologias e serviços avançados de infraestrutura de TI.
· 
· Rápido “No Ar” (Go Live!) – Lembra no início que falamos do enigma da computação e da TI para as empresas? Aquele ciclo longo de implementar sistemas de TI para atender as demandas dos negócios. A Nuvem corta esse esforço e tempo para quase zero! Ou seja, sua empresa vai trabalhar mais no “Ao Vivo” do que no “playback”. Configurar o seu laptop na nuvem (um processador básico, memória, e comunicação de rede) leva apenas alguns cliques e poucos segundos!
· 
· Capacidade Ágil e Elástica – Essa é partemais atrativa da computação da nuvem. Não gostou da solução que desenvolveu? Não atendeu as necessidades previstas? Foi importante por um período, mas agora os clientes querem outras coisas? Deleta tudo em poucos cliques e refaz de novo. A solução ficou boa e a sua base de clientes está crescendo? Você percebe que existe pico de utilização apenas nos finais de semana? A Nuvem se ajusta para isso, de acordo com o perfil do seu negócio e você paga somente o que utilizar a mais! Ou para de pagar o que não precisa mais.
· 
· Integração “Na Caixa” – antes da nuvem as empresas gastavam muito dinheiro para integração sistemas diferentes. Cada departamento tinha um sistema diferente e era quase impossível criar um fluxo de informações entre esses departamentos pois os sistemas eram complexos para serem integrados. A nuvem tem essa integração na sua essência, mesmo utilizando sistemas legados!
· 
· Alta Disponibilidade – já foi difícil fazer os investimentos iniciais para os sistemas de TI para sua empresa numa solução própria (CAPEX). Imagina pagar pela redundância? Imagina estar preparado para um desastre de força maior que pode desligar tudo. A nuvem também tem essas demandas de disponibilidade e recuperação de desastres na sua essência pois os provedores de computação na nuvem cuidam dessa infraestrutura robusta para você.
· 
· Segurança Superior – soluções caseiras nas empresas geralmente não se preocupam com Segurança. Somente por migrar para a Nuvem as empresas são obrigadas a desenvolver suas soluções com requisitos de segurança, o que torna tais sistemas de TI mais robustos. Dos provedores de soluções na Nuvem até a sua equipe de TI e Negócios, todos agora pensam em segurança. O que quebra um mito de que a Nuvem é vulnerável.
· 
· Regras de Conformidade – o famoso “compliance” é mais fácil de ser gerenciando com a Nuvem pois os provedores de soluções de computação na Nuvem na sua maioria já entregam serviços de acordo com as regulamentações e leis de cada país que operam e também de órgãos reguladores internacionais. Fazer tudo isso “in-house” levaria tempo e dinheiro. E aqui estamos falando de ambos os padrões tecnológicos (protocolos, formatos, especificação de hardware, consumo de energia, materiais sustentáveis, etc) e também de negócios (regras de contabilidade, bolsa de valores, segurança da informações de usuários, etc).
· 
Toda a Nuvem Precisa
Todos os serviços da Nuvem devem oferecer as seguintes principais características:
· Self-Service - A capacidade das empresas alocarem os recursos necessários por si mesmos, sem envolvimento do provedor de serviços em nuvem.
· 
· Avançado acesso a rede de comunicação - Estar acessível através de mecanismos padrões de acesso à rede, sem a necessidade de qualquer infraestrutura especializada.
· 
· Grupo de Recursos acessíveis - Os agrupamentos dos vários recursos devem ser alocados e devolvidos conforme necessário.
· 
· Rápida elasticidade - A capacidade de ampliar e reduzir conforme necessário, de maneira automática ou manual, sem tomar muito tempo.
· 
Medição e Monitoramento - A capacidade de medir exatamente quais recursos estão sendo usados, monitorar e controlar esses serviços e poder apresentar esses dados ao provedor de serviços ou ao usuário final.
Atividades extra
1. A Máquina de Turing é um dispositivo teórico conhecido como máquina universal, que foi concebido pelo matemático britânico Alan Turing (1912-1954), muitos anos antes de existirem os modernos computadores digitais (o artigo de referência foi publicado em 1936). Num sentido preciso, é um modelo abstrato de um computador, que se restringe apenas aos aspectos lógicos do seu funcionamento (memória, estados e transições), e não a sua implementação física. Numa máquina de Turing pode-se modelar qualquer computador digital.
2. Turing também se envolveu na construção de máquinas físicas para quebrar os códigos secretos das comunicações alemãs durante a Segunda Guerra Mundial, tendo utilizado alguns dos conceitos teóricos desenvolvidos para o seu modelo de computador universal.
3. Filme – O jogo da Imitação (The Imitation Game)
4. Assista o filme e conheça mais sobre a história de Alan Turing e seu primeiro computador.
5. 
0. Leituras da Atualidade
1. Volumes da Nuvem: TechCrunch: Google's still not sharing cloud revenue (Fev2019) @
2. https://techcrunch.com/2019/02/05/googles-still-not-sharing-cloud-revenue/
3. Volumes da Nuvem: Here’s Why Amazon Is No Shoo-In To Win The $513B Global Cloud Market (Ago2018) @ https://www.cbinsights.com/research/amazon-google-microsoft-multi-cloud-strategies/ 
2 - Introdução à Computação em Nuvem
Computação na Nuvem é um paralelo e distribuído sistema computacional ....
....que consiste numa coleção de interconectados e virtualizados computadores .....
....que são dinamicamente provisionados e apresentados como um ou vários recursos.....
...... baseados numa oferta de serviço
Resumindo, a computação em nuvem é a distribuição de serviços de computação – servidores, armazenamento, bancos de dados, redes, software, análises, inteligência e muito mais pela Internet (“a nuvem”), proporcionando inovações mais rápidas, recursos flexíveis e economia na escala. Você normalmente paga apenas pelos serviços de nuvem que utiliza, ajudando a reduzir os custos operacionais, a executar sua infraestrutura com mais eficiência e a dimensionar conforme as necessidades da sua empresa mudam.
Principais benefícios da computação em nuvem
A computação em nuvem é uma grande mudança na forma tradicional de pensamento adotada pelas empresas sobre os recursos de TI. Conheça seis motivos comuns pelos quais as organizações estão adotando os serviços de computação em nuvem:
· Custo: A computação em nuvem elimina o gasto de capital com a compra de hardware e software, instalação e execução de datacenters locais, incluindo racks de servidores, disponibilidade constante de eletricidade para energia e resfriamento, além de especialistas de TI para o gerenciamento da infraestrutura. Tudo isso contribui para o alto custo da computação.
· 
· Velocidade: A maior parte dos serviços de computação em nuvem é fornecida por autosserviço e sob demanda, para que até grandes quantidades de recursos de computação possam ser provisionadas em minutos, normalmente com apenas alguns cliques, fornecendo às empresas muita flexibilidade e aliviando a pressão do planejamento de capacidade.
· 
· Escala global: Os benefícios dos serviços de computação em nuvem incluem a capacidade de dimensionamento elástico. Em termos de nuvem, isso significa fornecer a quantidade correta de recursos de TI – por exemplo, mais ou menos potência de computação, armazenamento e largura de banda – sempre quando necessário e no local geográfico correto.
· 
· Produtividade: Datacenters locais normalmente exigem pilhas de equipamentos e implementações, como configuração de hardware, correção de software e outras tarefas demoradas de gerenciamento da TI. A computação em nuvem remove a necessidade de muitas destas tarefas, para que as equipes de TI possam investir seu tempo na obtenção de suas metas comerciais mais importantes.
· 
· Desempenho: Os maiores serviços de computação em nuvem são executados em uma rede mundial de datacenters seguros, que são atualizados regularmente com a mais recente geração de hardware de computação rápido e eficiente. Isso oferece diversos benefícios em um único datacenter corporativo, incluindo latência de rede reduzida para aplicativos e mais economia de escalonamento.
· 
· Segurança: Muitos provedores em nuvem oferecem um amplo conjunto de políticas, tecnologias e controles que fortalecem sua postura geral de segurança, ajudando a proteger os dados, os aplicativos e a infraestrutura contra possíveis ameaças.
· 
· Tipos de computação em nuvem: Nem todas as nuvens são iguais e não há um tipo de computação em nuvem que seja ideal para todas as pessoas. Vários modelos, tipos e serviços diferentes evoluíram para ajudar a oferecer a solução certa para suas necessidades.
· 
Tipos de implantação de nuvemPrimeiro, você precisa determinar o tipo de implantação de nuvem ou a arquitetura de computação em nuvem, no qual seus serviços de nuvem serão implementados. Há três maneiras diferentes de implantar serviços de nuvem: em uma nuvem pública, nuvem privada ou nuvem híbrida.
Nuvem pública
As nuvens públicas pertencem a um provedor de serviços de nuvem terceirizado e são administradas por ele, que fornece recursos de computação, como servidores e armazenamento, pela Internet. O Microsoft Azure é um exemplo de nuvem pública. Com uma nuvem pública, todo o hardware, software e outras infraestruturas de suporte são de propriedade e gerenciadas pelo provedor de nuvem. Você acessa esses serviços e gerencia sua conta usando um navegador da Web.
Nuvem privada
Uma nuvem privada se refere aos recursos de computação em nuvem usados exclusivamente por uma única empresa ou organização. Uma nuvem privada pode estar localizada fisicamente no datacenter local da empresa. Algumas empresas também pagam provedores de serviços terceirizados para hospedar sua nuvem privada. Uma nuvem privada é aquela em que os serviços e a infraestrutura são mantidos em uma rede privada.
Nuvem híbrida
Nuvens híbridas combinam nuvens públicas e privadas ligadas por uma tecnologia que permite que dados e aplicativos sejam compartilhados entre elas. Permitindo que os dados e os aplicativos se movam entre nuvens privadas e públicas, uma nuvem híbrida oferece à sua empresa maior flexibilidade, mais opções de implantação e ajuda a otimizar sua infraestrutura, segurança e conformidade existentes.
Tipos de serviços de nuvem: IaaS, PaaS, sem servidor e SaaS
A maioria dos serviços de computação em nuvem se enquadra em quatro categorias amplas: IaaS (infraestrutura como serviço), PaaS (plataforma como serviço), sem servidor e SaaS (software como serviço). Às vezes, eles são chamados de pilha da computação em nuvem, pois se baseiam um no outro. Saber o que eles são e como são diferentes ajuda a alcançar suas metas de negócios.
IaaS (infraestrutura como serviço)
A categoria mais básica de serviços de computação em nuvem. Com a IaaS, você aluga a infraestrutura de TI, (que inclui servidores e máquinas virtuais, armazenamento (VMs), redes e sistemas operacionais), de um provedor de nuvem, com pagamento conforme o uso. 
PaaS (plataforma como serviço)
A plataforma como serviço refere-se aos serviços de computação em nuvem que fornecem um ambiente sob demanda para desenvolvimento, teste, fornecimento e gerenciamento de aplicativos de software. O PaaS foi criado para facilitar aos desenvolvedores criarem aplicativos móveis ou Web rapidamente, sem se preocupar com a configuração ou o gerenciamento de infraestrutura subjacente de servidores, armazenamento, rede e bancos de dados necessários para desenvolvimento. 
Computação sem servidor
Como o PaaS, a computação sem servidor concentra-se na criação de aplicativos, sem perder tempo com o gerenciamento contínuo dos servidores e da infraestrutura necessários para isso. O provedor em nuvem cuida da configuração, do planejamento de capacidade e do gerenciamento de servidores para você. As arquiteturas sem servidor são altamente escalonáveis e controladas por eventos, usando recursos apenas quando ocorre uma função ou um evento que desencadeie esse uso.
SaaS (software como serviço)
O software como serviço é um método para a distribuição de aplicativos de software pela Internet sob demanda e, normalmente, baseado em assinaturas. Com o SaaS, os provedores de nuvem hospedam e gerenciam o aplicativo de software e a infraestrutura subjacente e fazem manutenções, como atualizações de software e aplicação de patch de segurança. Os usuários conectam o aplicativo pela Internet, normalmente com um navegador da Web em seu telefone, tablet ou PC.
Como a computação em nuvem funciona
Embora todos os serviços de computação em nuvem funcionem de maneiras um pouco distintas, muitos fornecem um painel amigável baseado em navegador que facilita para os profissionais de TI e desenvolvedores solicitarem recursos e gerenciar suas contas. Alguns serviços de computação em nuvem também são criados para funcionar com APIs REST e uma interface de linha de comando, fornecendo diversas opções aos desenvolvedores.
Usos da computação em nuvem
Provavelmente você está usando computação em nuvem neste momento, mesmo sem perceber. Se você usa um serviço online para enviar email, editar documentos, ver filmes ou TV, ouvir música, jogar ou armazenar fotos e outros arquivos, é provável que a computação em nuvem esteja nos bastidores possibilitando tudo isso. Os primeiros serviços de computação em nuvem têm somente uma década, mas diversas organizações – de pequenas start-ups a corporações globais, de agências do governo a empresas sem fins lucrativos – estão adotando essa tecnologia por diversos motivos.
Veja alguns exemplos do que é possível fazer hoje com os serviços de nuvem por meio de um provedor em nuvem:
· Criar novos aplicativos e serviços: Crie, implante e dimensione aplicativos rapidamente – Web, dispositivos móveis e API – em qualquer plataforma. Acesse os recursos necessários para ajudar a atender aos requisitos de desempenho, segurança e conformidade.
· 
· Testar e criar aplicativo: Reduza o custo e o tempo de desenvolvimento de aplicativos usando infraestruturas de nuvem que podem ser ampliadas ou reduzidas com facilidade.
· 
· Armazenar, fazer backup e recuperar dados: Proteja seus dados de maneira mais econômica – e em grande escala – transferindo-os pela Internet para um sistema de armazenamento em nuvem externo acessível em qualquer local e dispositivo.
· 
· Analisar os dados: Unifique seus dados entre equipes, divisões e locais na nuvem. Em seguida, use serviços de nuvem, como aprendizado de máquina e inteligência artificial, para descobrir insights e tomar decisões mais informadas.
· 
· Transmitir áudio e vídeo: Conecte-se ao seu público-alvo em qualquer lugar, a qualquer hora, em qualquer dispositivo com vídeo e áudio de alta definição com distribuição global.
· 
· Inserir inteligência: Use modelos inteligentes para ajudar a envolver os clientes e fornecer insights importantes com base nos dados capturados.
· 
· Fornecer software sob demanda: Também conhecido como SaaS (software como serviço), o software sob demanda permite que você ofereça as últimas versões de software e atualizações para os clientes – sempre que precisarem, onde quer que estejam.
· 
Atividades extra
1. Quer conhecer mais sobre a Nuvem e os seus DataCenters (Infraestrutura Massiva) faça um Tour pelo Google e o Facebook:
2. 
Google Datacenter Video Tour:
https://www.youtube.com/watch?v=XZmGGAbHqa0
https://www.youtube.com/watch?v=zDAYZU4A3w0
Facebook Datacenter Vídeo Visit (em Inglês)
https://www.youtube.com/watch?v=X9ELENWZqLE 
 
2. Quer conhecer mais sobre os recursos de software da Nuvem. Analise esse Mapa com a lista de exemplos de ferramentas e recursos de software para a Nuvem.
Aproveite para verificar quais fornecedores podem ajudar nos seus próximos objetivos com relação à adoção da computação em nuvem como parte da estratégia de sistemas de TI da sua empresa.
Referência em  http://techgenix.com/open-source-application-monitoring-tools/ 
3 - Ofertas de Serviços na Nuvem
IaaS
A infraestrutura como serviço (IaaS) é uma forma de computação em nuvem que fornece recursos de computação virtualizada pela Internet. Ao fornecer uma oferta de IaaS, o provedor de serviços provisiona e gerencia tudo o que é necessário para hospedar máquinas virtuais (VMs), fornecer segurança e gerenciar comunicações. Para o cliente, o IaaS é uma infraestrutura de computação instantânea, provisionada e gerenciada pela Internet.
Os clientes dos serviços de IaaS evitam as despesas e a complexidade de comprar e gerenciar seus próprios servidores físicos e outras infraestruturas de datacenter. Eles podem aumentar e diminuir rapidamente com a demanda e pagar apenas pelos recursos que usam, quando os usam. Os clientes criam sua própria rede na nuvem - criando as VMs necessárias para fornecerquaisquer serviços necessários, incluindo o Active Directory, o Exchange, o SQL e quaisquer serviços que sejam criados neles. Efetivamente, o cliente aluga os recursos para construir sua rede.
As organizações usam o IaaS para ajudá-los em, por exemplo:
· Teste e desenvolvimento: Os ambientes de teste e desenvolvimento são rápidos de configurar e desmontar, permitindo o lançamento de novos aplicativos mais rapidamente. A escalabilidade do IaaS torna a criação e a desmontagem de vários ambientes de teste viáveis para mais organizações.
· 
· Site de hospedagem: A execução de sites usando o IaaS pode ser mais barata do que o tradicional web hosting, em alguns casos específicos.
· 
· Armazenamento, backup e recuperação: O IaaS pode simplificar o planejamento e o gerenciamento de sistemas de backup e recuperação.
· 
· Computação de alto desempenho: A computação de alto desempenho ajuda a resolver problemas complexos que envolvem milhões de variáveis ou cálculos. Exemplos incluem previsões climáticas e meteorológicas, modelagem financeira e simulações de terremotos.
· 
· Análise de Big Data: Conjuntos de dados maciços contêm padrões, tendências e associações potencialmente valiosos. Conjuntos de dados de mineração para identificar esses padrões ocultos requerem uma enorme quantidade de poder de processamento, o que o IaaS fornece.
· 
O IaaS fornece alguns dos seguintes benefícios aos clientes:
· Redução de custos: O IaaS elimina as despesas iniciais de configuração e gerenciamento de um datacenter no local e reduz os custos de manutenção da infraestrutura de rede.
· 
· Melhor continuidade de negócios e recuperação de desastres: A IaaS pode assumir a responsabilidade de manter dados e aplicativos disponíveis, mesmo para organizações distribuídas globalmente. Isso reduz a necessidade de uma equipe de continuidade de negócios altamente treinada em todos os sites.
· 
· Maior estabilidade, confiabilidade e suporte: Com o IaaS, não há necessidade de manter e atualizar software e hardware ou de solucionar problemas de equipamentos. Com o acordo adequado em vigor, o provedor de serviços garante que a infraestrutura seja confiável.
· 
· Maior segurança: Com o contrato de serviço apropriado, um provedor de serviços de IaaS pode fornecer segurança para os aplicativos e dados de uma organização que podem ser melhores do que o que a organização pode obter internamente.
· 
· Implementação mais rápida de novos aplicativos: Como a infraestrutura necessária para desenvolver e entregar aplicativos já está em vigor, as organizações podem levá-los aos usuários mais rapidamente.
· 
PaaS
A plataforma como serviço (PaaS) é uma categoria de computação em nuvem que inclui os serviços de infraestrutura de rede fornecidos pela IaaS, além de um ambiente de desenvolvimento e implementação na nuvem. As ofertas de PaaS incluem recursos que permitem que as organizações entreguem tudo, desde aplicativos simples baseados em nuvem até aplicativos corporativos sofisticados habilitados para nuvem. Os recursos são adquiridos como assinatura e acessados ​​por meio de uma conexão segura com a Internet.
A PaaS é projetada para suportar o ciclo de vida completo de aplicativos da Web: criação, teste, implementação, gerenciamento e atualização. Portanto, as ofertas de PaaS normalmente incluem middleware, ferramentas de desenvolvimento, serviços de business intelligence (BI) e sistemas de gerenciamento de banco de dados.
Assim como o IaaS, o PaaS permite que as organizações evitem a despesa e a complexidade de comprar, implementar e gerenciar elementos de seu ambiente de rede. No caso da PaaS, o provedor de serviços fornece e gerencia as licenças de software, a infraestrutura de aplicativos subjacente e o middleware, as ferramentas de desenvolvimento e outros recursos.
Ao usar um ambiente de PaaS, o cliente pode se concentrar no desenvolvimento de software e, em seguida, implantá-lo nos serviços gerenciados pelo provedor de serviços. Efetivamente, os clientes alugam a plataforma na qual desenvolver e implantar seu aplicativo.
As organizações usam o IaaS para ajudá-los em, por exemplo:
· Fornecendo um ambiente de desenvolvimento: A PaaS fornece um ambiente para os desenvolvedores construírem enquanto desenvolvem aplicativos baseados em nuvem. As ofertas de serviços de PaaS incluem componentes de software integrados e recursos de nuvem, como escalabilidade, alta disponibilidade e capacidade de multilocação, reduzindo a quantidade de codificação que os desenvolvedores devem fazer.
· 
· Business intelligence e Analytics: As ferramentas fornecidas como um serviço com PaaS permitem que as organizações analisem e explorem seus dados, encontrando insights e padrões e prevendo resultados para melhorar a previsão, decisões de design de produto, retornos de investimento e outras decisões de negócios.
· 
· Serviços adicionais: Os provedores de PaaS podem oferecer outros serviços que aprimoram aplicativos, como fluxo de trabalho, diretório, segurança e agendamento.
· 
A PaaS oferece aos clientes alguns dos seguintes benefícios:
· Redução no tempo de desenvolvimento: As ferramentas de desenvolvimento de PaaS podem reduzir drasticamente o tempo necessário para criar novos aplicativos com os componentes de aplicativos integrados à plataforma, como fluxo de trabalho, serviços de diretório, recursos de segurança, pesquisa e assim por diante.
· 
· Múltiplas plataformas: Alguns provedores de serviços oferecem opções de desenvolvimento para várias plataformas, como computadores, dispositivos móveis e navegadores, tornando os aplicativos multiplataforma mais rápidos e fáceis de desenvolver.
· 
· Acesso a ferramentas de desenvolvimento sofisticadas: Um modelo de assinatura possibilita que indivíduos ou organizações usem softwares sofisticados de desenvolvimento e ferramentas de business intelligence e analytics que eles não poderiam comprar diretamente.
· 
· Suporte para equipes de desenvolvimento distribuídas geograficamente: Como o ambiente de desenvolvimento é acessado pela Internet, as equipes de desenvolvimento podem trabalhar juntas em projetos, mesmo quando os membros da equipe estão em locais remotos.
· 
· Gerencie com eficiência o ciclo de vida do aplicativo: A PaaS fornece todos os recursos necessários para oferecer suporte ao ciclo de vida completo dos aplicativos da Web: criação, teste, implementação, gerenciamento e atualização no mesmo ambiente integrado.
· 
A figura abaixo mostra exemplos de soluções de PaaS de diversos fornecedores para alguns tipos de indústrias. É como empresas de pesquisa de tecnologia publicar esses quadros:
SaaS
O software como serviço (SaaS) permite que os usuários se conectem e usem aplicativos baseados na nuvem pela Internet. Exemplos comuns são e-mail, calendário e ferramentas de escritório, como o Microsoft Office 365, G Suite da Google, o CRM da Salesforce e até o ERP da SAP, ou alguma outra ferramenta de produtividade de Tecnologia da Informação.
O SaaS é uma solução de software completa que as organizações compram de um provedor de serviços de nuvem. Com o SaaS, o provedor de serviços gerencia tudo; as organizações alugam o uso de um aplicativo e os usuários se conectam a ele pela Internet, geralmente por meio de um navegador da web. A infra-estrutura subjacente, o middleware, o software do aplicativo e os dados do aplicativo são gerenciados inteiramente pelo provedor de serviços e localizados no data center do provedor de serviços. O provedor de serviços gerencia o hardware e o software, a segurança do aplicativo e os dados também.
As organizações usam o SaaS para ajudá-los em, por exemplo:
· Acesso a aplicativos baseados em nuvem: Por meio do SaaS, as organizações podem alugar aplicativos de produtividade, como e-mail, colaboração e calendário, e aplicativos de negócios sofisticados, como gerenciamento de relacionamento com o cliente (CRM), planejamento de recursos empresariais e gerenciamento de documentos. As organizações pagam pelo uso desses aplicativos por assinatura ou de acordo com o nível de uso.
· 
· Acesso a serviçose recursos baseados em nuvem: Algumas organizações usam o SaaS para fornecer a maioria de seus serviços de TI. Outros usam o SaaS para complementar os recursos internos de TI.
· 
O SaaS fornece alguns dos seguintes benefícios aos clientes:
· Tenha acesso a aplicativos sofisticados: Para fornecer aplicativos SaaS aos usuários, as organizações não precisam comprar, instalar, atualizar ou manter nenhum hardware, middleware ou software. O SaaS torna os aplicativos empresariais sofisticados mais acessíveis para as organizações.
· 
· Use o software cliente gratuito: Os usuários podem executar a maioria dos aplicativos SaaS diretamente de seu navegador da web sem precisar baixar e instalar qualquer software, embora alguns aplicativos exijam plug-ins. Isso significa que as organizações não precisam comprar e instalar softwares especiais para seus usuários.
· 
· Suportar usuários móveis: O SaaS facilita o fornecimento de aplicativos e serviços para uma força de trabalho móvel; os usuários podem acessar aplicativos e dados SaaS de qualquer computador ou dispositivo móvel conectado à Internet. Os provedores de serviços geralmente fornecem aplicativos para diversas plataformas diferentes, que as organizações podem usar para fornecer acesso a seus usuários. As organizações não precisam gerenciar os problemas de segurança inerentes à computação móvel, porque essa tarefa é executada pelo provedor de serviços.
· 
· Acesse dados de aplicativos de qualquer lugar: Com os dados armazenados na nuvem, os usuários podem acessar suas informações em qualquer computador ou dispositivo móvel conectado à Internet. E quando os dados do aplicativo são armazenados na nuvem, nenhum dado é perdido se o computador ou o dispositivo de um usuário falhar.
· 
Para finalizar um outro quadro de referência com diversos provedores de serviços na nuvem.
Atividade extra
 
1. Logo na primeira aula falamos sobre o que a nuvem e como os datacenter são constituídos e agrupados para formar a infraestrutura robusta da Computação em Nuvem. Agora que você já sabe bem mais sobre a Nuvem, explore a oferta de serviços de Computação em Nuvem dos principais players e veja como suas localidades estão organizadas:
2. 
· https://cloud.google.com/about/locations/ 
· 
· https://aws.amazon.com/about-aws/global-infrastructure/ 
· 
· https://azure.microsoft.com/en-us/global-infrastructure/regions/
· 
 
2. Quer começar a trabalhar mais com a Nuvem? Aprenda o seu “Hello World” agora mesmo com os principais fornecedores de computação em nuvem:
 
Amazon AWS - https://aws.amazon.com/pt/getting-started/tutorials/ 
Microsoft Azure - https://azure.microsoft.com/pt-br/get-started/ 
Google GCP - https://cloud.google.com/getting-started/?hl=pt-BR 
4 - Segurança na Nuvem
Definições Gerais
A segurança da computação em nuvem ou, mais simplesmente, a segurança na nuvem refere-se a um amplo conjunto de políticas, tecnologias, aplicativos e controles utilizados para proteger IP, dados, aplicativos e serviços virtualizados e a infraestrutura associada da computação em nuvem. É um subdomínio de segurança de computadores, segurança de rede e, mais amplamente, segurança de informações.
A computação em nuvem e o armazenamento de dados remotos fornecem aos usuários recursos para armazenar e processar seus dados em data centers de terceiros. As organizações usam a nuvem em vários modelos de serviço diferentes (como SaaS, PaaS e IaaS) e modelos de implantação (privado, público, híbrido e comunitário). As preocupações de segurança associadas à computação em nuvem se dividem em duas grandes categorias: problemas de segurança enfrentados pelos provedores de nuvem (organizações que fornecem software, plataforma ou infraestrutura como serviço via nuvem) e problemas de segurança enfrentados por seus clientes (empresas ou organizações). que hospedam aplicativos ou armazenam dados na nuvem). 
A responsabilidade é compartilhada, no entanto. O provedor deve garantir que sua infraestrutura seja segura e que os dados e aplicativos de seus clientes sejam protegidos, enquanto o usuário deve tomar medidas para fortalecer sua aplicação e usar senhas fortes e medidas de autenticação.
Autenticação na nuvem
Os usuários devem ser identificados para usar serviços de nuvem. Existem várias maneiras de fornecer serviços de autenticação, dependendo da situação.
As organizações podem manter seus recursos internos de computação separados dos serviços baseados em nuvem. Os usuários fornecem um nome de usuário e senha para recursos internos e um nome de usuário e senha diferentes para recursos baseados em nuvem. Isso é simples de configurar e gerenciar, mas exige que o usuário lembre pelo menos duas combinações diferentes de nome de usuário e senha, e para quais serviços são necessários. Por exemplo, uma organização pode fazer com que seus usuários usem sua conta do Active Directory (AD) local para recursos locais e forneça uma conta separada dos softwares como serviço que utilizam (uma conta para o Office365, outra para o G Suite, outra para ERP, outra para o CRM, etc).
A maioria dos usuários se sente mais à vontade usando apenas um conjunto de credenciais de nome de usuário e senha. Esta é uma maneira comum de acessar recursos internos - cada recurso é identificado no AD e o usuário recebe acesso a ele. Eles só precisam do conjunto de credenciais do AD para obter acesso a qualquer recurso do AD. As organizações podem estender isso a recursos não-confiáveis ​​do AD configurando Single Sign On (SSO), tornando a identificação e a autenticação transparentes para o usuário.
O SSO faz uso de um mecanismo de autenticação federada que ajuda a verificar a identidade do usuário. Você pode estar familiarizado com o uso de sua conta do Facebook ou Google+ para autenticar-se em outro site aparentemente não relacionado. Você pode usar esses tipos de credenciais para fazer login em várias páginas e serviços diferentes. Esse é um tipo de federação: você confia no Facebook para identificá-lo e autenticá-lo e, se o provedor de serviços da Web também confiar no Facebook para identificá-lo e autenticá-lo, ele não precisará de seu próprio sistema de autenticação, mas dependerá de terceiros ( neste caso, o Facebook).
Organizações de nível corporativo baseadas na Microsoft (muito comum por exemplo) usam o ADFS (Serviços de Federação do Active Directory) e as organizações menores podem simplesmente usar uma conta da Microsoft. Dessa maneira, as organizações podem habilitar o SSO para seus recursos locais e seus recursos baseados em nuvem.
O SSO é mais fácil para os usuários e pode ser mais seguro porque as organizações podem adicionar autenticação multifator, como verificação por texto ou chamada telefônica ou até mesmo impressão digital.
Gestão de Privacidade
Ao publicar informações em sites de redes sociais, você deve reconhecer que os dados estão sendo armazenados em um ou mais servidores que podem estar localizados em qualquer lugar. Se você está postando informações pessoais no Facebook ou atualizando seus links de negócios no LinkedIn, esses dados são armazenados em algum lugar. Da mesma forma, se uma organização usa serviços em nuvem, o armazenamento e a localização de seus dados se tornam mais importantes devido à privacidade de dados, exigências legais ou regulamentares.
Uma organização que considera armazenar dados na nuvem deve entender os requisitos legais e regulamentares de seus dados, bem como as expectativas de privacidade dos clientes, e se os serviços oferecidos por um provedor de serviços de nuvem atendem a esses requisitos.
Questões a serem consideradas por uma organização considerando o armazenamento de dados na nuvem incluem:
· Em qual país / região os dados serão armazenados?
· 
· Por quanto tempo os dados serão armazenados?
· 
· O provedor de serviços garante locais não apenas de dados primários, mas também de dados de backup?
· 
· O provedor de serviços pode ser forçado a permitir o acesso aos dados dos clientes por meio de canais legais?
· 
Quando os dados se enquadram em restrições regulatórias ou deconformidade, a escolha da implantação na nuvem (seja privada, pública ou híbrida) depende da confiança de que o provedor é totalmente capaz de suportar os requisitos do cliente.
É possível que uma organização implemente controles de segurança adicionais que atendam aos requisitos regulamentares ou legais, mesmo quando a Infraestrutura como Serviço (IaaS) subjacente ou a Plataforma como Serviço (PaaS) não atende totalmente a esses mesmos requisitos. Mas a gama de controles adicionais que podem ser adicionados por uma organização é limitada e não pode bloquear todas as lacunas em alguns serviços de nuvem pública. O esforço envolvido no monitoramento e manutenção de controles adicionais de segurança pode ser proibitivo.
As organizações globais precisam garantir que todos os serviços implantados na nuvem sejam usados ​​de acordo com as leis e regulamentos em vigor para os funcionários, subsidiárias estrangeiras e clientes. As leis de proteção de dados são diferentes em todo o mundo e as organizações devem estar cientes das leis que dizem respeito aos funcionários em todos os seus locais.
A localização principal dos dados e quaisquer locais de backup devem ser conhecidos para garantir que essas leis e regulamentos sejam seguidos. Muitas vezes, os locais de backup precisam ser determinados. Por exemplo, a Amazon.com Inc. possui grandes datacenters nos Estados Unidos e na Irlanda, o que poderia causar problemas se eles fossem usados ​​como centros de backup para determinados tipos de dados.
As leis de proteção de dados dos Estados membros da União Européia (UE), bem como de outras regiões, são extremamente complexas e possuem vários requisitos definitivos. A transferência de dados pessoais para fora dessas regiões precisa ser tratada de maneiras específicas. Por exemplo, a UE exige que o coletor de dados, ou controlador de dados, informe os indivíduos quando os dados serão enviados e processados ​​em uma região fora da UE. O controlador de dados e o processador final também devem ter contratos aprovados pela Autoridade de Proteção de Dados com antecedência. Os Estados Unidos e a UE têm um acordo recíproco, e o destinatário dos EUA precisa auto certificar seus procedimentos de dados registrando-se no Departamento de Comércio dos EUA. O Brasil ainda carece de regulamentações mais sofisticadas mas vem evoluindo com o “Marco Civil da Internet”, Lei N° 12.965 de 2014 e a Lei Geral de Proteção de Dados Pessoais (LGPDP), Lei nº 13.709 de 2018.
O gerenciamento de privacidade é uma consideração importante para organizações globais, ou para aqueles com uma base de clientes global, ao identificar serviços de nuvem apropriados e provedores de serviços em nuvem.
Conformidade
A conformidade é principalmente sobre rastreamento e monitoramento de acesso a dados; isto é, garantir controles adequados sobre quem tem acesso a ativos, que nível de acesso eles têm e como esses níveis são mantidos. A conformidade com as regulamentações legais é um requisito para a maioria das organizações e é comprovada por meio de auditorias bem-sucedidas. A computação em nuvem muitas vezes dificulta que as organizações garantam o cumprimento das regulamentações governamentais e do setor, especialmente se elas ou seus clientes abrangem várias regiões globais com regulamentações diferentes.
Se a organização opera nos Estados Unidos, no Canadá ou na União Europeia, eles estão sujeitos a vários requisitos normativos. Essas leis podem estar relacionadas a onde os dados são armazenados ou transferidos, incluindo o quão bem esses dados são protegidos de um aspecto de confidencialidade. Algumas leis se aplicam a mercados específicos, como o Ato de Portabilidade e Responsabilidade de Seguro de Saúde dos Estados Unidos (HIPAA) para o setor de saúde por exemplo, ou a CLT (conjuntos de leis trabalhistas) no Brasil. No entanto, as organizações geralmente armazenam informações relacionadas à saúde sobre funcionários individuais, o que significa que essas organizações podem ter que cumprir a HIPAA, mesmo que não estejam operando no mercado de assistência médica. Todas as organizações devem avaliar cuidadosamente seu armazenamento de dados para determinar quais regulamentos devem ser obedecidos para fins de gerenciamento de conformidade.
A falha em proteger adequadamente os dados pode ter sérias consequências, incluindo o potencial de multas de um ou mais órgãos reguladores do governo ou do setor. Tais multas podem ser substanciais e potencialmente prejudiciais para um negócio pequeno ou médio. Por exemplo, a indústria de cartões de pagamento pode impor multas por violações à sua conformidade.
Leis ou regulamentos geralmente especificam quem dentro de uma empresa deve ser responsabilizado e responsável pela precisão e segurança dos dados.
A conformidade com regulamentações é normalmente assegurada por meio de auditoria, em que as organizações devem declarar quais etapas de conformidade estão adotando e fornecer evidências de conformidade. A novidade relativa do ambiente de nuvem pública torna as auditorias extremamente difíceis e, às vezes, impossíveis, por isso muitas organizações mantêm dados confidenciais em ambientes de nuvem privada ou em servidores tradicionais em uma rede segura.
O gerenciamento de conformidade pode ser uma tarefa enorme e requer o entendimento do tipo de dados armazenados, a localização do armazenamento e quais regulamentos se aplicam a partir de quais regiões globais. No entanto, as complexidades do gerenciamento de conformidade também podem impedir que algumas organizações aproveitem a computação em nuvem, ou seja, a flexibilidade exigida de uma organização sobre onde os dados são armazenados e como são movidos pode superar os maiores benefícios de usar a nuvem, incluindo escalabilidade rápida, capacidade de recuperação e acessibilidade.
Leis semelhantes podem ser aplicadas em diferentes jurisdições legais e podem diferir bastante daquelas aplicadas em cada país. Os usuários de serviços em nuvem geralmente precisam estar cientes das diferenças legais e regulamentares entre as jurisdições. Por exemplo, os dados armazenados por um provedor de serviços de nuvem podem estar localizados, por exemplo, em Cingapura e espelhados nos EUA. 
Muitos desses regulamentos exigem controles específicos (como controles de acesso e trilhas de auditoria fortes) e exigem relatórios regulares. Os clientes da nuvem devem garantir que seus provedores de nuvem atendam adequadamente a esses requisitos conforme apropriado, permitindo que cumpram suas obrigações, pois, em grande medida, eles permanecem responsáveis.
· Continuidade de negócios e recuperação de dados - Os provedores de nuvem têm planos de continuidade de negócios e recuperação de dados para assegurar que o serviço possa ser mantido em caso de desastre ou emergência e que qualquer perda de dados seja recuperada. [23] Esses planos podem ser compartilhados e revisados ​​por seus clientes, idealmente alinhados aos arranjos de continuidade dos clientes. Exercícios conjuntos de continuidade podem ser apropriados, simulando uma grande falha na Internet ou no fornecimento de eletricidade, por exemplo.
· 
· Log e trilha de auditoria - Além de produzir logs e trilhas de auditoria, os provedores de nuvem trabalham com seus clientes para garantir que esses logs e trilhas de auditoria sejam adequadamente protegidos, mantidos pelo tempo que o cliente exigir e sejam acessíveis para fins de investigação.
· 
· Requisitos exclusivos de conformidade - Além dos requisitos aos quais os clientes estão sujeitos, os datacenters usados ​​pelos provedores de nuvem também podem estar sujeitos a requisitos de conformidade. A utilização de um provedor de serviços de nuvem (CSP) pode levar a preocupações adicionais de segurança em relação à jurisdição de dados, pois os dados de clientes ou inquilinos podem não permanecer no mesmo sistema, no mesmo datacenter ou mesmo na nuvem do mesmo provedor. Por exemplo, o regulamento GDPR da União Europeia introduziu novos requisitos de conformidade para os dados dos clientes.
· 
Alémdos problemas de segurança e conformidade enumerados acima, os provedores de nuvem e seus clientes negociaram termos de responsabilidade (estipulando como incidentes que envolvem perda ou comprometimento de dados serão resolvidos, por exemplo), propriedade intelectual e final de serviço (quando dados e as aplicações são finalmente devolvidas ao cliente). Além disso, há considerações para a aquisição de dados da nuvem que podem estar envolvidos em litígios. Esses problemas são discutidos em acordos de nível de serviço (SLA).
Proteção de Dados
As organizações que usam ambientes de nuvem devem considerar como protegerão os dados em repouso e em trânsito. Acredita-se que os dados em trânsito estejam mais em risco do que os dados em repouso, mas recentes violações de dados enfatizaram a importância de proteger os dados em repouso também.
A criptografia é uma ferramenta importante para proteger dados em movimento e dados em repouso. A escolha de um algoritmo de criptografia forte e a definição de uma boa política de gerenciamento de chaves são essenciais para o uso bem-sucedido da criptografia. As organizações devem definir uma política de segurança que englobe a geração, armazenamento, distribuição, recuperação e destruição de chaves de criptografia.
A maioria das ofertas de provedores de serviços em nuvem inclui a opção de criptografar os dados em repouso e em trânsito e fornecer sua própria infra-estrutura de gerenciamento de chaves (KMI – Key Management Infrastructure). Organizações que desejam os ambientes mais seguros podem criar e gerenciar seu próprio KMI, incluindo opções para armazenamento seguro de chaves.
As organizações também devem considerar o Gerenciamento de Direitos. Usando o Rights Management, você pode controlar como os dados armazenados na nuvem podem ser usados ​​e quem pode acessá-los. Funciona muito bem com dados não estruturados, como documentos e arquivos armazenados na nuvem - pense no Google Drive, no Dropbox ou no OneDrive.
Essas opções funcionam bem para ambientes de PaaS e IaaS, porque as organizações têm controle sobre como os dados são gerenciados. Ainda é importante automatizar a proteção de dados para garantir 100% de conformidade. A política de segurança da organização define quais dados precisam ser protegidos e como devem ser protegidos para minimizar os erros do usuário.
Proteger dados em ambientes SaaS é muito mais difícil; Ele não pode ser automatizado facilmente porque a organização tem muito menos controle sobre como os dados são gerenciados nesses serviços. Algumas opções para resolver isso incluem:
· Use a criptografia do provedor de SaaS - Como os principais provedores de SaaS incluem opções para criptografar informações confidenciais, as organizações que confiam no provedor podem usar sua criptografia.
· 
· Adicione sua própria criptografia - Os dados podem ser criptografados antes de serem enviados ao aplicativo SaaS, o que exigiria uma etapa extra para os usuários finais.
· 
· Use um proxy de criptografia - Use um proxy de criptografia para criptografar e descriptografar os dados transferidos de e para o provedor. Esse proxy intercepta toda a comunicação com o aplicativo SaaS e criptografa e descriptografa dados confidenciais. Isso pode adicionar uma camada de segurança aos dados sem que o usuário final fique ciente disso. Qualquer alteração no SaaS pode causar problemas com essa técnica.
· 
Selecione o local de armazenamento - Alguns provedores de serviços em nuvem permitem que as organizações escolham onde seus dados serão localizados, optando por mantê-los no local ou em um data center específico. Isso também pode ser exigido pelos requisitos regulamentares de alguns países / regiões que proíbem o armazenamento de dados confidenciais em locais estrangeiros que não são de sua jurisdição.
Atividade Extra
 
Saiba mais sobre os conceitos que trabalhamos nesta aula:
 
Cyber-security Framework for Multi-Cloud Environment @ https://medium.com/taslet-security/cyber-security-framework-for-multi-cloud-environment-e7d35fd32bd6 
 
O que é DevOps @ https://pt.wikipedia.org/wiki/DevOps 
5 - Arquitetura de Aplicações Rodando na Nuvem
Benefícios da computação em nuvem
A computação em nuvem é uma grande mudança em relação à forma tradicional como as empresas pensam sobre os recursos de TI. Por que a computação em nuvem é tão popular? Aqui estão seis razões comuns pelas quais as organizações estão se voltando para os serviços de computação em nuvem:
· Custo - A computação em nuvem elimina a despesa de capital da compra de hardware e software e, em seguida, configura e executa datacenters locais - os racks de servidores, a eletricidade ininterrupta para energia e resfriamento e os especialistas em TI para gerenciar a infraestrutura. Acrescenta-se rapidamente.
· 
· Rapidez - A maioria dos serviços de computação em nuvem é fornecida por autoatendimento e sob demanda, portanto até mesmo grandes quantidades de recursos de computação podem ser provisionados em minutos, geralmente com apenas alguns cliques do mouse. Isso proporciona flexibilidade às empresas e elimina a pressão do planejamento da capacidade.
· 
· Escala global - Os benefícios dos serviços de computação em nuvem incluem a capacidade de dimensionar de forma elástica. Na nuvem, isso significa fornecer a quantidade certa de recursos de TI - por exemplo, mais ou menos poder de computação, armazenamento e largura de banda - exatamente quando necessário, e a partir da localização geográfica correta.
· 
· Produtividade - Os datacenters locais geralmente exigem muito “armazenamento e empilhamento” - configuração de hardware, atualização de software e outras tarefas demoradas de gerenciamento de TI. A computação em nuvem elimina a necessidade de muitas dessas tarefas, portanto, as equipes de TI podem gastar tempo em metas de negócios mais importantes.
· 
· Performance - Os maiores serviços de computação em nuvem são executados em uma rede mundial de datacenters seguros que são regularmente atualizados para a última geração de hardware de computação rápido e eficiente. Isso oferece vários benefícios em um único datacenter corporativo, incluindo redução da latência de rede para aplicativos e maiores economias de escala.
· 
· Confiabilidade - A computação em nuvem torna o backup de dados, a recuperação de desastres e a continuidade de negócios mais fáceis e menos dispendiosas, porque os dados podem ser espelhados em vários sites redundantes na rede do provedor de nuvem.
· 
Embora a computação em nuvem ofereça vários benefícios, a criação de aplicativos para a nuvem requer uma abordagem diferente.
Projetando Aplicativos em Nuvem Requer Mentalidade Diferente
Existem vários fatores que você precisará considerar ao projetar seu aplicativo em nuvem:
· Clientes anteriormente conectados a aplicativos através da rede local da empresa e agora são frequentemente obrigados a se conectar pela Internet pública. A internet pública irá introduzir maior latência, largura de banda reduzida e é menos confiável.
· 
· A demanda no aplicativo era relativamente pequena e estável, e a carga não mudava muito e era razoavelmente previsível. A demanda se tornou cada vez mais dinâmica com cargas muito maiores em aplicativos.
· 
· Os datacenters geralmente atendem a um único locatário ou empresa e agora atendem a vários inquilinos. O ambiente multilocatário vem com seu próprio conjunto de desafios, como o "problema do vizinho barulhento". O aplicativo pode estar compartilhando recursos, como discos físicos ou de rede. Embora estejam isolados, a carga de um deles pode impactar o outro.
· 
· As operações exigiam um grande número de pessoas altamente especializadas. Tudo, desde o espaço físico até o fornecimento de energia, HVAC, rede, hardware de servidor e sistema operacional necessário à equipe para gerenciá-lo. Essas coisas podem ser gerenciadas por meio de uma API na nuvem, e a automação pode ser usada para fornecer confiabilidade e reduzir a sobrecarga operacional.
· 
· A escala foi tratada aumentando os recursos em hardware muito caro e especializado(scale up). Na nuvem, isso é conseguido distribuindo a carga por um grande número de máquinas de mercadorias (scale out).
· 
· Falha foi menos provável, e foi gerenciado através do uso de hardware altamente especializado. Os aplicativos em nuvem, no entanto, são construídos em hardware comum que provavelmente falhará.
· 
· A perda de máquinas foi um evento catastrófico. Perder uma única máquina geralmente significava que a aplicação não estava disponível e impedia que a empresa continuasse a operar até que ela fosse consertada. A perda de máquinas é esperada com aplicativos em nuvem e eles são projetados para serem resilientes a essas condições.
· 
Uma abordagem diferente é necessária ao arquitetar aplicativos econômicos e de alto desempenho para a nuvem que sejam resistentes a falhas.
Abraçando a falha
Construir um aplicativo confiável na nuvem é diferente da criação de um aplicativo confiável em um ambiente corporativo. Embora, historicamente, você possa ter adquirido hardware de última geração para escalar, em um ambiente de nuvem, é necessário dimensionar em vez disso. Custos para ambientes de nuvem são mantidos baixos através do uso de hardware de commodity. Em vez de se concentrar na prevenção de falhas e na otimização do tempo médio entre falhas, nesse novo ambiente, o foco muda para o tempo médio de restauração. O objetivo é minimizar o efeito de uma falha. Abrace o fato de que falhas acontecerão e planeje lidar com elas.
Aqui estão alguns motivos pelos quais uma instância de serviço pode falhar ou parar:
· Desenvolvedor - Exceção não tratada, causada por algo que o desenvolvedor não esperava e não manipulava. A ordem natural dos eventos é que o serviço registre a exceção e termine. O desenvolvedor analisa os logs e executa ações corretivas no código para evitar a exceção no futuro ou para lidar com isso de maneira mais elegante. Este é um processo iterativo.
· 
· DevOps - Reduzir o número de instâncias de serviço. Quando o orquestrador desativa as instâncias, é possível que a instância que está sendo interrompida não possa ser encerrada de maneira elegante e a solicitação que estava sendo processada falhe.
· 
· DevOps - A atualização do código de serviço para uma nova versão também pode fazer com que a instância não seja encerrada normalmente. Uma instância de serviço pode estar processando uma solicitação no momento em que ela é retirada para upgrade, resultando nessa instância sendo processada novamente.
· 
· Orquestrador - Mover o código de serviço de uma máquina para outra. O trabalho do orquestrador é garantir que o serviço esteja funcionando e, ao fazê-lo, pode decidir encerrar uma instância e movê-la para outra peça de hardware.
· 
· Força maior - Falha de hardware, como com a fonte de alimentação, ventiladores de superaquecimento, disco rígido, controlador de rede, roteador ou cabo de rede defeituoso, entre outros.
· 
· Força maior - Interrupções do datacenter devido a desastres naturais ou ataques.
· 
É raro que um serviço ou região inteira sofra uma interrupção, mas até esses eventos devem ser planejados. Ao arquitetar aplicativos para a nuvem, você deve:
· Suponha que falhas irão acontecer e projetar para resiliência.
· 
· Evite pontos únicos de falha por redundância.
· 
Supondo que as falhas ocorrerão e que as máquinas ficarão inativas, os aplicativos não devem depender de uma única máquina para continuar operando. Uma analogia popular usada para descrever como devemos pensar nos servidores é a analogia “animais de estimação versus gado” - a noção de tratar servidores como gado, não animais de estimação. Eles fazem parte de um rebanho, quase idêntico, e quando ficam doentes, os substituímos por outro em vez de recuperá-los. Se algum servidor na organização é conhecido pelo nome e rotineiramente causa dor quando está inativo, então é provável que ele seja tratado como um animal de estimação.
Durante a fase de design, você deve executar uma análise de modo de falha (FMA - failure mode analysis). O objetivo da FMA é identificar possíveis pontos de falha e definir como o aplicativo responderá a essas falhas.
Como o aplicativo detectará esse tipo de falha?
Como o aplicativo responderá a esse tipo de falha?
Como você registrará e monitorará esse tipo de falha?
Projete aplicativos de auto-recuperáveis
Projete um aplicativo para ser auto recuperável quando ocorrerem falhas. Isso requer uma abordagem em três frentes:
· Detectar falhas.
· 
· Responda a falhas graciosamente.
· 
· Registre e monitore falhas para fornecer informações operacionais.
· 
Como você responde a um tipo específico de falha pode depender dos requisitos de disponibilidade do seu aplicativo. Algumas recomendações na hora de pensar em falhas:
· Repetir operações com falha - Falhas transitórias podem ocorrer devido à perda momentânea de conectividade de rede, uma conexão perdida do banco de dados ou um tempo limite quando um serviço está ocupado. Desenvolva a lógica de “nova tentativa” em seu aplicativo para lidar com falhas transitórias.
· 
· Proteger serviços remotos com falha (padrão de projeto de “disjuntor”) -  É aconselhável tentar novamente após uma falha transitória, mas se a falha persistir, você poderá acabar com muitos requisitores que estiverem atingindo um serviço com falha. Isso pode levar a falhas em cascata como solicitações de backup. Use o padrão de projeto de disjuntor para falhar rapidamente (sem fazer a chamada remota) quando uma operação é provavelmente falha.
· 
· Isolar recursos críticos (padrão de bulkhead). Falhas em um subsistema podem às vezes em cascata. Isso pode acontecer se uma falha fizer com que alguns recursos, como encadeamentos ou soquetes, sejam liberados em tempo hábil, levando à exaustão de recursos. Para evitar isso, particione um sistema em grupos isolados, para que uma falha em uma partição não derrube todo o sistema.
· 
· Execute o nivelamento de carga - Os aplicativos podem experimentar picos repentinos no tráfego que podem sobrecarregar os serviços no back-end. Para evitar isso, use o padrão de nivelamento de carga baseado em fila para enfileirar itens de trabalho a serem executados de forma assíncrona. A fila atua como um buffer que iguala os picos na carga.
· 
· Failover - Se uma instância não puder ser alcançada, efetue failover para outra instância. Para coisas sem estado, como um servidor da Web, coloque várias instâncias atrás de um balanceador de carga ou de um gerenciador de tráfego. Para coisas que armazenam estado, como um banco de dados, use réplicas e failover. Dependendo do repositório de dados e de como ele é replicado, isso pode exigir que o aplicativo lide com a consistência eventual.
· 
· Compensar transações com falha - Em geral, evite transações distribuídas porque elas exigem coordenação entre serviços e recursos. Em vez disso, use transações de compensação para desfazer qualquer etapa já concluída.
· 
· Use pontos de verificação em transações de longa duração - Os pontos de verificação podem fornecer resiliência se uma operação de longa execução falhar. Quando a operação é reiniciada (por exemplo, ela é selecionada por outra máquina virtual), ela pode ser retomada a partir do último ponto de verificação.
· 
· Degrade graciosamente - Às vezes você não pode contornar um problema, mas pode fornecer uma funcionalidade reduzida que ainda é útil. Considere um aplicativo que mostra um catálogo de livros. Se o aplicativo não puder recuperar a imagem em miniatura da capa, poderá mostrar uma imagem de espaço reservado. Subsistemas inteiros podem ser não-críticos para o aplicativo. Por exemplo, em um site de comércio eletrônico, a exibição de recomendações de produtos é provavelmente menos importante do que o processamento de pedidos.
· 
· Acelere os clientes - Às vezes, um pequeno número de usuários cria uma carga excessiva, o que pode reduzir a disponibilidade do seu aplicativo para outros usuários. Nessa situação, acelere o cliente por um determinado período de tempo. Veja o padrão de limitação para mais informações.
· 
· Bloquear maus atores - Só porque vocêestrangula um cliente, isso não significa que o cliente estava agindo de forma maliciosa. Significa apenas que o cliente excedeu sua cota de serviço. Mas se um cliente consistentemente exceder sua cota ou se comportar mal, você poderá bloqueá-lo. Defina um processo fora de banda para o usuário solicitar a obtenção de desbloqueio.
· 
· Use a eleição do líder - Quando você precisar coordenar uma tarefa, use a eleição de líder para selecionar um coordenador. Dessa forma, o coordenador não é um ponto único de falha. Se o coordenador falhar, um novo será selecionado. Em vez de implementar um algoritmo de eleição de líder a partir do zero, considere uma solução pronta para uso, como o Apache ZooKeeper.
· 
· Teste com injeção de falhas - Com muita frequência, o caminho do sucesso é bem testado, mas não o caminho da falha. Um sistema pode ser executado em produção por um longo tempo antes que um caminho de falha seja exercido. Use a injeção de falhas para testar a resiliência do sistema em falhas, seja disparando falhas reais ou simulando-as.
· 
· Abraçar a engenharia do caos - A engenharia do caos amplia a noção de injeção de falhas ao injetar aleatoriamente falhas ou condições anormais em instâncias de produção.
· 
Orquestradores
Os orquestradores automatizam o ciclo de vida e o gerenciamento de sistemas e serviços. O ciclo de vida consiste em criar e destruir as máquinas (virtuais ou físicas), monitorar a integridade dos recursos implementados e implementar e executar o código de serviço. O orquestrador também gerencia a rede, para que a comunicação entre suas máquinas seja isolada, coordene a distribuição da largura de banda entre os diferentes locatários, entre outras tarefas.
Os fornecedores de nuvem usam orquestradores para fornecer níveis variados de automação e serviços, como infraestrutura como serviço (IaaS), plataforma como serviço (PaaS), contêiner como um serviço e até funções como um serviço. Os orquestradores de fornecedores de nuvem são expostos por meio de uma API.
A orquestração é bastante ampla e costuma ser usada para descrever o gerenciamento de clusters, o agendamento de tarefas de computação e o provisionamento e desprovisionamento de recursos.
Orquestração geralmente consiste em:
· Provisionamento. Esse é o processo de colocar novos recursos on-line e preparar esses recursos para executar o trabalho. Isso pode estar criando uma nova máquina virtual e configurando o sistema operacional ou criando e configurando a rede.
· 
· Gerenciamento de cluster - Isso envolve o envio de tarefas para máquinas, adição e remoção de máquinas e gerenciamento de processos ativos.
· 
· Agendamento - Este é o processo de executar um serviço específico em máquinas específicas em um cluster.
· 
Em alguns casos, vários orquestradores serão usados. O orquestrador de um fornecedor de nuvem pode gerenciar o provisionamento de serviços e servidores gerenciados ao implantar ou dimensionar um cluster. Um orquestrador de cluster pode ser usado para gerenciar contêineres e processos em execução dentro do cluster.
Regiões, zonas de disponibilidade e domínios de falha
Os fornecedores de serviços em nuvem geralmente criam infraestrutura em torno de regiões e zonas de disponibilidade. Isso permite implementações de aplicativos altamente disponíveis que podem ser localizadas perto dos clientes que consomem os aplicativos.
Uma região, para fins de planejamento, é uma região geográfica do planeta com vários datacenters potencialmente próximos e em rede. Esses datacenters são às vezes chamados de zonas de disponibilidade. Uma zona de disponibilidade tem sua própria energia e rede independentes. Está configurado para ser um limite de isolamento. Se uma zona de disponibilidade ficar inativa, a outra continuará funcionando. As zonas de disponibilidade são normalmente conectadas umas às outras por meio de redes de fibra ótica privadas muito rápidas.
Dentro da zona de disponibilidade, as máquinas virtuais (VMs) são implantadas em máquinas, que são organizadas em racks. Cada rack tem seu próprio roteador. As máquinas virtuais em uma única máquina física podem executar vários contêineres.
Quando uma solicitação recebida chega ao terminal, geralmente é entregue primeiro a um balanceador de carga para rotear o tráfego para uma instância de um serviço. O objetivo é executar o código em diferentes VMs que não estejam próximas umas das outras para reduzir a chance de um único ponto de falha. A unidade de um único ponto de falha é chamada de domínio de falha. Com essa hierarquia, quando:
Uma região cai, tudo dentro da região está em baixo.
Uma zona de disponibilidade desce, tudo dentro da zona de disponibilidade é perdido.
Um rack desce, os PCs estão perdidos.
Um PC cai, as VMs estão perdidas.
Você pode garantir serviços mais robustos implantando-os em toda essa hierarquia de domínio de falha. Conforme você sobe na hierarquia, a probabilidade de perder o domínio da falha fica menor. Ou seja, perder toda a região é menos provável do que perder um PC. Se você estiver preocupado que uma região possa ser um ponto único de falha, considere distribuir serviços para várias regiões.
A comunicação intra-serviço é normalmente usada para replicação de dados. Alguns desses serviços precisam replicar dados, especialmente se as instâncias forem implantadas em domínios de falha diferentes. Conforme você sobe nessa hierarquia, a latência entre esses domínios de falha aumenta. Por exemplo, a latência para replicar dados entre duas regiões é maior que entre duas zonas de disponibilidade. De outra perspectiva, se você estiver replicando entre duas VMs, a comunicação será muito rápida; no entanto, perder o PC é mais provável.
 
Atividade Extra
Na nossa primeira lição falamos que a Nuvem é Global e Interconectada. Agora que entedemos um pouco mais sobre os datacenter e o conceito de Regiões e Zonas de Disponibilidade, faça um estudo você mesmo, sobre como os principais fornecedores de computação em nuvem organizam suas infraestruturas globais.
 
Amazon - https://aws.amazon.com/about-aws/global-infrastructure/ 
Google - https://cloud.google.com/about/locations/ 
Microsoft - https://azure.microsoft.com/en-us/global-infrastructure/regions/ 
IBM - https://www.ibm.com/cloud/data-centers/ 
6 - MicroServiços - A Nuvem trabalhando por nós
Visão geral de microserviços
Uma arquitetura de microserviços consiste em uma coleção de serviços pequenos e autônomos. Cada serviço é isolado e deve implementar um único recurso de negócio.
De certa forma, microserviços são a evolução natural da arquitetura orientada a serviços (SOA), mas existem diferenças entre microserviços e SOA. Aqui estão algumas características definidoras de um microserviço:
· Em uma arquitetura de microserviços, os serviços são pequenos, independentes e fracamente acoplados.
· 
· Cada serviço é uma base de código separada, que pode ser gerenciada por uma pequena equipe de desenvolvimento.
· 
· Os serviços podem ser implantados de forma independente. Uma equipe pode atualizar um serviço existente sem recriar e reimplementar o aplicativo inteiro.
· 
· Os serviços são responsáveis ​​por persistir seus próprios dados ou estado externo. Isso difere do modelo tradicional, no qual uma camada de dados separada lida com a persistência de dados.
· 
· Os serviços se comunicam entre si usando APIs bem definidas. Os detalhes da implementação interna de cada serviço estão ocultos de outros serviços.
· 
· Os serviços não precisam compartilhar a mesma pilha, bibliotecas ou estruturas de tecnologia.
· 
No exemplo abaixo, um aplicativo de comércio eletrônico simples pode colocar os recursos de pedido e estoque do aplicativo em serviços autônomos separados. Isso dá às equipes que possuem cada serviço individual a flexibilidade de liberar atualizações independentemente das outras equipes. Atualizações para um serviço podem ser enviadas sem ter que coordenar as versões com o outro serviço. Cada serviço pode usar diferentes pilhas e escalar independentemente. O serviço de inventário, por exemplo, pode adotar a versãomais recente do Java Runtime para resolver um problema de desempenho que afeta apenas o mesmo. Isso não exigiria que o serviço de pedidos fizesse as alterações necessárias para suportar esta versão do Java Runtime e coordenar uma liberação.
Razões para dividir um monólito em vários serviços
É certamente possível incluir todo o código de um aplicativo em um único serviço e implantar essa solução monolítica em vários servidores. Existem, no entanto, algumas razões válidas para decompor o aplicativo em serviços menores.
Escalando independentemente (balanceando custo com velocidade):
Serviços individuais podem ser dimensionados de forma independente, com recursos que correspondam melhor às suas necessidades. Com um aplicativo monolítico, tudo é executado no mesmo tamanho e número de instâncias de computação. Ao decompor um recurso de aplicativo em um serviço separado, é possível dimensionar o serviço de forma independente e até implantá-lo em diferentes tamanhos de instâncias de computação.
Um aplicativo da Web de compartilhamento de fotos permite que os usuários carreguem fotos e as compartilhem com amigos e familiares. Nesse cenário, muitas vezes é necessário criar miniaturas de imagens para reduzir os dados necessários para visualizar uma coleção de fotos, criando uma melhor experiência do usuário. O aplicativo pode gerar um conjunto de miniaturas quando as imagens estão sendo carregadas e pode até exigir muita CPU para concluir o trabalho. O recurso de geração de miniaturas é necessário apenas ao carregar imagens. O serviço de miniaturas pode ser dimensionado quando as imagens estiverem sendo carregadas e devolvidas depois que os uploads e a geração de miniaturas estiverem concluídos.
Suportando diferentes pilhas de tecnologia:
Como desenvolvedores, devemos ser livres para escolher um idioma ou estrutura que queremos, dependendo de nossas habilidades ou das necessidades do serviço. Em alguns serviços, você pode valorizar os benefícios de desempenho do C ++ acima de tudo. Em outros serviços, a facilidade de desenvolvimento gerenciado em C # ou Java pode ser mais importante. Em alguns casos, pode ser necessário usar uma biblioteca de parceiros específica, tecnologia de armazenamento de dados ou meios de expor o serviço aos clientes.
Um aplicativo de compartilhamento de fotos foi criado no Node.js e os desenvolvedores gostariam de usar um componente que só está disponível com uma tecnologia diferente. O componente possui os recursos necessários para suportar um tipo de imagem específico. A equipe pode criar o recurso internamente ou reescrever todo o aplicativo usando a tecnologia suportada. Na verdade, pode ser melhor decompor o recurso em um serviço separado implementado usando a tecnologia suportada pelo componente, em vez de migrar todo o aplicativo melhor atendido pela tecnologia existente.
Dois ou mais clientes, quando os clientes adotam novos recursos à vontade:
Recursos de um aplicativo podem ser comuns em vários serviços ou aplicativos. Para incentivar a reutilização e reduzir custos, as organizações muitas vezes criaram bibliotecas comuns. Essas bibliotecas são compartilhadas entre equipes e as tecnologias de gerenciamento de pacotes são usadas para gerenciar as dependências e a distribuição. Pode ser mais fácil encapsular a funcionalidade em um serviço que uma equipe pode atualizar independentemente sem precisar distribuir novas versões de um pacote.
Um aplicativo da Web de compartilhamento de fotos usa um componente de miniatura para gerar imagens em miniatura. A organização decide lançar um serviço de compartilhamento de vídeo que também precisa gerar miniaturas de quadros de vídeo. O serviço de compartilhamento de vídeo pode implementar o recurso ou consumir a biblioteca por meio de outros serviços de gerenciamento de pacotes. Ao implementar esse recurso como um serviço e garantir a compatibilidade com versões anteriores, os serviços de compartilhamento de fotos e vídeos podem usar esse recurso facilmente. A equipe responsável pelo serviço de miniaturas pode liberar independentemente das equipes de compartilhamento de foto e vídeo.
Gerenciando dependências conflitantes:
Assim como as linguagens e estruturas de aplicativos têm dependências, seus recursos geralmente têm dependências comuns em bibliotecas compartilhadas. A situação surge quando a implementação de um recurso de um aplicativo precisa depender de uma versão mais recente de uma biblioteca. Isso significa que todos os recursos do aplicativo precisam depender da nova versão da biblioteca. Pode ser caro para alguns recursos atualizar suas dependências em uma versão mais recente. Você pode evitar isso decompondo o recurso em um serviço separado.
Um aplicativo da Web de compartilhamento de fotos depende de uma biblioteca compartilhada. Os recursos de visualização da Web e os recursos de geração de miniaturas do aplicativo têm dependência da biblioteca compartilhada. Depois de algum tempo, o serviço de miniaturas precisa ser atualizado para a versão mais recente da biblioteca para ativar um novo recurso ou porque um bug foi corrigido em uma parte da funcionalidade da biblioteca. Os recursos de visualização de fotos não precisam dessa funcionalidade, e as interfaces mudaram o suficiente para exigir um trabalho considerável para adotar a nova versão. Ao implantar os recursos de miniatura do aplicativo em seu próprio serviço, uma versão diferente da biblioteca pode ser usada.
Escalonamento automático
O escalonamento automático é o processo de alocação dinâmica de recursos para atender aos requisitos de desempenho. À medida que o volume de trabalho aumenta, um aplicativo pode precisar de recursos adicionais para manter os níveis de desempenho desejados e satisfazer os SLAs. À medida que a demanda diminui e os recursos adicionais não são mais necessários, eles podem ser desalocados para minimizar os custos.
O escalonamento automático aproveita a elasticidade dos ambientes hospedados na nuvem, reduzindo potencialmente a sobrecarga de gerenciamento. Isso reduz a necessidade de um operador monitorar continuamente o desempenho de um sistema e tomar decisões sobre a adição ou a remoção de recursos.
Existem duas maneiras principais que um aplicativo pode dimensionar:
· Escala vertical. Também chamado de escalonamento para cima e para baixo, isso envolve a alteração da capacidade de um recurso. Por exemplo, você pode mover um aplicativo para um tamanho de VM maior. O dimensionamento vertical geralmente requer que o sistema fique temporariamente indisponível enquanto está sendo reimplantado. Portanto, é menos comum automatizar o dimensionamento vertical.
· 
· Escala horizontal. Também chamado de dimensionamento e entrada, isso significa adicionar ou remover instâncias de um recurso. O aplicativo continua sendo executado sem interrupção, à medida que novos recursos são provisionados. Quando o processo de provisionamento estiver concluído, a solução será implementada nesses recursos adicionais. Se a demanda cair, os recursos adicionais podem ser encerrados de forma limpa e desalocada.
· 
Muitos fornecedores de nuvem suportam o dimensionamento automático da infraestrutura horizontal.
Uma estratégia de escalonamento automático geralmente envolve os seguintes componentes:
· Sistemas de instrumentação e monitoramento nos níveis de aplicativo, serviço e infraestrutura. Esses sistemas capturam as principais métricas, como tempos de resposta, comprimentos de filas, utilização da CPU e uso da memória.
· 
· Lógica de tomada de decisão que avalia essas métricas em relação a limites ou planejamentos predefinidos e decide se deve escalar.
· 
· Componentes que escalam o sistema.
· 
· Testar, monitorar e ajustar a estratégia de escalonamento automático para garantir que ela funcione conforme o esperado.
· 
Métricas e disparadores de escalonamento automático comuns incluem:
· Monitore as métricas de aplicativos, como tamanhos de bancos de dados, número de inquilinos ou comprimentos de filas. Os tamanhos das filas podem ser facilmente monitorados e os recursos

Outros materiais