If you ' re a newbie you are probably struggling with the difference between config management and orchestration a bit at least I diddo you can define your servers as code 1 . this should be sql 2 . this should be apache 3 . this should be IIS if you ' re into that then you use something else to deploy your applications . In my world we use octopus deploy . net deployments so we would define the servers as code and they would ideally be told in code that they need the octopus agent and what their roles are etc . Then the developers do their work , deliver us packages and octopus ensure the application is deployed onto the existing infra . In terms of databases , the way we do it is using dacpac files and a deployment script . a dacpac file is a ' difference between test and live ' file . so at run time it will compare the schema of live and test and generate sql scripts to ' make it the same ' then run those scripts . as for how to actually keep the application running while you do that , please find out and tell me D