Continuous deployment (CD) nada mais é do que o processo de automatizar o deploy

image.png

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

image.png

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

image.png

Para entender um pouco melhor essas relações entre os códigos sendo distribuidos em diferentes locais, podemos aprofundar no modelo Client-Server

image.png

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.

image.png

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.