Azure Cloud Services
is a classic Azure resource, originally introduced by Azure back in 2008. This technology was designed to support scalable web and worker role applications running on Windows. While Azure has been taking steps to move forward with its newer Azure VM Scale Sets
, Classic Cloud Services still remains a popular deployment choice for many legacy environments in Azure.
When running Cloud Services, Microsoft recommends at least 2 active instances in each role, so that if one instance is being rebooted or malfunctioning, the other instance remains operational. This is why, auto-rebooting of instances is a vital strategy to heal memory leaks, connection leaks, and other similar issues.
In this case study, we’ll discuss a few very simple approaches to keep your Azure Cloud Roles stable proactively and reactively. CloudMonix is a tool that helps to ensure stability for Azure Cloud Roles as well as for its successor Azure VM Scale Sets. We’ll also discuss methods to ensure that reboots do not cause issues or outages.
Proactive stability – DAILY SCHEDULED REBOOTS
Probably the simplest and most effective method to keep your applications stable is to reboot your cloud role instances on a regular basis. No matter how little memory leaks your application has, the longer your server is running without reboots, the more issues and performance degradations creep up. Memory and disk fragmentation, poorly closed connections, obsolete data in a cache, large temporary folders, and of course memory leaks can cause your application’s performance to slowly degrade over time. Unfortunately, very few organizations reboot their Cloud Role instances on a regular basis, largely because it is not trivial to do this in an automated fashion without accidentally taking the role down.
CloudMonix has specific functionality that makes proactive daily rebooting of Cloud Role instances, one at a time, at a simple checkbox click. Read below >
Reactive stability – REBOOTS ON DEMAND
Daily reboots are a great proactive measure for the stability of Azure cloud role instances. But what happens when your application encounters critical issues throughout the day? Severe memory leaks, queued up or “stuck” IIS requests, hung processes, etc. can all lead to major instability of the application at random times during the day.
CloudMonix allows for immediate and automatic recovery from such events via reactive reboots. Read below >
Gracefully handling reboots
Azure makes it relatively simple to keep web roles stable while individual instances are being rebooted. Some extra work may need to be done for worker roles. Read below
for more information on how to handle instances rebooting.