Arquitetura .Net��Do Zero a Plataforma Digital
Leonardo Piedade
Arquiteto de Soluções, AWS
David Reis�Arquiteto de Soluções, AWS
Globalcode – Open4education
Como chegamos até aqui...
Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s
Globalcode – Open4education
Como chegamos até aqui...
Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s
Globalcode – Open4education
Como chegamos até aqui...
Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s
Globalcode – Open4education
Como chegamos até aqui...
Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s
Globalcode – Open4education
Como chegamos até aqui...
Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s
Globalcode – Open4education
Como chegamos até aqui...
Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s
Globalcode – Open4education
O que é Engenharia de Plataforma?
“A digital platform is a foundation of self-service APIs, tools, services, knowledge and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced �co-ordination” ��– Evan Bottcher
“Platform engineering improves developer experience and productivity by providing self-service capabilities with automated infrastructure operations… and accelerate product teams’ delivery of customer value.” ��
– Gartner
Globalcode – Open4education
Plataforma: benefícios
Acelera o
desenvolvimento
Aumenta a
qualidade
Otimização de Custos
Globalcode – Open4education
Plataforma: benefícios
Acelera o
desenvolvimento
Aumenta a
qualidade
Otimização de Custos
Globalcode – Open4education
Plataforma: benefícios
Acelera o
desenvolvimento
Aumenta a
qualidade
Otimização de Custos
Globalcode – Open4education
Plataforma: atributos
Segurança
Extensões
Self-Service
Onboarding
Developer�Experience
Ferramentas �Reutilizáveis
Globalcode – Open4education
Arquitetura de Exemplo
Globalcode – Open4education
Plataforma
Interfaces do
desenvolvedor
IDE
Integração e
Entrega
Observabilidade
Segurança
Ambientes e
recursos
Repositório de
Código
IaC
Entrega Contínua
Orquestrador da
Plataforma
Computação
EKS
Rede
Route53
VPC
Dados
RDS
Registro de Artefatos
ECR
Integração Contínua
Github Actions
Segredos
Serviços
SQS
Métricas
Logs
Identidade
Globalcode – Open4education
Caminho pavimentado
(a.k.a. Golden Path)
Globalcode – Open4education
Plataforma
Interfaces do
desenvolvedor
IDE
Integração e
Entrega
Observabilidade
Segurança
Ambientes e
recursos
Repositório de
Código
IaC
Portal
Entrega Contínua
Orquestrador da
Plataforma
Computação
EKS
Rede
Route53
VPC
Dados
RDS
Registro de Artefatos
ECR
Integração Contínua
Github Actions
Segredos
Serviços
SQS
Métricas
Logs
Identidade
Globalcode – Open4education
Portais
Globalcode – Open4education
Portais: nova aplicação usando Fury
Globalcode – Open4education
Portais: resumo da aplicação usando Fury
https://www.youtube.com/watch?v=FNZFKelH530
Globalcode – Open4education
Fury: CLI
Globalcode – Open4education
Plataforma
Interfaces do
desenvolvedor
IDE
Integração e
Entrega
Observabilidade
Segurança
Ambientes e
recursos
Repositório de
Código
IaC
Portal
Entrega Contínua
Orquestrador da
Plataforma
Computação
EKS
Rede
Route53
VPC
Dados
RDS
Registro de Artefatos
ECR
Integração Contínua
Github Actions
Segredos
Serviços
SQS
Métricas
Logs
Identidade
Globalcode – Open4education
Plataforma
Interfaces do
desenvolvedor
IDE
Integração e
Entrega
Observabilidade
Segurança
Ambientes e
recursos
Repositório de
Código
IaC
Portal
Entrega Contínua
Orquestrador da
Plataforma
Computação
EKS
Rede
Route53
VPC
Dados
RDS
Registro de Artefatos
ECR
Integração Contínua
Github Actions
Segredos
Serviços
SQS
Métricas
Logs
Identidade
Backstage
Globalcode – Open4education
Backstage: adoção
Globalcode – Open4education
Backstage: modelos (scaffold + infra)
Globalcode – Open4education
Backstage: catálogo de serviços
Globalcode – Open4education
Backstage: documentação
Globalcode – Open4education
Backstage: plugins
Globalcode – Open4education
Backstage: plugins
Globalcode – Open4education
Plataforma
Interfaces do
desenvolvedor
IDE
Integração e
Entrega
Observabilidade
Segurança
Ambientes e
recursos
Repositório de
Código
IaC
Portal
Backstage
Entrega Contínua
Orquestrador da
Plataforma
Computação
EKS
Rede
Route53
VPC
Dados
RDS
Registro de Artefatos
ECR
Integração Contínua
Github Actions
Segredos
Serviços
SQS
Métricas
Logs
Identidade
Fonte: https://platformcon.com/talks/platform-as-code-simplifying-developer-platform-design-with-reference-architectures
Globalcode – Open4education
Cultura
Globalcode – Open4education
Topologia das Equipes: pré DevOps
Time de desenvolvimento
Time de desenvolvimento
Time de desenvolvimento
Handover
Time de infraestrutura
Ambientes
Globalcode – Open4education
Topologia das Equipes: DevOps
Time de
aplicação
Time de
aplicação
Time de
aplicação
CI/CD Pipelines
Time de infraestrutura
Ambientes
Globalcode – Open4education
Topologia das Equipes: DevOps++
Time de plataforma
Ambientes
Time de infraestrutura
Plataforma
Time de
aplicação
Time de
aplicação
Time de
aplicação
Globalcode – Open4education
TVP - Thinnest Viable Platform
“A smallest set of APIS, documentation, and tools needed to accelerate teams developing modern software services and systems” ��– Team Topologies
Globalcode – Open4education
Plataforma: desafios
Retro Compatibilidade
Patrocinador Interno
Plataforma é um Produto
Globalcode – Open4education
Plataforma: o que fazer
Contribuição dos �times de desenvolvimento
Alavancar o uso de �open source
A plataforma
como opcional
Globalcode – Open4education
Plataforma: o que NÃO fazer
Usar para implementar�governança
Não ajudar os desenvolvedores �a usarem corretamente
Não ser Self-Service
Globalcode – Open4education
Próximos passos
�
Acesse o canal do youtube
�Leia o artigo da CNCF
https://bit.ly/tdc-fln-23-resumo
Globalcode – Open4education
Arquitetura .Net��Do Zero a Plataforma Digital
https://bit.ly/tdc-fln-23-resumo
Leonardo Piedade
Arquiteto de Soluções, AWS
David Reis�Arquiteto de Soluções, AWS
Globalcode – Open4education
Domínios
Globalcode – Open4education
Modelos e documentação
Globalcode – Open4education
Observabilidade
Globalcode – Open4education
Topologia das Equipes
Time de aplicação
Time de aplicação
Time de aplicação
Time de plataforma
Globalcode – Open4education
Developer Experience
“The developer experience is primarily about minimizing the friction between having an idea, to dev/test, to release, to delivering observable business value” ��
Globalcode – Open4education
Plataforma
Interfaces do
desenvolvedor
IDE
Integração e
Entrega
Observabilidade
Segurança
Ambientes e
recursos
Repositório de
Código
IaC
Portal
Backstage
Entrega Contínua
Orquestrador da
Plataforma
Computação
EKS
Rede
Route53
VPC
Dados
RDS
Registro de Artefatos
ECR
Integração Contínua
Github Actions
Segredos
Serviços
SQS
Métricas
Logs
Identidade
Fonte: https://platformcon.com/talks/platform-as-code-simplifying-developer-platform-design-with-reference-architectures
Globalcode – Open4education
Evolução histórica
Automação DevOps
Cloud Computing
Sistemas Distribuídos
Globalcode – Open4education
ARQ. DESENVOLVIMENTO
ARQUITETURA DE OPERAÇÃO
LINGUAGENS
AMBIENTES
DEVOPS TOOLS
SCM / Fontes
Autom. Testes
CI/CD
Compilação e Empacotamento
Qualidade de Código
ARQUITETURA DE EXECUÇÃO
Gestão de Dependências
GOVERNANÇA
Docker Registry
Docker Orquestrator
Gestão de Releases
...
PLATAFORMA DE EXECUÇÃO
MONITORAMENTO
ALERTAS E LOGS
...
RECURSOS DE INFRAESTRUTURA
Provisionamento de Infraestrutura
Auto-scaling
Gestão de Recursos
...
.NET
...
Java
SAST, DAST, IAST
Gestão dos Fontes
Gestão de Processos
Gestão de
Serviços
KPIs de Negócio
Monitoramento de Hardware
Notificações
Visualização de Logs
...
...
...
...
...
INFRAESTRUTURA
Rede de Interconexão (Over Internet)
IDEs
Load Balancer
Virtualização
Firewall
IPS/IDS?
HSM?
KEY VAULT?
ANTI – DDOS / WAF
JavaScript
....
Servidores
CAMADA DE DADOS
Cache de Dados
Bases Relacionais
In-Memory Data Store
Bases Não-Relacionais
De/Para entre Sistemas
Tratamento de Erros
CAMADA DE INTEGRAÇÃO
Interoperabilidade
...
Mediação entre Protocolos
APLICAÇÕES DISTRIBUÍDAS
…
...
Gestão de Identidades
…
API Manager
ESB
Gestão de Acessos
Monitoramento das Aplicações
by Leonardo Piedade and David Reis
Plataforma - Capacidades
Lista de “-ilities”
Globalcode – Open4education
Lista de “-ilities”
Globalcode – Open4education