
Serverloos computergebruik heeft een lange weg afgelegd sinds zijn bescheiden oorsprong met het programmeren van eenvoudige functieservices die doorgaans worden geïmplementeerd in lichtgewicht web- of mobiele apps. In een recente briefing met analisten besprak IBM zijn plannen voor serverloze services in de cloud, en de toekomst wijst op bijna precies het tegenovergestelde van eenvoudige functies: toepassingen voor complexe supercomputing.
Het maakt deel uit van een voortdurende uitbreiding van IBM Cloud Code Engine, die eerder dit jaar voor het eerst werd uitgerold, om een breed platform te worden voor het automatiseren van de implementatie en het uitvoeren van code in een breed spectrum van gebruiksscenario's, van functies tot PaaS, batchtaken en containers -als-service. Zoals we hieronder zullen opmerken, is de uitbreiding van dit tot supercomputing een duidelijke verschuiving van de veel bescheidener oorsprong van serverloos computergebruik. Maar ook een onderdeel van de roadmap is dat de engine een volledig spectrum aan services omvat, te beginnen met functions as a service die IBM al een aantal jaren aanbiedt.
Serverless ging altijd over eenvoud. Aanvankelijk stelde het vast dat het voor ontwikkelaars niet meer nodig was om infrastructuur in te richten of op te schalen. De leidende veronderstelling is dat ontwikkelaars vaardig moeten zijn in de computertalen van hun keuze – voornamelijk Java, JavaScript, Python – maar dat ze zich geen zorgen hoeven te maken over het opzetten of beheren van gedistribueerde infrastructuur, om nog maar te zwijgen van de interne onderdelen van Kubernetes (K8s).
Zoals hierboven vermeld, biedt IBM al de basis: functies als een service. Dat geldt ook voor alle andere grote cloudproviders. Dat is waar serverless begon: in die tijd was de stand van de techniek de mogelijkheid om relatief eenvoudige, kortstondige workloads op commodity compute-instanties automatisch in te richten en automatisch te schalen. IBM's plannen voor Code Engine gaan verder dan auto-provisioning en autoscaling tot het automatisch containeriseren van uw applicatie. En er is meer. IBM's roadmap voor Cloud Code Engine omvat ook een Platform-as-a-Service (PaaS) die code zal containeriseren, implementeren, schalen en uitvoeren. Onder dezelfde overkoepelende service ondersteunt Code Engine ook batchtaken, waar klanten de taak naartoe brengen, en het zal het implementeren, schalen en uitvoeren. Hetzelfde geldt voor containers, die klanten ontwikkelen of bij derden betrekken.
En IBM is op zoek naar een serverloze Code Engine om de toegang tot populaire open source-frameworks zoals Ray, CodeFlare, Spark, TensorFlow, enzovoort te vereenvoudigen. IBM's Project CodeFlare is een open source-project dat is ontworpen om de integratie van complexe ML- en AI-pijplijnen te vereenvoudigen via een gemeenschappelijke API; het is gebouwd bovenop het Ray-project dat voortkomt uit RISELab van UC Berkeley, dat een API biedt voor het op grote schaal organiseren van gedistribueerd computergebruik. We gaven achtergrondinformatie over Ray's traject in een stuk dat een paar weken geleden op deze pagina's verscheen. In dit bericht worden de stappen beschreven voor het instellen van Ray in Code Engine; we zouden graag de volgende fase zien, waarin Code Engine de middelen biedt om veel van deze stappen te automatiseren en de noodzaak voor opdrachtregelinterfaces weg te nemen.
Een ander stukje van de puzzel is het bouwen van nieuwe middleware die laat AI-workloads draaien in hybride cloud, met IBM Cloud Satellite als het beoogde leveringsvoertuig. Het uitvoeren van training en inferentie (productie) workloads voor AI vereist de orkestratie van meerdere tools en runtimes.
Dit is niet serverless van je vader. Het verkrijgen van batchtaken, applicaties, containers en supercomputing verhoogt de complexiteit van de taak voor serverless. Het is niet langer een kwestie van automatisch dezelfde commodity-computing toewijzen aan compacte functies, omdat de workloads nu net zo divers zijn als het normale IT-domein. Er zijn werelden van verschillen voor de rekeninstanties die automatisch worden ingericht voor batchtaken versus eenvoudige functies, om nog maar te zwijgen van neurale netwerken en massaal parallelle rekenkracht die kunnen worden geassocieerd met supercomputing en deep learning-workloads. Eén maat past niet allemaal.
IBM is nauwelijks de enige geweest in het uitbreiden van het bereik van serverloze buitenfuncties. de diensten die door elk van de grote cloudproviders worden aangeboden, zijn ook verder uitgebreid dan functies. AWS ondersteunt bijvoorbeeld het uitvoeren van containers, gebeurtenisgestuurde apps en workflows en het synchroniseren van GraphQL-API's (voor mobiele apps). Op Azure zijn er serverloze services voor rekenkracht, werkstroomorkestratie en AI-services in containers. Google Cloud biedt services voor het uitvoeren van hosting in containers en web-apps.
Serverless heeft ook een grote aanwezigheid gecreëerd in de dataruimte, waar veel operationele en analytische dataplatforms als serverloos worden aangeboden, hetzij als optie of standaard. Bijvoorbeeld Amazon DynamoDB en Aurora; Azure SQL Database en Cosmos DB; en Google Cloud BigQuery en Firestore worden standaard of als optie serverloos aangeboden. Hetzelfde geldt voor MongoDB en DataStax, die de afgelopen maanden serverloos zijn uitgerold. Hetzelfde geldt voor datagerelateerde diensten zoals AWS Glue en Azure Data Factory voor datatransformatie en Amazon Kinesis en Google Cloud Dataflow voor datastreaming.
Niets is echter een verdere schreeuw van de oorsprong van serverloos (voor functies) als het idee om serverloos naar supercomputing te brengen, ook wel high performance computing of HPC genoemd, of in de volksmond, beschamend parallelle computerworkloads. Dit is veel uitdagender terrein omdat de datapijplijnen en rekenkracht veel complexer zijn en moeilijker te modelleren. Terwijl sommige vormen van supercomputing eenvoudig massa's standaard hardware aan elkaar kunnen koppelen, kunnen andere workloads (vooral bij deep learning) meer gespecialiseerde instanties vereisen, of een combinatie van standaard en gespecialiseerd silicium, geheugen en opslag, enzovoort.
Nu maken we het helemaal af: uiteindelijk is het doel van IBM om kwantumcomputing beschikbaar te maken als een serverloze service. IBM is misschien niet de enige cloudprovider die serverloos is voorbij zijn bescheiden wortels met het implementeren van functies, maar het is zeker ambitieus om serverloos tot extreme computing te brengen.
Disclosure: IBM is een dbInsight-client.
< h3 class="heading"> Big Data
Waar is IBM's hybride cloud launchpad? Zeven manieren om realtime technologie echt te maken voor uw organisatie Machine learning aan de edge: TinyML wordt groot Wat biedt Cloudera nu? McDonald's wil machine learning 'democratiseren' voor alle gebruikers in al haar activiteiten
Verwante onderwerpen:
Cloud Digital Transformation Robotics Internet of Things Innovatie Enterprise Software