Door Aad Offerman

Freelancer

Windows Azure: huwelijk tussen desktop en cloud

25-07-2011 • 09:00

48

Multipage-opmaak

Inleiding

De komende jaren zullen we niet alleen steeds meer functionaliteit op het internet afnemen, maar ook een deel van bestaande en nieuwe applicaties vervangen door cloud services. De belangrijkste platformleveranciers zijn Amazon, Google en Microsoft. De eerste twee bespraken we al eerder; Microsoft Azure komt in dit artikel uitgebreid aan bod.

Microsoft Azure lijkt conceptueel op de Google App Engine die we eerder bespraken. Beide zijn Platform-as-a-Service-omgevingen. Waar Google zijn cloud-ontwikkelaars een suite voor de ontwikkeling, de inzet en de hosting van Python- en Java-applicaties biedt, doet Microsoft met Azure iets vergelijkbaars voor .Net.

Helaas!
De video die je probeert te bekijken is niet langer beschikbaar op Tweakers.net.

Windows en SQL Azure

Wat de Azure-omgeving onderscheidt van de normale Windows-ontwikkelomgeving zijn de cloud-specifieke faciliteiten. De kern wordt gevormd door Windows Azure, dat een omgeving voor het uitvoeren en beheren van gehoste toepassingen biedt. De belangrijkste onderdelen zijn resource management, load balancing en lifecycle management.

Voor de opslag van gegevens is er SQL Azure, een gehoste, horizontaal schaalbare versie van de SQL Server database. Deze database vervult een vergelijkbare rol als Googles Datastore en Amazons S3- en Relational Database Service-diensten. Omdat ook relationele opslag en query's worden ondersteund, is met name die laatste concurrent goed vergelijkbaar.

Horizontale schaalbaarheid

De horizontale schaalbaarheid van SQL Azure is gebaseerd op de sharding-technologie. Daarbij worden databases onderverdeeld in zogeheten shards, die elk een aantal records bevatten. De shards kunnen vervolgens op verschillende systemen worden ondergebracht. De programmeur wordt bij het gebruik hiervan geholpen door SQL Azure Federations.

Tweakers.net-Expertpanellid Loather noemt de maximale grootte van 10GB als een ernstige beperking van SQL Azure-databases. "De andere, niet-relationele Storage-vormen ondersteunen tot 1TB aan informatie. Die zijn bij uitstek geschikt om de data over meerdere machines te verdelen."

Volgens panellid creator1988 zit de beperking echter niet in het relationele concept. "Je kunt best ver doorschalen met een relationele database. Twitter gebruikt bijvoorbeeld nog steeds MySQL, maar wel met een goede sharding layer."

Toegang tot gegevens

Met Transact-SQL en Tabular Data Streams biedt Microsoft directe toegang tot SQL Azure. Dat maakt het mogelijk om vanuit de Windows-ontwikkelomgeving voor ASP.Net de WCF Data Services - voorheen ADO.Net - te gebruiken. Ook andere tools kunnen op deze manier toegang tot SQL Azure krijgen.

Hieraan gerelateerd is het Azure Content Delivery Network. Dat is een gedistribueerd systeem voor het ophoesten van statische content, vergelijkbaar met het Akamai-netwerk. Microsoft doet dat vanuit achttien datacenters, die over de hele wereld verspreid zijn. Volgens het bedrijf worden er ook nog steeds nieuwe locaties toegevoegd.

AppFabric

Het laatste onderdeel is AppFabric, een verzameling middleware-interfaces waarmee lokaal gehoste Windows-toepassingen, online Azure-applicaties en diensten van derden kunnen worden samengevoegd tot zogenaamde Composite Applications. AppFabric is gebaseerd op knooppunten en verbindingen volgens het cluster-model, en biedt api's voor communicatie, toegangscontrole, caching en beheer.

Andere diensten - naast SQL Azure en AppFabric - zijn Live Services, SharePoint Services en Dynamics CRM Services.

Azure AppFabric

Platform

Windows Azure Platform

Voor de programmeur komen al deze zaken samen in het Azure-platform. De beheerder maakt server instances en datastores aan in het Management Portal. De Compute-instances kunnen worden verspreid over verschillende datacenters over de hele wereld en worden in drie verschillende smaken aangeboden. De Web Role is bedoeld voor webbased front-ends op IIS 7.0; de Worker Role is voor achtergrondprocessen en de Virtual Machine biedt een container waarmee standaard Windows-applicaties in de cloud kunnen worden uitgevoerd. Daarmee lijkt dit laatste onderdeel dus meer op Infrastructure-as-a-Service zoals Amazon dat met EC2 ook aanbiedt.

Azure Management Portal

Volgens panellid creator1988 zal het onderscheid tussen IaaS en PaaS in de toekomst verdwijnen. "Je betaalt een basisbedrag voor de toegang en daarnaast extra voor bijvoorbeeld toegangsbeheer. Je ziet dat ook terug in het nieuwe betaalmodel voor Azure: er wordt betaald voor de instances en de transacties. Daarnaast kun je bijvoorbeeld ook AppFabric Access Control afnemen. Je hebt dus de keuze om alles zelf te regelen of zaken uit te besteden aan je cloud-leverancier."

Microsoft Azure create Hosted Services Microsoft Azure  Hosted Services

Hybride model

Dit hybride model is volgens hem ook de reden dat Azure minder geschikt is voor kleine projecten. "GAE is goedkoper omdat je daar alleen voor de cpu-tijd betaalt, en geen vast bedrag per instance, ongeacht hoeveel werk die instance verzet. Met het model dat Azure en EC2 hanteren, betaal je maandelijks minstens een dollar of tien voor een instance."

"Voor de programmeur maakt het niet veel uit. De concepten zijn op alle platforms hetzelfde. Of je nu in Java op EC2 schrijft, in Python op AppEngine of in .Net op Azure, je problemen en denkrichtingen zullen hetzelfde zijn. Als ik alles op een rijtje zet, denk ik dat Azure momenteel het beste totaalpakket biedt. Bovendien is het een voor Windows-ontwikkelaars herkenbare abstractielaag voor websites, services, scheduled tasks en de cloud."

Architectuur

Een Azure-applicatie, in feite een service, kan bestaan uit meerdere instances van verschillende rollen. Voor de interactie vanuit de applicatie met het operating environment is er de Managed API.

Panellid Loather benadrukt hierbij het belang van de applicatie-architectuur. "Een lokale applicatie is niet zomaar naar Azure te brengen, zonder vervelende verrassingen op het gebied van kosten of prestaties. Azure schaalt door meer servers aan het werk te zetten. Daar moet je toepassing wel mee overweg kunnen."

"Bovendien betaal je per storage-transactie. Als je een applicatie zo zou bouwen dat die eerst een lijst met duizend id's ophaalt en vervolgens nog eens elke afzonderlijke id, dan betaal je voor 1001 transacties. Je kan dat echter ook in een enkele transactie doen. Op die manier bepaalt de ontwikkelaar dus deels de kosten van de toepassing."

Interconnectivity

De Storage is toegankelijk via Representational State Transfer, ook wel bekend als 'REST', en een api. De eerste is vanaf het hele internet beschikbaar. De data wordt opgeslagen in ongestructureerde Blobs, database-Tables en Queues - die laatste is bedoeld voor messaging tussen services.

De Azure Fabric bestaat uit Compute- en Storage-nodes die met elkaar zijn verbonden via Connections. De besturing van de Applications en Services wordt geregeld door de Azure Fabric Controller. Dat is wat Windows uitbreidt tot Windows Azure. Op laag niveau gaat het om beheer; op een hoger niveau om deployment en lifecycle. Het besturingssysteem is gebaseerd op Windows Server 2008 en een aangepaste versie van de Hyper-V-hypervisor.

Om tijdens het ontwikkelen lokaal te kunnen proefdraaien, is er de Storage Emulator. Daarmee kun je lokale Blobs, Tables en Queues aanmaken. De Compute Emulator doet hetzelfde voor instances.

Web services

Alle functionaliteit is beschikbaar in de vorm van een op REST gebaseerde web service. Die hoef je als programmeur niet zelf in je applicaties te integreren: er kan ook een wrapper-api gebruikt worden, die ook in de Visual Studio-ontwikkelomgeving kan worden binnengehaald.

Voor sommige functies is ook een wat zwaardere soap-interface beschikbaar; daarbij gaat het vooral om de interoperabiliteit met andere platforms. Een voorbeeld is de Access Control Service, die gebaseerd is op WS-Security, WS-Federation en WS-Trust.

DotNet

Wat je uiteindelijk bouwt, zijn applicaties voor de Common Language Runtime van .Net. Toepassingen zullen dus voornamelijk in C# of VB.Net worden geschreven. Andere talen waarvoor een clr-compiler beschikbaar is, kunnen echter ook worden gebruikt, zoals C++, JavaScript, PHP, Python en Ruby.

Een ontwikkelaar kan de Windows SDK gebruiken, maar de meesten zullen in de grafische ide van Visual Studio werken. De Windows SDK is overigens gratis te downloaden.

Voor panellid Loather zijn kennis van de programmeertalen en beschikbaarheid van de tools de belangrijkste redenen om met Azure aan de slag te gaan. "Als je in bezit bent van een MSDN-account, heb je toegang tot alle gereedschappen en zelfs een beperkte hoeveelheid Azure resources per maand. De taal van de oplossing is niet relevant, aangezien alle code toch naar de Intermediate Language van .Net wordt gecompileerd. De taal kan dus altijd worden gekozen aan de hand van de kennis van het ontwikkelteam."

Visual Studio

Visual Studio is er in verschillende smaken, met en zonder MSDN-toegang. De software kost vele honderden euro's, maar op de MSDN-site zijn wel gratis trial-versies beschikbaar. Ook gratis is de beperkte Express-versie, die alleen registratie vereist. Volgens Microsoft is dit voldoende voor een hobbyist die een keer met Azure wil experimenteren. Een professionele ontwikkelaar die in teamverband werkt, zal echter meestal de Ultimate-versie willen hebben.

De Azure Tools voor Visual Studio zijn te downloaden van de MSDN-site. Deze zijn ook te gebruiken in combinatie met Visual Web Developer, een onderdeel van Visual Studio dat specifiek is gericht op het bouwen van applicaties die op het ASP.Net.-framework zijn gebaseerd. Het concept is vergelijkbaar met JavaServer Pages of PHP: in een en hetzelfde bestand wordt zowel statische html-code als scriptcode gebruikt.

AppFabric SDK

Voor AppFabric is een aparte sdk beschikbaar, die naast de Azure SDK wordt geïnstalleerd. Ook die wordt geïntegreerd in Visual Studio.

De reden voor de splitsing van deze sdk's is dat Azure-applicaties ook prima zonder AppFabric kunnen. Die laatste biedt echter wel een aantal belangrijke kant-en-klare diensten voor caching, communicatie en authenticatie. Een voorbeeld daarvan is de Service Bus, waarmee zowel lokale als cloud-functionaliteit in de vorm van een REST/soap-webservice beschikbaar kunnen worden gemaakt. Andersom mag ook: de AppFabric-sdk kan worden gebruikt om niet-Azure toepassingen toegang tot het AppFabric platform te geven.

Voor talen als Ruby, Java en PHP zijn eveneens sdk's die toegang tot AppFabric bieden. Ook voor toegang tot de opslag zijn library's voor Java en PHP beschikbaar. Die laatste biedt bovendien toegang tot de beheer- en authenticatie-onderdelen van AppFabric.

Infrastructuur

Microsofts Azure-platform is inmiddels ruim een jaar beschikbaar. De infrastructuur is ondergebracht in bijna twee dozijn datacenters, verspreid over hele wereld. Elk daarvan bestaat uit een paar duizend serversystemen.

Voor grote klanten en leveranciers als HP, Fujitsu en Dell is er de Azure Platform Appliance. Daarmee kan een private cloud worden gebouwd die precies zo werkt als de publieke Azure-infrastructuur van Microsoft. Op die manier kunnen bijvoorbeeld voor specifieke doelgroepen diensten met andere service level agreements worden opgezet. Op dit moment is nog niet bekend wat het minimum aantal servers zal zijn, maar volgens Microsoft gaat het in ieder geval om configuraties voor meer dan duizend systemen.

Van start

Gewone gebruikers kunnen Azure een maand of drie gebruiken. Als je je voor een trial-account aanmeldt, dan krijg je 750 uur op een Extra Small Compute Instance en 25 uur op een Small Compute Instance, aangevuld met 20GB opslag en 1GB voor SQL Azure. Daarna en daarboven worden de kosten op basis van gebruik in rekening gebracht. Vergeleken met Amazon en GAE heeft Azure het ingewikkeldste prijsmodel, maar je kunt ook kiezen uit een aantal voorgebakken packages.

Powered by AzureAan certificatie voor Azure wordt gewerkt. Er is al een aantal examens beschikbaar; een voorbeeld is 'Designing and Developing Windows Azure Applications'. Daarnaast is er het Powered by Windows Azure-logoprogramma, waarmee ontwikkelaars hun toepassingen kunnen laten certificeren.

Propositie

Bij Azure ligt de nadruk minder op de online propositie sec, zoals bij de cloud-diensten van Google en Amazon. Het platform wordt meer aan de man gebracht als een operating environment voor de combinatie van cloud en lokale systemen. Dat mag ook geen verbazing wekken als je bedenkt dat Microsoft nog steeds het leeuwendeel van zijn omzet verdient met de verkoop van software-licenties.

Volgens pannellid Bas Valkema hangt het van de specifieke applicatie af of je die naar de cloud wilt brengen. "Heb je het nieuwe Facebook-idee, dan is de cloud best handig. Je kunt klein beginnen en later als het groter wordt moeiteloos schalen (als je architectuur maar goed is). Flopt het, dan heeft het ook niet veel gekost."

"Heb je daarentegen een applicatie waarin persoonsgegevens zitten, dan is de cloud waarschijnlijk niet zo'n goed idee. Je weet niet waar je data blijft en wie daar middels lokale wetgeving (Amerika) toegang tot heeft. Zelfs het 'safe haven'-protocol is volgens het CBP niet voldoende."

Reacties (48)

48
43
24
3
0
11
Wijzig sortering
"Heb je daarentegen een applicatie waarin persoonsgegevens zitten, dan is de cloud waarschijnlijk niet zo'n goed idee. Je weet niet waar je data blijft en wie daar middels lokale wetgeving (Amerika) toegang tot heeft. Zelfs het 'safe haven'-protocol is volgens het CBP niet voldoende."
Dit is onzin. In Amsterdam en Ierland staan 2 datacentra van Microsoft. Bij deployment kan je aangeven waar je naartoe wil deployen. Voor Nederland kan je je data dus expliciet in Nederland laten plaatsen.

Verder kan je je data gewoon crypen zodat het niet leesbaar is door een rotte DBA-er.

Via europese wetgeving is verder geregeld dat de USA niet bij je data kan. De Patriot act is hier niet van toepassing al weet je natuurlijk nooit wat die Amerikanen niet allemaal voor achterdeurtjes hebben (laten) inbouwen. Maargoed, als je dat niet vertrouwd, dan kan je beter op een eiland gaan zitten (als is dat ook niet meer veilig...)

[Reactie gewijzigd door Marcelloz op 22 juli 2024 20:03]

Die wetgeving is europees, echter het bedrijf is Amerikaans...

There is no privacy in the European cloud, or any public cloud outside of the United States where a U.S.-based or wholly owned subsidiary company is involved.

http://www.zdnet.com/blog...ecure-european-cloud/8807
Dit artikel stelt wel vragen, maar beantwoordt ze niet. Wat gebeurt er nou precies als een Amerikaans bedrijf moet voldoen aan de Patriot act, maar ook aan Europese wetten op data privacy? Breken ze de Europese wet, dan zullen ze gigantische boetes krijgen van de EU en mogen eventueel zelfs helemaal niet meer in Europa opereren, breken ze de Amerikaanse wet dan gebeurt hetzelfde in de VS. Deze wetten zijn duidelijk heel moeilijk daadwerkelijk toe te passen in internationale context.

Maar goed, in de praktijk is dit alles irrelevant: encryptie van je data is de werkelijke oplossing. Mogen ze de server desnoods in Noord Korea neerzetten, knappe jongen die iets met de data kan.

[Reactie gewijzigd door Dreamvoid op 22 juli 2024 20:03]

Volgens mij is dat al eerder ter sprake gekomen in een artikel geloof ik. Ik weet niet precies waar, maar het komt erop neer dat, als het een Amerikaanse partij is die dit host, zelfs al is dat fysiek in de eu, dit alsnog onder US law valt..
Microsoft geeft je in ieder geval de keuze waar je je data wil opslaan. Bij Google of Amazon heb je die keuze helemaal niet. Je data kan dan zelfs in Vietnam belanden of China, omdat dat de goedkoopste oplossing is.
Anoniem: 44174 @Marcelloz25 juli 2011 19:51
Ik zou dat vooral doen, vooral het encrypten, dat is erg veilig en de Amerikaanse veiligheids- diensten kunnen die encryptie echt niet kraken.
Maar microsoft geeft ook aan dat ze niet kunnen garanderen dat ze jouw gegevens niet aan de US of A geven wanneer zij daar om vragen onder de patriot act. Zelfs als die data op .nl grondgebied wordt opgeslagen.

Als dat geld voor MS, dan geld dat ook voor Google en Amazon. (US companies)
Dan geldt dat ZEKER voor Google en Amazon. MS geeft het tenminste nog aan. Bij Google weet je noppes, en bij Amazon ook niet.
Wat kun je hier mee als gewone consument? En hoe verhoudt zich dit tot Apple's iCloud?
Dat dit niet voor consumenten is.
Dit is zoiets als Amazon Web Services en Google App Engine.

Dit is een ontwikkel/applicatie/hosting platform voor (web) applicaties.
Tov iCloud heeft Microsoft al een tijdje Skydrive en Live Mesh. Azure is niet voor consumenten.
Apple's iCloud is voor de consument, hier zijn een aantal 'vaste services' welke je kan gebruiken. Plus ontwikkelaars kunnen gebruik maken van API's. Zodat ze hun applicatie er ook heen kunnen laten synchroniseren.
Volgens pannellid Bas Valkema hangt het van de specifieke applicatie af of je die naar de cloud wilt brengen. "Heb je het nieuwe Facebook-idee, dan is de cloud best handig. Je kunt klein beginnen en later als het groter wordt moeiteloos schalen (als je architectuur maar goed is). Flopt het, dan heeft het ook niet veel gekost."
wat een geblaat. Alsof je - als je lokaal de boel draait - meteen een kompleet serverpark de lucht in brengt. Als je goed nadenkt over je applicatie boeit het niet of het lokaal draait of in de cloud, dan is het per definitie schaalbaar, want dan denk je na over de toekomst.

Of het cloud wordt of lokaal hangt helemaal niet af van schaalbaarheid, dat hangt af van zaken als :
- wil ik zelf beheer doen
- wat kost het om het in eigen beheer te doen
- is de basis al in de cloud aanwezig
- wat kost het om de basis zelf te bouwen

de rest is puur marketing van een cloud-boy...
En het is niet alsof een cloud automatisch schaalt.
Over het algemeen is het veel makkelijker om een cloudservice te gebruiken om een applicatie schaalbaar te houden dan om zelf een server park op te gaan zetten.

Daarnaast is het idee van zo'n cloud service dat je betaald voor je gebruik, dus als je site ineens 100x zoveel bezoekers krijgt zorgt de cloud er voor dat alles soepel blijft draaien zonder dat jij er omkijken naar hebt alleen moet je iets meer betalen. En in 99% van de gevallen regelt de cloud hosting alles beter dan dat jijzelf zou kunnen voor hetzelfde geld.
Mooi, maar doet me denken aan Hotel California. Once you check in, you can never leave!
Dat geldt voor elke oplossing waarbij een externe partij je database host. Maar als je alles in eigen hand wilt houden kan je gewoon je eigen private cloud draaien, dat staat ook in dit artikel.
Dat klopt niet! VMware is de enige leverancier die een cloud-oplossing aanbiedt waarbij je niet alleen vanuit je eigen private cloud naar een public cloud kan migreren, MAAR OOK WEER TERUG!.
Verschil is dat VMware niet zelf host, maar samenwerkt met partners als Terramark, Verizon, CSC en Bluelock. Grote jongens dus. Daarnaast kun je ook een hybrid cloud bouwen waarbij een public cloud service provider bijvoorbeeld je uitwijk host.
Als je wil migreren van Azure naar iets anders klus je toch gewoon een simpel programma dat alle records uit je Azure database uitleest en wegschrijft naar de volgende cloudprovider?
En met sql azure sync kan je de sql azure db gewoon in sync houden met een on-premise sql server.
Anoniem: 126698 @amoril25 juli 2011 13:45
Je kan de Azure SQL data gewoon synchroniseren naar een on premise database _/-\o_
Voor meer info http://www.microsoft.com/...atures/database/#datasync
Dat klopt niet! VMware is de enige leverancier....
[....]
Verschil is dat VMware niet zelf host, maar samenwerkt met partners als Terramark, Verizon, CSC en Bluelock.
Dan zijn ze niet de enige die dat kunnen, en al helemaal niet alleen zoals je lijkt te willen suggereren in je eerste zin.
De marketing afdeling van VMware heeft z'n werk goed gedaan zo te zien.

Niet dat ze geen goed spul maken, maar er is geen enkele speler die het volledige veld goed weet af te dekken (van PaaS tot ServiceManagement). MS niet, Xen/Citrix niet, VMware niet.
Ik denk dat Microsoft zelf het beste uit is met een Private Cloud. Zo kunnen ze licenties verkopen en toch operating systems blijven verkopen. Hier komt ook nog bij dat alles gevirtualiseerd wordt, dus kunnen ze Hyper-V ook nog eens aanprijzen.

Persoonlijk ben ik hier niet zo fan van, ik ga dan liever voor een VMware oplossing. Het feit dat alle MS server spullen zo zwaar zijn voor de hardware zint me vooral niet.

Het ideal beeld: iedereen straks zijn eigen private cloud. :)
"Heb je daarentegen een applicatie waarin persoonsgegevens zitten, dan is de cloud waarschijnlijk niet zo'n goed idee. Je weet niet waar je data blijft en wie daar middels lokale wetgeving (Amerika) toegang tot heeft. Zelfs het 'safe haven'-protocol is volgens het CBP niet voldoende."
Is het daarom eigenlijk niet vrij nutteloos voor de Nederlandse markt? In hoeveel applicaties heb je nou echt nul persoonsgegevens zitten? Je hebt bijna altijd wel een contactpersoon of werknemer erin zitten.
Waarom heeft het CBP gmail dan nog niet verboden?
Anoniem: 80466 25 juli 2011 18:27
Gebruikers van Windows High Performance Computing (HPC) kunnen hun supercomputer tijdelijk uitbreiden met Azure clusters.
Je kan dus met Windows HPC een veel kleinere supercomputer bouwen die geschaald is op gemiddeld gebruik en voor piekbelastingen kun je dan Azure capaciteit bijschakelen.
http://www.microsoft.com/...papers/HPCServerAndAzure/

Omdat supercomputers enorm duur zijn in bouw en ook in operationele kosten is dit een heel praktische oplossing voor supercomputing zeker als je een niet gelijkmatig load hebt op de supercomputer.
""Voor de programmeur maakt het niet veel uit. De concepten zijn op alle platforms hetzelfde. Of je nu in Java op EC2 schrijft, in Python op AppEngine of in .Net op Azure, je problemen en denkrichtingen zullen hetzelfde zijn."

Volgens mij is dit fundamenteel onjuist, omdat je apart betaald voor je transacties, dien je je applicatie zo te bouwen, dat het aantal transacties juist laag zijn.
Voor elk cloudplatform dat ik daar noem geldt dat je je transacties moet minimaliseren. Dus dat lijkt me hier wel degelijk kloppen.
Misschien wat meer plaatjes om het verhaal wat meer kracht te geven?

En mss een klein stukje opinie over hoe goed/slecht het werkt?

[Reactie gewijzigd door Relief2009 op 22 juli 2024 20:03]

Dat cartoon achtige filmpje lijkt verdacht veel op die van google's os filmpje.
Op het feit na dat dit heel saai verteld wordt en Google die filmpjes veel mooier kan maken =D ?

OT: Ik moet nog zien of bedrijven van plan zijn dit helemaal gaan gebruiken...
Ik krijg hier wel dezelfde gevoelens als Henk :
"Mooi, maar doet me denken aan Hotel California. Once you check in, you can never leave!"
Anoniem: 145867 @kkooeenn127 juli 2011 15:25
Ik moest juist erg denken aan HTC filmpjes..

Op dit item kan niet meer gereageerd worden.