As we have seen in our earlier article on the basics of windows azure and how windows azure sits with the cloud terminologies, in this tutorial we are going to see in depth on the different components and where they are used. So let us start with few of the main components that are listed below one by one with some samples which would be useful for the readers to have a clear understanding on the topic. I would prefer to get to the previous articles on this series before jumping into this part which would help us to get some clear idea on the terminologies and basics using this blog which has the series articles indexed “Learn Cloud Computing with Windows Azure”
Azure Compute is the compute service that runs application over the framework and storage is for storing the data that are required to operate the application on the cloud. The third component is the AppFabric which is an interesting add on that is used to manage the application and the services that are required to run the application that normally uses this platform.
Azure Compute Service is used to run different type of the application development based on the business model that is normally required. In Windows Azure, Microsoft provides a highly scalable compute service which can scale to maximum or minimum on the needs to meet the application needs over the fly. Each compute instance is a virtual machine that differentiates from the other application that is hosted on to the environment. Once we have the application instance running the azure platform automatically handles the networking and load balancing to provide the continuous availability.
Compute services have one or more containers that are used to develop the application which we normally call as a Role. Roles plays a major hand on selecting the type based on the business needs to architect a better performed application. Azure provides 3 types of roles as Web Role, Worker Role and the Virtual Machine Role. We will see in depth on these 3 roles in the upcoming chapters.
Compute services are charged only when the instances are deployed and billing is done with a simple formula of number of clock hours the service is deployed multiplied by the number of compute instances running. Say for example we have 2 tenants running one for Staging and one for production the billing will calculate as a 2 instances. So basically once the final product is on production we can remove the instances that are on the other environment like staging.
Azure Storage service provides a very secure and much scalable option to store the data on to the local storage that is highly available. With Azure Storage we have 3 options to store the data using Blog, Table and Queues. Based on the needs the respective option can be used which varies as and when required to manage the application. Microsoft Azure Storage eventually provides all types of storage medium to store relation and non-relational data, structured and non-structured data, queues. Azure storage has very good advantage over the relational SQL Azure; first of all it’s inexpensive and can be used on a vast area when compared to the SQL Azure. Azure storage is charged at 15cents per gigabytes spent on the server when compared to relational SQL Azure which charges $10 for each gig bytes spend on the server per month.
As we say the storage services are scalable, Windows Azure Storage Services provides multitenant storage machines with in the different Microsoft data centers. Basically these data centers replicate the user data and ensures the application users if one replica fails it take overs the available ones. Also this storage is available not only to the Azure enabled application but also we can make use of the data from the on premises application or to any other hosted services. Basically the storage account can be targeted to any of the particular data center of the choice of 6 data centers that are currently available for the Windows Azure platform. When selecting the appropriate storage medium for the application data to be stored we need to consider the specific type out of the different service provided by the Microsoft Azure Storage Services as explained in the below types:
This storage is used to store structured data, which is similar to a table but is not relational. Table storages are used in better way to stored Business entities in a structured format and its advantages in many ways compared to the other types. Table storages are composed of collection of properties, entities and properties further classified with collection of name, types etc. Only disadvantage we have with the table storage is as and like data access procedure we can’t use ADO.net to connect to the database, instead we need to use REST full URL access.
Blob (Binary large Objects) as most of the developers should be familiar of is used to store images, documents or Videos which are larger than something normally we store in a database like a string or an id (specifically GU ID). Basically blob storage is used to storage binary data which are not easily compatible for storing larger data. This blog storage stores the data in containers which are of two types as mentioned below
Block blob are limited to 200GB while page blob are limited to 1TB which are very much used to store large data’s as and when required. Same like the table storage it has the same disadvantage of not accessible using the normal ADO.Net concept instead we can use the REST full access.
Queue storages are used to do a message transport between applications as normally we can consider a MSMQ do that in cloud. This storage can be used to do transactions real time in sending and receiving messages. Queue messages are used to send messages of 8kb each and are not suitable for sending large objects as messages. In order to do a transaction for the large objects in real time we can use an URI of the blob as a message for the transaction. The messages will be remained in the queue unless it’s been deleted. If messages are read by one application then the read message will be marked as invisible to the other application and will not be available online. Because of this we will not be sure on which order the process will happen for the message queues.
Windows Azure AppFabric in simple words we can say, a solution provided with the framework to interconnect on premises application to the Azure cloud solutions as well interconnecting the Azure Cloud solution with other cloud providers as and when required to have a bridge available real time. In Windows Azure, AppFabric is basically divided into 3 core component as
· Service Bus
· Access Control Service
We will see in depth on each of these components which are very much important to develop an application in the upcoming tutorials.