Het nieuwe Microsoft wil zich echt anders gedragen en neemt developersverzoeken serieus. De Windows-maker en cloud-aanbieder gaat Java ondersteunen in zijn serverloze clouddienst Azure Functions.
Onder ceo Satya Nadella lijkt het echt afgelopen met het oude Microsoft dat jaren geleden Java aanpaste zodat het meer Windows-specifiek was. De platformonafhankelijke applicatie-omgeving van Sun Microsystems werd door Microsoft zo ondermijnd. Dit heeft ruzies, rechtszaken en ook veel developerswerk opgeleverd. Suns Java-belofte van ‘write once, run anywhere’ bleek niet te gelden voor het marktdominante Windows; wat aparte ontwikkelinspanning vereiste.
Zonder servers
In de nieuwe cloudwereld is Microsoft niet meer zo machtig of eigengereid als vroeger. Het bedrijf beseft dit ook en handelt in toenemende mate naar dat besef. Een teken hiervan is de recente aankondiging van Java-support voor een nieuwe Azure-clouddienst van Microsoft. Het gaat om de serverless architectuur van het zogeheten Azure Functions. Deze aparte cloudoptie van Microsoft geeft bedrijven de mogelijkheid om eigen applicaties sneller te ontwikkelen en gemakkelijker in de cloud te draaien.
Microsoft haakt met Functions aan op de trend van serverless, waarbij er vanuit de developer, beheerder en gebruiker bekeken geen sprake is van servers waarop applicaties dan draaien. Op de achtergrond is er wel enige sprake van servers, vervat in containers. Maar de noodzaak voor inrichten en beheren van servers wordt uit handen genomen. Ook een cloudreus als AWS (Amazon Web Services) en een softwaregigant als Oracle bieden elk serverless (cloud) computing aan.
Laatstgenoemde komt bij Microsofts serverless-aanbod in beeld nu Azure Functions volledige support voor Java gaat krijgen. Oracle heeft middels de overname van Sun Microsystems de open source programmeertaal Java in handen gekregen. Microsofts beloofde ondersteuning is begin deze maand aangekondigd op Oracle’s JavaOne-conferentie. Het is nog niet bekend wanneer de Java-ondersteuning in Azure Functions officieel beschikbaar komt.
Serieuze bedrijfsapplicaties
Java wordt veel gebruikt voor bedrijfsapplicaties en is nu de nieuwste taal die door Microsoft wordt omarmd voor Azure Functions. Op de ondersteuningslijst staan al bekende programmeertalen als PHP, Python, C#, F# en Node.js. De leverancier biedt de Java-support nu in een publieke preview en vergezelt dat van ontwikkelhulpmiddelen, inclusief een plug-in voor de open source Java-ontwikkelomgeving Maven.
‘Als Java-ontwikkelaar hoef je geen nieuwe tools te gebruiken om te ontwikkelen met Azure Functions’, blogt Nir Mashkowski, partner director program management voor Azure App Service van Microsoft. Developers kunnen alvast experimenteren of en hoe zij hun applicaties serverless kunnen laten schalen. Code hiervoor valt met Microsoft-tools ook lokaal te draaien en te debuggen.
De allereerste preview van Azure Functions is in maart 2016 geïntroduceerd en sindsdien heeft Microsoft het geleidelijk aan uitgebouwd. Cloudconcurrent AWS heeft zijn serverless dienst Lambda in 2014 beschikbaar gesteld. Java-support voor Lambda wordt al sinds juni 2015 geboden, merkt The Register op. Begin vorig jaar heeft Amazon op zijn AWS Summit in Nederland uitgebreide uitleg gegeven en start-up voorbeelden geshowd van Lambda.
Abstractie dankzij api’s
Serverless computing neemt de zorg uit handen voor de aanmaak, het beheer en ook de uitschakeling van virtuele servers in cloudomgevingen. Servers worden daar namelijk in grote aantallen en soms ook voor beperkte tijdsduur geconfigureerd, geactiveerd en gebruikt. Dit past in de trend van servers als vee, in plaats van servers als huisdieren.
De universele belofte van het nieuwe serverless-model voor ict-ontwikkeling en -gebruik is dat bedrijven voortaan slechts hun bedrijfsapplicaties hoeven te beheren, in plaats van de onderliggende infrastructuur. Het contact tussen de apps en de benodigde infrastructuur verloopt dan puur via api’s (application programming interface). Deze opzet zorgt voor een abstractie die complexiteit uit beeld haalt. Daarbij gebeurt betaling niet op basis van infrastructuurgebruik zoals rekenvermogen of opslagruimte, maar per uitgevoerde handeling (execution) door de gebruikte applicatie.