Compondo uma
plataforma de software
Roteiro
de hoje!
1 Evolução do software.
2 Software em um modelo de plataforma.
3 Exemplos de plataformas no mercado.
4 Outros temas técnicos em uma plataforma.
Evolução do software
1
5
A MUITO
TEMPO
ATRÁS...
SOFTWARE
DE CAIXINHA
80’s
Software rodando na
máquina do usuário
90’s
Software rodando
usando a rede privada
2000’s
Software (web) rodando
na rede da empresa
e com acesso externo
www.minhaempresa.com/sistema
2020+
SaaS
SOFTWARE
COMO SERVIÇO
2010’s
Software rodando
na CLOUD com acesso em
qualquer lugar do mundo
www.sistema.com/minhaempresa
Software
em um modelo de plataforma.
2
Alguns tipos de plataforma…
PLATAFORMA DE
GOVERNO
Conjunto formal de objetivos principais
que são apoiados por um partido
político ou candidato.
PLATAFORMA
AUTOMOBILÍSTICA
Modelo modular que permite a
utilização de uma grande parte de
componentes comuns, mesmo em
veículos de segmentos diferentes
PLATAFORMA DE
SOFTWARE
Conjunto de serviços (software) que
podem ser usados para alavancar o
reuso e o rápido desenvolvimento de
novos produtos
O que é o “modelo de plataforma”?
Construir uma base de coisas reutilizáveis
que facilite a criação de novas coisas
de forma rápida através do reuso da base existente.
No mundo do software…
Uma plataforma começa a existir
quando há vários produtos e serviços
integrados entre eles,
reaproveitando um conjunto comum de
serviços (softwares).
SaaS
Software as a Service
➔ O software não está no cliente!
➔ Todos acessam o software que está
nos servidores da empresa que provê o
produto.
➔ Os clientes ganham uma credencial de
acesso
➔ Os clientes só precisam de um acesso
a internet.
➔ O cliente paga pelo uso do software!
Todo software SaaS é uma plataforma?
Não :-)
Definição da Motorola sobre plataforma
“Plataforma é um conjunto de ativos que podem ser usados para
alavancar o reuso e o rápido desenvolvimento de novos produtos.
No mínimo, ela define o ambiente operacional, a arquitetura em alto nível
de todos os produtos desenvolvidos com base nesta plataforma, e um
conjunto de políticas de desenvolvimento para aperfeiçoar a plataforma e
o desenvolvimento de produtos.”
Software em modelo de plataforma
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
SERVICES
PLATFORM
PRODUCTS
PLATFORM
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
Exemplos
de plataformas no mercado.
3
Como deve ser a plataforma do Google
PRODUTOS DO GOOGLE
BUSINESS
BASE / CORE
SERVICES
PLATFORM
PRODUCTS
PLATFORM
INFRA
PRODUTOS DE OUTRAS EMPRESAS
???
Google Account File Storage
Google Mail Google Drive Google Photos
Como deve ser a plataforma da Atlassian
PRODUTOS DA ATLASSIAN
BUSINESS
BASE / CORE
SERVICES
PLATFORM
PRODUCTS
PLATFORM
INFRA
PRODUTOS DE OUTRAS EMPRESAS
???
Atlassian Account
Wiki Issues
Outros temas técnicos
em uma plataforma.
4
Arquitetura de
Microservices
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
Microservices concentrados na camada Business e Base/Core
SERVICES
PLATFORM
PRODUCTS
PLATFORM
Microservice A Microservice B
Microservice C Microservices…
Microservice E Microservices…
APIs
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
A camada de serviços expõe APIs para a camada de produtos.
SERVICES
PLATFORM
PRODUCTS
PLATFORM
API’s
API
Gateway/Manager
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
As APIs da camada de serviços
são expostas via API Gateway/Manager.
SERVICES
PLATFORM
PRODUCTS
PLATFORM
API’s
API Gateway/Manager
Arquitetura
Orientada a
Eventos
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
Eventos são publicados e consumidos
internamente na camada de serviços.
SERVICES
PLATFORM
PRODUCTS
PLATFORM
Barramento
de eventos
WebHooks
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
Externamente, eventos são publicados via WebHooks.
SERVICES
PLATFORM
PRODUCTS
PLATFORM
Barramento
de enventos
Webhooks
BFF
(Backend for
Frontend)
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
BFF devem estar na camada de produto, acessando a camada de
serviços.
SERVICES
PLATFORM
PRODUCTS
PLATFORM
BFF BFF BFF BFF
DDD
(Domain Driven
Design)
Microservices focados nos domínios e contextos.
APIs e eventos focados nos contextos e entidades.
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
SERVICES
PLATFORM
PRODUCTS
PLATFORM
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
Eventos
API’s
Domínio A
Contexto A
Domínio B
Contexto B Contexto C Contexto D
Organização
do times
Times especializados nas camadas,
domínios e contextos da plataforma!
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
SERVICES
PLATFORM
PRODUCTS
PLATFORM
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
PRODUTO D
API’s
Domínio A
Contexto A
Domínio B
Contexto B Contexto C Contexto D
Time
A
Time
B
Time
C
Time
D
Time
E
Time
F
Time
G
MVP
(Minimum Viable
Product)
PRODUTOS DA MINHA EMPRESA
BUSINESS
BASE / CORE
PRODUTO A PRODUTO B PRODUTO C
INFRA
PRODUTOS DE OUTRAS EMPRESAS
PRODUTO A PRODUTO B PRODUTO C
MVPs, nascem na camada de produto,
e quando consolidados geram serviços na camada de serviços.
SERVICES
PLATFORM
PRODUCTS
PLATFORM
MVP
PRODUTO
Compondo a plataforma
da Omega!
Isaac Felisberto de Souza
Guia Dev
isaacsouza@guia.dev
linkedin.com/in/isaacfsouza
www.guia.dev
Guia Dev (linkedin.com/company/guiadev)
@guia_dev
Siga! e compartilhe ;-)
Hélio Costa
Omega
helio.costa@omegaenergia.com.br
linkedin.com/in/helio-cordeiro-costa
Paulo Albuquerque
Omega
paulo.albuquerque@omegaenergia.com.br
linkedin.com/in/pauloabq/

Compondo uma plataforma de software

  • 2.
  • 3.
    Roteiro de hoje! 1 Evoluçãodo software. 2 Software em um modelo de plataforma. 3 Exemplos de plataformas no mercado. 4 Outros temas técnicos em uma plataforma.
  • 4.
  • 5.
    5 A MUITO TEMPO ATRÁS... SOFTWARE DE CAIXINHA 80’s Softwarerodando na máquina do usuário 90’s Software rodando usando a rede privada
  • 6.
    2000’s Software (web) rodando narede da empresa e com acesso externo www.minhaempresa.com/sistema
  • 7.
    2020+ SaaS SOFTWARE COMO SERVIÇO 2010’s Software rodando naCLOUD com acesso em qualquer lugar do mundo www.sistema.com/minhaempresa
  • 8.
    Software em um modelode plataforma. 2
  • 9.
    Alguns tipos deplataforma… PLATAFORMA DE GOVERNO Conjunto formal de objetivos principais que são apoiados por um partido político ou candidato. PLATAFORMA AUTOMOBILÍSTICA Modelo modular que permite a utilização de uma grande parte de componentes comuns, mesmo em veículos de segmentos diferentes PLATAFORMA DE SOFTWARE Conjunto de serviços (software) que podem ser usados para alavancar o reuso e o rápido desenvolvimento de novos produtos
  • 10.
    O que éo “modelo de plataforma”? Construir uma base de coisas reutilizáveis que facilite a criação de novas coisas de forma rápida através do reuso da base existente.
  • 11.
    No mundo dosoftware… Uma plataforma começa a existir quando há vários produtos e serviços integrados entre eles, reaproveitando um conjunto comum de serviços (softwares).
  • 13.
    SaaS Software as aService ➔ O software não está no cliente! ➔ Todos acessam o software que está nos servidores da empresa que provê o produto. ➔ Os clientes ganham uma credencial de acesso ➔ Os clientes só precisam de um acesso a internet. ➔ O cliente paga pelo uso do software!
  • 14.
    Todo software SaaSé uma plataforma? Não :-)
  • 15.
    Definição da Motorolasobre plataforma “Plataforma é um conjunto de ativos que podem ser usados para alavancar o reuso e o rápido desenvolvimento de novos produtos. No mínimo, ela define o ambiente operacional, a arquitetura em alto nível de todos os produtos desenvolvidos com base nesta plataforma, e um conjunto de políticas de desenvolvimento para aperfeiçoar a plataforma e o desenvolvimento de produtos.”
  • 16.
    Software em modelode plataforma PRODUTOS DA MINHA EMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C SERVICES PLATFORM PRODUCTS PLATFORM INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D
  • 17.
  • 19.
    Como deve sera plataforma do Google PRODUTOS DO GOOGLE BUSINESS BASE / CORE SERVICES PLATFORM PRODUCTS PLATFORM INFRA PRODUTOS DE OUTRAS EMPRESAS ??? Google Account File Storage Google Mail Google Drive Google Photos
  • 21.
    Como deve sera plataforma da Atlassian PRODUTOS DA ATLASSIAN BUSINESS BASE / CORE SERVICES PLATFORM PRODUCTS PLATFORM INFRA PRODUTOS DE OUTRAS EMPRESAS ??? Atlassian Account Wiki Issues
  • 22.
    Outros temas técnicos emuma plataforma. 4
  • 23.
  • 24.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D Microservices concentrados na camada Business e Base/Core SERVICES PLATFORM PRODUCTS PLATFORM Microservice A Microservice B Microservice C Microservices… Microservice E Microservices…
  • 25.
  • 26.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D A camada de serviços expõe APIs para a camada de produtos. SERVICES PLATFORM PRODUCTS PLATFORM API’s
  • 27.
  • 28.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D As APIs da camada de serviços são expostas via API Gateway/Manager. SERVICES PLATFORM PRODUCTS PLATFORM API’s API Gateway/Manager
  • 29.
  • 30.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D Eventos são publicados e consumidos internamente na camada de serviços. SERVICES PLATFORM PRODUCTS PLATFORM Barramento de eventos
  • 31.
  • 32.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D Externamente, eventos são publicados via WebHooks. SERVICES PLATFORM PRODUCTS PLATFORM Barramento de enventos Webhooks
  • 33.
  • 34.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D BFF devem estar na camada de produto, acessando a camada de serviços. SERVICES PLATFORM PRODUCTS PLATFORM BFF BFF BFF BFF
  • 35.
  • 36.
    Microservices focados nosdomínios e contextos. APIs e eventos focados nos contextos e entidades. PRODUTOS DA MINHA EMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C SERVICES PLATFORM PRODUCTS PLATFORM INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D Eventos API’s Domínio A Contexto A Domínio B Contexto B Contexto C Contexto D
  • 37.
  • 38.
    Times especializados nascamadas, domínios e contextos da plataforma! PRODUTOS DA MINHA EMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C SERVICES PLATFORM PRODUCTS PLATFORM INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C PRODUTO D API’s Domínio A Contexto A Domínio B Contexto B Contexto C Contexto D Time A Time B Time C Time D Time E Time F Time G
  • 39.
  • 40.
    PRODUTOS DA MINHAEMPRESA BUSINESS BASE / CORE PRODUTO A PRODUTO B PRODUTO C INFRA PRODUTOS DE OUTRAS EMPRESAS PRODUTO A PRODUTO B PRODUTO C MVPs, nascem na camada de produto, e quando consolidados geram serviços na camada de serviços. SERVICES PLATFORM PRODUCTS PLATFORM MVP PRODUTO
  • 41.
  • 42.
    Isaac Felisberto deSouza Guia Dev isaacsouza@guia.dev linkedin.com/in/isaacfsouza www.guia.dev Guia Dev (linkedin.com/company/guiadev) @guia_dev Siga! e compartilhe ;-) Hélio Costa Omega helio.costa@omegaenergia.com.br linkedin.com/in/helio-cordeiro-costa Paulo Albuquerque Omega paulo.albuquerque@omegaenergia.com.br linkedin.com/in/pauloabq/