Tópicos
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
- Aspetos da utilização de uma cloud
Infrastructure as a Service (IaaS)
Providencia recursos de hardware virtualizados, tais como: computação, armazenamento e networking.
Os recursos são alocados on demand e o preço é deduzido por utilização.
Exemplos:
- Amazon EC2 e Google Compute Engine (computação)
- Amazon S3 (armazenamento)
OpenStack
Exemplo de IaaS, software open source cujo objetivo é configurar e controlar clouds públicas e privadas.
OpenStack Compute Providencia diferentes tipos de instâncias:
- Servidores baremetal
- Máquinas virtuais (VMs)
- Containers (Docker, por exemplo)
OpenStack Storage As instâncias anteriormente mencionadas são efémeras, isto é, o estado é perdido quando a execução termina.
Assim, para a persistência de estado existem algumas alternativas:
- Cinder (block storage)
- Manila (sistemas de ficheiros partilháveis entre instâncias de computação)
- Swift (armazenamento key-value, tipo um distributed hash map)
OpenStack Networking & Monitoring Dois serviços distintos:
- Neutron é responsável pela gestão de redes (seguindo princípios de software defined networks)
- Telemetry é responsável por monitorar a infraestrutura e os recursos virtualizados
- Por exemplo, lançar mais instâncias de uma VM quando um certo threshold é atingido
Platform as a Service (PaaS)
O foco dos utilizadores está na funcionalidade do que vão dar deploy e não na configuração e especificação de quais recursos de hardware são necessários.
Por norma, estes serviços oferecem um ambiente onde é possível desenvolver a aplicação (em diversas linguagens e tecnologias) e depois fazer o deployment.
Exemplos:
- Heroku
- Fly.io
Software as a Service (SaaS)
Neste caso, falamos de aplicações já feitas que fornecem um certo serviço. Normalmente, estes serviços são utilizados por meio de uma API pública e bem documentada
Exemplos:
- Sistemas de gestão de base de dados tipo o Amazon DynamoDB (serviço exposto através das credenciais de acesso à base de dados)
- Google-apps (Gmail, etc)
Aspetos da utilização de uma cloud
Conveniência
IaaS
- Evitar custos de infraestrutura não utilizada, pagos à cabeça
- Mais fácil dar deploy de aplicações legacy
PaaS
- Foco pode ficar simplesmente no desenvolvimento da aplicação e na engenharia de requisitos
- Ferramentas de desenvolvimento, deployment, debugging e benchmarking já ao dispor
SaaS
- Utilizar serviços já existentes, testados e bem integrados
Elasticidade
IaaS
- Ilusão de recursos virtualizados infinitos
- Utilizadores podem aumentar ou diminuir, consoante necessidade, o poder de computação, quantidade de armazenamento, etc
PaaS
- A elasticidade é manuseada pelo cloud provider
- Normalmente, a unidade de escalabilidade é a própria aplicação, não existe muita granularidade
SaaS
- Tipicamente, o serviço já providencia esta elasticidade automaticamente
Perda de controlo
De notar que isto é uma desvantagem de todos estes serviços, se comparados com um deployment mais tradicional (feito on premises).
IaaS
- Não existe controlo sobre o hardware e a virtualização utilizada
PaaS
- Não existe controlo sobre requerer um tipo de hardware específico
SaaS
- Software utilizada é produzido por terceiros e, normalmente, otimizado e configurado pelo cloud provider
Disponibilidade e Segurança
Isto vale para todos.
Caso o provider falhe (mesmo que improvável), a aplicação falha e a recuperação está fora do controlo do dono da mesma.
A aplicação é tão segura quanto o provider for.
- Qualquer vunerabilidade do provider afetará o bom funcionamento da aplicação
- A correção destas vulnerabilidades é, obviamente, feita pelo provider
Em termos de privacidade, vale lembrar que o provider possui informação sobre os utilizadores presentes na aplicação.
- Existe o risco desta informação ser leaked por ataques internos ou externos
- Dados críticos (hospitalares, por exemplo) são, por norma, protegidos por alguma legislação que proíbe que estes sejam guardados em serviços externos. Neste caso, não se pode sequer recorrer à cloud