Omdat cloud computing mijn volledige aandacht heeft let ik op welke diensten voorop lopen. Windows Azure is een cloud computing dienst van Microsoft die door veel deskundigen als de nummer twee gezien wordt achter Amazon Webservices. Tijd om uit te leggen waarom het potentieel van Windows Azure zo groot is.
Het hart van Windows Azure is de mogelijkheid om generieke servers te virtualiseren die volledig ingericht live gezet worden om een bepaalde rol te vervullen. Dit heeft wat toelichting nodig. Stel je hebt software voor de browser gemaakt (SaaS), deze kun je met een druk op de knop live brengen in het Windows Azure datacenter. Wat er gebeurt is dat er één of liefst meerdere up-to-date Windows 8 servers gevirtualiseerd worden. Daar bovenop wordt het software product volledig geautomatiseerd ingericht en voor de servers wordt een loadbalancer geplaatst om de workload te verdelen als de dienst op de proef gesteld wordt.
Een testomgeving opzetten die exact gelijk is aan de productieomgeving is ook een druk op de knop. Als de test geaccepteerd wordt is het mogelijk deze te swappen met de productie omgeving zonder downtime. En je betaalt overigens alleen voor wat je gebruikt.
Opschalen en neerschalen kan met een slider via de beheerportal of geautomatiseerd met een script.
De kracht van deze Platform as a Service-dienst is dat je een robuuste resilient dienst hebt die relatief goedkoop is en heel veel complexe zaken uit handen neemt waardoor je met een klein team online diensten kunt ontwikkelen die door miljoenen gebruikers tegelijk gebruikt kunnen worden.
Overigens kun je ook gewoon met het handje servers virtualiseren, aardig is de optie om een server te delen. Het is in theorie iets minder veilig en de performance is matig, maar het kost dan ook minder dan tien euro per maand. Zo’n server is krachtig genoeg om er meerdere gewone websites op te draaien of om software op te testen. Ik gebruik het onder andere om Windows Server 2012 te onderzoeken.
Data
Naast rekenkracht heb je data nodig. Veel data. Eigen gevirtualiseerde servers bestaan in feite uit grote bestanden en sla je dan ook op in de Storage-dienst van Windows Azure. Je hebt daar behoorlijk wat smaken, die allemaal wat andere eigenschappen hebben. Blob storage is in principe oneindig, je betaalt alleen naar wat je opslaat en soms voor de verplaatsing en het consumeren daarvan. Deze storage kun je ook gebruiken om opslag aan te bieden aan je gevirtualiseerde servers. Dit is erg handig omdat je de servers zelf generiek houdt en meerdere servers de data samen kunnen delen wat handig is voor schaalbaarheid. Een leuke bijkomstigheid is dat hoe meer je de data gebruikt hoe beter de performance wordt. Iets wat wellicht botst met je intuïtie.
Maar je kunt veel meer met data in Windows Azure doen. Heel veel meer. Zo kun je objecten aanmaken en deze objecten opslaan in No-SQL-tabellen. Het nadeel is dat je geen JOINS kunt maken naar andere tabellen, het is No-SQL. Het voordeel is echter de performance als het aantal records toenemen, dus dat het makkelijk schaalbaar en performant te houden is door middel van partitionering. Daarnaast kun je er veel meer data in stoppen dan relationele tabellen, en dat het ook nog eens geografisch redundant is. Dit betekent dat als het Windows Azure-datacenter in Amsterdam uitvalt er automatisch uitgeweken wordt naar het datacenter in Ierland, zonder dat de data ineens onbereikbaar wordt, een groot verschil met als je verbind aan een specifieke database. Een andere eigenschap is dat in de basis iedere eigenschap van het object geindexeerd is. Dit komt het bevragen van objecten uit de tabel ten goede en heeft relatie tot big data.
SQL Server
Windows biedt ook SQL Server als dienst aan. Dit lijkt alsof je gewoon een SQL Server hebt, de verbinding is hetzelfde en je kunt het ook gewoon koppelen aan de lokale installatie van SQL Server Management Studio. Toch zitten er veel details aan die het anders maken. Zo beheer je niet de server waarop het staat, zijn zaken zoals CLR niet mogelijk en kun je tabellen niet wijzigen met de interface van de management studio. Ook heb je zeer weinig invloed op de performance. Het is mogelijk dat een andere klant van SQL Azure invloed heeft op jouw performance en dat is zacht gezegd onhandig. Dat staat trouwens los van veiligheid. SQL Server draait per definitie in een gedeelde omgeving. Een krachtig voordeel van SQL Server op Windows Azure is dat er automatisch een fail-over scenario geldt. Jouw SQL Server database in Amsterdam heeft twee replica’s binnen het datacenter, al kun je dit niet zelf testen of simuleren om te kijken wat hiervan de consequentie is. Voordeel is dat je een SQL Server (2012)-database hebt die heel gemakkelijk te deployen en backuppen is en het realiseren van een webapplicatie simpel maakt, al leent de database zich in mijn ogen niet voor enterprise applications waarvoor je een garantie in performance wilt afgeven. Je komt dan snel in een veel complexer scenario terecht.
PaaS diensten
Nu biedt Windows Azure ook mogelijkheden om rekenkracht te combineren met data zonder dat je hiervoor per se een server hoeft in te richten. Voorbeeld hiervan zijn queues en enterprise service bus. In feite heb je gewoon een url-endpoint waarin je data kunt stoppen in de vorm van berichten, deze kunnen weer geconsumeerd worden door externe diensten of door één van de rollen van een server zoals eerder boven beschreven. Voorbeelden hiervan zijn het verwerken van videomateriaal. In een queue stop je een bericht met een verwijzing naar een locatie waar een te bewerken videobestand staat. De queue verwerker weet zodoende welke video’s bewerkt moeten worden.
Ook zijn er veel mogelijkheden om jouw on-premise omgeving naadloos aan te laten sluiten bij servers en diensten van Windows Azure in het datacenter. Dit is wat je ook als private cloud zou kunnen betitelen. Voordeel hiervan is dat je bijvoorbeeld single sign-on kunt realiseren of je serverpark uit kunt bereiden zonder fysieke servers aan te schaffen. Besef dat dit veel impact heeft op je latency.
Windows Azure biedt ook het hosten van websites aan. Dit kan gratis, dan is het domein wel Naam.azurewebsites.net, maar met geringe bijbetaling kun je dit onder je eigen domeinnaam draaien. De kracht is echter de snelheid waarmee je bijvoorbeeld diverse cms’en kunt deployen. Dit gaat in de vorm van een app market waar steeds mogelijkheden aan worden toegevoegd.
Potentieel
De mogelijkheden van Windows Azure nemen bijna wekelijks toe, het model wat je ook ziet bij Amazon Webservice. Nadeel is dat er wel eens van zaken afscheid genomen wordt, of dat je bepaalde functionaliteit ineens op een andere manier moet aansturen. Aan de andere kant, nu de wereld nog niet massaal de dienst omarmt kunnen ze nu nog agile ontwikkelen, dit is noodzakelijk in een uiterst concurrerende markt waar Amazon Webservices onbetwist leider is.
Het potentieel van Windows Azure is enorm en ieder bedrijf dat software ontwikkelt zou zich moeten verdiepen in de mogelijkheden van Amazon Webservices en Windows Azure of is mogelijk in mijn ogen niet goed bezig. Al is het alleen maar onder het mom van ‘ken uw vijand’. De diensten zijn echter wel behoorlijk verschillend. Amazon Webservices biedt mogelijkheden die Windows Azure niet heeft en andersom maakt Windows Azure het opzetten van resilient en robuuste webdiensten weer makkelijker. In een volgend artikel zal ik op de Amazon Webservices dienst in gaan.
Ik beweer niet dat Windows Azure alles kan en het beste is. Inzetten op Windows Azure kent behoorlijk wat consequenties en beperkingen. Maar de manier waarop het kan en gaat heeft absoluut de toekomst. Het neemt allerlei traditionele ballast weg en je hebt de beschikking tot moderne technologie, waarvoor je zelf geen kapitale investeringen hoeft te doen. Het is alsof je een nieuwe auto least voor weinig terwijl je ieder uur zou kunnen switchen als je dat zou willen. Dus wel de lusten en niet de verplichting lange contracten aan te gaan.
Ter afsluiting wil ik nog toevoegen dat er veel ondersteuning is vanuit de community en trainingsmateriaal is veel en gratis te verkrijgen, kennis is breed beschikbaar en er zijn veel mogelijkheden om bijvoorbeeld gratis bronnen te verkrijgen in de vorm van ‘cloud essentials’. Als klap op de vuurpijl biedt Microsoft ook nog een volledige source control-omgeving aan, waarin je kunt samenwerken, bugtracken, taken verdelen en scrummen en dat gratis voor teams tot vijf ontwikkelaars.
Meer weten over Windows Azure? Ga naar www.WindowsAzure.com, vooral de prijs calculator is een voorbeeld van gebruiksvriendelijkheid. Op www.visualstudio.com vind je de source control oplossing.
Conclusie
Er zijn veel redenen om Windows Azure te onderzoeken: Sneller robuuste webdiensten realiseren tegen een aantrekkelijke prijs waarbij je ontzorgd wordt. Doordat je alleen betaalt naar gebruik kun je de uitgaven in lijn brengen met de inkomsten wat vanuit een business case tot een ideale situatie leidt. Ook reikt de omgeving een goedkope krachtige methode aan om een test- en ontwikkelomgeving gelijk te houden met de productie-omgeving zonder capitale investering. Het nadeel van de dienst is de snelheid van veranderingen, bepaalde beperkingen ten opzichte van een on-premise omgeving en dus specifieke kennis die opgedaan dient te worden.
Henri,
Leuk stuk. Waar voor dank! Ik heb nog wel een paar vragen.
Kun je iets meer uitwijden over de storagesmaken van Azure?
Wordt daar aan QOS gedaan? Kan ik behalve capaciteit ook performance ( lees IOPS) afnemen? En hoe is het geregeld qua multi-tenancy? Beinvloedt de zwakste schakel de gehele keten? En vice versa natuurlijk.
Tevens is onderstaande opmerking is mij niet gehaal duidelijk.
“Een leuke bijkomstigheid is dat hoe meer je de data gebruikt hoe beter de performance wordt”
Ik neem aan dat dit niet helemaal opgaat bij de echt zware DB’s. Of zit hier een prijsverschil in? Hoe meer performance je gebruikt des te meer je betaalt. Zijn hier afspraken over te maken? Denk hierbij aan een minimale gegarandeerde performance.
En nog even 1 vraag. Hoe gaat MS-Azure om met de regelgeving in bijvoorbeeld Duitsland? Is het ook mogelijk om alleen maar binnen de landsgrenzen uit te wijken? Soms ontkomt je hier door eerder genoemde regelgeving namelijk niet aan.
Ik hoor graag meer van je.
@Ruud: Ik heb even wat spoedjes, maar kom hier vanavond op terug. Fantastische vragen! Deels met een makkelijk antwoord, deels wat gecompliceerder (is anything ever easy?)
Brr…Azure gaat weer sterk richting vendor lock-in. Als je gebruikt maakt van Vendor-eigen Bigdata-oplossingen dan dan ben je aan de goden overgeleverd.
xAAS aanbieders die hun diensten baseren op de Openstack-architectuur (http://www.openstack.org/foundation/companies/) genieten daarom mijn voorkeur. Wellicht kun je daaraan ook een artikel wijden ?
@ Henri,
Ik ben erg benieuwd en ik kijk uit naar je antwoorden.
Ik ben al lang blij dat ik geen “domme” vragen gesteld heb 🙂
Henri,
Ik denk dat DIT thuis hoort in de categorie expertverslagen want het gaat uitvoerig in op de mogelijkheden van Azure en geeft veel informatie waarbij je ook eerlijk bent over mogelijke consequenties van gedeelde resources, maar dat is dan weer mijn opinie.
Wel heb ik natuurlijk nog vragen over dat stukje noSQL, de Windows Azure Table Storage. Onmiskenbaar heeft deze structured storage voordelen maar het maakt volgens mij de aansluiting op on-premises databases wel iets moeilijker. Want hoewel ik toevoeging van Nick niet relevant vind is er natuurlijk wel het gevaar van ’to early adoption’ omdat Microsoft ook nog bezig is met federation.
Goed en behoorlijk compleet overview stuk over Azure, Henri. Ik had wel liever een beter onderscheid tussen Azure als PaaS en Azure als IaaS gezien, dat loopt nu een beetje doorelkaar (maar daar ben jij niet de enige in). Toevallig heb ik pas een technische review uitgevoerd van een nieuw in maart te verschijnen boek uit de stal van Thomas Erl: Cloud Computing: Concepts & Technology, waarin op een leverancier onafhankelijk manier “wetenschappelijk” naar de verschillende aspecten van cloud computing wordt gekeken. Ik moet zeggen, erg goed leesvoer. Zie: http://bit.ly/XvhSmK
Henri,
Goed stuk. Ik heb het met veel interesse gelezen. Het inspireert mij direct om vanuit use-cases te denken en creatief te zijn. Bijvoorbeeld vanuit een IT Dienstverlener. Vaak hoor je, ik ervaar het zelf ook helaas, dat je niet altijd de middelen hebt of krijgt om een Lab op te zetten. Bijvoorbeeld voor wat tests of als voorbereiding voor studie of ontwerp.
Als Azure inderdaad middels een concept werkt, je betaald naar je verbruik, zie ik alleen al veel potentie voor dit soort zaken.
Je hebt mij in ieder geval geïnspireerd en ik ga er verder induiken. Dank!
Henri,
Ik ben het met Ewout eens dat dit thuis hoort in Expertverslagen! Je verhaal hierboven zie ik als de vertaling/ondertiteling van een Microsoft filmpje over Azure dat ik een tijd geleden op het internet heb gezien. Ik lees geen advies, niks over nadelen van deze oplossing, niks over voor wie en wanneer dit van toepassing is en alleen maar het verwoorden van een Microsoft filmpje!
Mooi! Ik ga mijn omgeving morgen in een keer naar Azure brengen. Maar hoe zit het met een aantal diensten die ik graag bij Google wil afnemen? Denk bijvoorbeeld aan de authenticatie tussen deze twee jongens.
Ik kan een sla kiezen uit een aantal smaakjes die mij door MS voorgelegd zijn. Maar wie zegt dat de sla die ik wens daartussen zit? Zijn ze bereid om samen met mij voor mijn bedrijf (150 gebruikers) een sla op te stellen?
Oh ja, ik gebruik ook een aantal Unix/Linux machines (voor bijvoorbeeld mailserver) in mijn huidige omgeving. Worden ze ook ondersteund in Azure? Zo ja wat zijn de regels zo niet……..tja dan weet ik wat ik te doen heb!
Spijtig dat ik geen woord over de nadelen van Azure lees! Als dat gebeurd was had ik persoonlijk wat aan deze bevindingen, want hiermee zou ik iets te weten komen wat ik niet eerder in dat Microsoft filmpje heb gezien.
Gijs,
Hoewel ik natuurlijk niet voor mijn beurt moet praten, het eerste en laaste woord is aan Henri, denk ik dat je in dit geval het idee van IaaS even los moet laten of parkeren bij zijn huidige beoordeling van Azure. Tenslotte schrijft hij al: “Voordeel is dat je een SQL Server (2012)-database hebt die heel gemakkelijk te deployen en backuppen is en het realiseren van een webapplicatie simpel maakt, al leent de database zich in mijn ogen niet voor enterprise applications waarvoor je een garantie in performance wilt afgeven. Je komt dan snel in een veel complexer scenario terecht.”
En hoewel er bij mijn weten (beperkt) ondersteuning is voor open source is denk ik dat oplossing van Microsoft begint bij PaaS. Het migreren van Windows on-premise naar Windows in de cloud dus of zoals Henri het schrijft: met een druk op de knop een deployment naar Azure. Daar zitten enige nadelen aan zoals Henri ook zegt met: “Jouw SQL Server database in Amsterdam heeft twee replica’s binnen het datacenter, al kun je dit niet zelf testen of simuleren om te kijken wat hiervan de consequentie is.” maar ook een groot voordeel in een snellere migratie en daarmee dus minder kosten.
Dat alles wil volgens mij natuurlijk nog niet zeggen dat je de gehele architectuur on-premise zomaar even naar de cloud brengt maar voor de (web-enabled) frontoffice is het zeker een interessante mogelijkheid. Nu hadden we eerder discussie over architectuur raamwerken en ik denk dat je hier op iets stuit wat dus wringt omdat er appels met peren vergeleken worden.
Hierover heb ik meerdere bijdragen geschreven omdat we in mijn opinie inderdaad het denken moeten veranderen (zoals niet-reagerende expert Alexandra schrijft) in beheerbaar en beheerSbaar. De cloud is dus niet voor control-freaks maar moeten we overal controle over behouden?
@ Reza,
Ik deel je mening dat dit meer een expertverslag is. But who cares! Ik vind het artikel best leerzaam en het lees gemakkelijk weg. En voor mij persoonlijk beschikt het veel informatie.
En ja veel is al online terug te vinden, maar dat hou je altijd met Cloud, BYOD, Back-up, Storage etc. Omdat er eenmaal veel over geschreven wordt.
Ik lees toch echt dat Henri enkele nadelen benoemt. Misschien niet zo diepgaand als jij wilt maar voor mij was het meer dan afdoende. Ik vind je wel heel erg kritisch richting Henri. Maar dat is een heel andere discussie.
Ik ben net zoals jij ook erg benieuwd naar SLA’s. Hoe kan je hier onderscheid in maken en hoe kan je performance garanties krijgen? Maar deze vraag heb ik al gesteld en het wachten is nog even op Henri’s feedback.
En tja het blijft een Windows platform dus niet alles kan je er op draaien. Maar dat is natuurlijk niet zo wereldschokkend en een bekend euvel van de MS-diensten/producten.