Sitefinity in de Cloud met Windows Azure

Softwaregiganten zetten steeds hoger in op de cloud. Suneco heeft hierop ingespeeld door de mogelijkheden te onderzoeken voor het inzetten van de cloud in de vorm van Windows Azure voor onze projecten.

Softwaregiganten zetten steeds hoger in op de cloud. Suneco heeft hierop ingespeeld door de mogelijkheden te onderzoeken voor het inzetten van de cloud in de vorm van Windows Azure voor onze projecten. Voor een opdrachtgever is het autoscaling in combinatie met betalen-naar-gebruik principe een erg goed verhaal ten opzichte van een klassiek model waarin je altijd een overhead aan hardware afneemt om te kunnen garanderen dat een site blijft functioneren bij intensief bezoek. We zien dan ook steeds meer enthousiasme bij onze opdrachtgevers om voor Windows Azure te kiezen als hostingplatform voor hun website.

Bij aanvang van het project is het belangrijk om een juiste koers te bepalen. Architectuurkeuzes die hier gemaakt worden hebben hun effect over het gehele project. Zo is het bijvoorbeeld belangrijk om vooraf te bedenken op welk deployment platform de website het beste gehost dient te worden en welke tooling er gebruikt zal worden.

Het kiezen van een deployment platform

Wat betreft het kiezen voor een deploymentplatform zijn er twee opties die technisch haalbaar zijn voor een website die gebaseerd is op Sitefinity cms. Dit zijn de Azure Website en de Azure Cloud Service.

De Azure Website

Financieel gezien is dit van de twee de meest aantrekkelijke optie wanneer men kiest voor de optie van een 'gedeelde' webserver. Een gedeployde website wordt dan weliswaar gehost op een gedeelde webserver, in de researchfase voorafgaand aan de eerste Azure projecten, lijkt dit qua performance bijzonder stabiel te blijven. Ook een standaard webserver is aantrekkelijk wanneer er meerdere websites op worden geplaatst. Meer info over pricing.

Het grote nadeel aan Azure Websites is dat up-scaling (en dus ook autoscaling) geen optie is omdat de meest recente versie van Sitefinity (op dit moment 7.3) geen scaling ondersteuning biedt. Sitefinity kent een caching-invalidation mechanisme wat ervoor zorgt dat meerdere webservers in een loadbalanced-omgeving in sync met elkaar zijn. Wanneer er wordt opgeschaald in een Azure Website dan worden er wel meer server instanties ingezet, maar deze kunnen niet met elkaar communiceren.

Om een lang verhaal kort te maken: indien de bestedingsruimte klein is, kan Azure Websites een uitkomst als hostingplatform bieden. Maar alle grote voordelen van Azure kunnen bij deze optie niet benut worden. Bij Azure Cloud Services kunnen deze voordelen juist wel benut worden.

Cloud Service

Bij een cloud service zijn er geen technische beperkingen en zal up- en autoscaling naar behoren werken zodat altijd precies de benodigde capaciteit wordt ingezet en doorbelast. Autoscaling is overigens configureerbaar, het aantal geloadbalancede webservers kan afhankelijk worden gemaakt van de belasting op de CPU of juist de Message QUEUE. Gezien deze feiten zal voor de meeste projecten een Cloud Service de juiste keuze zijn. Een ander voordeel aan een Cloud Service ten opzichte van een website is dat er altijd naar een staged omgeving gedeployed kan worden, hierop kan getest worden alvorens de omgeving geswapped wordt met de productie omgeving. Bij het swappen van de omgevingen worden er slechts virtuele IP adressen gewijzigd. Hierdoor is er geen sprake van downtime wanneer de staging website wordt gepubliceerd naar de productie omgeving. Bij een stereotype project komt de infrastructuur met betrekking tot deployment er als volgt uit te zien:

Deployment tooling

Ook voor het opzetten van de deployment van een Sitefinity project geldt dat er twee benaderingen zijn namelijk het deployen met de Sitefinity Thunder Azure deployment Wizard en het door het opzetten van een Azure deployment project. Hierbij is het deployen met de Thunder Wizard verreweg de meest gemakkelijke manier om te deployen. Na het doorlopen van enkele stappen staat er een functionerende website in de cloud. Een groot nadeel aan deze wizard is dat de deployment minimaal te configureren is. Er zijn bijvoorbeeld op dit moment geen mogelijkheden om SSL certificaten in te stellen voor het backend van de website. Aangezien dit voor veel opdrachten een vereiste is komen we al snel uit op een Azure deployment project. Het opzetten van een deployment kan een tijdrovende klus zijn waarbij veel trial-and-error komt kijken maar wanneer het eenmaal staat is een website met een enkele klik op de knop binnen een kwartier gepublished.

Dat is overigens ook een groot voordeel van Azure. Een deployment wordt veel eenvoudiger dan bij een klassieke deployment, waarbij een developer bijvoorbeeld moet denken aan een database back-up en bedenken welke componenten hij moet deployen. Deze zaken zijn geautomatiseerd wat de impact van een deployment ten goede komt.

Conclusie

Het gebruikmaken van Windows Azure als hosting en deployment platform voor Sitefinity is absoluut aan te raden. De keuzes die gemaakt moeten worden met betrekking tot de architectuur en infrastructuur is erg afhankelijk van het soort project, daarom is enige research bij aanvang van het project zeker geen overbodige investering.