Edge computing met Cloudflare Workers en Deno · Les

Aangepaste runtimeomgevingen

Krijg inzicht in de mogelijkheden van aangepaste runtimeomgevingen of gespecialiseerde Deno-implementaties aan de edge.

Les 2 van 412 stappen

Aangepaste runtimeomgevingen is een gratis Edge computing met Cloudflare Workers en Deno-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Edge computing met Cloudflare Workers en Deno. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 4 lessen.

Introductie tot aangepaste runtimes

Welkom! Vandaag verkennen we aangepaste runtimeomgevingen en gespecialiseerde Deno-implementaties aan de edge.

Met een aangepaste runtime kun je de uitvoeringsomgeving voor je code afstemmen. In plaats van een standaard, vooraf geconfigureerde serverloze runtime te gebruiken, kun je specifieke versies, afhankelijkheden of zelfs volledig andere programmeertalen definiëren.

Aan de edge betekent dit meer controle over hoe je code dicht bij gebruikers wordt uitgevoerd, waardoor mogelijk nieuwe prestaties en functionaliteit beschikbaar komen.

Waarom aanpassen aan de edge?

Waarom zou je een aangepaste runtime nodig hebben?

  • Gespecialiseerde bibliotheken: Gebruik native bibliotheken of specifieke versies die niet beschikbaar zijn in standaardruntimes.
  • Prestaties: Optimaliseer voor specifieke workloads, zoals zware berekeningen of gegevensverwerking, door zeer efficiënte talen of aangepaste binaire bestanden te gebruiken.
  • Resourcebeheer: Stem het gebruik van geheugen, CPU of netwerk nauwkeurig af op zeer specifieke edgeapparaten.
  • Unieke talen: Voer code uit die is geschreven in andere talen dan JavaScript/TypeScript, vaak gecompileerd naar WebAssembly.

De rol van Deno bij aanpassingen

Door het ontwerp is Deno bijzonder geschikt voor aangepaste edgeomgevingen:

  • Eén uitvoerbaar bestand: Deno zelf is één zelfstandig uitvoerbaar bestand dat eenvoudig kan worden geïmplementeerd of ingebed.
  • Geen node_modules: Het op URL's gebaseerde modulesysteem vermijdt complexe afhankelijkheidsbomen en vereenvoudigt aangepaste builds.
  • Expliciete machtigingen: Gedetailleerde controle over toegang tot het bestandssysteem, het netwerk en de omgeving maakt veilige, minimale implementaties mogelijk.
  • Ingebouwde hulpmiddelen: Hulpmiddelen zoals deno compile, die we nog bekijken, helpen bij het maken van zelfstandige binaire bestanden.

Overzicht van WebAssembly (Wasm)

WebAssembly (Wasm) is essentieel voor aangepaste runtimes. Het is een laag-niveau binair instructieformaat dat in moderne webbrowsers en steeds vaker op serverloze platforms zoals Cloudflare Workers wordt uitgevoerd.

Wasm fungeert als compilatiedoel voor veel talen, zoals Rust, C++, Go en AssemblyScript. Zo kun je goed presterende code schrijven en deze veilig en overdraagbaar uitvoeren in verschillende omgevingen, waaronder de edge.

Wasm-modules laden in Deno

Deno heeft ingebouwde ondersteuning voor WebAssembly, waardoor je Wasm-modules rechtstreeks binnen je Deno-toepassingen kunt laden en uitvoeren. Hierdoor reiken de mogelijkheden van Deno veel verder dan JavaScript/TypeScript.

Hier is een eenvoudig Deno-script dat een kleine Wasm-module laadt en uitvoert die twee getallen bij elkaar optelt:

const wasmCode = new Uint8Array([
  0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00,
  0x01, 0x07, 0x01, 0x60, 0x02, 0x7f, 0x7f, 0x01,
  0x7f, 0x03, 0x02, 0x01, 0x00, 0x07, 0x07, 0x01,
  0x03, 0x61, 0x64, 0x64, 0x00, 0x00, 0x0a, 0x09,
  0x01, 0x07, 0x00, 0x20, 0x00, 0x20, 0x01, 0x6a,
  0x0b
]); // This Wasm adds two i32 numbers

async function runWasm() {
  const { instance } = await WebAssembly.instantiate(wasmCode);
  const addResult = instance.exports.add(5, 7);
  console.log(`Wasm add(5, 7) = ${addResult}`);
}

runWasm();

Wasm op edgeplatforms

Edgeplatforms zoals Cloudflare Workers omarmen WebAssembly. Je kunt code die is geschreven in Rust, C++ of Go compileren naar Wasm en deze als Worker implementeren.

Zo kunnen ontwikkelaars bestaande codebases benutten, bijna native prestaties bereiken en specifieke taalfuncties gebruiken die in JavaScript mogelijk niet beschikbaar of efficiënt zijn. Dit is een krachtige manier om sterk geoptimaliseerde edgefuncties te maken.

Gespecialiseerde Deno-implementaties

Hoewel Deno Deploy een uitstekende beheerde dienst biedt, zijn er situaties waarin gespecialiseerde Deno-implementaties nodig zijn:

  • Deno zelf hosten: Deno uitvoeren op je eigen infrastructuur voor volledige controle over de omgeving.
  • Ingebedde systemen: Deno implementeren op edgeapparaten met beperkte resources en specifieke hardwarevereisten.
  • Aangepaste Deno-builds: Deno vanuit de broncode compileren met specifieke functies in- of uitgeschakeld om aan unieke behoeften te voldoen, bijvoorbeeld door aangepaste native plug-ins te integreren of de omvang van het binaire bestand te verkleinen.

Aangepaste Deno-runtimes bouwen

Voor echt aangepaste Deno-omgevingen kun je Deno vanuit de broncode compileren. Met deze geavanceerde techniek kun je:

  • Specifieke Rust-crates (bibliotheken) rechtstreeks in het Deno-binaire bestand opnemen.
  • Onnodige functies verwijderen om een kleinere, doelgerichtere runtime te maken.
  • Richten op ongebruikelijke architecturen of besturingssystemen die niet officieel worden ondersteund door standaardversies van Deno.

Deze aanpak is bedoeld voor zeer gespecialiseerde toepassingen waarbij volledige controle over de runtime essentieel is.

Deno Compile voor edge-uitvoerbare bestanden

Met de opdracht deno compile van Deno kun je een zelfstandig uitvoerbaar bestand maken van je Deno-script. Dit bestand bevat de Deno-runtime en je toepassingscode, waardoor het overdraagbaar is.

Hoewel een gecompileerde Deno-app zelf geen 'runtimeomgeving' is, vormt deze een zeer gespecialiseerde Deno-implementatie die perfect is voor edgeapparaten waarop zelfstandige toepassingen in één bestand nodig zijn zonder een afzonderlijke Deno-installatie.

console.log("Hello from a Deno compiled app!");

if (Deno.args.length > 0) {
  console.log(`Arguments received: ${Deno.args.join(", ")}`);
}

// To compile this:
// deno compile --allow-read --allow-env my_app.ts

Samenvatting van de voordelen

Aangepaste runtimeomgevingen en gespecialiseerde Deno-implementaties bieden aanzienlijke voordelen voor geavanceerde edge-toepassingen:

  • Betere prestaties: Benut Wasm of geoptimaliseerde native code.
  • Grotere flexibiliteit: Gebruik een breder scala aan talen en bibliotheken.
  • Efficiënt gebruik van resources: Stem de omgeving af op specifieke hardware- of geheugenbeperkingen.
  • Beveiliging: Stem machtigingen en isolatie nauwkeurig af.

Met deze strategieën kunnen ontwikkelaars de grenzen verleggen van wat er aan de edge mogelijk is.

Controleer je begrip

Welke van de volgende redenen of mogelijkheden zijn belangrijke voordelen van het gebruik van aangepaste runtimeomgevingen of gespecialiseerde Deno-implementaties voor toepassingen aan de edge?

Samenvatting: aangepaste edge-runtimes

In deze les hebben we het concept van aangepaste runtimeomgevingen en gespecialiseerde Deno-implementaties voor edge-toepassingen verkend.

  • We hebben gezien hoe aangepaste runtimes ongeëvenaarde controle bieden, met ondersteuning voor specifieke bibliotheken, prestatieoptimalisaties en unieke programmeertalen.
  • We hebben geleerd over WebAssembly (Wasm) als cruciale technologie voor het uitvoeren van goed presterende code die niet in JS is geschreven aan de edge, en hoe Deno ermee kan communiceren.
  • Tot slot hebben we situaties besproken voor gespecialiseerde Deno-implementaties, waaronder zelf hosten en zelfstandige uitvoerbare bestanden maken met deno compile.

Met deze geavanceerde strategieën kun je zeer efficiënte en flexibele edgeoplossingen bouwen!

Gratis beginnen

Leer Edge computing met Cloudflare Workers en Deno met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
47

Veelgestelde vragen

Is de les “Aangepaste runtimeomgevingen” gratis?

Ja — de volledige tekst van “Aangepaste runtimeomgevingen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Edge computing met Cloudflare Workers en Deno wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 4 lessen.

Wat leer ik in “Aangepaste runtimeomgevingen”?

Krijg inzicht in de mogelijkheden van aangepaste runtimeomgevingen of gespecialiseerde Deno-implementaties aan de edge. Je oefent met Edge computing met Cloudflare Workers en Deno door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Edge computing met Cloudflare Workers en Deno te beginnen?

Ervaring vooraf is niet nodig. Edge computing met Cloudflare Workers en Deno op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Aangepaste runtimeomgevingen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Edge computing met Cloudflare Workers en Deno?

Ja. Elke les over Edge computing met Cloudflare Workers en Deno bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Deno Deploy en CLI
  2. Aangepaste runtimeomgevingen
  3. Testen en CI/CD voor edge
  4. Blue-green deployments en geleidelijke rollouts
← Terug naar Edge computing met Cloudflare Workers en Deno