O documento descreve como o arquiteto de software Thiago Santos transformou a empresa Buscapé em um ano, mapeando seus sistemas, fluxos de informação e problemas, e implementando novas arquiteturas de microserviços e práticas de DevOps para torná-la mais ágil e independente.
3. 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
7. 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
8. 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
10. 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
14. 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
17. 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
18. 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
19. 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
21. 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
22. 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
23. 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
24. 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
26. 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
28. 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
29. 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