2. +40
produtos
4
produtos
50
repositórios
55%
faturamento
A Locaweb possui
mais de 40 produtos
Atender inicialmente
os produtos de
hospedagem
(site, email, domínio e
banco de dados)
Hospedagem é
responsável por 55%
do faturamento da
empresa e é o produto
mais antigo
Só hospedagem
possui mais de 50
repositórios
Cenário
4. Diversidade grande de
linguagens de
programação e
linguagens legadas
Aplicações pouco
atualizadas, versões
antigas de libs
9 camadas de
aplicações
Muitos paineis
diferentes de operação
5. Diversidade grande de
linguagens de
programação e
linguagens legadas
Aplicações pouco
atualizadas, versões
antigas de libs
9 camadas de
aplicações
Muitos paineis
diferentes de operação
6. Diversidade grande de
linguagens de
programação e
linguagens legadas
Aplicações pouco
atualizadas, versões
antigas de libs
9 camadas de
aplicações
Muitos paineis
diferentes de operação
7. Diversidade grande de
linguagens de
programação e
linguagens legadas
Aplicações pouco
atualizadas, versões
antigas de libs
9 camadas de
aplicações
Muitos paineis
diferentes de operação
8. Alto nível de
acoplamento com
banco de dados
Modelo de dados
confuso e
desestruturado
O design das aplicações
não acompanhou a
diversificação do
modelo de negócio
Fácil acesso para
intervenções manuais
9. Alto nível de
acoplamento com
banco de dados
Fácil acesso para
intervenções manuais
Modelo de dados
confuso e
desestruturado
O design das aplicações
não acompanhou a
diversificação do
modelo de negócio
10. Alto nível de
acoplamento com
banco de dados
Modelo de dados
confuso e
desestruturado
O design das aplicações
não acompanhou a
diversificação do
modelo de negócio
Fácil acesso para
intervenções manuais
11. Alto nível de
acoplamento com
banco de dados
Modelo de dados
confuso e
desestruturado
O design das aplicações
não acompanhou a
diversificação do
modelo de negócio
Fácil acesso para
intervenções manuais
12. Lógica de negócio
duplicada em
aplicações diferentes
Chamadas assíncronas
encadeadas
Inconsistência entre
camadas física e lógica
Muito caro criar
produtos novos
13. Lógica de negócio
duplicada em
aplicações diferentes
Chamadas assíncronas
encadeadas
Inconsistência entre
camadas física e lógica
Muito caro criar
produtos novos
14. Lógica de negócio
duplicada em
aplicações diferentes
Chamadas assíncronas
encadeadas
Inconsistência entre
camadas física e lógica
Muito caro criar
produtos novos
15. Lógica de negócio
duplicada em
aplicações diferentes
Chamadas assíncronas
encadeadas
Inconsistência entre
camadas física e lógica
Muito caro criar
produtos novos
22. sync newold
- Não utilizamos `sidekiq`
- Gem `concurrent-ruby`
- Leitura híbrida
Sincronização do legado com o novo
01
02
03
https://github.com/mperham/sidekiq/wiki/FAQ#how-can-i-process-a-certain-queue-in-serial
"You can't, by design."
23. Feature toggle
Utilizamos essa técnica para controlar os
fluxos que vão para o legado ou para o
sistema novo. Fazemos uso extensivo de
regexp para escrever as regras de controle.
01 Toggle Server
É uma aplicação que
persiste as regras
para cada feature
02 Shadow deploy
Tornou mais segura
a forma que fazemos
deploy
03 Toggle Tracker
Para persistirmos o
estado da primeira
vez que toggle foi
utilizado
27. API’s concisas
Poucos endpoints e um
mesmo fluxo para todas
ações Métricas e
Monitoramento
InfluxDB + Grafana
Responsabilidades
bem definidas
arquitetura, aplicações e
dependências
Agile/Remoto
Refining,
documentação, code
review (open source)
28.
29. Resultados
Mesmo com o projeto ainda não finalizado
conquistamos vários resultados positivos.
Banco de dados
Os tempos de provisionamento
pularam de até 30 min para
menos de 2 segundos
MVP em 3 meses
Adicionamos novos produtos ao
novo provisionamento em tempo
recorde