1 of 50

Arquitetura .NetDo Zero a Plataforma Digital

Leonardo Piedade

Arquiteto de Soluções, AWS

David Reis�Arquiteto de Soluções, AWS

Globalcode – Open4education

2 of 50

Como chegamos até aqui...

Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s

Globalcode – Open4education

3 of 50

Como chegamos até aqui...

Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s

Globalcode – Open4education

4 of 50

Como chegamos até aqui...

Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s

Globalcode – Open4education

5 of 50

Como chegamos até aqui...

Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s

Globalcode – Open4education

6 of 50

Como chegamos até aqui...

Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s

Globalcode – Open4education

7 of 50

Como chegamos até aqui...

Fonte: https://www.youtube.com/watch?v=zUpYEhaUJnM&t=138s

Globalcode – Open4education

8 of 50

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

9 of 50

Plataforma: benefícios

Acelera o

desenvolvimento

Aumenta a

qualidade

Otimização de Custos

Globalcode – Open4education

10 of 50

Plataforma: benefícios

Acelera o

desenvolvimento

Aumenta a

qualidade

Otimização de Custos

Globalcode – Open4education

11 of 50

Plataforma: benefícios

Acelera o

desenvolvimento

Aumenta a

qualidade

Otimização de Custos

Globalcode – Open4education

12 of 50

Plataforma: atributos

Segurança

Extensões

Self-Service

Onboarding

Developer�Experience

Ferramentas �Reutilizáveis

Globalcode – Open4education

13 of 50

Arquitetura de Exemplo

Globalcode – Open4education

14 of 50

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

15 of 50

Caminho pavimentado

  • Modelos de composições e capacidades pré-integradas para desenvolvimento rápido de aplicações
    • Um repositório de exemplo para começar (“hello world”)
    • Pipeline que permite levar o “hello world” a produção
    • Capacidades fundacionais

  • Exemplos: ArtifactHub

(a.k.a. Golden Path)

Globalcode – Open4education

16 of 50

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

17 of 50

Portais

  • Publicar documentação, catálogo de serviços e modelos de projetos

  • Publicar dados de telemetria dos sistemas e capacidades

Globalcode – Open4education

18 of 50

Portais: nova aplicação usando Fury

Globalcode – Open4education

19 of 50

Portais: resumo da aplicação usando Fury

https://www.youtube.com/watch?v=FNZFKelH530

Globalcode – Open4education

20 of 50

Fury: CLI

Globalcode – Open4education

21 of 50

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

22 of 50

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

23 of 50

Backstage: adoção

Globalcode – Open4education

24 of 50

Backstage: modelos (scaffold + infra)

Globalcode – Open4education

25 of 50

Backstage: catálogo de serviços

Globalcode – Open4education

26 of 50

Backstage: documentação

Globalcode – Open4education

27 of 50

Backstage: plugins

Globalcode – Open4education

28 of 50

Backstage: plugins

Globalcode – Open4education

29 of 50

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

30 of 50

Cultura

Globalcode – Open4education

31 of 50

Topologia das Equipes: pré DevOps

Time de desenvolvimento

Time de desenvolvimento

Time de desenvolvimento

Handover

Time de infraestrutura

Ambientes

Globalcode – Open4education

32 of 50

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

33 of 50

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

34 of 50

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

35 of 50

Plataforma: desafios

Retro Compatibilidade

Patrocinador Interno

Plataforma é um Produto

Globalcode – Open4education

36 of 50

Plataforma: o que fazer

Contribuição dos �times de desenvolvimento

Alavancar o uso de �open source

A plataforma

como opcional

Globalcode – Open4education

37 of 50

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

38 of 50

Próximos passos

Acesse o canal do youtube

Leia o artigo da CNCF

https://bit.ly/tdc-fln-23-resumo

Globalcode – Open4education

39 of 50

Arquitetura .NetDo 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

40 of 50

41 of 50

Domínios

Globalcode – Open4education

42 of 50

Modelos e documentação

  • Modelos de código e capacidades integrados para começar um projeto rapidamente

  • ArtifactHub

Globalcode – Open4education

43 of 50

Observabilidade

  • Instrumentar aplicações, obter e analisar dados de telemetria e publicá-los para os envolvidos
  • Monitoração dos custos

  • OpenTelemetry, Jaeger, Prometheus, Thanos, Fluentd, Grafana, OpenCost

Globalcode – Open4education

44 of 50

Topologia das Equipes

Time de aplicação

Time de aplicação

Time de aplicação

Time de plataforma

Globalcode – Open4education

45 of 50

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

46 of 50

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

47 of 50

Evolução histórica

Automação DevOps

Cloud Computing

Sistemas Distribuídos

Globalcode – Open4education

48 of 50

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

49 of 50

Lista de “-ilities”

Globalcode – Open4education

50 of 50

Lista de “-ilities”

Globalcode – Open4education