Computação em Nuvem

Introdução

Pontifícia Universidade Católica de Campinas

Prof. Dr. Denis M. L. Martins

Objetivos de Aprendizado

  • Explicar o conceito de sistemas distribuídos e suas características fundamentais.
  • Compreender as características gerais de Computação em Nuvem.

Computação em Nuvem (Cloud)

  • Conjunto de serviços computacionais entregues via rede (qual?).
  • Modelo de entrega: IaaS, PaaS ou SaaS.
  • Provedores típicos: AWS, Azure, Google Cloud, IBM Cloud, etc.
  • Benefícios principais: Elasticidade, pay‑as‑you‑go, foco em inovação.

Internet vs Web

  • Internet: rede de redes, uma inter‑network
    • Cada rede possui hosts e links. Ex.: redes domésticas, provedores de internet (ISPs), etc.
    • Conectividade para dispositivos heterogêneos em sistemas distribuídos, independentemente da rede de origem
    • Conectividade possibilitada por vários protocolos:
      • IPv4 e IPv6 para conectividade host‑para‑host (IP = Internet Protocol)
      • DNS traduz nomes legíveis por humanos para endereços IP
      • TCP, UDP para conectividade processo‑para‑processo (ex.: o processo do navegador dialoga com o processo remoto do servidor web)
  • Web: aplicação que utiliza a Internet
    • Clientes e servidores comunicam via HTTP (outro protocolo)
    • Ex.: requisições GET do HTTP pedem páginas HTML (e mais)
  • Internet e Web contêm sistemas distribuídos.

Sistemas Distribuídos

  • Múltiplos nós independentes comunicando-se pela rede.
  • Características importantes:
    • Tolerância a falhas
    • Escalabilidade horizontal
    • Heterogeneidade de hardware/softwares
  • Duas Abordagens:
    • Visão integrativa: conectar sistemas de computadores já em rede a um sistema maior.
    • Visão expansiva: estender um sistema de computadores já em rede com computadores adicionais.

Atividade rápida: Pense em um serviço que você usa diariamente e identifique se ele é distribuído.

Sistemas Distribuídos

"One in which the failure of a computer you didn’t even know existed can render your own computer unusable."
Leslie Lamport

Vencedor do Turing Award, e com grandes contribuições para SDs.

"The network is the computer"
John Gage (Sun Microsystems)

Perspectivas

  • Arquitetura: estruturas organizacionais comuns.
  • Processo: quais tipos de processos existem e como se relacionam entre si.
  • Comunicação: meios disponíveis para trocar dados.
  • Coordenação: algoritmos independentes da aplicação que gerenciam a cooperação entre componentes.
  • Nomeação: mecanismos pelos quais recursos são identificados.
  • Consistência e replicação: exigências de desempenho sobre os dados, garantindo que cópias permaneçam idênticas.
  • Tolerância a falhas: manter o funcionamento diante de falhas parciais.
  • Segurança: assegurar acesso autorizado aos recursos.

Objetivos de Design de Sistemas Distribuídos

  • Tornar recursos acessíveis. Ex.: CPUs/GPUs, impressoras, arquivos, etc.
  • Abertura: Adesão a padrões aceitos, interoperabilidade
  • Transparências de distribuição variadas
  • Escalabilidade

Escalabilidade

Tipo Descrição Quando usar
Vertical
(scale‑up)
Aumentar recursos de um único nó Quando o workload não pode ser dividido
Horizontal
(scale‑out)
Adicionar mais nós Para distribuir a carga e aumentar disponibilidade

Elasticidade = capacidade de escalar dinamicamente.

Vantagens da Computação em Nuvem

Categoria Benefício
Elasticidade Escala automática conforme demanda.
Custo‑efetividade Modelo de pagamento por uso, reduz CAPEX.
Agilidade Deploy rápido, CI/CD pipelines.
Inovação Serviços gerenciados (ML, AI, analytics).

Exemplo: Uma startup pode lançar um MVP em 5 minutos usando AWS Lambda + API Gateway.

Desafios técnicos de Sistemas Distribuídos

  • Ausência de memória compartilhada; comunicação por passagem de mensagens
  • Concorrência
  • Autonomia e heterogeneidade dos nós
  • Falta de relógio global ou estado global consistente
  • Falhas independentes
  • Ambiente hostil: necessidade de equilibrar segurança com confiabilidade (safety vs security)

Mais um Desafio: Soberania Digital

Recentemente, o Fórum Econômico Mundial publicou:

  • A soberania digital vai além da tecnologia e da regulação de dados, englobando também o fomento ao empreendedorismo e o financiamento à inovação.
  • Contudo, os países adotam abordagens distintas quanto à governança — fator que tem intensificado a competição geopolítica entre os EUA, China e UE.

Quais aspectos de soberania digital devemos considerar?

Modelos de Serviço

  • Infrastructure as a Service (IaaS)
    • Consumidores implantam software arbitrário em VMs sobre a infraestrutura de nuvem do provedor
    • “VMs na nuvem”, ex.: provedores de nuvem principais e servidores de seminários de projetos
  • Platform as a Service (PaaS)
    • Consumidores desenvolvem aplicações utilizando linguagens de programação, bibliotecas e ferramentas suportadas pelo provedor
    • “Ambiente de programação na nuvem”, ex.: provedores de nuvem principais
  • Software as a Service (SaaS)
    • Consumidores utilizam aplicações do provedor em infraestrutura de nuvem
    • “Aplicações na nuvem”, ex.: suíte office, sistema CRM, ERP
  • Anything as a Service (XaaS)
    • X pode representar Container, Function, Backend, Database, etc.

Modelos de Implantação

  • Nuvem pública: A empresa administra a nuvem para ser usada por terceiros
  • Nuvem privada: Organização opera sua própria nuvem, com uso exclusivo
  • Nuvem comunitária: Comunidade de consumidores opera sua própria nuvem
  • Nuvem híbrida: Duas ou mais infraestruturas distintas (privada, comunitária ou pública) coexistindo; requer padrões para portabilidade de dados e aplicações.

Pergunta de Encerramento

Quais são os maiores desafios que você antecipa ao projetar uma solução cloud?