I realize that there are already multiple posts regarding how relatively expensive it is to host an instance on Azure for low traffice websites. However I'd like to give a slightly different reason for having this option.
I'm meeting with a client next week regarding developing an inventory system. This client's core business is not related to technology. The purpose of the meeting is to move a MS Access database to the 'cloud'. Originally I was planning on keeping
the MS Access front-end and adding a SQL Azure instance. This would fulfill the requirement and give this business' remote workers access to the database. Also the extra cost of maintaining a SQL Azure database at approximately $150/year is within
this small business' budget. So far so good.
What I would like to do is to suggest to the client is creating a silverlight application using a web role that either connects to SQL Azure or Azure storage. The advantage here is that the business would not have to bother
with installing the MS Access runtime and configuring the desktops for the remote workers. It is difficult to reccomend this option because now the costs jumps up to $1000 per year.
If there were an option for this small company to maintain an Azure web role for $300 - $500 per year then they might us this option.
If you have a small instance running 24/7 for 1 year, just compute charges alone would be (24*30*12*0.12=$1036.8). Also, 99.5% availability offered by SLA applies only if you have 2 instances which doubles up the amount to $2000+.
In addition to this, you would also have cost for transaction ($0.01 / 10K) and data transfer ($0.10 in / $0.15 out / GB). These components directly related to the frequency of access and the amount of data being transferred.
IMHO if these minimum costs do not get good ROI, then cloud may not be good choice for such applications.
Please mark it as answer by clicking on "Propose As Answer", if it helps
Djaccb, before trying to address any of the issues/concerns I'd like to ask a question.. what business need(s) are you attempting to address by moving the access application to the cloud? Are you just attempting to make the inventory system available online
(and thus make it more shareable?) Or is there another factor driving the choice?
What you can do in such situations is to host the database on sql azure and the website on a conventional hoster with the same peering points as Azure. That normally works very well for business oriented sites (I would not use it for high traffic, low latency
web apps). You can and should also look into exposing the database as a set of OData Webservices, which can be directly accessed from the silverlight client (This is a preview feature of SQL Azure see here: http://sqlazurelabs.com/).
So I think this is entirely doable for 10 usd SQL Azure hosting and probably 10 usd for some asp.net hosting.
Data transfer is cheap, so in a business setting I doubt it will be a big contributor.
PS: Check out my sites. We are in private beta right now and Azure users are more than welcome (shameless plug ;)).
The purpose of moving the MS Access database to SQL Azure is to allow remote access by several employees. As long as the client is able to accomplish this task at a reasonable cost then the client will go ahead with the project.
On the one hand there is nothing wrong with reccomending a MS Access/SQL Azure solution to this client. This option will only cost the client an additional $150/year or so. The amount is small enough that the client will view the additional cost as acceptable.
$!50 to place the database on the cloud so several employees can securely access it makes Access/SQL Azure a good match.
One downside to an Access/SQL Azure solution is distributing the solution. Distribution of a Access/SQL Azure solution is not a large barrier. However it still means I need to access to all the employees computers and install MS Access runtime and the Access
front end. Also there will be a set of procedures to handle the program updates.
A better solution to the distribution issue would be to create a WPF application.
However for me the best solution to making the distribution quite simple would be to create a Silverlight application also hosted on Azure. A Silverlight/SQL Azure solution makes the most sense to me. The only downside is the cost. At $1,000 per year to
host one small instance the client will view this amount as too much. For this client only having one small instance fullfills his needs. It is not necessary to have 2 instances to ensure 99+% availability.
I agree using a shared hosting solution at some asp.net would be cheaper. However this introduces another issue. Part of the solution should be having only one provider. Going to the client and saying he now needs to maintain 2 different solutions:
SQL Azure with Microsoft and an asp web site with another provider is not very attractive. If I would go this route I would create a PHP/MySQL solution and not use Azure.
Right now I have two choices for this client if I want to use SQL Azure. I can either reccomend MS Access/SQL Azure for $150/year or Silverlight/SQL Azure for $1,150/year. These are the only two price points that exist for using Azure
at this time. The purpose of my post was that I think there exists a need for another option for clients with low traffic websites somewhere in between these two prices.
In a sense this issue is not a technical issue. This client, and I think many others, do not care or understand that the extra cost is purchasing a dedicated server or all the other capabilities provided by Azure. All the client know is they want
the database on the 'cloud'. It makes no difference what the details are. I think it would be good to have another option to give clients to use Azure. Call this option 'Starter business package' for somewhere around $300 - $500 per year.
I feel that many small businesses will view MS Access/SQL Azure solutions as very attractive for $150/year. It would be good in these situations to also offer small businesses a similar low priced solution for Silverlight/Azure too.
I will check out the OData webservice in the future - thanks,
thank you for providing us so much detail. That is very refreshing when compared with some other recent posts.
One option that might also work would be to host a static website + silverlight as blobs.
Some other general remarks:
As much as people prefer single provider solution this is something that will not happen in cloud computing. Just to give you an example. Our websites currently use 13 different external services and they all happily coexist.
I do not think that WPF is a viable solution for any business application these days.
YA3 has a good suggestion. By putting the static website into Azure Storage, you'd maintain one subscription and the cost would be substantially less than the $1150 per year you previously estimated. However, I haven't tried this or seen it done so I'm not
sure how mixing the two will work. It *should* be ok, but don't quote me on that.
I hear the desire for a less expensive hosting option but I believe MSFT has as well. Its fairly highly rated on the "my azure idea" site.
Pondered this further and realized that this approach would require imbedding the connection details in the Silverlight client. This is not a recommended best practice and if you pursue it, you'll want to take measures to ensure that should your web client's
location be discovered, that it contains sufficient security precautions to protect access to your data.
In this case distributing the connection information is also necessary with a MS Access/SQL Azure solution. So using blob storage for a static website and silverlight poses similar types of security issues as with the MS Access/SQL Azure solution.
I will look into using blob storage for hosting the static website + Silverlight. I thank you both for the suggestions. For me it is important to have the ability to offer a client another option that falls in price and convenience between using MS Access/SQL
Azure and a Silverlight (web role)/SQL Azure solution.