WINDOWS AZURE EN ISV'S EEN HANDLEIDING VOOR BESLISSERS
DAVID CHAPPELL JULI 2009
GESPONSORD DOOR MICROSOFT CORPORATION
INHOUD ISV's en cloud computing .................................................................................................................... 2 Een kort overzicht van Windows Azure ............................................................................................... 3 Technologie ............................................................................................................................................. 3 Bedrijfsmodel .......................................................................................................................................... 6 Windows Azure gebruiken: enkele mogelijkheden voor ISV's .............................................................. 7 Cloud-opslag gebruiken met uw applicatie op de eigen locatie .............................................................. 7 Cloud computing combineren met uw applicatie op de eigen locatie .................................................... 7 Een SaaS-versie van uw applicatie maken ............................................................................................... 8 Ondersteunende diensten bieden voor cloud-platforms ...................................................................... 10 Windows Azure vergeleken met alternatieve producten ................................................................... 11 Traditionele hosting............................................................................................................................... 11 VM's op aanvraag .................................................................................................................................. 11 Conclusies ........................................................................................................................................ 12 Over de auteur ................................................................................................................................. 12
1
ISV'S EN CLOUD COMPUTING Wat heeft een onafhankelijke softwareleverancier (ISV) aan cloud computing? Het antwoord is eenvoudig: gebruik van de cloud biedt de mogelijkheid om de inkomsten van een ISV te verhogen en/of de kosten te verlagen. Het kan aantrekkelijk zijn code uit te voeren en gegevens op te slaan in grote datacenters die toegankelijk zijn via internet en die worden beheerd door iemand anders. Iemand die verantwoordelijk is voor de strategie van een ISV zou serieus moeten nadenken over de manier waarop cloud computing de activiteiten kan bevorderen. Een van de mogelijkheden waarop een ISV kan profiteren van de cloud is door gebruik te maken van Windows Azure. Windows Azure is ontworpen voor het ondersteunen van zeer schaalbare en betrouwbare applicaties. Dit is het vlaggenschip van de Microsoft-cloud-platformtechnologie. In dit document kijken we hoe en waarom een ISV Windows Azure kan gebruiken. Het doel is duidelijk te maken waarom cloud computing belangrijk is voor ISV's en aan te tonen hoe zij dit nieuwe platform kunnen gebruiken. Voordat we in het onderwerp duiken, is het verstandig eerst enkele hoofdprincipes uit te leggen. U moet de volgende hoofdpunten begrijpen: Een primair doel van Windows Azure is dat dit een platform moet zijn waarop ISV's SaaS-applicaties (software as a service) kunnen maken. Klanten zijn steeds vaker geïnteresseerd in een SaaS-optie voor de software die zij kopen. Om aan deze vraag te voldoen en om concurrerend te blijven, bieden veel ISV's een SaaS-versie van hun huidige of toekomstige producten. Voor het maken van een SaaSapplicatie is een zeer schaalbare, zeer betrouwbare cloud-service nodig die gelijktijdig door talloze organisaties van de klant kan worden gebruikt. Het bouwen van uw eigen fundament hiervoor is net zo onlogisch als het schrijven van uw eigen besturingssysteem voor een applicatie op de eigen locatie. Zoals Windows een fundament biedt voor traditionele applicaties op de eigen locatie, kan Windows Azure een fundament bieden voor SaaS-applicaties. Cloud computing hoeft geen alles-of-niets-voorstel te zijn en SaaS-applicaties zijn niet de enige mogelijkheid. Een bestaande applicatie op de eigen locatie kan worden uitgebreid met cloudfunctionaliteit, zoals het uitvoeren van code of het opslaan van een subset van gegevens in Windows Azure. Met deze uitbreidingsbenadering voor het gebruik van een cloud-platform kunt u geld besparen en de functionaliteit van een huidige applicatie verbeteren. Op deze manier kunt u met een laag risico ervaring opdoen met deze nieuwe technologie. Cloud-platforms zijn niet alleen nuttig voor bedrijven die applicaties voor eindgebruikers maken. Als u een ISV bent die infrastructuuruitbreidingen of hulpmiddelen voor ontwikkelaars biedt voor een Windows-omgeving op de eigen locatie, kunt u waarschijnlijk ook producten met toegevoegde waarde maken voor Windows Azure. Naarmate er meer computeractiviteiten naar de cloud gaan, wordt het vinden van dit nieuwe aanbod waarschijnlijk een belangrijke manier voor u om uw inkomsten op peil te houden. Een cloud-platform zoals Windows Azure werkt anders dan traditionele hosting. Vanuit technisch oogpunt biedt Windows Azure eenvoudiger beheer en services die zijn ontworpen voor het maken van schaalbare en betrouwbare applicaties. De verschillen zijn onder andere minimale investering vooraf en eenvoudigere manieren voor het verhogen en verlagen van de computerresources die uw applicatie gebruikt. Door deze verschillen kan Windows Azure mogelijk betere technologie bieden en lagere kosten voor ISV-applicaties. Windows Azure zal in het begin waarschijnlijk worden gebruikt voor ondersteuning van bestaande applicaties in de cloud. Het is echter goed te weten dat cloud-platforms services bieden die we niet eerder hebben gezien, zoals toegang tot grote aantallen goedkope CPU's en zeer schaalbare gegevensopslag. Samen met ondersteuning voor de zaken die we al kennen, kunnen we verwachten dat creatieve ISV's manieren vinden om met dit nieuwe platform geheel nieuwe dingen te gaan doen.
2
EEN KORT OVERZICHT VAN WINDOWS AZURE Voor het nemen van goede beslissingen over het gebruik van Windows Azure is een basiskennis van het platform nodig. Dit hoofdstuk bevat een overzicht van de technologie en het bijbehorende bedrijfsmodel.
TECHNOLOGIE Windows Azure bestaat uit drie hoofdonderdelen: een rekenproces dat applicaties uitvoert, een opslagproces dat gegevens opslaat en een fabric die het rekenproces en opslagproces ondersteunt. In afbeelding 1 ziet u deze onderverdeling.
Afbeelding1: Windows Azure heeft drie hoofdonderdelen: het rekenproces, het opslagproces en de fabric waarvan beide processen afhankelijk zijn. Voor het gebruik van het rekenproces, maakt een ontwikkelaar een Windows-applicatie. Deze applicatie is mogelijk geschreven met C# en .NET Framework, met C++ en de Win32 API's, of op een andere manier. Ongeacht hoe de applicatie is gebouwd, moet deze worden geïmplementeerd als web role, worker role of beide. In afbeelding 2 ziet u de weergave van dit principe.
Afbeelding2: applicaties die zijn gebouwd op het Windows Azure-rekenproces kunnen bestaan uit web role instances, worker role instances of beide.
3
Zoals de naam doet vermoeden, accepteert een web role instance webverzoeken. Deze kan worden gemaakt met ASP.NET of een andere technologie die werkt met Internet Information Services (IIS). Ongeacht de technologie die wordt gebruikt, biedt Windows Azure ingebouwde taakverdeling van hardware in alle web role instances binnen een bepaalde applicatie. Voor functies die niet zijn bedoeld om direct te reageren op webverzoeken, kan een Windows Azureapplicatie ook worker role instances bevatten. Een worker role instance is niets anders dan een Windowsapplicatie met een main() en deze kan oneindig worden uitgevoerd. Met dit model kunt u onder andere schaalbare applicaties maken waarbij web role instances verzoeken accepteren en deze vervolgens doorgeven aan worker role instances om te worden verwerkt. Ondanks dat web role instances en worker role instances beide gewone Windows-applicaties zijn, is er voor enkele zaken, zoals logboekregistratie, directe toegang nodig tot Windows Azure. Hiertoe kunnen applicaties direct een Windows Azure-agent aanroepen, zoals wordt getoond in Afbeelding 2. Elke instance (zowel web role instance als worker role instance) wordt uitgevoerd binnen zijn eigen virtuele machine (VM). Op deze manier is de applicatie geïsoleerd, waardoor Windows Azure-applicaties worden uitgevoerd met volledig vertrouwen en dit biedt ook een helder inzicht in de prestaties van de applicatie omdat er een gedefinieerde toewijzing is tussen VM's en processorkernen. Maar een ontwikkelaar maakt niet expliciet VM's. In plaats daarvan uploadt de ontwikkelaar een applicatie naar Windows Azure, samen met een XML-configuratiebestand waarin gedefinieerd is hoeveel web role instances en worker role instances er moeten worden uitgevoerd. Wanneer dit klaar is, maakt Windows Azure het benodigde aantal VM's en monitort vervolgens de uitvoer. Als er bij een instance een storing optreedt, start Windows Azure een nieuwe instance. Windows Azure zorgt er hierbij voor dat altijd het opgegeven aantal web rol instances en worker role instances wordt uitgevoerd. (Deze taak wordt uitgevoerd door de fabric controller. Dit is software die verantwoordelijk is voor alle computers in een bepaalde instance van de fabric.) Voor het verhogen of verlagen van het aantal actieve instances kan de eigenaar van een applicatie de waarde voor een van de instance-typen wijzigen in de applicatieconfiguratie. Windows Azure maakt of sluit automatisch VM's op basis van deze nieuwe instelling. Aangezien Windows Azure-applicaties in feite Windows-applicaties zijn, is het geen verrassing dat ontwikkelaars deze kunnen maken met Visual Studio. Deze tool biedt sjablonen voor het maken van cloud-applicaties als web role, worker role of beide. Windows Azure biedt ook een ontwikkel-fabric. Dit is een duplicaat van Windows Azure die wordt uitgevoerd op een lokale computer. Hiermee kunnen ontwikkelaars hun code maken en eerste tests uitvoeren en vervolgens de applicatie uploaden naar Windows Azure wanneer deze klaar is. Applicaties hebben meestal permanente opslag nodig en daarom biedt Windows Azure zijn eigen cloudmechanisme voor het opslaan en ophalen van gegevens. Het platform biedt drie opslagopties die allemaal toegankelijk zijn via standaard HTTP GET-, PUT- en DELETE-acties. Dit wordt getoond in afbeelding 3.
4
Afbeelding3: de Windows Azure Storage-service is toegankelijk voor Windows Azure-applicaties en voor applicaties die ergens anders worden uitgevoerd. De drie typen Windows Azure-opslag zijn: Blobs: opslag van grote binaire objecten, zoals video's en afbeeldingen. Tabellen: zeer schaalbare opslag op basis van entiteiten (geen relationele tabellen). Wachtrijen: voor het verzenden en ontvangen van berichten, zoals tussen de web role instances en worker role instances van een applicatie. Het is belangrijk te vermelden dat deze alle drie toegankelijk zijn via applicaties die niet worden uitgevoerd in het Windows Azure-rekenproces. Een applicatie op de eigen locatie of een gehoste applicatie kan bijvoorbeeld kiezen om grote videobestanden op te slaan als Windows Azure-blobs. Het Windows Azure-platform is ook uitgerust met SQL Azure Database (voorheen SQL Data Services genoemd). SQL Azure Database biedt standaard relationele opslag gebaseerd op SQL Server, compleet met opgeslagen procedures en meer. Hoewel een database in SQL Azure Database niet zo veel informatie kan bevatten als een Windows Azure Storage-tabel, bieden deze databases een bekend opslagmodel dat toegankelijk is via ADO.NET en andere gangbare mechanismen voor gegevenstoegang. Zie Introducing Windows Azure (Inleiding tot Windows Azure) voor meer informatie over Windows Azure. Voor een onderzoek van het gehele Windows Azure-platform (voorheen Azure Services Platform genoemd) verwijzen wij u naar Introducing the Azure Services Platform: An Early Look at Windows Azure, .NET Services, SQL Services, and Live Services (Inleiding tot Azure Services Platform: een eerste kijk op Windows Azure, .NET Services, SQL Services en Live Services).
5
BEDRIJFSMODEL Een belangrijk voordeel van een cloud-platform en een groot verschil met traditionele hosting zijn de kosten op basis van verbruik. Bij traditionele hosting of een intern datacenter betaalt de eigenaar van een applicatie meestal voor een specifieke set machines voor een vaste periode. Voor applicaties met een variabele belasting moet deze vaste set groot genoeg zijn om de hoogste piek te verwerken. Dit betekent dat er ongebruikte capaciteit is op tijden dat de piek niet wordt bereikt. Bij cloud-platforms werkt het anders. Met Windows Azure betaalt de eigenaar van een applicatie bijvoorbeeld voor de computer- en opslagresources die hij gebruikt. Wanneer de belasting van de applicatie laag is, vraagt hij bijvoorbeeld drie web role instances en twee worker role instances. Wanneer de belasting hoog is, vraagt hij bijvoorbeeld zes web role instances en vier worker role instances. In beide gevallen betaalt de eigenaar alleen voor de resources die de applicatie gebruikt. Het kostenschema van Windows Azure is relatief eenvoudig en kent drie variabelen: rekentijd, gegevensopslag en -toegang, en bandbreedte voor inkomend en uitgaand verkeer. Voor de rekentijd betaalt de eigenaar van een applicatie een vast bedrag voor elk uur dat er een VM actief is. Voor gegevens is er een vast bedrag per gigabyte per maand, samen met een bedrag voor bewerkingen op opgeslagen gegevens, zoals GET- en PUT-bewerkingen. Voor de bandbreedte betaalt de eigenaar van een applicatie een vast bedrag per gigabyte aan gegevens die in en uit een Windows Azure-datacenter gaan. (Er zijn echter geen bandbreedtekosten voor toegang tot de gegevens binnen een datacenter.) De kosten zijn als volgt: Rekenen = $ 0,12 per uur voor elke actieve VM Opslag = $ 0,15 per GB opslag per maand, $ 0,01 per 10.000 bewerkingen op opgeslagen gegevens Bandbreedte = $ 0,10 per inkomende GB, $ 0,15 per uitgaande GB Windows Azure-applicaties kunnen voor opslag ook SQL Azure Database gebruiken. Nogmaals: de kosten zijn op basis van verbruik en kennen twee variabelen: de hoeveelheid opgeslagen gegevens en de hoeveelheid inkomende en uitgaande gegevens in een Windows Azure-datacenter. De kosten zijn als volgt: Web Edition: $ 9,99 per maand voor een relationele database met maximaal 1 GB opslag Business Edition: $ 99,99 per maand voor een relationele database met maximaal 10 GB opslag Bandbreedte = $ 0,10 per inkomende GB, $ 0,15 per uitgaande GB Microsoft zegt dat het uiteindelijk kortingen zal geven op basis van contracten. Dit is echter nog niet beschikbaar bij de introductie van het platform. Klanten die zich willen binden aan specifieke minimale verbruiksniveaus krijgen korting. Hierdoor kan Microsoft efficiënter plannen en door de lagere kosten kan Microsoft kortingen geven. Net zoals met andere producten, heeft Microsoft ook een partnerprogramma voor Windows Azure. Een onderdeel hiervan is Azure QuickStart. Dit is een centrale plaats waar ISV's en andere partners kunnen beginnen met het verkennen van het Windows Azure-platform en contact kunnen leggen met Microsoft en andere klanten die dit platform gebruiken. Het bedrijf biedt ook een Development Accelerator, waarmee ISV's die zich voor zes maanden willen binden korting krijgen voor ontwikkelgebruik op het Windows Azure-platform. Er zijn ook forums, telefonische ondersteuning en andere traditionele services beschikbaar. Hiermee erkent Microsoft dat het begrijpt dat ISV's een fundamentele rol spelen in het succes van Windows Azure.
6
WINDOWS AZURE GEBRUIKEN: ENKELE MOGELIJKHEDEN VOOR ISV'S Als u wilt weten of een cloud-platform kan leiden tot verbetering van uw activiteiten, moet u nadenken over de manier waarop u een dergelijk cloud-platform kunt gebruiken. In dit hoofdstuk kijken we naar enkele manieren waarop een ISV Windows Azure kan gebruiken.
CLOUD-OPSLAG GEBRUIKEN MET UW APPLICATIE OP DE EIGEN LOCATIE De makkelijkste manier waarop een ISV-applicatie gebruik kan maken van Windows Azure is mogelijk het opslaan van gegevens. Zoals eerder genoemd, is Windows Azure Storage toegankelijk vanuit applicaties op de eigen locatie en vanuit Windows Azure-applicaties. Een applicatie die momenteel back-ups maakt naar een opslagsysteem op de eigen locatie kan bijvoorbeeld kiezen voor Windows Azure Storage-blobs. Hierdoor kan de betrouwbaarheid van de back-up verbeteren aangezien blobs minimaal drie maal worden gerepliceerd (zoals alles in Windows Azure Storage). Ook kunnen de kosten verminderen door de schaalvoordelen van de zeer grote datacenters van Microsoft. Of denk aan een applicatie die zeer grote hoeveelheden gegevens biedt aan gebruikers, bijvoorbeeld video- en audiobestanden. In plaats van deze lokaal op te slaan, kan de applicatie kiezen voor Windows Azure Storage-blobs wegens betere beschikbaarheid, lagere kosten of beide. En Windows Azure Storage is niet de enige optie. Met SQL Azure Database kan een applicatie ook relationele gegevens opslaan in de cloud. Een applicatie die een set relationele tabellen moet delen over meerdere instances die worden uitgevoerd op verschillende locaties kan er bijvoorbeeld van profiteren van het feit dat die gegevens op één plaats beschikbaar zijn. Er zijn enkele beperkingen (een database in SQL Azure Database kan bijvoorbeeld niet meer dan 10 GB bevatten) en deze service is dus niet hetzelfde als het uitvoeren van SQL Server in de cloud. Toch zijn er enkele potentiële voordelen. Veel van de werkzaamheden die nodig zijn voor het beheren van een database zijn niet meer nodig met SQL Azure Database omdat Microsoft deze werkzaamheden voor u uitvoert. De beschikbaarheid van uw gegevens wordt verbeterd omdat SQL Azure Database, net zoals Windows Azure Storage, drie instances van alle gegevens opslaat om zo bescherming te bieden tegen hardwarestoringen. De kosten van deze opslag zijn mogelijk zelfs lager dan opslag op de eigen locatie, vooral voor kleinere organisaties. Wanneer u het Microsoft-cloud-platform gebruikt om gegevens op te slaan, moet u dat platform kunnen vertrouwen. De beste manier om vertrouwen op te bouwen, is om klein te beginnen en bij tevredenheid daarna uit te breiden. Voor een ISV die overweegt Windows Azure of SQL Azure Database te gebruiken, is het gebruik van de opslagservices vanaf een applicatie op de eigen locatie een mogelijkheid om ervaring op te doen met deze nieuwe aanpak voordat zij een grotere stap doen. Dit kan een goede manier zijn om te experimenteren met cloud computing.
CLOUD COMPUTING COMBINEREN MET UW APPLICATIE OP DE EIGEN LOCATIE Als het handig is de gegevens van een applicatie in de cloud te plaatsen, kan het ook handig zijn de cloud te gebruiken voor het uitvoeren van bepaalde applicatiecode. Een ISV die een applicatie biedt, kan bijvoorbeeld profiteren van het maken van een online marktomgeving tussen alle bedrijven die deze oplossing gebruiken. Het bouwen van deze functionaliteit op een cloud-platform zoals Windows Azure moet aanzienlijk sneller en goedkoper zijn dan deze vanaf nul op te bouwen. Of stel u voor dat een applicatie op de eigen locatie soms kan profiteren van meerdere processorkernen voor het verwerken van CPU-intensieve belastingen. Deze applicatie kan dan een aantal Windows Azure-worker role instances maken om dit werk te doen en kan deze sluiten wanneer de instances niet meer nodig zijn. Zoals altijd betaalt de klant alleen voor de resources die de klant gebruikt, dat wil zeggen de uren dat de VM's van deze worker role daadwerkelijk actief zijn.
7
Er zijn genoeg situaties waarbij het geheel verplaatsen van een bestaande applicatie naar de cloud niet praktisch is. Het overzetten van miljoenen regels code naar een cloud-platform kan te risicovol, te duur of gewoonweg niet de moeite waard zijn. In dergelijke gevallen is het handiger om nieuwe functionaliteit toe te voegen die in de cloud wordt uitgevoerd. Aangezien Windows Azure een kant-en-klaar platform biedt waarop cloud-applicaties kunnen worden uitgevoerd, kan dit type code eenvoudiger worden gemaakt.
EEN SAAS-VERSIE VAN UW APPLICATIE MAKEN Een ISV moest lange tijd software direct installeren op machines van de klant. Met SaaS-applicaties hoeft dit niet meer. In tegenstelling tot conventionele softwarepakketten, wordt een SaaS-applicatie uitgevoerd in een datacenter dat via internet toegankelijk is en via internet aan klanten wordt geleverd. SaaS-applicaties kunnen voor klanten werkelijke voordelen bieden, waaronder: Minder risico: in tegenstelling tot conventionele softwarepakketten, is er bij SaaS-applicaties geen grote investering vooraf nodig. Klanten kunnen de applicatie meestal gratis uitproberen voordat zij deze aanschaffen. Op deze manier kunnen zij beter beoordelen of de applicatie toegevoegde waarde zal hebben. Aantrekkelijkere prijsstructuur: de kosten van SaaS-applicaties zijn doorgaans gebaseerd op verbruik, zoals kosten per gebruiker per maand. Zo kunnen klanten klein beginnen en zo nodig gebruikers toevoegen. Hiermee kan de aanschaf van software ook een operationele uitgave zijn in plaats van een kapitaaluitgave. Dit kan voor bepaalde organisaties aantrekkelijk zijn. Snellere en goedkopere implementatie: software wordt niet geïnstalleerd op lokale computers, maar de gebruikers van een SaaS-applicatie openen de applicatie meestal via een gewone webbrowser. Eenvoudigere upgrades: de klant hoeft niet de eigen instances van een aangeschaft softwarepakket bij te werken, maar de SaaS-aanbieder werkt de SaaS-applicatie centraal bij. De voordelen van SaaS zijn met name aantrekkelijk voor bepaalde klanten en typen applicaties. Deze aanpak heeft echter ook nadelen en is niet voor elke applicatie geschikt. De grootste uitdagingen waarmee SaaS-klanten te maken hebben, zijn onder andere: Vertrouwen: kan een klant werkelijk vertrouwen op een aanbieder van een SaaS-applicatie? Is de applicatie altijd beschikbaar? Is de applicatieaanbieder te vertrouwen met gevoelige bedrijfsgegevens? Vertrouwen in de aanbieder is voor klanten de grootste drempel voor SaaS-applicaties. Dit vertrouwen geldt ook voor het cloud-platform waarop een SaaS-applicatie is gebouwd. Wetgeving en regelnaleving: veel bedrijven moeten van de overheid voldoen aan diverse normen, zoals normen inzake ondernemingsbestuur, Basel II, enz.. Als een SaaS-applicatie (en het cloudplatform waarop dit is gebouwd) niet voldoet aan deze verplichtingen, mag een bedrijf de applicatie niet gebruiken. Aanpassing: traditionele softwarepakketten die worden gebruikt op de eigen locatie kunnen vaak op diverse manieren worden aangepast. SaaS-applicaties zijn meestal "multi-tenant", wat betekent dat een instance van de software wordt gedeeld door alle gebruikers. Aanpassing is nog steeds mogelijk, maar het is vaak beperkter dan bij traditionele softwarepakketten.
8
Integratie met applicaties op de eigen locatie: een SaaS-applicatie moet voorzien in een methode waarop de code en gegevens met de applicatie op de eigen locatie worden geïntegreerd. Hieronder valt ook identiteitintegratie omdat klanten meestal eenmalige aanmelding (SSO) willen. Beheer: de meeste tools op de eigen locatie voor het beheren en monitoren van applicaties werken momenteel niet goed met SaaS-applicaties samen. Dit zal waarschijnlijk veranderen, maar door de huidige situatie worden bepaalde klanten ontmoedigd. Net zoals SaaS-applicaties voordelen en nadelen hebben voor organisaties die software kopen, hebben SaaS-applicaties ook voordelen en nadelen voor bedrijven die software verkopen. De voordelen voor SaaS-applicaties voor ISV's zijn onder andere: Potentie voor meer verkopen: klanten lopen minder risico en hebben minder kosten vooraf, waardoor initiële verkopen sneller en goedkoper kunnen zijn. SaaS-applicaties kunnen ook aantrekkelijk zijn voor nieuwe categorieën klanten, zoals kleinere organisaties, omdat voor deze applicaties minder interne IT-expertise vereist is. Eenvoudigere upgrades voor klanten: het is niet meer nodig elke klant te overtuigen om het softwarepakket op de eigen locatie te vervangen, maar een ISV kan in één keer een upgrade van de SaaS-applicatie voor alle gebruikers uitvoeren. Hierdoor kunnen de ondersteuningskosten voor een ISV aanzienlijk afnemen omdat het niet meer nodig is om talloze oude versies van een applicatie te ondersteunen. Niets is echter gratis, dus de overstap naar een SaaS-omgeving heeft ook enkele nadelen voor ISV's. De belangrijkste nadelen zijn: Een ander model voor verkopen en inkomsten: geld stroomt geleidelijk binnen en komt niet meer vooraf via licentiebetalingen binnen. Dit betekent lagere marges, in ieder geval in het begin. Minder loyaliteit van klanten: zonder de vaste kosten van een aangeschafte en mogelijk een in hoge mate aangepaste applicatie op de eigen locatie, is het voor klanten mogelijk eenvoudiger om over te stappen op een concurrerend product. Minder service-inkomsten van aanpassing: ISV's die een aanzienlijk deel van hun inkomsten halen uit het aanpassen van applicaties merken mogelijk dat deze inkomsten voor SaaS-applicaties lager zijn. Technische uitdagingen: voor het maken van een SaaS-applicatie is een andere set technische vaardigheden nodig dan die de meeste ISV's al hebben. Uw ontwikkelorganisatie moet nu een zeer schaalbare en betrouwbare gedeelde applicatie bouwen in plaats van bekende software op de eigen locatie. Ook zijn er mogelijk bepaalde wijzigingen aan bestaande code nodig omdat Windows Azure niet altijd hetzelfde werkt als de Windows Server-omgeving. Windows Azure verdeelt bijvoorbeeld de taakverzoeken over de web role instances van een applicatie en biedt geen ondersteuning voor sessieaffiniteit. Hierdoor is er betere schaalbaarheid mogelijk, maar dit is mogelijk niet de manier waarop uw applicatie is ontworpen. De werkelijkheid is duidelijk: SaaS-applicaties zullen een belangrijke rol gaan spelen, maar zij zullen software op de eigen locatie niet doen verdwijnen. Elke ISV die een applicatiepakket biedt, moet zijn aanbod bekijken en een beslissing nemen: wat is geschikt om te leveren als SaaS? Met name wanneer uw concurrenten deze weg inslaan, is het maken van een SaaS-versie van een huidige applicatie op de eigen locatie mogelijk de juiste optie. Zoals eerder genoemd, is een van de primaire doelen van Windows Azure het ondersteunen van SaaSapplicaties. Veel aspecten van het ontwerp sluiten aan bij dit doel. Een SaaS-applicatie moet bijvoorbeeld schaalbaarder zijn dan een applicatie op de eigen locatie omdat deze meerdere klanten gelijktijdig ondersteunt. De verdeling tussen web role en worker role in Windows Azure is bedoeld om zeer
9
schaalbare applicaties te maken doordat het werk tussen een front-end web role en een back-end worker role wordt verdeeld. Ook zijn Windows Azure Storage-tabellen nadrukkelijk ontworpen om zeer grote hoeveelheden gegevens op te slaan, veel meer dan met één beheersysteem voor relationele databases kunnen worden beheerd. Een SaaS-applicatie moet ook een betere betrouwbaarheid bieden dan een applicatie op de eigen locatie omdat een eventuele storing van invloed is op alle klanten en niet op slechts één. Windows Azure Fabric kan dit bereiken door elke actieve instance van een applicatie te monitoren. Als een instance, een VM of zelfs een gehele machine een storing heeft, zal de fabric controller een andere starten om de taken over te nemen. De fabric controller kan ook een actieve applicatie bijwerken zonder deze te sluiten. Dit is een belangrijk kenmerk voor een SaaS-applicatie die continu beschikbaar moet zijn. Een ander belangrijk kenmerk voor een effectieve SaaS-applicatie is flexibiliteit: het vermogen om pieken in de vraag op te vangen. Met een conventionele applicatie moet een datacenter de maximale belasting kunnen ondersteunen die deze applicatie ooit moet verwerken. Dit is zeker mogelijk, maar het is duur en verspillend. Het grootste deel van de capaciteit van het datacenter wordt de meeste tijd niet gebruikt. Bij Windows Azure is het aanpakken van dit probleem eenvoudiger. De eigenaar van een applicatie kan het aantal actieve instances op elk moment wijzigen door met de fabric controller VM's te maken of te sluiten wanneer dit nodig is. Aangezien Windows Azure-klanten alleen betalen voor de resources die zij gebruiken, betalen zij op deze manier alleen voor een grote hoeveelheid computerresources op het moment dat deze resources daadwerkelijk nodig zijn. Wanneer de belasting afneemt, wordt de applicatie teruggebracht naar de normale grootte. SaaS-applicaties hebben andere vereisten dan traditionele applicaties op de eigen locatie. Deze verschillen zijn een belangrijke reden van het ontwerp van Windows Azure. Een ISV die een SaaSapplicatie maakt, kan zijn eigen platform bouwen. In het begin deden enkele ISV's dit omdat er geen alternatief was. Door de opkomst van cloud-platforms kunnen ISV's die SaaS-applicaties maken zich nu concentreren op hun bedrijfslogica in plaats van infrastructuur. Waarschijnlijk zal in de toekomst de meerderheid van SaaS-applicaties worden gemaakt op een cloud-platform, zoals Windows Azure.
ONDERSTEUNENDE DIENSTEN BIEDEN VOOR CLOUD-PLATFORMS Veel ISV's bieden tegenwoordig infrastructuur- en beheerservices voor omgevingen op de eigen locatie. Vele anderen bieden software waarmee ontwikkelaars gemakkelijker kunnen werken. Enkele van deze oplossingen zijn niet relevant in de cloud, maar andere wel. Er zijn ook nieuwe mogelijkheden, plaatsen waar ISV's geld kunnen verdienen door toegevoegde waarde te bieden voor Windows Azure. Windows Azure biedt bijvoorbeeld toegang tot prestatiegegevens over actieve applicaties. Een tool die deze gegevens samenvoegt en vervolgens via een effectieve gebruikersinterface presenteert, kan voor klanten van Windows Azure nuttig zijn bij het beheren van hun cloud-applicaties. Windows Azure biedt ook API's waarmee een applicatie direct het aantal actieve web role instances en worker role instances kan wijzigen zonder tussenkomst van een persoon. Het platform biedt echter geen software die de belasting van de applicatie monitort en vervolgens deze API's gebruikt om het aantal actieve instances hierop aan te passen. Dit kan een ISV doen door producten te bieden waarmee ontwikkelaars deze functionaliteit eenvoudig kunnen toevoegen aan hun applicaties. De opkomst van cloud-platforms betekent een grote verandering voor ISV's. Bij elke grote verandering is het verstandig om dingen stap voor stap te doen, zoals het gebruik van Windows Azure-cloud-opslag of het overzetten van een deel van uw applicatie naar de cloud. Als dit goed werkt en financieel aantrekkelijk is, kunt u grotere stappen nemen wanneer dit nodig is, zoals het maken van een volledige SaaS-versie van uw applicatie.
10
WINDOWS AZURE VERGELEKEN MET ALTERNATIEVE PRODUCTEN Windows Azure staat niet op zichzelf; er zijn ook andere benaderingen. In dit hoofdstuk wordt Windows Azure vergeleken met twee van de meest voor de hand liggende alternatieven: traditionele hosting en cloud-platforms die VM's op aanvraag bieden.
TRADITIONELE HOSTING Voor de meeste mensen die een externe locatie zoeken voor het uitvoeren van hun applicaties, is de eerste optie een hostingprovider. Bij traditionele hosting vraagt een klant een vaste set resources en betaalt voor het gebruik van deze resources voor een vaste periode. Een ISV die een SaaS-applicatie wil uitvoeren kan bijvoorbeeld een contract afsluiten met een hoster voor zes Windows-servers gedurende een jaar en betaalt voor deze service een vooraf overeengekomen bedrag. Hosting heeft vele voordelen. Een hoster is vaak goedkoper dan een intern datacenter, met name voor kleinere organisaties. Hiermee kunnen klanten ook de complexiteit van het beheren van een eigen datacenter vermijden terwijl zij toch de totale controle hebben over de machines die worden gebruikt. Ondanks dat de opkomst van cloud-platforms waarschijnlijk zal leiden tot een afname van traditionele hosting, zal dit model zeker niet verdwijnen. In veel situaties is dit nog steeds een goede oplossing. Voor bepaalde applicaties is een cloud-platform, zoals Windows Azure echter een betere keuze. Voordelen: De mogelijkheid om het aantal gebruikte servers snel te verhogen: bij een hoster kan het mogelijk enkele dagen duren voordat er een nieuwe machine beschikbaar is. Bij een Windows Azure-applicatie kan een nieuwe VM binnen enkele minuten beschikbaar en in gebruik zijn. De mogelijkheid om het aantal gebruikte servers snel te verlagen: hosters vragen over het algemeen om een vast aantal servers af te nemen die alleen voor u worden gebruikt. Met Windows Azure kan een applicatie het aantal gebruikte VM's verlagen door het aantal web role instances en/of worker role instances te verlagen. Hierdoor dalen de kosten van het uitvoeren van deze applicatie. Er is geen verplichting vooraf om een minimum aantal servers te gebruiken. De mogelijkheid om services te bieden die expliciet zijn ontworpen voor applicaties met een zeer grote schaalbaarheid en beschikbaarheid: hosters bieden over het algemeen standaard Windowssystemen, waarbij de klant zelf de actie moet ondernemen die nodig is om hun applicaties uit te voeren. Zoals eerder beschreven, kan een cloud-platform zoals Windows Azure specifiek worden ontworpen voor het ondersteunen van applicaties met zeer hoge eisen aan schaalbaarheid en beschikbaarheid. Minder beheeroverhead: in tegenstelling tot Windows Azure, geven hosters over het algemeen volledige beheertoegang tot hun machines. Het nadeel hiervan is dat er meer beheerwerkzaamheden zijn vereist: alles van patches voor besturingssystemen tot het beheren van databasebeheerssystemen. Met Windows Azure (en SQL Azure Database) wordt het meeste van dit werk voor u gedaan, waardoor u tijd en geld bespaart.
VM'S OP AANVRAAG Een aantal leveranciers, waaronder Amazon, Mosso, en GoGrid, biedt virtuele machines op aanvraag. In tegenstelling tot traditionele hosters, zijn de kosten bij deze leveranciers meestal op basis van verbruik, zijn er geen vaste kosten en kunnen VM's snel beschikbaar worden gesteld. In andere woorden: zij bieden cloud-platforms.
11
Windows Azure is ook een cloud-platform, maar ondanks dat het VM's gebruikt (en hiervoor factureert), zijn er belangrijke verschillen met platforms die VM's op aanvraag bieden. Een platform dat puur is gebaseerd op VM lijkt in bepaalde opzichten veel op hosting: u hebt de volledige controle, waaronder beheertoegang tot uw VM's, maar u hebt niet de volledige verantwoordelijkheid voor het configureren en beheren van deze VM's en de software die erop staat. Met Windows Azure levert u alleen een Windowsapplicatie, samen met instructies over het aantal instances dat moet worden uitgevoerd. Het platform zelf draagt zorg voor al het andere, waaronder het bijwerken van systeemsoftware wanneer dit nodig is. Een ander belangrijk verschil is de verwerking van de relationele database. Met typische VM-platforms kunt u een relationele database uitvoeren in een VM, net zoals u dezelfde database zou uitvoeren op de eigen locatie of bij een hoster. Dit werkt, maar hierbij moet u de database zelf installeren, onderhouden en beheren. De betrouwbaarheid kan ook een probleem worden, aangezien typische clusters met gedeelde schijven vaak niet beschikbaar zijn. Met Azure kan een applicatie in plaats hiervan SQL Azure Database gebruiken. Zoals eerder beschreven, biedt deze technologie een door Microsoft beheerde relationele opslag waarin alle gegevens meerdere malen worden opgeslagen voor een hogere betrouwbaarheid. Nogmaals: u hebt niet meer de volledige controle, maar u krijgt er eenvoud en ingebouwde betrouwbaarheid voor terug.
CONCLUSIES Net zoals alle nieuwe platforms, zal Windows Azure alleen een succes worden wanneer ISV's hierop applicaties gaan bouwen. Microsoft begrijpt dit en het aantrekkelijk maken van het nieuwe cloudplatform voor deze doelgroep is voor Microsoft een prioriteit. De belangrijkste voordelen zijn: De kosten kunnen aantrekkelijk zijn doordat ISV's met Windows Azure applicaties kunnen uitvoeren en gegevens kunnen opslaan in een zeer groot datacenter terwijl zij alleen betalen voor de gebruikte resources. Windows Azure biedt een kant-en-klaar platform dat is ontworpen om schaalbare en betrouwbare cloud-applicaties te ondersteunen. Hierdoor bespaart u tijd en geld bij het maken en uitvoeren van SaaS-applicaties en andere codes voor gebruik in de cloud. Cloud computing lijkt de volgende grote ontwikkeling in onze branche. Net nu ISV's zich hebben aangepast aan de veranderingen als gevolg van pc's, mobiele apparaten en andere nieuwe platforms, moeten zij nu besluiten hoe zij gaan profiteren van cloud-platforms. Net zoals Windows een belangrijke rol speelde bij eerdere ontwikkelingen, zal Windows Azure ook een belangrijke rol spelen bij deze nieuwe ontwikkeling. Als u verantwoordelijk bent voor de strategie van uw bedrijf, is het verstandig om de Azureomgeving te begrijpen en te evalueren.
OVER DE AUTEUR David Chappell is president van Chappell & Associates (www.davidchappell.com) in San Francisco, Californië, Verenigde Staten. Via lezingen, artikelen en consults helpt hij mensen over de hele wereld om betere beslissingen te nemen over nieuwe technologieën.
12