Search code examples
wcfiisazurecloud-hosting

WCF services on Azure


I am planning to migrate all my VPS functions to a my Azure subscription. I have the free 3 year bizSpark subscription which gives me 20 cores, 6 hosted services and 5 storages. I believe this is 2 small instances.

My Main aim is to transfer my 10 or so WCF applications which I currently run on a IIS7.0 server.

How many WCF services am I able to host with my Azure?

Ive been reading about and playing with Azure all day, but still completely confused what it all does. From my current playing, it seems each WCF service needs its own hosted service, to which i only ahve 6 of? or am I getting confused. Do the WCF services need to be put in a 'hosted service'?

Thanks.


Solution

  • Let me see if I can help out a bit:

    • Windows Azure is a platform where you can deploy applications to the cloud and not worry about building the plumbing for underlying infrastructure or features such as caching, identity management, etc.
    • Each Windows Azure subscription has multiple deployment slots, or Hosted Services. This is limited to 6, meaning you can deploy up to six complete deployment packages (with each deployment package consisting of one or more Virtual Machine instances).
    • Each Virtual Machine, also called a Role, takes up a certain number of cores. A Small role uses 1 core, medium=2, large=4, and extra large=8.
    • BizSpark gives you 1500 core-hours monthly. If you ran a Small role instance for an entire month, you'd consume just under 750 hours. Thus, you can run 2 Small role instances 24x7 and still fit within the 1500 included core-hours.
    • Your account is capped at 20 cores, meaning you can crank up your role instances beyond 2. However, if you ran this 24x7, you'd start incurring costs. If you keep your monthly consumption under 1500 core-hours, you're fine. So, if you ran all 20 cores for 24 hours, you'd consume 20x24=480 core-hours. At that rate, you'd consume your included hours in about 3 days.
    • Each Role is essentially Windows Server 2008 R2. A Web Role differes from Worker Role in that a Web Role has IIS enabled.
    • Each Deployment (e.g. Hosted Service) may expose up to 25 externally-facing endpoints (e.g. tcp, http, or https ports). You may host a WCF service on any of your exposed ports
    • You may host all of your WCF services in a single role, or place them in separate roles. Your choice, really. It's less expensive to host in a single role, as you can now have your entire service stack running in 2 instances. The downside is that, if you have one very busy service, and the remaining services relatively idle, the busy service can starve the other services. So sometimes it's beneficial to separate services into different roles, and scale accordingly.
    • Note that I said you can run everything in 2 instances. If you only host in one instance, you will incur occasional downtime whenever that instance is rebooted (e.g. hardware failure, Role Instance OS upgrade, or Host OS upgrade).

    You should really download the Windows Azure Platform Training Kit. There, you'll find easy-to-follow labs that walk you through all the basics, hosting services, deploying to multiple roles, etc.

    Good luck!