We have quite a few agent pools in our Azure DevOps organization, to the point that it has gotten unwieldy, so we're looking for best practices for managing agent pools. The specific question that we have at the moment is:
Should agents for multiple different operating systems be in the same agent pool, or should they be partitioned into OS-specific pools?
Microsoft partitions their hosted pools by operating system, so it would seem that going that route could be a good idea, but it would be helpful to have understanding of why before making such a decision.
One other thing to add: We have a few hundred pipelines. Recent additions of Windows agents to Linux-only pools caused a lot of random pipeline failures when the pipeline happened to run on the wrong OS. My understanding is that we could add demands to the pipelines to avoid the issue, but it would incur a significant manhour cost to update so many pipelines. If it turns out that that truly is the way to go, then we would work towards it over the long haul.