I have recently been looking at Azure as a hosting platform for a number of small asp.net websites with MSSql database back-ends. I currently use a non-microsoft host that charges a fixed amount each month.
The Azure demos and webinars that I have seen are very seductive.
The problem I have is that I need some predictability on costs so that I can charge my clients appropriately. I've run thru a number of pricing calculators but have gotten a wide mix of results. In the real world what could I expect?
The sites would be low traffic (<100 unique visits a day).
My biggest fear is that I would open the management dashboard some day and see a bill that is far bigger then what I quoted a client.
Anyone have experience with Azure, and could give me some insight into their experiences?
As an example: I currently have 6 small sites that I have under my reseller account at a hosting service. I pay ~$35.00/month for all the space I need, including SQL, and bandwidth.
Let me share my thoughts on this.
Before looking at costs, I think what you need to evaluate if a cloud platform is a right platform for your applications. The picture below summarizes some of the common application patterns:
2 biggest benefits (at least to me) that you get out of any cloud platform is elasticity and pay-per-use pricing model. Generally speaking for low volume sites, cloud is generally costlier than other hosting providers. The questions you may want to ask yourself are:
Do my applications need elasticity as far as resource consumption is concerned? Or in other words, will there be a scenario where you would need 1 server for a week and then 10 servers for next week and then 1 server again week after that and things like that.
Am I willing to pay some extra even if my resources are under utilized? Or in other words, will you be happy to host a site in a single VM even if with a hosting company you can host 10 sites in a similar sized VM?
Will there be any scenarios where I have to handle predictable/unpredictable bursting in traffic?
If the answer is No to any of these questions, then IMHO Windows Azure may not be a right platform for you to host your applications.
There may be some components of Windows Azure which you can use - Storage for example where you don't have to worry about running out of disk space ever or Mobile Services so that you don't have to worry about building a backend for any mobile applications you may develop.
Related
maybe I should start that I am pretty new with Azure and I want to apologize in advance if my question is stupid. I am currently looking into the option to move my WordPress website to Azure. However, as I was looking through the pre-configured templates, I am quite confused and would be really thankful if someone can explain this for me. (Thank you in advance).
The template, which was created by WordPress for WordPress is using "App Service" model with a tier plan S1 (which comes with 100 total ACU & 1.75GB memory) and according to rough estimate it should be around 75 USD per month.
However, an alternative template created by Cloud Infrastructure Services is using a virtual machine model with a tier plan Standard_B1ms (which comes with 1 vcpu & 2 GiB memory) and according to rough estimate it should be around 36.83 USD per month.
I am quite struggling to understand the difference between the two options and more particular why one is using "App Service" and the other "Virtual Machine". In addition, what are the benefits and disadvantages to use one over the other. For example, when it comes to spikes in website traffic, the need to upgrade to higher tier, reliability, etc. Furthermore, I am not sure what 100 total ACU means. Is this supposed to be more powerful than the output that comes from a 1 core v-cpu? If yes, how much more? Last but not least, would like to hear your general opinion on hosting WordPress website on Azure, as well as, which of the two options would you go with and why? Thank you in advance!
ACU is a made-up measure for estimating the amount of computing power you receive. The ACU is a type of estimator since certain processors have turbo boost and some don't. DTUs for Azure SQL are similar, where DTU is a made-up statistic that combines IOPS, CPU, and RAM.
Azure App Service as "Build, deploy, and scale web apps on a fully managed platform". It's a Platform as a service and hence would be managed in the containers or any operating system can be used. Use the fully managed platform for your operating and monitoring activities to meet stringent, enterprise-grade performance, security, and compliance requirements.
Azure Virtual Machine It provides on-demand, high-scale, secure, virtualized infrastructure. It provides the flexibility of virtualization for a wide range of computing solutions, including development and testing, application execution, and datacenter expansion. It's the flexibility of open-source software set to your specifications.
Hence, Azure App service has lots of advantages as it has got tools with which it can be integrated. Scaling up is an ability using both the services and if you have an fix budget then you can opt Azure Virtual Machines then resize it anytime.
Here, is the Pricing Calculator which might help you to calculate the exact expenditure according the resources you choose.
I would definitely suggest to go for Azure App Service as it has a wide range of advantages.
Background
Our company designs and hosts websites for approx. 500 clients, each client has one website. Each website is built on ASP.net. Our current hosting infrastructure is built on hypervisors with virtual machines running Windows. We have 3 virtual machines all running the same spec (8 cores, 24 GB RAM). The 500 client sites are split over these three web servers, there is no load balancing or fault tolerance – the website exists in only one location.
Therefore, as we accumulate clients each web server’s site count increases. When we max out each server, we bring another one online and start again, then once that one is full we spin another VM up etc.
Goal
We would like to move (eventually) our sites over to Azure, however we do not want to replicate our current set up on Azure, instead we would like to move each website over to Azure Web app instead to take advantage of scaling.
We would also like more fine-grained control over our costs when bringing online additional sites. Currently, we bring online a VM and costs us X (for an empty server), it may take us 3 months to fill this. We would like to steadily add to our hosting hosts, not in big steps.
My question
I have investigated for many days on this and cannot find a tutorial or guide on what the ideal set up looks like on Azure Web apps when hosting 100’s of websites. Almost all tutorials assume you only ever going to have one website, so there is a 1:1 relationship between a site and the underlying resource. They never talk about how you should organise your apps into App Service Plans etc.
I understand the concept of adding a website, choosing the appropriate pricing tier and setting the scale settings, what I do not understand is why people online talk about scaling out Azure Apps – surely if an ASP.net websites consumes a certain amount of RAM on a system, by bringing online another VM all you are doing is immediately consuming that amount of RAM again on another system. So scaling out in this sense is to ONLY improve availability – is this correct?
If someone is able to provide some of their own experiences when dealing with a lot of websites on Azure (even better if they own a web design company who hosts on Azure) it would be very much appreciated.
Think of AppService plan as a VM or pool of VMs (in case you run multiple instances) that runs the same applications simultaneously and share the same data disc. If you scale out, you add a new VM to the pool, if you scale up, you change the size of VMs (actually they aren't VMs, but from the user's point of view it is simmilar).
So basically in case like yours, where you run many applications (potentially) smaller applications, scaling up/down establishes the baseline - how many websites you can run, how many applications you can fit in the memory. And then scaling out gives your better reliability and more CPU power that helps you to cope with high traffic.
Our company is much smaller than yours, we host dozens of websites not hundreds. But there are some points that our experience have taught us:
Use at least S2 instances that have 2 cores, with S1 instances a single app can easily degrade performance of other apps in the same AppService plan
Use TrafficManager. If a need arises (e.g. an outage of the service in your region), you can easily move to another region
Split webistes between more smaller AppService plans and collocate applications with the similar usage patterns to the AppService plans. That way you can run one instance, when the traffic is low and spin up new instances when the traffic spikes up.
You are correct that in all pricing tiers (except free and shared) web apps are scaled to all machines in an app service plan. This is an availability feature from the perspective of a web app. Scaling an app service plan from 1 to 2 machines(or auto-scaling) essentially provisions the same web app on all the machines. This of course is no good for your situation, but all is not lost. Generally, the unit of scaling is the app service plan. You could break down web apps into buckets of app service plans. Say first 100+ web apps in AppServicePlan1, then roll over to the next 100+ in AppServicePlan2. The downside is that you will have to manage tracking what app service plan to place the next web app in.
I have an Azure Cloud Service published at Microsoft and it's draining all my credit!
Payment
Pay as you go
Service resource
Minimal resource, 1 SMALL web role and 1 SMALL worker role.
I knew Azure wasn't cheap, but this is just too much. Currently my monthly cost is just under 80 USD. The only person that use this service is me, noone else, and I barely use it. So the cost is just for the upkeep.
Is this normal?
70 bucks a month!?
How much does it cost for YOU?
What Microsoft support told me
I am afraid the Cloud Services has a fixed price, and I am not aware
how it could be lowered. Maybe you want to check on how the service
itself could be tweaked to get it working as per your needs. You may
want to go through the Community Forum for that.
Community = Stackoverflow, so here I am!
If I look at my Azure subscription page I can see that it's the:
CALCULATING HOURS - Europe, Western
That is taking all my hard earned money. My service also uses SQL, storage and cache but, if I understand it correctly, these are not the cause for my expensive bill.
Before I leave you to it I just want to say that I can't use a simple web app because of my requirements. I know web apps are super cheap, but in this case I must use a cloud service..
Thank you
Update
I found out I was using A1 (small) and not A0 (extra small). The instance type for a cloudservice can be set in the servicedefinition file.
It's sad that not even Microsoft themselves could inform me about this.
Web and worker roles are like dedicated VMs if they are on, they will cost you money.
You can do one of two things
1) Stop the machines when no one is using them ( say in the off business hours). I am not sure if this is possible to do or not in your case. But if it is possible, you can run a small script to start/ stop the roles. You can even do so via apps on your phone. For example - https://itunes.apple.com/us/app/azure-management/id826446897?mt=8
2) Move to Azure Web Apps and Azure Web Jobs - Both these services are "multi-tenant" and cost much less and in fact offer a free tier. If and when you need to scale, you can always scale as your need
Hope this helps
I am using a normal IIS web host to host my website and web services.. It is just a hobby and I get very little traffic. I would let to be using Azure instead since I would like an excuse to learn azure.
Is anyone out there using Azure in this way and can tell me about what is thier monthly cost? I long ago subscribed to azure and forgot about it and a month later had a $90 bill so that really scares me.
Right now my web host + sql is about $25 a month.
Is there a way to have azure shut the service off if it gets over a certain monthly cost?
Well, even a very small instance costs $0.05/hour, and the SLA is only guaranteed if you run two or more instances. That in itself adds up to approximately $75/month.
SQL Azure is at least $9.99/month. Add to this charges for traffic, etc.
There are reasons why the SQL Azure pricing model is like this. You do get your very own virtual machine instances with dedicated RAM, which you typically don't get in a web hotel, so taking that into account, the Azure price may be reasonable, but isn't very competitive for very small hobby sites.
The official price list is here: http://www.microsoft.com/windowsazure/pricing/
Unfortunately, Azure is not designed to host hobbyist sites. You won't be able to beat $25 a month, but then you don't need things like SLA's and HA databass. But, as I commented earlier, it is nice to be able to work with it to train up on the platform.
There are ways of getting onto Azure cheaply.
Firstly There is the free introductory offer. Very much a "toe in the water" just to play/learn the platform. There aren't enough compute hours to host a site.
Secondly, if you're prepared to put in a little effort you can join either the partner or Bizspark programs which will give you access to enough resources to host a site for free, but there is an expectation that you're trying to build "something".
Oh, and for a hobbyist site you don't need the SLA so a single instance is fine.
I'm considering to join the Windows Azure Platform Introductory Special, but I'm a little bit afraid of losing money with it. I don't wanna develop any fancy large scale application, I want to join just to learn Azure and do my experiments, what should I be afraid of?
In the transference, it says: "Data Transfers (per region)", what does that mean?
Can I put limits to stop the app if it goes over this plan in order to avoid get charged?
Can it be "pre pay" instead "bill pay"?
Would it be enough for a blog?
Any experiencie so far?
Kind regards.
As ligget pointed out, Azure isn't cost affect as a host for an application that can be easily deployed to a traditional shared hosting provider. Azure's target market are those that want dedicated resources without the need to micro-manage the infrasture and the capability to easily scale up/down based on demand.
That said, here's the answers to the questions you posted:
Data Transfers are based on bandwidth in and out of the hosting data center. bandwidth for communication occuring within components (SQL Azure, Windows Azure, Azure Storage, etc...) in the same datacenter are not billable.
Your usage is not currently capped when the free quotas are used up. However, you will recieved warning emails when those items approach their usage threadsholds.
There is the option to pay your subscription using a PO, but the minimum threshold for most of these operations is $500/month. So as a hobbyist, its unlikely you're wanting that route.
The introductory special does not provide enough resources for hosting a 24x7 personal blog. That level includes only 25hrs of compute resources. Each hour a single instance of your application is deployed will count against this, even if the application received no traffic. Think of it like renting office space. You still pay rent on the office even if there are no customers there.
All this said, there's still much to be learned with the introductory special. The azure development tools allows you to work with Windows Azure and Azure storage locally and get a feel for how they work. The introductory special then lets you deploy those solutions so you can see what works and what doesn't (not everything that works locally works hosted).
I would recommend you host your blog somewhere else - it's a waste of resources running it on Azure and you'll find much cheaper options. A recently introduced extra small instance would be a better choice in this case, but AFAIK it is charged separately as of now, e.g. even when you have an MSDN subscription those extra small instance hours do not count towards free Azure hours that come with the subscription.
There is no pre-pay option I know of and it's not possible to stop the app automatically. It'll be running until the deployment is deleted (beware! even if suspended/stopped the deployment will continue to accrue charges). I believe you will be sent a notification shortly before reaching your free hours threshold.
Be aware that when launching more than 1 instance you are charged for every hour of every instance combined. This can happen for example when you have more than one role in your Azure project (1 web role + 1 worker role - a separate instance will be started for each role).
Data trasfer means your entire data trasfer: blobs/Table storage/queues (transfers between your hosted service and storage account inside the same data center are free) + whatever data is transfered in/out of your hosted application, e.g. when somebody visits your pages. When you create storage accounts and hosted services in Azure you will specify a region that will be hosting your account/app - hosting in Asia is slightly more expensive than in Europe/U.S.
Your best bet would be to contact Microsoft with these questions.