Atualmente fala-se muito em soluções de software em uma visão de plataforma! Porém a composição de uma plataforma contempla muitos aspectos que vão além da simples utilização deste termo, e isso inclui coisas como: DDD, arquiteturas distribuídas, arquitetura orientadas a eventos, BFF (backend for frontend), DOMA (Domain-Oriented Microservice Architecture), organização em camadas, camada de produto, camada de serviços, camada business, camada core, APIs, MVP, gerenciamento dependências, organização de times, dentre outros. Na apresentação será abordado como cada tema deste se relaciona e formas de organizar e representar estes conceitos a fim de compor de fato uma plataforma de software.
Está apresentação é a versão customizada em parceria com a Omega Energia para o TheDevConf Business 2022.
3. 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.
9. 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
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 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).
12.
13. 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!
15. 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.”
16. 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
19. 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
20.
21. 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
24. 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…
26. 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
28. 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
30. 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
32. 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
34. 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
36. 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
38. 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
40. 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
42. 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/