Articles

Wat is een gedistribueerd systeem?

Posted on

Definitie

Een gedistribueerd systeem, ook wel bekend als distributed computing, is een systeem met meerdere componenten die zich op verschillende machines bevinden en die met elkaar communiceren en hun acties op elkaar afstemmen, zodat het voor de eindgebruiker als één samenhangend systeem overkomt.

Overzicht

De machines die deel uitmaken van een gedistribueerd systeem kunnen computers, fysieke servers, virtuele machines, containers of elk ander knooppunt zijn dat verbinding kan maken met het netwerk, lokaal geheugen heeft en kan communiceren door berichten door te geven.

Er zijn twee algemene manieren waarop gedistribueerde systemen functioneren:

  1. Elke machine werkt aan een gemeenschappelijk doel en de eindgebruiker ziet de resultaten als één samenhangende eenheid.
  2. Elke machine heeft zijn eigen eindgebruiker en het gedistribueerde systeem faciliteert het delen van bronnen of communicatiediensten.

Hoewel gedistribueerde systemen soms obscuur kunnen zijn, hebben ze gewoonlijk drie primaire kenmerken: alle componenten draaien gelijktijdig, er is geen globale klok, en alle componenten falen onafhankelijk van elkaar.

Voordelen en uitdagingen van gedistribueerde systemen

Er zijn drie redenen waarom teams over het algemeen besluiten gedistribueerde systemen te implementeren:

  • Horizontale schaalbaarheid – Omdat het rekenwerk op elke node onafhankelijk gebeurt, is het eenvoudig en over het algemeen goedkoop om extra nodes en functionaliteit toe te voegen als dat nodig is.
  • Betrouwbaarheid – De meeste gedistribueerde systemen zijn fouttolerant, omdat ze kunnen bestaan uit honderden nodes die samenwerken. Het systeem ondervindt over het algemeen geen verstoringen als een enkele machine uitvalt.
  • Prestaties-Distributiesystemen zijn uiterst efficiënt omdat werkbelastingen kunnen worden opgesplitst en naar meerdere machines kunnen worden gestuurd.

Hoewel gedistribueerde systemen niet zonder uitdagingen zijn. De complexe architectonische ontwerp-, constructie- en debugging-processen die nodig zijn om een effectief gedistribueerd systeem te maken, kunnen overweldigend zijn.

Drie andere uitdagingen die je kunt tegenkomen zijn:

  • Planning-Een gedistribueerd systeem moet beslissen welke taken moeten worden uitgevoerd, wanneer ze moeten worden uitgevoerd, en waar ze moeten worden uitgevoerd. Schedulers hebben uiteindelijk hun beperkingen, wat leidt tot onderbenutte hardware en onvoorspelbare runtimes.
  • Latency – Hoe meer je systeem gedistribueerd is, hoe meer latency je kunt ervaren in de communicatie. Dit leidt er vaak toe dat teams een afweging moeten maken tussen beschikbaarheid, consistentie en latency.
  • Observatiemogelijkheden – Het verzamelen, verwerken, presenteren en monitoren van meetgegevens over hardwaregebruik voor grote clusters is een grote uitdaging.

Hoe een gedistribueerd systeem werkt

Hardware- en software-architecturen worden gebruikt om een gedistribueerd systeem te onderhouden. Alles moet met elkaar worden verbonden – CPU’s via het netwerk en processen via het communicatiesysteem.

Typen gedistribueerde systemen

Distribueerde systemen vallen over het algemeen in een van de vier verschillende basisarchitectuurmodellen:

  1. Client-server-Clienten nemen contact op met de server voor gegevens, formatteren deze vervolgens en tonen ze aan de eindgebruiker. De eindgebruiker kan ook een wijziging aanbrengen vanaf de client-side en deze terug op de server vastleggen om hem permanent te maken.
  2. Three-tier-Informatie over de client wordt opgeslagen in een middle-tier in plaats van op de client om de implementatie van de applicatie te vereenvoudigen. Dit architectuurmodel komt het meest voor bij webapplicaties.
  3. n-tier-Over het algemeen gebruikt wanneer een applicatie of server verzoeken moet doorsturen naar aanvullende bedrijfsdiensten op het netwerk.
  4. Peer-to-peer-Er worden geen extra machines gebruikt om diensten te verlenen of resources te beheren. Verantwoordelijkheden worden uniform verdeeld over machines in het systeem, bekend als peers, die kunnen dienen als client of server.

Voorbeeld van een gedistribueerd systeem

Distribueerde systemen hebben eindeloze gebruiksscenario’s, zoals elektronisch bankieren, massale multiplayer online games en sensornetwerken.

StackPath maakt gebruik van een bijzonder groot gedistribueerd systeem om zijn content delivery netwerkdienst aan te drijven. Elk van onze points of presence (PoP’s) heeft nodes die een wereldwijd gedistribueerd systeem vormen. En om content van topklasse te leveren, slaat StackPath de meest recent en vaak aangevraagde content op in edge locaties die het dichtst bij de locatie liggen waar deze wordt gebruikt.

Gedistribueerde systemen aan de edge

Met StackPath’s edge compute-diensten, virtuele machines en containers kunnen gebruikers hun eigen gedistribueerde systemen creëren. Door VM’s en containers met elkaar te verbinden en tegelijkertijd gebruik te maken van de snelheid en flexibiliteit van edge computing, kan uw systeem duizenden gelijktijdige verzoeken bliksemsnel verwerken.

Key Takeaways

  • Gedistribueerde systemen kunnen bestaan uit elke machine die verbinding kan maken met een netwerk, lokaal geheugen heeft en communiceert door berichten door te geven.
  • Door verzoeken en werklast te spreiden, kunnen gedistribueerde systemen veel meer verzoeken en rekentaken aan dan een standaard enkel systeem.
  • U kunt uw eigen bliksemsnelle gedistribueerde systeem maken door StackPath’s edge computing containers en virtuele machines onderling te verbinden.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *