Escolar Documentos
Profissional Documentos
Cultura Documentos
EMENTA DA DISCIPLINA 4
BIBLIOGRAFIA DA DISCIPLINA 5
MAPA DA AULA 7
RESUMO DA DISCIPLINA 36
AVALIAÇÃO 37
2
Conheça
c seus professores
-
VINICIUS SOARES
Professor Convidado
3
Ementa da Disciplina
Estudo sobre a arquitetura de microserviços. Estudo sobre os conceitos de
particionamento de serviços, replicação e distribuição, comunicação assíncrona
via filas e Soluções serveless.
4
Bibliografia da Disciplina
As publicações destacadas têm acesso gratuito.
Bibliografia básica
Bibliografia complementar
HASSAN, Sara; BAHSOON, Rami; KAZMAN, Rick. Microservice transition and its
granularity problem: A systematic mapping study. Journal of Software: Practice and
Experience. Volkume 50, Issue 9. Setembr, 2020.
FREEMAN, E. DevOps Para Leigos. Rio de Janeiro: Editora Alta Books, 2021.
5
O que compõe
o o
s
Mapa da Aula?
MAPA DA AULA
São os capítulos da aula, demarcam
momentos importantes da disciplina,
servindo como o norte para o seu FUNDAMENTOS
aprendizado.
Conteúdos essenciais sem os quais você
pode ter dificuldade em compreender a
matéria. Especialmente importante para
alunos de outras áreas, ou que precisam
EXERCÍCIOS DE FIXAÇÃO
relembrar assuntos e conceitos. Se você
estiver por dentro dos conceitos básicos
Questões objetivas que buscam
dessa disciplina, pode tranquilamente
reforçar pontos centrais da disciplina,
pular os fundamentos.
aproximando você do conteúdo de
forma prática e exercitando a reflexão
sobre os temas discutidos.Na versão CURIOSIDADES
online, você pode clicar nas alternativas.
Fatos e informações que dizem
respeito a conteúdos da disciplina.
PALAVRAS-CHAVE
Conceituação de termos técnicos,
expressões, siglas e palavras específicas
do campo da disciplina citados durante DESTAQUES
a videoaula.
Frases dos professores que resumem
sua visão sobre um assunto ou situação.
VÍDEOS
Assista novamente aos conteúdos
expostos pelos professores em vídeo.
Aqui você também poderá encontrar ENTRETENIMENTO
vídeos mencionados em sala de aula.
Inserções de conteúdos para tornar
a sua experiência mais agradável e
PERSONALIDADES significar o conhecimento da aula.
6
Mapa da Aula
Os tempos marcam os principais momentos das videoaulas.
AULA 1 • PARTE 1
SOA 02:57
• Não é um framework;
7
• Aumento de complexidade e tamanho
ao longo do tempo;
Quando você precisa 18:54
• Alta dependência de componentes de
aumentar a performance do
código;
seu produto, a performance
do seu sistema, você precisa • Escalabilidade do sistema é limitada;
aumentar o seu hardware.
• Falta de flexibilidade;
8
AULA 1 • PARTE 2
9
Escalabilidade horizontal e vertical:
você pode aumentar o número de
Práticas recomendadas 13:18
réplicas (scale horizontal) e/ou
• Modele os serviços em torno de aumentar a capacidade computacional
domínio da empresa; de seu serviço (scale vertical).
10
IaaS 25:22
• Sistemas Operacionais.
34:28 PaaS - Parte I
O usuário, ao invés de adquirir softwares
A plataforma como serviço é um ambiente
ou máquinas, espaço em data centers
de desenvolvimento e implantação
ou equipamentos de rede, praticamente
completo na nuvem, com recursos que
aluga espaços para estes recursos em uma
permitem a você fornecer tudo, desde
infraestrutura externa.
aplicativos simples baseados em nuvem
IaaS pode ser obtida em: até sofisticados aplicativos empresariais
habilitados para a nuvem.
Nuvem pública: é considerada nuvem
pública uma infraestrutura que consiste A PaaS tem como características:
de recursos compartilhados, liberados sob
Pode ser considerada IaaS adicionada uma
demanda, baseado na internet;
camada middleware e/ou componentes
Nuvem privada: incorpora a maioria das prontos;
features de uma nuvem pública como
Uma camada de abstração entre seu
virtualização porém fica dentro de uma
aplicativo em nuvem e seu provedor de
rede privada;
IaaS;
Nuvem híbrida: mistura de uma nuvem
É um ambiente de execução escalável e
privada com uma nuvem pública,
com alta disponibilidade para aplicações
geralmente conectadas através de um
customizadas;
túnel VPN.
É uma categoria de computação em nuvem
que fornece uma plataforma e um ambiente
para permitir que os desenvolvedores criem
aplicativos e serviços pela Internet;
11
AULA 1 • PARTE 3
12
Configurações:
Serviços de apoio:
13
Vínculo de porta:
14
BOSH: Logs:
• Suporte a múltiplas clouds; • Trate os logs como fluxos de eventos. O
• Separação clara entre sistemas; registro é importante para validar erros
e também verificar a integridade geral
• Provisionamento rápido; do seu sistema. Ao mesmo tempo, seu
aplicativo não deve se preocupar com
• Escalabilidade;
o armazenamento dessas informações.
• Monitoramento de saúde; Esses logs devem ser tratados como um
fluxo contínuo capturado e armazenado
• Controle de falhas;
por um serviço separado.
• Deploy canário.
Processos administrativos:
AULA 1 • PARTE 4
Resposta desta página: alternativa 3.
PALAVRA-CHAVE
00:43
Kubernetes: É um sistema de
orquestração de contêineres
open-source que automatiza a
implantação, o dimensionamento
e a gestão de aplicações em
contêineres.
15
01:20 Características cloud native
16
Docker 14:54
17
PALAVRA-CHAVE
23:23
Alta produtividade no
desenvolvimento e manutenção.
Confiabilidade e diminuição do
tempo de entrega.
AULA 2 • PARTE 1
18
No entanto, mesmo um modelo de
negócios de crescimento rápido deve ter LEITURA INDICADA
consequências e dependências a longo 18:27
prazo, por isso maturidade em cloud é Livro: Domain-Driven Design:
fator principal para escalar negócios, Tackling Complexity in the Heart
arquiteturas e usuários. Segundo o Open of Software
Data Center Alliance, possuímos alguns
passos para fazer nossa passagem e
maturidade num modelo de maturidade
de nuvem. Os tipos de maturidade são
definidos como:
19
É uma abordagem de desenvolvimento
EXERCÍCIO DE FIXAÇÃO de software que reúne um conjunto de
conceitos, princípios e técnicas cujo foco
Qual é o principal conceito da está no domínio e na lógica do domínio
abordagem Domain drive design? com o objetivo de criar um Domain Model.
Significa desenvolver software de acordo
Objeto.
com o domínio relacionado ao problema
que estamos propondo resolver. O foco da
Imagem.
abordagem é criar um domínio que fale a
língua do usuário usando o que é conhecido
Modelo.
como linguagem Ubíqua.
AULA 2 • PARTE 2
20
Event Storming é uma técnica de
PERSONALIDADE design rápido que engaja especialistas
06:20 do domínio de negócios com
desenvolvedores para que alcancem um
Martin Flowler
ciclo rápido de aprendizagem (aprender
o máximo possível no menor tempo
possível). Event Stormin permite:
• Mapear os eventos;
• Identificar os comandos;
• Associar os aggregates;
21
Tem uma vida útil ao longo do processo de Os eventos de domínio são parecidos com
negócios. Isso levará ao desenvolvimento eventos do estilo de mensagens, com uma
de uma análise do ciclo de vida da diferença importante. Com mensagens reais,
entidade. Esse primeiro nível de definição enfileiramento de mensagens, agentes de
de dados ajuda a avaliar o escopo e a mensagens ou um barramento de serviço
responsabilidade do micro serviço à que usa o AMQP, uma mensagem é sempre
medida que você começa a ver pontos enviada de forma assíncrona e comunicação
em comum emergindo dos dados usados entre processos e computadores. Isso é
entre vários eventos relacionados. útil para a integração de vários contextos
delimitados, microsserviços ou até mesmo
• O comando de disparo é identificado
aplicativos diferentes. No entanto, com os
em um post-it azul;
eventos de domínio, ao acionar um evento
• O comando pode se tornar uma na operação de domínio em execução
operação de micro serviço exposta via no momento, você deseja que os efeitos
API; colaterais ocorram dentro do mesmo
domínio.
• A pessoa humana que emite o
comando é identificada e mostrada em • A primeira etapa do Event Storming
uma nota laranja; consiste em mapear os eventos que
ocorrem no domínio que está sendo
• Alguns eventos podem ser criados
estudado;
aplicando políticas de negócios;
• Um evento é qualquer coisa relevante
• Identificação dos comandos que geram
que aconteceu no passado e tende a ser
os eventos;
de simples compreensão para pessoas
• Geralmente os comandos estão não técnicas;
associados à alguma ação do usuário,
• O padrão para descrever o evento é
interação com sistema externo ou
utilizar o verbo no passado e deve-se
gerados por um temporizador/cron;
tentar mapear todos os eventos;
• Verbo na forma imperativa;
• Para essa etapa, utilizamos os post-its
• Deve ser colocado no lado esquerdo de cor laranja;
do evento que ele gera;
• Talvez possa existir um pouco de
• Durante o processo, é comum dificuldade inicial para explicar o que
identificar que um comando pode é um evento para os especialistas de
gerar vários eventos. negócios (não técnicos);
22
Agregados são o elemento básico da
transferência de armazenamento de
dados - você solicita carregar ou salvar
agregados inteiros. As transações não 23:19
Um agregado geralmente
devem cruzar fronteiras agregadas. Às contém coleções múltiplas,
vezes, os agregados DDD são confundidos junto com o campo simples.
com as classes de coleção (listas, mapas,
etc.). Agregados DDD são conceitos de
domínio (ordem, visita à clínica, lista de
reprodução), enquanto as coleções são
genéricas. Um agregado geralmente
contém coleções múltiplas, junto com 23:35
Um agregado é a junção de
campos simples. vários ítens que vão compor o
O termo “agregado” é comum e é usado meu evento, o meu domínio.
em vários contextos diferentes (por
exemplo, UML), caso em que não se refere
ao mesmo conceito que um agregado
DDD. Os aggregates são a parte do
sistema que recebem os comandos e que 25:54 Limites
geram os eventos, eles são os objetos que
armazenam os dados e são modificados Bounded Context é um padrão central
pelos comandos. Aplicativos tradicionais no design orientado a domínio e é o
têm usado frequentemente transações de foco da seção de design estratégico da
banco de dados para impor a consistência. DDD que trata de lidar com grandes
Em um aplicativo distribuído, no entanto, modelos e equipes. O DDD lida com
isso muitas vezes não é viável. modelos grandes, dividindo-os em
diferentes contextos limitados e sendo
Uma única transação empresarial pode
explícito sobre suas inter-relações. À
abranger vários repositórios de dados,
medida que você tenta modelar um
ser demorada ou envolver serviços de
domínio maior, fica progressivamente
terceiros. Por fim, cabe ao aplicativo, não
mais difícil criar um único modelo
à camada de dados, impor as variáveis
unificado. Diferentes grupos de
necessárias para o domínio. É isso que
pessoas usarão vocabulários sutilmente
as agregações destinam-se a modelar.
diferentes em diferentes partes de uma
São a parte do sistema que recebem os
grande organização.
comandos e que geram os eventos, eles
são os objetos que armazenam os dados A precisão da modelagem rapidamente
e são modificados pelos comandos. Pode- se depara com isso, muitas vezes
se utilizar o nome da entidade ou dado levando a muita confusão. Normalmente,
quando se fala sobre Aggregate. Durante essa confusão se concentra nos
o exercício, pode ser que os Aggregates se conceitos centrais do domínio.
repitam ao longo da linha do tempo, mas Contextos limitados têm conceitos
não se deve agrupá-los. não relacionados (como um tíquete
de suporte existente apenas em um
contexto de suporte ao cliente), mas
PALAVRA-CHAVE
também compartilham conceitos
34:07
(como produtos e clientes). Contextos
GRPC: Conhecido como Google diferentes podem ter modelos
Remote Procedure Call, a técnica completamente diferentes de conceitos
é um sistema de código aberto de comuns, com mecanismos para mapear
chamada de procedimento remoto entre esses conceitos polissêmicos para
desenvolvido inicialmente no Google
integração. Vários fatores traçam limites
em 2015.
entre contextos.
23
EXERCÍCIO DE FIXAÇÃO Normalmente, a dominante é a cultura
humana, já que os modelos agem
como linguagem onipresente, você
Quais os 3 pilares do Domain-Driven
precisa de um modelo diferente quando
Design?
a linguagem muda. Você também
Linguagem ubíqua, bounded encontra vários contextos no mesmo
contexts e context maps. contexto de domínio, como a separação
entre os modelos de banco de dados
Linguagem ubíqua, context maps e relacional e na memória em um único
Request-scoped values. aplicativo. Esse limite é definido pela
maneira diferente como representamos
Bounded contexts, context maps e os modelos.
Deadline.
AULA 2 • PARTE 3
24
PALAVRA-CHAVE
19:38
Orquestração: A orquestração
ajuda a gerenciar fluxos de trabalho
e tarefas complexas com mais
Se o seu orquestrador facilidade. Ela é compatível com uma
22:44
abordagem de DevOps e ajuda a sua
está chamando mais de 8
equipe a implantar aplicações mais
microserviços, está na hora de rapidamente.
rever.
PALAVRA-CHAVE
24:19
25
AULA 2 • PARTE 4
PALAVRA-CHAVE
05:02
26
Build Pipeline 22:00
• Compilação; PALAVRA-CHAVE
29:22
• Cobertura dos testes;
• Boas práticas;
• Empacotamento e publicação.
PALAVRA-CHAVE
33:24
Estágio de aceitação:
27
AULA 3 • PARTE 1
28
Message broker 11:26
PALAVRA-CHAVE
16:42
29
Tipos de garantia de entrega de
mensagens 34:22
AULA 3 • PARTE 2
30
PALAVRA-CHAVE
10:17
31
As desvantagens, são: O Knative também:
• Difícil prever o custo final, pois • O Knative atribui uma URL para
depende da demanda; invocar cada função;
PALAVRA-CHAVE
31:10
EXERCÍCIO DE FIXAÇÃO
O que é versionamento?
computador.
32
AULA 3 • PARTE 3
PALAVRA-CHAVE
03:25
10:05
Se você trabalha numa
empresa que não abraça
realmente a ideia de
microserviços como uma
solução, não vai funcionar.
Exemplos de código - Parte I 13:44
33
PALAVRA-CHAVE
33:43
É um serviço de back-end
sem servidor que permite aos
desenvolvedores escrever peças
modulares de código em tempo
real que podem ser executadas em
resposta a determinados eventos.
34
AULA 3 • PARTE 4
PALAVRA-CHAVE
19:02
35
Resumo da disciplina
Veja, nesta página, um resumo dos principais conceitos vistos ao longo da disciplina.
AULA 1
AULA 2
As aplicações englobam as
várias técnicas usadas pelos
desenvolvedores para construir
aplicativos para a nuvem pública.
Os containers são métodos utilizados na
implementação de aplicativos, sem que
haja a necessidade de configuração de
uma máquina para cada um.
Docker foi desenhado
especialmente para disponibilizar
uma aplicação da forma mais ágil.
AULA 3
36
Avaliação
ca-
-
Veja as instruções para realizar a avaliação da disciplina.
Fique tranquilo! Caso você perca o prazo do teste online, ficará aberto
o teste de recuperação, que pode ser realizado até o final do seu curso.
A única diferença é que a nota máxima atribuída na recuperação é 8.