My existing Azure cloud service is unable to use the newish D-series VMs. I complained to Microsoft and they explained that because my cloud service had been created a few years ago, it was deployed on an old "cluster", and that I need to recreate my cloud service to be on a new cluster to get modern VMs.
This will involve reconfiguring DNS and will force me to put the service in a read-only mode for the duration of the swap to ensure data consistency. Normally I deploy upgrades using VIP Swap.
Is this just one of the costs of using Azure? Is there any way around this? Should I plan on recreating my service periodically?
Create another cloud service and launch desired VM from D family. Configure Azure Traffic Manager for failover load balancing. Take down the primary cloud service and the requests will failover to the new stack on other cloud services.
The difficulty of implementation depends on what kind of application/database is being used.
More about traffic manager here
Regarding your other question, you may not have to change cloud services often. It seems that this cloud service was really old and microsoft couldn't support new types of VMs on that cluster. I haven't encountered a situation where a cloud service wouldn't support D series VM recently.