Windows Azure Websites zijn erg handig om snel een website in de lucht te brengen. Je kunt daarbij kiezen uit een gallery van producten. Deze gallery bestaat uit Blogs (Wordpress ea), Content management systemen (DotNetNuke ea), Wiki’s etc. En als je door deze lijst heen loopt, dan zie je dat ze niet allemaal .NET based zijn. Sommige producten hebben SQL Server database nodig en sommige MySQL. Ook dat is geen probleem beide is mogelijk. Met een paar simpele klikken heb je zo een website in de lucht.
Maar als je een reeds bestaande website hebt, dan kun je die ook hosten op Windows Azure websites. Ook dan ben je met iets meer klikken up en running. Moet je in je website dan nog rekening houden met het hosten op Windows Azure? Nope, helemaal niet. Aan je website hoef je niets aan te passen en deze kan zo naar Windows Azure. En updates aan de website kun je dan gewoon deployen oftewel publishen zoals je dat ook op een ‘eigen’ webserver zou doen.
Oke, maar ik wil gebruik maken van Windows Azure storage of Windows Azure Service bus. Dat kan dan zeker niet? Jazeker wel, geen probleem. Uiteraard moet je in je applicatie dan wel iets aanpassen om volledig gebruik te maken van deze diensten.
Ik heb dat zelf gebruikt voor de server kant van mijn nieuwe Windows 8 en Windows Phone 8 applicatie. Met deze applicaties kun je de sessies van de SDN events evalueren en je waarde oordeel geven.
Het gaat hier niet om enorm veel data. Ik heb events en event hebben sessies en een sessie heeft een evaluatie. Er zijn ook geen hele moeilijke relaties tussen tabellen. Dus typisch zo’n gevalletje voor Windows Azure storage tables. Ook vanuit kosten oogpunt niet onbelangrijk. Zoals gezegd, het gaan niet om veel data. Stel even 3 events maal maximaal 20 sessies maal 150 bezoekers, dat blijft heel erg ruim onder de 100 Mb van de kleinste Windows Azure SQL Database. Het prijsverschil tussen storage tables en SQL tabellen is dan best groot. (NB Ik realiseer mij dat we soms SQL server functionaliteit gewoon nodig hebben, maar ik denk ook wel dat we vaak te gauw grijpen naar dit middel.
Deze data ontsluit ik voor de applicaties via een WebApi. Zodat de apps via een simpele REST interface de get en posts kunnen doen en JSON terug krijgen. En deze REST services zijn onderdeel van mijn Windows Azure Website.
Maar kan dat dan zomaar? Jazeker. Alles wat je nodig hebt, zijn deze twee NuGet packages.
En deze code. De connectionstring naar de Windows Azure storage staat dan in de Web.config.
De rest van je code is zoals je altijd met Windows Azure storage tables omgaat.
En mijn groeipad? Windows Azure Websites kun je ook scalen (meerdere instanties) en/of zwaardere machines van maken.
Stel je voor dat er straks toch een achtergrond proces bij komt, bijvoorbeeld om BI op de ingevoerde data te doen. Dan zou ik daar een WorkerRole voor nodig kunnen hebben. Dan kan ik de Windows Azure Website zo ombouwen tot een Cloud Service. De setting van de storage zal dan verplaatsen van de web.config naar de Cloud Service configuration. Verder hoeft er in principe weinig te gebeuren aan de Web Role. Uiteraard zal ik de Worker Role dan moeten uitwerken.
Handig he, Windows Azure. Het groeit met je mee, je kunt klein beginnen en groeien naar immense hoogte.