SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
DOS MONOLITOS AOS
MICROSSERVIÇOS
Os desafios da nova plataforma de publicação da Globo.com
RAEL MAX
Globo.com / GloboCore / Admin
#PyNE2017
5º PyBR
raelmax raelmax
O que é a plataforma
de publicação?
3 gerações
Vignette CMS
Vignette
● Usado até ~2009
● Proprietário
● Java
● Uma única instância para todos os portais
● Engessado
Vignette
Vignette CMS
Jornalismo
Entretenimento
Esportes
DesenvolvedoresJornalistas
Internautas™
GloboCore
GloboCore
● Criado em 2008/2009 e ainda está em uso
● Python + Django
● Uma instância para cada portal
● Extensível
● Componentes reutilizáveis
GloboCore
matérias
enquetes
fotos
sitemaps
tipos de conteúdo
editorias
autenticação
tópicos
publicidade
menus
arquivos
permissionamento
templates
widgets e boxes
globocore
+20
Instalações
+12k
Commits
+490
Commiters (git shortlog -s -n -e)
GloboCore
CORE
Internautas™
DesenvolvedoresJornalistas
Dificuldade
● Manter os produtos atualizados quando cada
um tem seu próprio roadmap
● Distribuição de conteúdo em novos canais
● Custo para escalar
● Trocar "peças" era muito caro
Backstage
Backstage
● Criado em >2014, está em processo de rollout
● Baseado em serviços
● Componentes reutilizáveis
● Segurança, resiliência e estabilidade em uma única plataforma
● Redução de custos
Serviços
- Apis (roadie)
- Accounts
- Gateway
- Admin / V2
- Show
- Router
- Crowd
- Estrutura
GloboCore
matérias
enquetes
fotos
sitemaps
tipos de conteúdo
editorias
autenticação
tópicos
publicidade
menus
arquivos
permissionamento
templates
widgets e boxes
globocore
Login do Core > Backstage / Accounts
● Centraliza as permissões (usuários, grupos, apps…)
● Um único login para todos os produtos
● Integração com LDAP
Estratégia de migração
App django integrado ao globocore oferecendo opção de migração para o novo
serviço de login.
Votação do Core > Backstage / Crowd
● Votação do BBB e dos programas ao vivo da TV Globo
● React + Python + Golang
Estratégia de migração
App django integrado ao globocore que apontava diretamente para o novo serviço
de login.
Fotos do Core > Backstage Admin + Apis
● Galerias, matérias, edição das homes…
● Api para upload de fotos em massa (BBB 15)
Estratégia de migração
- App django integrado ao globocore que "roubava" o comportamento dos
botões de inserção de fotos
- Feature toggle
Matéria do Core > Backstage Admin + Estrutura
● Megadraft ,,/
● Multicanal
● Dados estruturados
Estratégia de migração
- Editores mais experientes em editorias menores;
- A nova matéria usa as apis do Core para buscar o contexto do conteúdo
- Criamos as apis de contexto dentro do Backstage e criamos um serviço que
"cola" todas elas.
Projetos
- Thumbor - http://thumbor.org/
- MegaDraft - http://megadraft.io/
- Tsuru - https://tsuru.io/
- Pluct - https://github.com/globocom/pluct
glo.bo/talentos
opensource.globo.com
Obrigado!
Perguntas?

Mais conteúdo relacionado

Mais procurados

Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Renato Groff
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Renato Groff
 
Usando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipeUsando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipeJuancito Arias
 
Criando apps nativos com react e javascript. Hands-on
Criando apps nativos com react e javascript. Hands-onCriando apps nativos com react e javascript. Hands-on
Criando apps nativos com react e javascript. Hands-onRodolfo Bueno
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubBruno Orlandi
 
Gitlab flow solo (minimo)
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)viniciusban
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....Renato Groff
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
Tech lunch: highlights Google Cloud Platform Live 2014
Tech lunch: highlights Google Cloud Platform Live 2014Tech lunch: highlights Google Cloud Platform Live 2014
Tech lunch: highlights Google Cloud Platform Live 2014Francis Fernandes da Luz
 
Git github tortoise git
Git github tortoise gitGit github tortoise git
Git github tortoise gitmaxrosan
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comandoRafael Gomes
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Renato Groff
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
 
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018Renato Groff
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Renato Groff
 

Mais procurados (20)

Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
 
Usando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipeUsando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipe
 
Criando apps nativos com react e javascript. Hands-on
Criando apps nativos com react e javascript. Hands-onCriando apps nativos com react e javascript. Hands-on
Criando apps nativos com react e javascript. Hands-on
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHub
 
Gitlab flow solo (minimo)
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Tech lunch: highlights Google Cloud Platform Live 2014
Tech lunch: highlights Google Cloud Platform Live 2014Tech lunch: highlights Google Cloud Platform Live 2014
Tech lunch: highlights Google Cloud Platform Live 2014
 
Git github tortoise git
Git github tortoise gitGit github tortoise git
Git github tortoise git
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Introdução GWT
Introdução GWTIntrodução GWT
Introdução GWT
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comando
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
 
Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 

Semelhante a Dos monolitos aos microsserviços - PythonBrasil13

MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
 
Estado arte i3geo_marco_2014
Estado arte i3geo_marco_2014Estado arte i3geo_marco_2014
Estado arte i3geo_marco_2014Edmar Moretti
 
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...Daniel Viveiros
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Controle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de softwareControle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de softwareGilmar Pupo
 
Do marketplace ao WordPress - WordCamp BH 2015
Do marketplace ao WordPress -  WordCamp BH 2015Do marketplace ao WordPress -  WordCamp BH 2015
Do marketplace ao WordPress - WordCamp BH 2015Fellyph Cintra
 
Django para portais de alta visibilidade. tdc 2013
Django para portais de alta visibilidade.   tdc 2013Django para portais de alta visibilidade.   tdc 2013
Django para portais de alta visibilidade. tdc 2013Bruno Rocha
 
Desenvolvimento Web Parte I
Desenvolvimento Web Parte IDesenvolvimento Web Parte I
Desenvolvimento Web Parte Iigorpimentel
 
2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...
2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...
2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...George Porto Ferreira
 
Ai1415 ad-tp2-g4-a
Ai1415 ad-tp2-g4-aAi1415 ad-tp2-g4-a
Ai1415 ad-tp2-g4-amfsmsl
 
Artigo coloquio 2013
Artigo coloquio 2013Artigo coloquio 2013
Artigo coloquio 2013testes1
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop MagentoThiago Verly
 

Semelhante a Dos monolitos aos microsserviços - PythonBrasil13 (20)

MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
As Novidades do I3geo
As Novidades do I3geoAs Novidades do I3geo
As Novidades do I3geo
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
 
Estado arte i3geo_marco_2014
Estado arte i3geo_marco_2014Estado arte i3geo_marco_2014
Estado arte i3geo_marco_2014
 
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mu...
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Controle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de softwareControle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de software
 
Do marketplace ao WordPress - WordCamp BH 2015
Do marketplace ao WordPress -  WordCamp BH 2015Do marketplace ao WordPress -  WordCamp BH 2015
Do marketplace ao WordPress - WordCamp BH 2015
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
Django para portais de alta visibilidade. tdc 2013
Django para portais de alta visibilidade.   tdc 2013Django para portais de alta visibilidade.   tdc 2013
Django para portais de alta visibilidade. tdc 2013
 
Desenvolvimento Web Parte I
Desenvolvimento Web Parte IDesenvolvimento Web Parte I
Desenvolvimento Web Parte I
 
2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...
2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...
2018 - Ferramentas Livres para Produção e Disseminação de Dados Geoespaciais ...
 
Wordpress
WordpressWordpress
Wordpress
 
Ai1415 ad-tp2-g4-a
Ai1415 ad-tp2-g4-aAi1415 ad-tp2-g4-a
Ai1415 ad-tp2-g4-a
 
Artigo coloquio 2013
Artigo coloquio 2013Artigo coloquio 2013
Artigo coloquio 2013
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop Magento
 
Curso de Grails
Curso de GrailsCurso de Grails
Curso de Grails
 
Canivete python
Canivete pythonCanivete python
Canivete python
 

Dos monolitos aos microsserviços - PythonBrasil13