A computação em nuvem, muitas vezes referida apenas como “a nuvem”, refere-se a um tipo de computação compartilhada na Internet, onde os clientes podem comprar e usar recursos de computação compartilhada oferecidos por vários provedores de nuvem, conforme necessário. As soluções de computação em nuvem e de armazenamento podem poupar às organizações a sobrecarga de ter que comprar, instalar e manter seu próprio hardware.
A combinação de alto desempenho, redução de custos e a flexibilidade e conveniência que muitas soluções oferecem nuvem fez a nuvem uma escolha ideal para organizações que estão olhando para minimizar os custos e aumentar a velocidade em que eles podem iterar. Iteração e tempo de ciclo de desenvolvimento reduzido são fatores chave na criação de uma cultura de devops.
A analogia padrão usada para descrever a nuvem é a da rede elétrica. Quando você deseja usar eletricidade, você conecta um dispositivo a uma conexão padrão e liga. Você é cobrado pela eletricidade que você usa. Na maioria dos casos, você pode permanecer ignorante dos mecanismos que as várias empresas elétricas usam para gerar e distribuir eletricidade. A exceção a esta ignorância é se houver uma queda de energia. Nesse ponto, você se torna consciente de que existem mecanismos complicados subjacentes ao uso da eletricidade, mesmo que você permaneça inconsciente dos mecanismos particulares que falharam.
Caracterização da nuvem
Computação em nuvem
![hnz-consultoria-e-treinamentos-blog-computacao-em-nuvem-que e-e-quais-sao-suas-vantagens-e-desvantagens-caracterizacao-da-nuvem](https://hnz.com.br/wp-content/uploads/2021/04/hnz-consultoria-e-treinamentos-blog-computacao-em-nuvem-que-e-e-quais-sao-suas-vantagens-e-desvantagens-caracterizacao-da-nuvem.jpg)
O Instituto Nacional de Padrões e Tecnologia (NIST) forneceu uma caracterização da nuvem com os seguintes elementos:
Auto-atendimento sob demanda
Um consumidor pode unilateralmente fornecer capacidades de computação, como tempo de servidor e armazenamento em rede, conforme necessário automaticamente, sem requerer interação humana com cada provedor de serviços.
Acesso de rede amplo
As capacidades estão disponíveis na rede e são acessadas por meio de mecanismos padrão que promovem o uso por plataformas de clientes finas ou espessas heterogêneas (por exemplo, telefones celulares, tablets, laptops e estações de trabalho).
Agrupamento de recursos
Os recursos de computação do provedor são agrupados para atender múltiplos consumidores usando um modelo de multi-tenant, com diferentes recursos físicos e virtuais dinamicamente atribuídos e reatribuídos de acordo com a demanda do consumidor. Existe uma sensação de independência de localização, na medida em que o cliente geralmente não tem controle sobre ou conhecimento da localização exata dos recursos fornecidos, mas pode especificar a localização em um nível mais alto de abstração (por exemplo, país, estado ou datacenter). Exemplos de recursos incluem armazenamento, processamento, memória e largura de banda da rede.
Rapidez de elasticidade
As capacidades podem ser elasticamente provisionadas e liberadas, em alguns casos automaticamente, para escalar rapidamente para fora e para dentro proporcionais à demanda. Para o consumidor, os recursos disponíveis para fornecimento muitas vezes parecem ser ilimitados e podem ser apropriados em qualquer quantidade a qualquer momento.
Serviço medido
Os sistemas em nuvem controlam e otimizam o uso de recursos automaticamente, alavancando um recurso de medição em algum nível de abstração apropriado ao tipo de serviço (por exemplo, armazenamento, processamento, largura de banda e contas de usuário ativas). O uso de recursos pode ser monitorado, controlado e relatado, proporcionando transparência tanto para o provedor como para o consumidor do serviço utilizado.
Do ponto de vista das operações e do DevOps, as características mais importantes são o autoatendimento sob demanda e o serviço medido (ou medido). Mesmo que a nuvem forneça o que parece ser recursos ilimitados que você pode adquirir à vontade, você ainda deve pagar pelo seu uso. Como discutiremos, as outras características também são importantes, mas não tão dominantes quanto o auto-serviço on-demand e pagando pelo que você usa.
Vantagens e desvantagens da computação em nuvem
Vantagens:
Computação em nuvem é uma ideia antiga que nos últimos anos se tornou ubíqua. Na computação em nuvem, a informação é armazenada na Internet e acessada e manipulada via serviços de software também disponíveis na Internet.
- A característica que define esse tipo de computação é que os recursos usados – como CPU, memória, armazenamento e assim por diante – podem se expandir ou se contrair de acordo com a necessidade, e você só́ paga pelo que usa.
- O benefício principal de computação utilitária é que não há necessidade de investimento capital em infraestrutura. Muitas start-ups começaram a usar o AWS (Amazon Web Services) porque ele não exige contrato mínimo ou pagamento inicial. Como resultado, as start-ups podem pagar suas contas AWS com um cartão de crédito e são cobradas somente depois que receberam o pagamento de seus usuários.
- Computação utilitária também é atrativa para grandes clientes, porque aparece como custo recorrente em vez de custos de CAPEX. Já que os custos são relativamente pequenos, as aquisições também não dependem de aprovação superior.
- Ela também permite que escala seja gerenciada de maneira muito simples – assumindo que seu software seja capaz de rodar em um conjunto de máquinas e é inicializado em uma máquina (ou 1.000, se for o caso) com uma simples chamada a uma API.
- você tem os mesmos benefícios de infraestrutura em nuvem em termos de custo de estrutura e flexibilidade de provisionamento.
- O fornecedor se encarrega de todos os requisitos não funcionais, como escalabilidade, disponibilidade e (até certo ponto) segurança.
- você implanta em um stack padronizado, o que significa que não é necessário se preocupar com configurar ou manter ambientes de teste, homologação e produção, ou lidar com imagens de máquinas virtuais.
Desvantagens:
- Na maioria das organizações, uma das maiores barreiras à adoção de computação em nuvem é a sensação de nervosismo ao colocar os recursos de informação de uma empresa na mão de um terceiro, com as implicações de segurança disso. Entretanto, com o surgimento de tecnologias como Eucalyptus, também é possível rodar a própria nuvem em infraestrutura privada. Segurança é geralmente o primeiro impedimento mencionado por empresas de médio e grande porte.
- Conformidade também é mencionada como uma limitação no uso de computação em nuvem. Entretanto, o problema não é que a regulamentação proíbe o uso de computação em nuvem, mas que ainda não se adaptou a ela. Como muitas regulamentações ignoram o uso de computação em nuvem, as implicações de regulamentação para serviços hospedados dessa forma não são suficientemente compreendidas, ou exigem interpretação.
- Níveis de serviço são particularmente importantes quando a infraestrutura como um todo é terceirizada. Assim como com segurança, é necessária alguma pesquisa para garantir que seu fornecedor é capaz de atender seus requisitos. Isso vale especialmente para desempenho. • A própria natureza de plataformas em nuvem significa que há sempre restrições severas em sua aplicação. Isso permite que esses serviços forneçam implantações simples e alto desempenho e escalabilidade. Por exemplo, o Google App Engine permite somente o uso de sua implementação de BigTable, e não um RDBMS padrão. Você não pode criar novas threads, invocar servidores SMTP e assim por diante.
- Plataformas em nuvem sofrem com as mesmas questões que tornam infraestrutura em nuvem pouco apropriadas. Em especial, vale apontar que preocupações com portabilidade e lock-in são ainda mais severas com plataformas em nuvem. Para que isso seja possível, as aplicações devem ser projetadas para rodar em ambientes heterogêneos. Esse tipo de implantação exige arquitetura de baixo acoplamento. O valor de uma solução heterogênea em termos de custo e capacidade de satisfazer requisitos não funcionais é um bom caso para arquitetura de baixo acoplamento.
- A computação em nuvem está em um estágio relativamente inicial da evolução. Ela não é mais um caso de tecnologia que se deve ter por estar na moda, mas um avanço genuíno que crescerá em importância nos próximos anos. No momento, não há um padrão comum nem mesmo para as plataformas mais básicas de virtualização usadas por serviços utilitários de computação. Parece ainda menos provável que haja alguma padronização no nível da API. O projeto Eucalyptus foi criado como uma implementação de partes da API do AWS, que permitem que as pessoas criem suas nuvens privadas, mas as APIs fornecidas pelo Azure ou Google App Engine são ainda mais difíceis de serem implementadas. Isso torna difícil criar aplicações portáveis. Ficar preso a um fornecedor é uma realidade muito mais comum em nuvem do que em outras plataformas.
- Finalmente, dependendo da aplicação, o modelo econômico pode tornar impossível usar computação em nuvem
Como a infraestrutura baseada em nuvem deve ser gerenciada dentro do DevOps?
Computação em nuvem
![hnz-consultoria-e-treinamentos-blog-computacao-em-nuvem-que e-e-quais-sao-suas-vantagens-e-desvantagens-como-a-infraestrutura-baseada-em-nuvem-deve-ser gerenciada-dentro-devops](https://hnz.com.br/wp-content/uploads/2021/04/hnz-consultoria-e-treinamentos-blog-computacao-em-nuvem-que-e-e-quais-sao-suas-vantagens-e-desvantagens-como-a-infraestrutura-baseada-em-nuvem-deve-ser-gerenciada-dentro-devops.jpg)
É necessário investigar várias opções para serviços, infra, plataforma, níveis de serviço, segurança, requisitos de conformidade, flexibilidade, monitoramento, relatórios…
A infraestrutura baseada em nuvem precisa de menos gerenciamento, mas não zero.
Existem 3 tipos de modelos de serviço:
Software como um Serviço (SaaS)
O consumidor tem a capacidade de usar os aplicativos do provedor em execução em uma infra- estrutura em nuvem. As aplicações são acessíveis a partir de vários dispositivos clientes por meio de uma interface de thin client, como um navegador da Web (por exemplo, um email baseado na Web) ou uma interface de aplicativo. O consumidor não gerencia nem controla a infraestrutura de nuvem subjacente, incluindo redes, servidores, sistemas operacionais, armazenamento ou até mesmo recursos de aplicativos individuais, com a possível exceção de configurações de configuração de aplicativos específicas do usuário.
Plataforma como Serviço (PaaS)
O consumidor tem a capacidade de implantar na infra-estrutura da nuvem aplicativos criados pelo consumidor ou adquiridos criados usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor. O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente, incluindo redes, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implantados e, possivelmente, configurações para o ambiente de hospedagem de aplicativos.
Infraestrutura como Serviço (IaaS)
O consumidor tem a capacidade de fornecer processamento, armazenamento, redes e outros recursos de computação fundamentais, onde o consumidor é capaz de implantar e executar software arbitrário, que pode incluir sistemas operacionais e aplicativos. O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento e aplicativos implantados; E possivelmente controle limitado de componentes de rede selecionados (por exemplo, firewalls de host).