O que é computação em nuvem? Uma visão geral da nuvem
Um guia sobre computação em nuvem e como ela beneficia as empresas modernas.
A computação em nuvem é a entrega de recursos de computação pela internet. Ela oferece economia de custos, escalabilidade, alto desempenho, economias de escala e muito mais. Para muitas empresas, a migração para a nuvem está diretamente ligada à modernização de dados e TI.
Quando o fenômeno “nuvem” surgiu pela primeira vez no início dos anos 2000, tinha um tom misterioso. A ideia de que você poderia acessar recursos de computação de uma localização diferente da infraestrutura de TI local (o céu?) parecia ficção científica. A realidade foi muito mais profunda e mudou para sempre a tecnologia e a forma como fazemos negócios.
O que é Computação em Nuvem?
Computação em nuvem é a oferta de recursos computacionais, incluindo armazenamento, poder de processamento, bancos de dados, redes, análises, inteligência artificial e aplicativos de software através da internet (a nuvem). Ao terceirizar esses recursos, as empresas têm acesso aos recursos de computação de que necessitam, quando precisam, sem precisar adquirir e manter uma infraestrutura de TI física local (on-premise). Isso proporciona recursos flexíveis, inovação mais rápida e economias de escala. Para muitas empresas, a migração para a nuvem está diretamente relacionada à modernização de dados e TI.
Características da Computação em Nuvem
Antes de migrarem para a nuvem, as organizações compravam e mantinham uma infraestrutura de TI local (on-premise). Embora a primeira transição para a nuvem fosse amplamente motivada por economias de custo, muitas organizações descobrem que a infraestrutura de nuvem pública, privada ou híbrida oferece inúmeros benefícios. Para equipes ágeis e DevOps, a computação em nuvem oferece a capacidade de simplificar e acelerar o processo de desenvolvimento.
A seguir, uma lista de características que definem a computação em nuvem.
Autoatendimento sob demanda
Provedores de computação em nuvem oferecem API’s às quais os usuários têm acesso para solicitar novos recursos ou dimensionar recursos existentes conforme necessário. Equipes podem automatizar a configuração de sua infraestrutura de maneira simples com ferramentas de Infraestrutura como Código (Infrastructure-as-Code – IaC), como Ansible e Terraform.
Acesso amplo à rede
A localização física do hardware é uma consideração importante para a experiência do usuário final ideal. A computação em nuvem oferece uma enorme vantagem ao disponibilizar hardware fisicamente distribuído em todo o mundo, permitindo que organizações ofereçam estrategicamente hardware orientado por localização.
Consolidação de recursos
Recursos de computação em uma plataforma de infraestrutura de nuvem são distribuídos dinamicamente e alocados sob demanda. Como as máquinas físicas de um host de nuvem são configuradas e compartilhadas dinamicamente entre vários locatários, o hardware da nuvem é otimizado para uso máximo.
Elasticidade rápida
Infraestruturas de nuvem podem crescer e diminuir dinamicamente, permitindo que os usuários solicitem que seus recursos computacionais sejam escalados automaticamente com base na demanda de tráfego. A elasticidade pode ocorrer por máquina, aumentando a alocação de recursos para maximizar os recursos da máquina disponível, ou por várias máquinas, com uma aplicação escalando automaticamente para máquinas com várias redes.
Serviço mensurado
Provedores de infraestrutura de nuvem fornecem estatísticas detalhadas de uso que são usadas para comunicar os custos de uso. Por exemplo, a Amazon Web Services (AWS) oferece para cada categoria de serviço o uso de itens por hora ou por dia. Os provedores de serviços em nuvem geralmente adotam um modelo de faturamento pay-as-you-go (em tradução livre “Pague pelo que usa”) que é medido e entregue, para que os clientes sejam faturados exatamente pela quantidade de recursos computacionais utilizados.
Tipos de Implantações na Nuvem
Existem três tipos principais de implantação na nuvem. Cada um tem benefícios únicos e as organizações frequentemente se beneficiam ao utilizar mais de uma implantação.
Nuvem pública
Nuvens públicas fornecem recursos computacionais – servidores, armazenamento, aplicativos, etc. – pela internet, de um provedor de serviços em nuvem, como AWS e Microsoft Azure. Os provedores de nuvem possuem e gerenciam todo o hardware, software e outras infraestruturas de suporte.
Nuvem privada
Uma nuvem privada consiste em recursos computacionais exclusivamente destinados a uma organização. Isso pode estar fisicamente localizado localmente no data center da organização ou ser hospedado por um provedor de nuvem. Uma nuvem privada oferece um nível mais alto de segurança e privacidade do que nuvens públicas, fornecendo recursos específicos para empresas.
Os clientes de uma nuvem privada se beneficiam dos principais aspectos das nuvens públicas, como autoatendimento, escalabilidade e elasticidade, mas com a vantagem adicional de controle e personalização adicionais. Além disso, as nuvens privadas podem ter um nível mais alto de segurança e privacidade, pois são hospedadas em redes privadas que não são acessíveis ao tráfego público.
Nuvem híbrida
Nuvens híbridas são uma combinação de nuvens privadas e públicas (por exemplo, IBM Hybrid Cloud, alimentada pela Red Hat), ligadas por tecnologia que permite a colaboração de dados e aplicativos. Serviços e aplicativos sensíveis podem ser mantidos na nuvem privada segura, enquanto servidores web de acesso público e pontos de extremidade personalizados podem estar na nuvem pública. A maioria dos provedores de nuvem externa populares oferecem um modelo de nuvem híbrida, permitindo que os usuários combinem nuvens privadas e públicas para atender às suas necessidades. Isso oferece às empresas mais flexibilidade para implementar os requisitos de infraestrutura específicos de suas aplicações.
Serviços de Computação em Nuvem
As características dinâmicas da computação em nuvem estabelecem a base para novos serviços em um nível mais alto. Esses serviços não só podem complementar, mas também oferecer muitas vezes serviços necessários para equipes Agile e DevOps.
Infraestrutura como Serviço (IaaS)
Infraestrutura como Serviço (IaaS) é uma camada fundamental de serviço em nuvem que permite que organizações aluguem infraestrutura de TI – servidores, armazenamento, redes, sistemas operacionais – de um provedor de nuvem. Com IaaS, os usuários podem reservar e disponibilizar recursos que necessitam para depósitos de servidores físicos não processados. Além disso, os usuários podem reservar máquinas pré-configuradas para tarefas especializadas, como balanceadores de carga, bancos de dados, servidores de e-mail e filas distribuídas.
Equipes DevOps podem usar IaaS como plataforma subjacente para construir uma cadeia de ferramentas DevOps, que pode incluir o uso de várias ferramentas externas.
Plataforma como Serviço (PaaS)
Plataforma como Serviço (PaaS) é uma infraestrutura em nuvem baseada em IaaS que fornece recursos para construir ferramentas e aplicativos em nível de usuário. Ele oferece a infraestrutura subjacente, incluindo recursos de computação, rede e armazenamento, bem como ferramentas de desenvolvimento, sistemas de gerenciamento de banco de dados e middleware.
PaaS utiliza IaaS para alocar automaticamente os recursos necessários para uma pilha técnica baseada em linguagem. Pilhas técnicas em linguagens populares incluem Ruby On Rails, Java Spring MVC, MEAN e JAM-stacks. Os clientes PaaS podem então facilmente fazer upload de um artefato do código de sua aplicação que será automaticamente implantado na infraestrutura do PaaS. Este é um fluxo de trabalho novo e poderoso que permite que as equipes se concentrem totalmente no código de sua aplicação específica de negócios e não precisem se preocupar com hospedagem e infraestrutura. O PaaS cuida automaticamente da escala e monitoramento da infraestrutura para aumentar ou diminuir recursos em resposta ao tráfego observado.
Software como Serviço (SaaS)
Software como Serviço (SaaS) oferece aplicativos de software pela internet, sob demanda e geralmente por meio de uma assinatura. Os provedores de nuvem hospedam e gerenciam o aplicativo e, quando necessário, fornecem atualizações de software e patches de segurança. Exemplos de SaaS incluem sistemas de CRM, aplicativos de e-mail baseados na web, ferramentas de produtividade como Jira e Confluence, ferramentas de análise, ferramentas de monitoramento, aplicativos de bate-papo, e mais.
Função como Serviço (FaaS)
Função como Serviço (FaaS) é um serviço de computação em nuvem que fornece uma plataforma na qual os clientes podem desenvolver, executar e gerenciar aplicativos. Isso reduz a necessidade de os desenvolvedores construírem e manterem a infraestrutura necessária para desenvolver e lançar um aplicativo. Os provedores de nuvem fornecem recursos de nuvem, executam um bloco de código, enviam o resultado de volta e, em seguida, destroem os recursos utilizados.
Benefícios da Computação em Nuvem
As características únicas das infraestruturas de nuvem oferecem diversos novos benefícios técnicos e empresariais. Abaixo estão os principais benefícios da computação em nuvem para equipes ágeis:
Redução de custos
Ao utilizar recursos em nuvem, as equipes não precisam adquirir hardware próprio. Além disso, os provedores de nuvem se esforçam para maximizar e otimizar o uso de hardware. Isso torna hardware e recursos computacionais um produto básico, e os provedores de nuvem competem para oferecer os menores custos possíveis.
Escalabilidade aumentada
Devido à natureza flexível da computação em nuvem, organizações podem escalar recursos conforme necessário. A computação em nuvem permite funções de escalonamento automático para equipes. Aplicações em nuvem podem automaticamente reduzir ou aumentar seus recursos de infraestrutura em resposta a picos de tráfego.
Melhores performances
A computação em nuvem oferece acesso aos mais recentes e melhores recursos computacionais. Usuários têm acesso às mais recentes máquinas com CPUs potentes e multicore projetadas para tarefas de processamento paralelo intensivo. Além disso, grandes provedores de nuvem oferecem máquinas avançadas com GPUs e TPUs para tarefas intensivas em gráficos, matrizes e inteligência artificial. Esses provedores de nuvem são constantemente atualizados com as mais recentes tecnologias de processadores.
Acesso global
Grandes provedores de computação em nuvem têm locais de hardware distribuídos globalmente que garantem conexões de alta qualidade, dependendo da localização física da conexão. Além disso, eles oferecem redes globais para entrega de conteúdo, armazenando solicitações de usuários e conteúdo em cache por localização, garantindo acesso rápido aos dados.
Velocidade de implementação aprimorada
Equipes que utilizam infraestruturas em nuvem podem obter resultados mais rapidamente e fornecer valor aos seus clientes. Equipes de software flexíveis podem usar infraestrutura em nuvem para rapidamente configurar novas máquinas virtuais para experimentação e validação de ideias únicas, além de automatizar as fases de teste e implementação do pipeline de desenvolvimento.
Aumento da segurança
A hospedagem de nuvem privada oferece uma infraestrutura isolada com firewalls que melhoram a segurança. E, os provedores de nuvem oferecem muitos mecanismos e tecnologias de segurança que permitem a construção de aplicativos seguros. Portanto, o controle de acesso do usuário é uma questão de segurança importante e a maioria dos provedores de nuvem oferece ferramentas para restringir o acesso do usuário de forma granular.
Integração Contínua e Entrega Contínua
A integração contínua e a entrega contínua (CI/CD) são práticas importantes para profissionais de DevOps que aumentam a velocidade da equipe e reduzem o tempo de lançamento no mercado. A CI/CD na nuvem, como o Bitbucket Pipelines, permite que as equipes construam, testem e implementem código automaticamente, sem se preocupar com a gestão ou manutenção da infraestrutura de CI. O Bitbucket Pipelines confia em contêineres Docker para o isolamento e replicabilidade do pipeline de lançamento. As equipes podem executar comandos semelhantes aos de um computador local, mas com todas as vantagens de uma configuração nova e replicável para cada compilação.
Monitoramento e gerenciamento de incidentes abrangente
Com implementações na nuvem, as equipes podem interconectar suas ferramentas de ponta a ponta, facilitando o monitoramento de todas as partes do pipeline. O monitoramento abrangente é outra capacidade importante para organizações que praticam DevOps, pois lhes permite lidar com problemas e incidentes mais rapidamente. Os provedores de nuvem compartilham estatísticas sobre o estado do sistema, incluindo a CPU do aplicativo e do servidor, a memória, o número de solicitações, a taxa de erro, o tempo médio de resposta, etc. Monitorar a carga em muitas máquinas virtuais (VM’s), por exemplo, permite que as equipes adicionem mais capacidade (mais VM’s) à medida que a demanda aumenta, ou automatizem a escala (para cima/para baixo) com base nessas estatísticas para reduzir a intervenção humana e os custos.
Em Conclusão
A computação em nuvem oferece recursos computacionais avançados que estão disponíveis sob demanda, podem ser dimensionados conforme necessário, são atualizados regularmente e tudo isso sem a necessidade de adquirir e manter uma infraestrutura local. Com a computação em nuvem, as equipes se tornam mais eficientes e reduzem o tempo para lançar produtos no mercado, pois podem adquirir e dimensionar serviços rapidamente, sem o esforço exigido pela gestão de uma infraestrutura local tradicional.