Well we will talk today about one of the Windows Azure Platform Component that called Windows Azure, But many will ask what’s the difference isn’t Windows Azure the platform that Microsoft offers as a cloud solution? … The answer is definitely no, The term Windows Azure is one of the Windows Azure Platform components not all of it, When we talk about Windows Azure Platform we should take into considerations Windows Azure & SQL Azure & AppFabric, In this post i’ll be focusing the lights on Windows Azure …
Here comes another question that anybody may ask Is Windows Azure an Operating System?, Well the answer is Yes, Windows Azure is the core operating system for the cloud which provides the ability to run applications in a highly scalable manner in Microsoft Datacenters in manageable way, You can host a web application (i.e., Website that sells cell phones), or a back-end processing service (i.e., Picture to Text converter), If you need more computing power to run your application you can allocate it so you can handle more traffic or process more data
Another question will come into your mind How exactly is that an operating system?
Well to answer this question we need first to define What’s operating system?, When the term operating system is here sure we think about (Windows 8, Windows 7, Windows Vista, …etc.) these are the traditional operating systems we all know about but What’s exactly these operating systems do?
- Host and run applications.
- Remove the complexities of hardware from applications.
- Provide interface between users and applications.
- Provide mechanism that manages what’s running where and enforce permissions in the system.
After having a look to the attached picture, Have you noticed that the applications don’t have direct access to the hardware?, All the interactions must go through the Kernel (The low-level operating system component that performs tasks like processing, memory management, and device management), Hosting and running applications is the most important task of the operating system (Imagine an operating system without applications and you will know what i mean), Ok talking about applications what kind of applications i’m running on my PC which has a traditional operating system installed on it (i.e., Windows 8)?, For instance i’ve Microsoft Office, IE, Mozilla Firefox, RealPlayer, Game called Assassin’s Creed … All of these considered as application whatever it’s game or browser or media player it still an application, But!!! Do you think i’ll host and run these kind of applications in Windows Azure?
Of course no these are an end-user applications, But the type of applications we host in Windows Azure are server applications such as web applications (i.e., Facebook) i know it’s a big example 🙂 But it still a web application, So let’s go back to the applications i pointed for up the post (The website that sells cell phones & Photo to Text converter), Can these applications run in a traditional operating system?, Yes it can there is no real difference between Microsoft Excel and Photo to Text Converter, They all considered as applications to the operating system.
The traditional operating system is responsible for allocating CPU time, Memory space that allows your application to run, Not only this the operating system is responsible too for manage these resources (i.e., When application crashes then the operating system should release the resources that the application acquired and restart the application if necessary) and this level of abstraction is perfect for an operating system that manage a single server, But!!! it’s different when it comes to the cloud operating system it wont be scalable, In Windows Azure your application may not be running on a single-server but parallel on thousands of physically separated servers, A cloud operating system can’t be responsible for allocation CPU time and Memory usage on thousands of physically separated servers this should be abstracted away from the operating system.
Here comes another question So what’s responsible for doing this?, This responsibility is given to Virtual Machines (VMs), Windows Azure use VMs to achieve separation of services across physical servers, Each physical server is divided into multiple VMs, So let’s have a slight look to the VM.
The physical server is divided into multiple VMs, Every instance of your service (Web or Worker role) is installed on it’s own VM, Which is based on Windows Server 2012, The VM hosts the web application within (IIS).
So your application run on VM, But the VM is abstracted away from you and you have a view only of the role instance not of the VM, A single instance of your web application is assigned to a single VM which no other application can share it with, So the application is isolated from other applications running on the same physical server, The VM also runs an agent process (I’ll explain it later)
NOTE: Web Role is a VM that hosts your application within IIS, Worker Role is the same as Web Role but without IIS (it’s used for back-end processing stuff).
By the end of the post hope that you liked it 🙂 this post is continuous i’ll soon post the next part 🙂 Thanks a lot.