Programação Concorrente e Distribuída

Aulas

Sistemas distribuídos, virtualização e containers com Docker
Aula 01

Introdução

Concorrente × paralela × distribuída, sistemas distribuídos, middleware e arquitetura de sistemas — com exemplos reais.

Aula 02

Virtualização

Princípio da virtualização, os três tipos (processo, hypervisor tipo 1 e 2), importância das VMs e aplicação na nuvem.

Aula 03

Containers

O que são containers e o Docker, diferenças com VMs, vantagens, IaaS/PaaS e a infraestrutura do Docker. Com comandos práticos.

Aula 04

Arquitetura do Docker

Daemon, cliente e registries; objetos (imagens, containers, serviços) e criação de imagens com Dockerfile.

Aula 05

Docker Compose

Orquestrando múltiplos containers com um comando; exemplos com Django, PostgreSQL, WordPress e volumes.

Aula 06

Docker Hub e Boas Práticas

Publicando imagens no Docker Hub com Compose, tags e builds multi-stage para imagens bem menores.

Aula 07

Comunicação e REST

Protocolos em camadas, tipos de comunicação (persistente/transiente, síncrona/assíncrona) e a arquitetura REST.

Aula 08

Tipos de Sistemas Distribuídos

Arquiteturas centralizadas, descentralizadas e híbridas; cluster, grid, cloud e sistemas pervasivos.

Aula 09

Microsserviços

Monolito × microsserviços, Lei de Conway, vantagens e desvantagens — com atividade e vídeos de referência.

Aula 10

RPC

Remote Procedure Call: stubs, IDL, passo a passo de uma chamada remota, RPyC e os quatro tipos de serviço do gRPC.

Aula 11

Cloud Computing

Modelos IaaS, PaaS e SaaS, visão geral da computação em nuvem e os três grandes provedores: AWS, Azure e GCP.

Aula 12

Mensageria e AMQP

Padrões de mensagens (request-reply, pub-sub, pipeline) e RabbitMQ na prática: exchanges direct, topic e fanout.

Aula 13

GraphQL e WebSockets

Consultas flexíveis com GraphQL (queries e mutations) e comunicação em tempo real com WebSockets.

Aula 14

Orquestração de Containeres

Conceitos do Kubernetes (Pods, ReplicaSets, Services) e passo a passo prático com kind.