Azure Autoscaling - what options do I have? - azure

I've got a running service on Azure and I'd like it to autoscale.
I've tried Wasabi (azure autoscaling from MS) - it didn't work for me.
So I'm looking for other third-party services.
I've found only 2 - opstera (which is closed for new customers) and paraleap which seems without customers.
Any other options for scaling azure?
Thanks

I'm not sure where you got the information from, but AzureWatch # http://www.paraleap.com has a decent amount of customers and is adding new users on a daily basis.
AzureWatch is also in the final stages of migrating its configuration tool away from a desktop tool to an online one.
HTH

You can try AzureCheck. It provides monitoring data and manual as well as auto scalling options. You can try it out with free account.

Azure Self-Scaling Portal could be a good start for you - it has an example of scaling policy (ScaleManager.cs file) and a ton of useful wrapper code to call Management API (ManagenebtService.cs). The license is very permissive. Using pieces of this thing you could craft your own solution.

There are three options to achieve auto scaling in Azure.
1.Tools based(WASABi, MetricsHub)
2.Custom scripting
3.Windows Azure Autoscale
Both Azure Autoscale and scripting can be used, only for the basic level auto scaling.
WASABi and MetricsHub can be used for advance level auto scaling. WASABi is an application block which part of Entlib-5.0. There is a great article about this on MSDN blog.
http://blogs.msdn.com/b/agile/archive/2013/07/02/windows-azure-autoscaling-now-built-in.aspx
I Hope this will help you.
Regards,
-Gopal

Related

Disable / suspend Azure Time Series Insight

Since the pricing does not offer much choice in terms of flexibility my developer MSDN account is quickly running out of credits using Azure Time Series Insights fro a Proof of Concept. Is it somehow possible to suspend the service so no costs are incurred? I would hate to have to delete the whole thing and set it up again when we start working again on the PoC.  
Currently, Azure still do not provide a way to suspend TSI environment.
Maybe you can use scripted template deployment for creating/deleting TSI environment.
With this approach, however, you are going to constantly loose your data.
On the link below there are guidelines, provided by Microsoft, on how to implement template deployment:
https://learn.microsoft.com/en-us/azure/time-series-insights/time-series-insights-manage-resources-using-azure-resource-manager-template
The general steps provided by MSFT are:
Install PowerShell
Create the template and a parameter file.
In PowerShell, log in to your Azure account.
Create a new resource group if one does not exist.
Test the deployment.
Deploy the template.

Alternate to run window service in Azure cloud

We currently have a window service which send some notification emails to users after doing some processing on database(SQL database). Runs once in day.
We want to move this on azure cloud. One alternate is to put it on Azure VM as is. but I am finding some other best possible solution for that.
I study about recurring and on demand Web jobs but I am not sure is this is best solution.
Also is there any possibility to update configuration of service code in App.config without re-deploy the code of service on cloud. I means we can manage configuration from Azure portal.
Thanks in advance.
Update 11/4/2016
Since this was written, there are 2 additional features available in Azure that are both excellent choices depending on what functionality you need:
Azure Functions (which was based on the WebJobs described below): Serverless code that can be trigger/invoked in various ways, and has scaling support.
Azure Service Fabric: Microservice platform, with support for actor model, stateful and stateless services.
You've got 3 basic options:
Windows service running on VM
WebJob
Cloud service
There's a lot of information out there on the tradeoffs between these choices, but here's a brief summary.
VM - Advantages: you can move your service basically as it is without having to change much or any of your code. They also have the easiest connectivity with other resources in Azure (blob storage, virtual networks, etc). The disadvantage is you're giving up all the of PaaS advantages and are still stuck managing your own VM infrastructure
WebJob - Advantages: Multiple invocation options (queues, blobs, manually, queue receive loops, continuous while-loop style, etc), scheduled (would cover your case). Easy to deploy (can go with website, as a console app, automatically through Kudu), has some built in logging in Azure portal - and yes, to answer your question, you can alter the configuration in the portal itself for connection strings and app settings.
Disadvantages - you'll need to update code, you don't have access to underlying resources (if you need that), and more of something to keep in mind than a disadvantage - it uses the same resources as the webapp it's deployed with.
Web Jobs are the newest of the options, but at the same time appear to have active development going on to increase the functionality and usefulness.
Cloud Service - like a managed VM, has some deployment options, access to underlying VM if needed. Would require some code changes from your existing service.
There's nothing you've mentioned in your use case that makes me think a Web Job shouldn't be first thing you try.
(Edit: Troy Hunt has a great and relatively recent blog post illustrating most of the points I've mentioned about Web Jobs above: http://www.troyhunt.com/2015/01/azure-webjobs-are-awesome-and-you.html)

azure subscription info

I am a newbie to web development
I would like to host my site in azure.
There are so many subscriptions plans.
So which subscription is reasonably good and give me price details of that?
Thanks in advance
Windows Azure has few types of hosting. For a website you might want to look at the following -
Web Sites - You can host right away without modification of your existing project.
Cloud Services - I used this, but it requires changes such as Caching.
Here is the calculator based on your need.
FYI: Rule of thumb is you need a least two instances in Production to minimize the downtime.
If you are a newbie , I would strongly suggest using azure websites for now, and you can always move to a custom solution using webroles/caching Etc later if you feel it doesn't cater all your needs..
Azure websites pricing can be obtained from here :
https://azure.microsoft.com/en-us/pricing/details/web-sites/
Again on what parameters would you choose the right package, you are the best judge for that since you know what traffic are you expecting and how much memory etc you need

How to enable performance counters in azure

We need to enable 25+ performance counters in windows azure web roles. I'm thinking of RDP'ing and enable them one by one. But this could take long time and also not guranteed for if we scale up.
Could someone please help me whether it's possible to automate this process? Preferably Powershell but other solutions are ok as well.
There is no way to enable performance counters by RDP'ing into Windows Azure machines, because performance counters are published by Windows regardless.
However, what I think you're asking for is to capture the 25+ performance counters into Azure Diagnostics store?
If that is the case, you will need to:
1) Enable Azure Diagnostics on your Web Roles. This must be done before deployment. It is a best practice and mostly everyone does it (I sure wish Microsoft would have just done it for every Role w/o explicit configuration setting, but
2) There are multiple ways to instrument capture of performance counters into diagnostics store:
a) using diagnostics.wadcfg file http://msdn.microsoft.com/en-us/library/gg604918.aspx (you will need to redeploy your app with that file)
b) using powershell (although I've never done it myself) http://michaelwasham.com/2011/09/19/windows-azure-diagnostics-and-powershell-performance-counters/ or http://www.davidaiken.com/2011/10/18/how-to-easily-enable-windows-azure-diagnostics-remotely/
c) using in-code instrumentation (you'll need to re-upload your app everytime you change which counters you want enabled) http://www.codeproject.com/Articles/303686/Windows-Azure-Diagnostics-Performance-Counters-In (I dont recommend in-code configuration, because it is too brittle)
d) using 3rd party tools like Cerebrata Diagnostics Manager or AzureWatch
e) using Azure Service Management API in conjunction with Azure Diagnostics API to get at the individual instance configuration and update it (this is how the third party tools & powershell do it)
In cases of using powershell, management API directly, or a tool like Cerebrata, you configuration will "stick" for the life of the deployment. Once you re-upload a new version of the app, the configuration will be lost.
Using diagnostics.wadcfg, in-code instrumentation, or AzureWatch, your configuration will persist throughout the re-uploads of the app
HTH

Azure, SLAs and CAP theorem

Azure itself is imo PaaS and not IaaS. Do you agree?
MS gurantees an availability of 99% and a strong consistency. You can find MS SLAs here: http://www.microsoft.com/windowsazure/sla
(three SLAs Uptime: http://img229.imageshack.us/img229/4889/unbenanntqt.png ) I can't find anyhing about how they are going to archive that. Do they do backups? If Yes: How do they manage consistency? According to the Cap theorem (http://camelcase.blogspot.com/2007/08/cap-theorem.html
) their claims are not realistic.
2.1 Do you know detailed technical stuff about the how they are going to realize the claims about consistency and availability?
On the MS page you'll find three SLAs .docs, one for SQL Azure, the second for Azure AppFabric/.Net Services and the third for Azure Compute&Storage.(Screenshot in 1.) How can one track whether SLAs are violated? Do they offer some sort of monitor, so I don't have to measure the uptime by myself?
1) Azure is a classical "Platform as a Service". I agree
2) 99% is not a very high availability. It means that Azure is allowed to be 3 full days down per year. The blog article you referenced is IMHO quite suboptimal. There is another one that explains the CAP theorem in more detail.
In answer to your first point, MS itself calls Azure the "Windows Azure Platform", so its status as PaaS seems self-evident.
In response to your question about backups in the second point, one of the main promises of cloud computing is to allow you to ignore the administration of the resources. They promise safe data, it's up to you as to whether you trust them, but if you want to know exactly how they implement it, you're missing the point of the cloud abstraction.
The third point is more interesting, but I would assume it's up to you to pay attention (write monitoring software?) to whether they live up to their SLAs.
"Will Microsoft add VM functionality to Windows Azure to expand the set of existing applications that can be run on it?
Yes, Microsoft will add Virtual Machine functionality to Windows Azure to expand the set of existing applications that can be run on it. This Virtual Machine deployment functionality will enable developers to run a wide range of Windows applications in Windows Azure, while taking full advantage of the built in automated service management." ( http://www.microsoft.com/windowsazure/faq/ )
thus MS is planning Azure to become IaaS.

Resources