Um bom começo de definições. Eu acho que também ajuda a tomar uma decisão para sua estratégia se você dividir sua definição de "release" em "deploy" e "release (funcionalidade)".
Implantar (binários)
A ação da implantação binária do seu produto em um sistema (de produção).
Liberação (funcionalidade)
A ação de gerenciar a disponibilidade da funcionalidade para (grupos de) usuários.
Por quê? Você normalmente tem (várias) duas preocupações ao "liberar": 1) Bugs / compatibilidade com versões anteriores / etc 2) Verificando a validade / usabilidade dos novos recursos
Em seguida, pergunte a si mesmo, antes de escolher uma estratégia de modo Canário ou Azul / verde ou qualquer que seja o modo cinza / misto: Que preocupação (s) temos ao lançar / implantar a nova versão? E só então, se você conhece suas preocupações, escolha sua estratégia.
Além disso, é possível executar estratégias de implantação / liberação mais complexas. Por exemplo, em algumas nuvens / infra, é possível ter vários servidores de produção, e retransmitir a carga em diferentes proporções para diferentes servidores e versões do seu produto, além de monitorar a integridade antes de escalar uma versão / implantação para todos os usuários.
Sinalização de recursos
A ação de "configurar" (frio ou até quente) qual funcionalidade está (não) disponível para qual (grupo) de usuários
Se você também fizer algo como "sinalização de recurso", poderá implantar primeiro, medir a solidez do seu lançamento na compatibilidade com versões anteriores / perspectiva de bug e liberar novas funcionalidades gradualmente para diferentes usuários, ou vice-versa (reduzir ou até mesmo a funcionalidade de reversão e / ou binários ) A sinalização de recursos permite dividir a disponibilidade da funcionalidade da implantação de binários e fornece muito mais informações detalhadas sobre a tomada de decisões do que apenas "implantar / reverter"