Есть ли аналогичный способ развертывания множества экземпляров серверов и серверных программ (а также сетевых настроек) с помощью одного или нескольких файлов документов?
Я слышал, что есть похожие, например Chef или CloudFormation, но я не уверен, есть ли они.
Если он есть, могу ли я использовать его непосредственно на AWS или Azure?
Есть много способов сделать это. Повсюду крутятся Chef, Puppet и CFEngine. Это структуры для обеспечения согласованности серверов и процессов сборки. Они используют модель «вытягивания», то есть клиент запускает агент и периодически извлекает данные с сервера - очевидно, модель вытягивания более масштабируема, чем модель выталкивания. Эти фреймворки требуют довольно много работы и не являются чем-то, что можно тривиально «прикрутить» к фреймворку развертывания, его действительно нужно разрабатывать с учетом них. Оттуда вы переходите к еще более сложным фреймворкам, таким как Kubernetes.
В зависимости от ваших конкретных потребностей и системы вы также можете посмотреть на docker (с помощью которого вы создаете «образ», который можно запускать в нескольких системах - фактически распространяемая облегченная система виртуализации - я знаю, что Amazon поддерживает запуск систем Docker, и я ожидал, что Azure сделает это.
Есть много других способов снять шкуру с этой кошки, в том числе написать файлы сценариев и системы, проприетарные для вашего облачного провайдера.