Continuous deployment (CD) nada mais é do que o processo de automatizar o deploy
Esse processo quando implementado na esteira de desenvolvimento do seu software vai acelerar muito o tempo entre o desenvolvimento e a publicação de novas funcionalidades/ correções / modificações do seu sistema
De forma ilustrada, adicionamos um robô entre o código de produção e o servidor. Esse robô irá ficar monitorando e cada novo commit/alteração na origem, será automaticamente repassada para o servidor repercutir também
Para entender um pouco melhor essas relações entre os códigos sendo distribuidos em diferentes locais, podemos aprofundar no modelo Client-Server
Client → quem pede/solicita Server → quem entrega/retorna
A definição de quem é client e quem é servidor sempre vai depender do contexto. Um mesmo sistema pode assumir os 2 papeis, em contextos/momentos diferentes.
No exemplo abaixo o garçom é servidor para o cliente, e é cliente para o cozinheiro.
Esse exemplo de cliente e servidor me fez lembrar daquelas aulas de física, sobre movimento e repouso. Quem tá em movimento e quem está em repouso só pode ser definido a partir de algum referencial. Ao mudar o referencial, a percepção do fenomeno também muda.
Da mesma forma acontece com quem tá requisitando e quem tá respondendo, ou melhor, quem é client e quem é server.