Organisaties zijn voortdurend op zoek naar een hogere productiviteit in software-ontwikkeling. Enerzijds wil men toepassingen ontwikkelen tegen een lagere kost, anderzijds wil men toepassingen sneller kunnen opleveren. Automatisatie en standaardisatie zijn hier twee sleutelbegrippen die een hogere productiviteit moeten bewerkstelligen.
Wat is PaaS?
Productiviteitsverhoging is nu precies de focus van Platform as a Service (PaaS). Een PaaS is een verzameling van diensten voor de infrastructuur van applicaties. In het cloudverhaal kan men PaaS situeren tussen Software as a Service (SaaS – applicatielaag) en Infrastructure as a Service (IaaS – hardwarelaag). De aangeboden diensten zijn onder andere: het applicatieplatform, integratie, databases en business process management. Vandaag wordt er vooral geconcentreerd op de meer specifieke aPaaS: application Platform as a Service.
aPaaS platformen ondersteunen de ontwikkeling en in-productiestelling van applicaties in de cloud. Ze zijn als het ware een uitgebreide applicatieserver in de cloud en ondersteunen multi-tenancy en elastische, horizontale schaalbaarheid van applicaties. aPaaS-platformen bieden bijgevolg nieuwe mogelijkheden aan developers om makkelijker en sneller applicaties te ontwikkelen.
In eerste instantie lag de focus van PaaS-oplossingen op het aanbieden van platform services in de public cloud. Al snel werd duidelijk dat dezelfde technologie toegepast kan worden binnen een organisatie zelf, in een private cloud. Het private aspect is onder andere belangrijk vanwege de confidentialiteit van de gegevens.
Wat zijn de beoogde voordelen?
PaaS-platformen beloven om een aantal obstakels weg te nemen die beletten om productiever toepassingen te ontwikkelen. Ze zijn zo ontworpen dat ontwikkelaars zich kunnen focussen op de toepassingscode en zich niet moeten bezighouden met het opzetten en configureren van servers, storage en middleware stacks. Die worden immers aangeboden “als een service”.
Dit zijn een aantal beoogde voordelen van PaaS:
- Via self-service kunnen ontwikkelaars on-demand een application stack deployen. Met andere woorden, de provisioning van alle nodige componenten (frameworks, middleware, etc.) gebeurt automatisch.
- Toepassingen kunnen automatisch geschaald worden bij een toenemende belasting.
- De huidige deployment methodologie op basis van verschillende omgevingen (ontwikkeling, test, acceptatie, productie) kan worden behouden, maar de overgang tussen de verschillende omgevingen verloopt veel vlotter omdat elke omgeving gebaseerd is op dezelfde application stack, en men dus een homogenere infrastructuur bekomt.
- Indien gewenst kan een toepassing eenvoudig overgezet worden van de ene cloud naar de andere. Zo kan een prototype van een applicatie die ontwikkeld is op een public cloud infrastructuur overgezet worden naar een private infrastructuur of kan een toepassing die gehost is op een private infrastructuur gebruik maken van een public cloud infrastructuur om bijkomende load op te vangen.
Veel van de beoogde voordelen steunen op doorgedreven automatisatie en standaardisatie van het ontwikkelings- en deploymentproces.
Bepaalde PaaS-oplossingen bieden daarnaast ook ondersteuning voor verschillende programmeertalen en frameworks. Architecten en ontwikkelaars kunnen dan de meest aangepaste programmeertaal en framework kiezen voor het type toepassing dat moet ontwikkeld worden, wat de productitiveit ten goede kan komen. Alhoewel het geen algemene eigenschap is van PaaS, is dit toch de moeite waard om te vermelden.
Welke uitdagingen kunnen we verwachten?
Uiteraard brengen PaaS-oplossingen ook een aantal uitdagingen met zich mee. Dit zijn een aantal aandachtspunten:
- Er moet over gewaakt worden dat ontwikkelaars zoveel mogelijk gebruik kunnen blijven maken van hun bestaande competenties, zowel op vlak van programmeertalen en frameworks, maar ook op vlak van de benodigde tools.
- Om tot een zo hoog mogelijke graad van automatisatie te komen moeten een aantal services geïntegreerd worden in de PaaS-oplossing en als plug-and-play componenten kunnen aangeboden worden aan ontwikkelaars. Denk daarbij aan gebruikersbeheer en toepassingsmonitoring.
- Het eenvoudiger maken van het leven van de ontwikkelaars zou geen extra belasting mogen teweegbrengen voor operations. Een PaaS-oplossing zou een win-win moeten zijn voor alle betrokkenen in het ontwikkelproces.
- In hoeverre kan het deployment-proces geautomatiseerd worden in al zijn aspecten? Zijn de nodige deployment parameters beschikbaar voor bijvoorbeeld database-connecties of message queues? Moeten er configuratie-aanpassingen gebeuren op niveau van de infrastructuur?
Het valt dus te bezien in hoeverre PaaS-platformen effectief tegemoet komen aan de vraag naar een hogere productiviteit in toepassingsontwikkeling. In ieder geval is de trend naar dergelijke platformen ingezet waarbij de focus ligt op automatisatie en standaardisatie die toelaat om als het ware een assembleerlijn te maken om toepassingen efficiënter te ontwikkelen en ze sneller te kunnen opleveren.
Hoewel de markt van PaaS-oplossingen nog in zijn kinderschoenen staat, zijn er vandaag al veel verschillende oplossingen beschikbaar, met elk hun eigen invalshoek. Dat is echter voer voor een volgende blogpost.
Over aPaaS zijn een Research Note en Presentatie beschikbaar.
Pingback: Instance-as-a-Service | Smals Research
Pingback: De Citizen Developer – Mogelijkheden & rol van de Overheid | Smals Research