SlideShare a Scribd company logo
1 of 30
Download to read offline
Globalcode – Open4education
Trilha – Arquitetura
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Thiago Santos de Freitas - Arquiteto de Software
Globalcode – Open4education
Apresentação
Arquiteto de Software no
Buscapé Company
Bacharel em Ciências da
Computação - FEI
Nerd fanático por games,
séries e livros.
Globalcode – Open4education
O que é o Buscapé
Atua em diversas áreas do processo de compra
Trabalha com a maioria dos e-commerces
brasileiros
Fundado a quase 20 anos
Diversos produtos dentro do grupo
Globalcode – Open4education
Contexto
Negócio
Crescimento rápido
Mudança no mercado de e-commerce
Compra de algumas empresas
Tecnologia
Visão conservadora
Mudanças constantes de regras de negócio
Junção de tecnologias
Globalcode – Open4education
Problemas
Atualização de dados muito lenta
Complexidade para alterar o site
Servidores superdimensionados para atender a
momentos de pico
Muitos bugs em produção
Globalcode – Open4education
Começando a mudança
Globalcode – Open4education
Mapeamento do ambiente
Levantamento de todos os sistemas, bancos e
servidores
Identificar e eliminar sistemas sem utilização
Agrupar sub-sistemas
Mapear as equipes relacionadas com cada sistema
Mostrar apenas os bancos de dados principais
Globalcode – Open4education
Fluxo de informação
Entender os pontos principais de entrada de
informação
Onde a informação é enriquecida
Como a informação é disponibilizada para o
usuário
Globalcode – Open4education
Globalcode – Open4education
O novo conceito
Silos
Agrupamento lógico de sistemas
Objetivos bem definidos
Premissas de comportamento
Forma de trabalho
Elaboração de boas práticas para criação de sistemas
Definição de ação dos desenvolvedores
Colaboração entre infra, QA e desenvolvimento
Globalcode – Open4education
Globalcode – Open4education
O começo da mudança
Alterar o motor de busca
Reescrever o front
Proteger o banco de dados
Remodelar a infraestrutura
Globalcode – Open4education
Projetos
Globalcode – Open4education
Corporate e User
Ambientes de microserviços
User
Aplicações independentes
Tempo de resposta < 1 segundo
“Pode” falhar
Corporate
Serviços de consulta e utilitários
Tempo de resposta < 10 segundos
Seguro
Globalcode – Open4education
Corporate e User
Cache com Redis Cluster
Netflix OSS
Eureka
Zuul
Hystrix
Spring Cloud e Boot
Data
Actuator
Globalcode – Open4education
Globalcode – Open4education
Search
A primeira aplicação da empresa
Múltiplas responsabilidades
Otimizada para o modelo de busca atual
Feita em C
Armazenamento em memória
Alimentada por arquivos posicionais
Lê dados de múltiplos bancos
Globalcode – Open4education
Search
API
Escalável e independente
Documentação com 

Swagger
Elastic Search
Índices independentes
Clusterização
Indexer
Atualização incremental
Controla a limpeza dos 

índices
Globalcode – Open4education
Portal
Múltiplas responsabilidades
Conexão com múltiplas bases de dados
Altamente acoplada à busca
Múltiplas equipes atuam no sistema
Não possui testes unitários
Template em XSLT 1
Java 6
Tomcat 6
Globalcode – Open4education
Portal
Responsabilidade única
Sistema escrito em 

Node.js e React
Sem alto acoplamento
Fallback para todas 

as integrações
Páginas customizadas 

em tempo de execução
Globalcode – Open4education
Devops
Ambiente híbrido
Criação de servidor manual
Scaling manual
Processo de deploy despadronizado
Falta de uma comunicação de mudanças
Deploys sem garantia de funcionamento
Globalcode – Open4education
Devops
Integração Contínua
Git flow
Jenkins com Pipeline
Obrigatoriedade de testes
Validação de código com Sonarqube
Padronização da configuração de servidores
Conceito de “ambiente de aplicação”
Centralização de logs com Graylog
Globalcode – Open4education
Devops
Comunicação
Utilização em massa do Slack
Pipeline avisa interessados sobre deploy
Pipeline avisa time sobre validações e testes
Automação da criação de servidores
Utilização de Ansible para configuração do servidor
Utilização de Terraform e Packer para provisionamento de
ambiente
Globalcode – Open4education
Iniciativas do time
Schema
Atributos de serviços baseados no schema.org para garantir
padronização
Contrato
Todo desenvolvimento de serviços baseado em contratos e mocks
Testes
Desenvolvedores participando de toda a cadeia de teste
Métricas
Criação de métricas dentro das aplicações para medir o negócio
Globalcode – Open4education
O arquiteto no Buscapé
Globalcode – Open4education
Evolução do conceito
Entrevista com os líderes, gerentes e produto
Apresentação para a diretoria

Mas e os desenvolvedores?
Eles conhecem os pequenos problemas
Eles conhecem o dia-a-dia
Globalcode – Open4education
Comprometimento
As mudanças são mais do que técnicas, são
culturais
Para haver mudança, os desenvolvedores devem
estar comprometidos
Eles devem acreditar
Globalcode – Open4education
O que aprendi
O arquiteto tem a visão macro, mas precisa da visão
micro do time para realmente fazer algo grande
O arquiteto deve ser um agente ativo na evolução do
time
O arquiteto deve contribuir para a ligação entre produto
e tecnologia
Os times devem ser livres e independentes, mas o
arquiteto é a cola entre os times
Globalcode – Open4education
Próximos passos
Essas mudanças são apenas o começo
Continuar a renovação dos sistemas
Melhorar o nosso devops
Interagir com a comunidade
Evoluir nossa área de engenharia
Globalcode – Open4education
Obrigado
Thiago Santos de Freitas thiago.freitas@buscapecompany.com

More Related Content

What's hot

DataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigDataDataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigDataEduardo Hahn
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIAlefe Variani
 
Passo a Passo para implementar DataOps em projetos de Big Data
Passo a Passo para implementar DataOps em projetos de Big DataPasso a Passo para implementar DataOps em projetos de Big Data
Passo a Passo para implementar DataOps em projetos de Big DataEduardo Hahn
 
Grafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCPGrafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCPRobert Silva
 
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia IDevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia IAlefe Variani
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começarAdriano Tavares
 
Xperience Superlógica 2018 - Infraestrutura Ágil
Xperience Superlógica 2018 - Infraestrutura ÁgilXperience Superlógica 2018 - Infraestrutura Ágil
Xperience Superlógica 2018 - Infraestrutura ÁgilGabriela Dias
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOpsTenchi Security
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014Rodrigo Campos
 
Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.James Moreira
 
Introdução Metodologias áGeis Para Desenvolvimento De Software
Introdução  Metodologias áGeis Para Desenvolvimento De SoftwareIntrodução  Metodologias áGeis Para Desenvolvimento De Software
Introdução Metodologias áGeis Para Desenvolvimento De SoftwareMarcos Cardoso
 
Introdução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e KubernetesIntrodução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e KubernetesTenchi Security
 

What's hot (13)

DataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigDataDataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigData
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
 
Passo a Passo para implementar DataOps em projetos de Big Data
Passo a Passo para implementar DataOps em projetos de Big DataPasso a Passo para implementar DataOps em projetos de Big Data
Passo a Passo para implementar DataOps em projetos de Big Data
 
Grafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCPGrafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCP
 
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia IDevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
 
Automatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOpsAutomatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOps
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
Xperience Superlógica 2018 - Infraestrutura Ágil
Xperience Superlógica 2018 - Infraestrutura ÁgilXperience Superlógica 2018 - Infraestrutura Ágil
Xperience Superlógica 2018 - Infraestrutura Ágil
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOps
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.Scrum - Profº James Moreira Jr.
Scrum - Profº James Moreira Jr.
 
Introdução Metodologias áGeis Para Desenvolvimento De Software
Introdução  Metodologias áGeis Para Desenvolvimento De SoftwareIntrodução  Metodologias áGeis Para Desenvolvimento De Software
Introdução Metodologias áGeis Para Desenvolvimento De Software
 
Introdução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e KubernetesIntrodução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e Kubernetes
 

Similar to Buscapé 2.0 - Como mudamos uma empresa em 1 ano

Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsRenato Groff
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataEduardo Hahn
 
TDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataTDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataEduardo Hahn
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingRenato Groff
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...Allan Ferreira
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsAdriano Bertucci
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimentoledsifes
 
MIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoCaio Candido
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
 
TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!
TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!
TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!tdc-globalcode
 
TDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraTDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraRafael Chaves
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Felipe Nascimento
 

Similar to Buscapé 2.0 - Como mudamos uma empresa em 1 ano (20)

Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
 
TDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataTDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big Data
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed Tracing
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
 
MIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como Código
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
TDC2018 - Organizando o caos
TDC2018 - Organizando o caosTDC2018 - Organizando o caos
TDC2018 - Organizando o caos
 
TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!
TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!
TDC2018FLN | Trilha AN - Priorizaco de Backlog - Organizando o Caos!
 
TDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraTDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestra
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 

Buscapé 2.0 - Como mudamos uma empresa em 1 ano