A cultura de releases de software da Shopify
(engineering.shopify.com)A Shopify define a cultura de releases como "a soma das crenças e ações de todos os membros"
"Fazemos com que shipping não seja algo que as pessoas não queiram fazer, mas sim algo com clima de celebração"
Como a Shopify mede sua cultura de releases
-
Passivamente: pesquisa de satisfação dos desenvolvedores (a cada 2 anos), canais no Slack
-
Ativamente: dogfooding, equipe de suporte interno, pesquisa de UX
Processo de release da Shopify
- Pipeline de release: PR → CI/Merge (Merge Queue) → Canary → Production
-
Não há release manager. O desenvolvedor responsável pelo PR cuida de todo o processo até chegar à produção
-
Não existe janela específica, e o processo pode ser feito a qualquer momento com o comando
/shipit -
Em caso de erro/falha, usa-se
/shipit --emergencypara um release em via rápida -
Automatizar tudo o que for possível
1 comentários
É mais fácil entender a Merge Queue se você ler primeiro o texto publicado no ano passado.
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…
A Shopify adota desenvolvimento baseado em trunk, faz merge de cerca de 400 commits por dia, e o site é alterado cerca de 40 vezes por dia.
Os deploys são feitos por meio do Shipit Engine, que foi lançado como open source: https://github.com/Shopify/shipit-engine
Princípios básicos
A branch master está sempre verde: é preciso passar no CI
A master deve estar próxima de Production
Merges urgentes precisam poder ser processados rapidamente