The goal of this blog entry is to describe how you can host a simple Ajax application created with jQuery in the Windows Azure cloud. In this blog entry, Stephen Walther assume that you have never used Windows Azure and going to walk through the steps required to host the application in the cloud in agonizing detail.
Our application will consist of a single HTML page and a single service. The HTML page will contain jQuery code that invokes the service to retrieve and display set of records.
There are five steps that you must complete to host the jQuery application:
- Sign up for Windows Azure
- Create a Hosted Service
- Install the Windows Azure Tools for Visual Studio
- Create a Windows Azure Cloud Service
- Deploy the Cloud Service
Nothing deployed = NO charge
Deployed and running and being used = charge
Deployed and running but no one is using it = charge
Deployed but Stopped/Suspended = charge
The system use with Azure is similar to hotel reservations. If you book a room, you get charged whether you sleep in it or not – as the hotel reserved the room for you and could not use it for another guest.
With Azure they actually reserve the physical resources for you (CPU, memory etc) as soon as you deploy. Hence they pass on the costs of those resources. This model can make Azure an expensive choice for small, rarely busy sites, for which a shared hoster model is likely much more appropriate. Azure currently is simply not intended to compete with the shared hosting model.
- Compute = $0.12 / hour
- Storage = $0.15 / GB stored / month
- Storage transactions = $0.01 / 10K
- Data transfers = $0.10 in / $0.15 out / GB – ($0.30 in / $0.45 out / GB in Asia)*
Measuring Windows Azure Consumption
- Compute time, measured in service hours: Windows Azure compute hours are charged only for when your application is deployed. When developing and testing your application, developers will want to remove the compute instances that are not being used to minimize compute hour billing. Partial compute hours are billed as full hours.
- Storage, measured in GB: Storage is metered in units of average daily amount of data stored (in GB) over a monthly period. For example, if a user uploaded 30GB of data and stored it on Windows Azure for a day, her monthly billed storage would be 1 GB. If the same user uploaded 30GB of data and stored it on Windows Azure for an entire billing period, her monthly billed storage would be 30GB. Storage is also metered in terms of storage transactions used to add, update, read and delete storage data. These are billed at a rate of $0.01 for 10,000 (10k) transaction requests
- Data transfers measured in GB (transmissions to and from the Windows Azure datacenter): Data transfers are charged based on the total amount of data going in and out of the Azure services via the internet in a given 30-day period. Data transfers within a sub region are free.
- Transactions, measured as application requests.
To get started: http://www.microsoft.com/windowsazure/offers/
I just ran across a PowerPoint presentation by a colleague, David Chou, that is just plain awesome. Check out this deck on the Windows Azure platform.
The Windows Azure Platform Training Course includes a comprehensive set of technical content including samples, demos, hands-on labs, and presentations that are designed to expedite the learning process for the set of technologies released as part of the Windows Azure Platform.
Units in this course
In this introductory unit, the Windows Azure Platform evangelism team welcomes you to the training course and goes over the significant changes to the platform since it was announced in 2008 and also cover what you’ll see in the course and how to follow along with the labs.
Learn about Windows Azure and discover how to build applications for the cloud.
Learn all about using Windows Azure Storage, including tables, blobs and queues.
Learn all about deploying applications to Windows Azure, including automating deployments, performing upgrades and scaling services.
SQL Azure is the relational database service for the Windows Azure platform built on SQL Server technology providing a familiar programming model. Here you will learn how to get started, how to migrate databases and tips for using SQL Azure.
Microsoft Codename "Dallas" is a new information service that lets you leverage data sets and web services from public and private sector in your applications through a simple consistent API. Here you can learn how to get started consuming "Dallas" data in your applications and analytics workloads.
In this unit you will learn all about the Service Bus and how you can use it for Service Remoting and Eventing Scenarios.
Whether you are looking at reusing your on-premises identity for SSO in the cloud or you are searching for a way to handle access control for your REST services, in this unit you will find useful indications on how to address your identity challenges with Windows Identity Foundation in Windows Azure or taking advantage of the Access Control Service.
There are various types of Cloud offerings that exist in the internet today. These offerings are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Figure 1 below shows each of these offerings and what they host. Understanding what each offering hosts, the relationship of the cloud vendor to the software owner, and the relationship of the cloud vendor to the end user is a good way to understand the differences between each of these offerings.
Figure 1 – Types of Cloud Offerings and what they host
Figure 2 – IaaS Vendors
Figure 3 – PaaS Vendors
Figure 4 – SaaS Vendors
When the word “Platform” is used in the context of software what is really meant is what is shown in Figure 5. The best way to visualize a software platform is to think of it as being composed of two parts. The first part is a runtime environment for your application or your custom code. The second part is a collection of tools that can be purchased (as opposed to built) that solve common problems.
Figure 5 – A Software Platform
“Lucene works on top of an abstract store object called Directory. There are several Directory objects, including FSDirectory, for file systems, and RAMDirectory, for in-memory store. Azure Library for Lucene.Net implements a smart blob-storage Directory object called AzureDirectory which enables the use of Lucene.NET on top of Azure Blob Storage. AzureDirectory automatically creates a local cache of blobs and intelligently auto-uploads them on the fly.
Building RESTful application using SQL Azure, WCF, ADO.NET Data Service & Telerik OpenAccess WCF Wizard
- Telerik OpenAccess WCF Wizard: How-to Video #1
- Telerik OpenAccess WCF Wizard: How-to Video #2- Astoria
- Telerik OpenAccess WCF Wizard: How-to Video #3- REST Collections
- Telerik OpenAccess WCF Wizard: How-to Video #4- ATOMPub
- Using WCF for Silverlight Development with Telerik OpenAccess
- Using ADO.NET Data Services with Telerik OpenAccess’s WCF Wizard
- Using The WCF REST Starter Kit and REST Collections with Telerik OpenAccess’s WCF Wizard
- Using The WCF REST Starter Kit and ATOMPub with Telerik OpenAccess’s WCF Wizard
- Building a RESTful application with SQL Azure
Here are some reasons to use Google App Engine (GAE) and advantages of the platform compared to Azure
- Want to write code in Java, Python/Django or any language that runs on the JVM
- Need integrated mail functionality
- Azure requires your own SMTP server outside of the cloud environment
- Need integrated XMPP messaging
- Again, Azure would need an external server.
- Need scheduled processing jobs
- You can be creative and write something with queues and/or worker roles or perhaps a service running elsewhere to ping your web server on a schedule to run a job.
- Need distributed caching via memcahe
- There has been some talk of adding Velocity to Azure which would be comparable to memcache. Otherwise, if you only have one web instance you can use ASP.NET caching. If you have multiple web instances, then you need a way to invalidate the other server’s cache. Inter-role communication is coming soon which would make this possible. In the mean time you could use .NET service bus to communicate between web role instances (in theory it seems like this would work)
- Want mostly free hosting for small applications – GAE has a free quota
- Azure is free up to a limit in the CTP, but once live nothing is free. I’d really like to see Microsoft keep some free version for developers to experiment with or include CTP-like free quotas to BizSpark members. Developers like to tinker and release small apps. If App Engine is free, they are going to chose that and will probably be less likely to chose Azure once comfortable with GAE. It seems like a good approach to provide some level of free support until an app becomes large enough where a developer can afford to pay (or it’s too costly to provide them free service)
- GAE has a ridiculously fast deployment time. One click in GAE launcher or a console command and the application deploys in less than a minute
- Azure deployment is just brutally slow. Make a sandwich, grab a good book – it’s going to be awhile. This is especially an issue when you consider the next bullet point. Every time you deploy to Azure it’s provisioning a new virtual machine unlike GAE which is just copying files. I’m sure there are good reasons why this needs to be done, but I really wish it had some quick deploy / file copy option. There is nothing more gut wrenching then waiting 30 mins to finish deploying and you forgot to to change one line of code. Now you are stuck waiting another 30-45 mins to delete the current instance and redeploy.
- and much much more…
Notifications and Subscriptions
In this post, we will explain how to make use of notifications in the Live Framework. When you subscribe to a specific resource, the Live Framework provides notifications when changes are made to that resource. This allows you to optimize interactions with the Live Operating Environment (both client and cloud) and only retrieve information when something has changed