# Infraestrutura como serviço

Em computação em nuvem, a Infraestrutura como Serviço (do inglês Infrastructure as a Service) conhecido pelo acrônimo IaaS, é uma infraestrutura que fornece um serviço de um computador servidor através da Internet. Facilitar o acesso aos recursos de computação para ter um ambiente sob demanda (sistemas operacionais e aplicativos).
A IaaS é um dos quatro tipos de serviços em nuvem, junto com Software como serviço (SaaS), Plataforma como serviço (PaaS) e Sem Servidor (Serverless).
O usuário pode usar recursos, como por exemplo armazenamento por rede, diminuindo custo com a manutenção da infraestrutura terceirizada.
A infraestrutura como serviço também fornecem API avançadas que facilitam detalhes de baixo nível da infra-estrutura, como por exemplo recursos físicos computacionais, particionamento dos dados, segurança. Como o Xen, o Oracle VirtualBox, o Oracle VM, o KVM, o VMware ESX / ESXi ou o Hyper-V, LXD, executam as máquinas virtuais como convidados.
A IaaS se torna atraente quando as empresas não precisam mais se preocupar com a compra de recursos de computação, alocação de espaço físico nem manutenção, uma vez que os recursos de infraestrutura estão na nuvem. Logo, é possível adquirir os recursos através de serviços de assinaturas, como AWS da Amazon, Azure da Microsoft e Google Cloud do Google.
Há a estalagem bare metal server, que concede acesso ao hardware e suas especificações pela rede internet. Ou seja, o acesso remoto é concedido e dado ao cliente que realiza a conexão com a máquina e a configura. No entanto, não oferece armazenamento nem redes virtualizados.
Para criar uma IaaS, é necessário dimensionar uma hospedagem virtualizada para central de processamento de dados (do inglês Data Centers) ou uma estrutura clusterizada.

## Componentes Fundamentais da Infraestrutura como Serviço

A Infraestrutura como Serviço (IaaS) é composta por diversos recursos virtualizados de TI, como servidores, armazenamento, redes e sistemas operacionais, entregues por meio de uma plataforma baseada na internet. Esse modelo permite que empresas escalem recursos sob demanda, reduzindo custos operacionais e eliminando a necessidade de manter infraestrutura física. Os principais componentes da IaaS são projetados para fornecer flexibilidade, segurança e eficiência operacional. Abaixo estão os elementos mais importantes que compõem a IaaS.

### Servidores Virtuais (Máquinas Virtuais - VMs)

Os servidores virtuais são a base da IaaS. Eles permitem a execução de sistemas operacionais e aplicativos em ambientes virtuais, simulando o funcionamento de servidores físicos. Máquinas virtuais são essenciais para a consolidação de recursos, permitindo que um único servidor físico suporte várias instâncias virtuais. Além disso, provedores de IaaS permitem que os usuários escolham configurações personalizadas de CPU, memória, armazenamento e sistema operacional, ajustando as VMs conforme suas necessidades específicas. Isso garante escalabilidade e flexibilidade para lidar com cargas de trabalho variáveis.

### Armazenamento em Nuvem

O armazenamento é outro componente essencial da IaaS, permitindo que dados sejam armazenados, acessados e gerenciados remotamente. Existem três categorias principais de armazenamento em nuvem:
* Armazenamento de Blocos: Ideal para aplicações que requerem acesso rápido e estruturado a grandes volumes de dados, como bancos de dados ou sistemas transacionais.
* Armazenamento de Arquivos: Facilita o compartilhamento e a organização de dados, funcionando de forma semelhante a sistemas de arquivos tradicionais.
* Armazenamento de Objetos: Usado para armazenar grandes quantidades de dados não estruturados, como mídias, backups e logs. Esse formato é amplamente adotado devido à sua escalabilidade e compatibilidade com aplicações modernas.

### Redes Virtuais

As redes virtuais conectam diferentes componentes da IaaS, permitindo a comunicação segura e eficiente entre servidores, sistemas de armazenamento e aplicativos. Através de recursos como firewalls, redes privadas virtuais (VPNs), balanceadores de carga e roteadores virtuais, as redes virtuais garantem a continuidade das operações e a proteção contra acessos não autorizados. Essas ferramentas permitem que empresas configurem ambientes isolados e otimizem a transferência de dados entre recursos internos e externos.

### Gerenciamento e Automação

A IaaS oferece ferramentas avançadas de gerenciamento e automação que permitem aos usuários configurar e controlar sua infraestrutura com facilidade. Por meio de APIs e painéis de controle, os usuários podem provisionar novos recursos, monitorar o desempenho em tempo real e ajustar configurações automaticamente com base nas demandas do sistema. Esse nível de controle reduz a dependência de intervenções manuais, economiza tempo e melhora a eficiência operacional.

### Segurança

A segurança na IaaS é essencial para proteger dados e aplicativos hospedados na nuvem contra ameaças cibernéticas. Provedores implementam medidas como criptografia de dados em trânsito e em repouso, autenticação multifator (MFA) e firewalls para monitorar e bloquear tráfego malicioso. Além disso, tecnologias de prevenção de ataques DDoS e monitoramento em tempo real garantem a integridade dos sistemas e reduzem vulnerabilidades. Essas ferramentas ajudam a mitigar riscos e a manter a confiabilidade dos serviços oferecidos.

### Backup e Recuperação

Os sistemas de backup e recuperação garantem a integridade dos dados armazenados na IaaS. A replicação de dados em múltiplas regiões geográficas aumenta a resiliência contra falhas, enquanto os backups automatizados e as ferramentas de recuperação rápida ajudam as empresas a minimizar os impactos de falhas ou desastres.

## Modelos de Serviço em Nuvem

Assim como IaaS, existem outros modelos fundamentais de computação em nuvem que oferecem diferentes níveis de controle, flexibilidade e gerenciamento. Esses modelos são a Plataforma como Serviço (PaaS) e o Software como Serviço (Saas).
Enquanto IaaS fornece infraestrutura básica de TI, como servidores e armazenamento, os modelos PaaS fornecem um ambiente de desenvolvimento e implantação completo, o que inclui os recursos e ferramentas de software necessários para desenvolver, testar e implementar aplicações. O cliente ainda é responsável por escrever o código e gerenciar os apps e dados, porém a complexidade da gestão de infraestrutura é reduzida.
SaaS entrega um software de aplicação completo hospedado na nuvem via conexão com a internet, acessível diretamente de um navegador da web, aplicação móvel ou thin client, facilitando o acesso e a atualização contínua das aplicações sem a necessidade de instalação local. Esses modelos permitem que as empresas não se preocupem em como o serviço é mantido ou como a infraestrutura subjacente é gerenciada, apenas em como o software será utilizado. Assim as empresas podem escolher a solução que melhor se adapta às suas necessidades, otimizando recursos e reduzindo custos.

## Casos de uso da Infraestrutura como Serviço

A Infraestrutura como Serviço (IaaS) disponibiliza uma variedade enorme de serviços. Entre os principais casos de uso, destacam-se:
* Computação de Alto Desempenho (High-Performance Computing - HPC): Utilizada para problemas computacionais complexos que demandam grande poder de processamento, como análises de grandes volumes de dados ou resolução de equações científicas. Esse modelo é empregado por organizações para acessar supercomputadores e clusters de alta performance sem a necessidade de investir em infraestrutura física. Exemplos incluem sequenciamento de DNA e automação de negociação de ações.
* Hospedagem de Sites e Aplicações Web: Com a IaaS, organizações podem hospedar sites e aplicações web com segurança, escalabilidade e personalização para atender às suas necessidades específicas de entrega de conteúdo. Exemplos dessa utilização incluem desde sites simples até sistemas robustos de gerenciamento de dados.
* Desenvolvimento e Teste: A IaaS pode ser utilizada na criação de ambientes de desenvolvimento e teste, que podem ser configurados rapidamente e ajustados conforme necessário. Esse recurso é especialmente útil para equipes de DevOps, permitindo que novas aplicações sejam testadas e implantadas de forma ágil e eficiente.
* Análise de Big Data: A IaaS é usada para armazenar e analisar grandes volumes de dados, gerando os melhores insight a partir de técnicas analíticas avançadas. Com suporte a tecnologias como Inteligência Artificial (IA) e Internet das Coisas (IoT), a IaaS oferece o poder computacional necessário para processamento em larga escala.
* Backup e Recuperação de Desastres: A IaaS oferece soluções de backup e recuperação de desastres baseadas em nuvem, permitindo que as organizações repliquem e armazenem dados com segurança. Caso ocorra uma falha em um servidor, os sistemas podem ser restaurados rapidamente para garantir a continuidade dos negócios.
* Inteligência Artificial (IA) e Aprendizado de Máquina (Machine Learning - ML): Plataformas de IaaS suportam o desenvolvimento de modelos de IA e ML, proporcionando infraestrutura escalável e ferramentas avançadas para cientistas de dados e desenvolvedores. Esses recursos incluem o treinamento e a implantação de modelos de IA generativa, entre outros.

## Benefícios e desafios da IaaS

A Infraestrutura como Serviço (IaaS) oferece diversos benefícios, mas também desafios, quando implementada.
Um dos desafios da IaaS inclui riscos de segurança, uma vez que as empresas perdem parte do controle sobre a infraestrutura e os dados ao dependerem de um provedor terceirizado. A limitação na personalização das soluções também pode ser um obstáculo, assim como a dependência de fornecedores, que pode acarretar custos elevados e atrasos. Além disso, problemas de conectividade e a falta de transparência dificultam o gerenciamento, e a concorrência por recursos entre os clientes pode impactar o desempenho da infraestrutura.
Com relação aos benefícios, alguns dos principais estão relacionados com economia, flexibilidade e escalabilidade dos sistemas. Com a IaaS o usuário não necessita manter e possuir uma estrutura on premises, isso, muitas das vezes, gera uma economia de manutenção, implementação e gerenciamento, além de não haver desperdício de recursos e de infraestrutura que possivelmente não serão utilizados a todo o tempo.

## Provedores de serviços

Os principais provedores de serviços em nuvem no mundo hoje são:
* Microsoft Windows Azure.
* IBM Cloud
* Amazon Web Services.
* Google Cloud