Computação em nuvem
A computação em nuvem (cloud computing) é um conceito na área de tecnologia que diz respeito à disponibilização de recursos computacionais e serviços através da internet. Por isso, todos os serviços que ficam hospedados na nuvem podem ser acessados remotamente a qualquer hora e de qualquer lugar.
A cloud computing vem transformando a maneira como as empresas da área de TI constroem as arquiteturas de suas soluções. Algumas estāo migrando todos os seus serviços para a nuvem, enquanto outras já nascem “in the cloud”, também conhecidas como “cloud-native”. A escolha do data center ser na nuvem, on-premisses ou nos dois modelos depende de vários fatores, como custos, atos regulatórios, modelo do negócio, entre outros.
Alguns dos principais benefícios da computação em nuvem incluem:
A troca de Capex por Opex: Para entender melhor esse ponto, vamos explorar brevemente dois conceitos, o Capex e o Opex, com exemplos de sua aplicação na área de infra.
O CAPEX é um acrônimo para Capital Expenditure (em português, “despesas de capital”) que faz referência ao investimento para compra de recursos para as organizações. Assim, a compra de servidores físicos é considerada um exemplo de CAPEX.
O OPEX é um acrônimo para Operational Expenditure (em português, “despesas operacionais”) e tem relação com despesas operacionais de uma organização. Um exemplo disso seria a contratação de manutenção de servidores.
Levando em consideração o grande crescimento das empresas e o tempo de vida útil de servidores, é evidente que, em um breve espaço de tempo, é necessário fazer melhorias nos servidores ou até mesmo comprar novos, o que causaria mais gastos com CAPEX.
O uso da computação em nuvem faz com que as empresas paguem apenas pelos recursos computacionais consumidos em um ciclo de faturamento mensal, sem ter que se preocupar com a manutenção de equipamentos, aluguel de espaço, entre outros. Para entender melhor sobre isso, recomendamos a leitura do artigo que está disponível neste link.
Escalabilidade: As empresas podem aumentar ou diminuir seus ambientes operacionais rapidamente para atender às demandas, permitindo flexibilidade conforme as necessidades mudam. Ao invés de comprar e instalar hardware e todo o ambiente físico, os provedores de serviços em nuvem gerenciam isso, liberando tempo e recursos das operações de infraestrutura.
Mais velocidade e agilidade: Em um ambiente de computação em nuvem, novos recursos de TI estão disponíveis sob demanda, o que significa que o tempo é menor para disponibilizar recursos computacionais para aplicações em produção, por exemplo.
Globalização: A computação em nuvem permite maior facilidade para implantar aplicações em várias regiões do mundo com apenas alguns cliques e configurações básicas. Isso permite que as empresas forneçam maior diversidade de regiões de data center e uma melhor experiência para os clientes.
Atualmente existem algumas opções de implementação que podem ser utilizadas pelas empresas:
Nuvens privadas: A nuvem privada é uma arquitetura de data center que geralmente tem recursos exclusivos de uma empresa. Ela pode ser implantada diretamente pela empresa ou esta pode solicitar um serviço de um provedor de data center. Esse modelo é recomendado, por exemplo, para armazenar informações críticas e confidenciais.
Nuvens públicas: Nesse modelo, os serviços são disponibilizados em um ambiente virtualizado que pode ser acessado pela internet. Geralmente oferecem bastante escalabilidade. Alguns provedores de nuvem pública mais conhecidos são: o Azure (Microsoft), Google Cloud Platform (GCP), Amazon Web Services (AWS), entre outros.
Nuvens híbridas: Esse modelo é a junçāo dos dois modelos citados acima (público e privado), na qual empresas possuem o data center privado (nuvem privada) e também o data center na nuvem pública.
Um dos pontos positivos ao se utilizar um ambiente na nuvem, é que ele pode ser facilmente escalável. Dando um exemplo prático, é possível aumentar a infraestrutura de um e-commerce para receber muitos acessos durante uma black friday e, depois que o volume de vendas diminuir, é possível liberar os recursos computacionais que você não mais utilizará. Em um data center do modelo tradicional, é possível fazer esse dimensionamento de recursos, porém ele não poderia ser feito de maneira automatizada como acontece na nuvem.
A computação em nuvem também tornou possível o surgimento de novos modelos de serviços que facilitam muito o provisionamento de aplicações e recursos computacionais em geral. Vamos detalhar alguns desses modelos abaixo:
PaaS — Plataform as a Service: Neste modelo, é possível ter um ambiente de desenvolvimento e implantação em cloud, e o gerenciamento do ambiente é feito completamente pelo provedor.
Segundo uma definição da Microsoft, “assim como IaaS, PaaS inclui infraestrutura — servidores, armazenamento e rede –, além de middleware, ferramentas de desenvolvimento, serviços de BI (business intelligence), sistemas de gerenciamento de banco de dados e muito mais. PaaS é criado para dar suporte ao ciclo de vida do aplicativo Web completo: compilação, teste, implantação, gerenciamento e atualização”.
Exemplos de Paas: Heroku, Tsuru, Open Shift Container Platform, Amazon Elastic Beanstalk, Oracle Cloud PaaS, entre outros.
SaaS — Software as a Service: Neste modelo, é possível utilizar o software por meio da internet. O fornecedor fica responsável por toda a infra, segurança e disponibilidade da plataforma.
Exemplos de SaaS: Google Drive, Google Analytics, Netflix, Salesforce, entre outros.
IaaS — Infrastructure as a Service: Já neste modelo, ao invés de a empresa precisar adquirir recursos de infra, ela consegue adquirir os serviços necessários com servidores virtuais (VMs). Alguns fatores são levados em consideração no modelo de cobrança, como, por exemplo, a quantidade de dados armazenados, trafegados ou até mesmo a quantidade de servidores utilizados.
Exemplos de IaaS: Compute Engine do GCP, EC2 da AWS, entre outros.
FaaS — Functions as a Service: Por fim, com este modelo, é possível criar e executar aplicações sem ter que se preocupar em administrar servidores, pois o provedor de serviço em nuvem (AWS, GCP ou AWS) é o responsável por executar pequenos pedaços de código e alocá-lo nos recursos disponíveis de acordo com a demanda.
O ponto positivo de utilizar este modelo é a facilidade do dimensionamento automático e a alta disponibilidade. A arquitetura Serverless é um exemplo de FaaS.
Exemplos de FaaS: AWS Lambda, Cloud Functions e Azure Functions.
Se você deseja conhecer mais sobre cloud computing, acompanhe a lista a seguir:
Sugestões de cursos
Cursos gratuitos de AWS, da Amazon;
Cursos gratuitos de Azure, da Microsoft;
Curso de introdução às tecnologias de infraestrutura em nuvem, da Linux Foundation;
Curso sobre Visão geral técnica do Red Hat OpenStack, da Red Hat.
Sugestões de certificações
Fundamentos Microsoft Azure;
AWS Certified Cloud Practitioner;
Certificate of Cloud Security Knowledge;
CCC Cloud Computing.
Sugestões de livro
The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services, dos autores Thomas A. Limoncelli, Strata R. Chalup e Christina J. Hogan, da editora Addison-Wesley Professional.
Caso conheça outras indicações de livros, certificações ou cursos, fique à vontade para deixar nos comentários. Ficarei feliz em adicionar a esse post!
Esse texto faz parte do Guia de Infraestrutura de Tecnologia de Informação publicado no medium, no dev.to, e na Open Library. Para checar todos os capítulos, clique aqui e acesse a Introdução.
Próximo capítulo: Observabilidade