There are many ways of doing them. Chef, Puppet and CFEngine are bandied arround. These are frameworks to ensure consistency of servers and build processes. They use a "pull" model, ie the client runs an agent and pulls data periodically from the server - apparently a pull model is more scalalble then a push model. These frameworks require quite a bit of work, and are not something you can trivially "bolt on" to a deployment framework, it really needs to be designed with them in mind. From there you go onto even more complex frameworks like Kubernetes.
Depending on your specific needs and system, you can also look at docker (whereby you create an "image" which can be run on multiple systems - effectively a distributable light-weight virtualiztion system - I know that Amazon has support for running Docker systems, and I would expect Azure does to.
There are lots of other ways of skinning this cat as well, including writing scripting files and systems proprietary to your Cloud Provider.