Workloadontwerp optimaliseren met behulp van stromen
Dit artikel bevat informatie over de beoogde optimalisatie van workloads met behulp van stromen. Verschillende onderdelen van een workload hebben verschillende vereisten en urgentieniveaus. Door een workload in stromen te segmenteren, kunt u verschillende delen van een workload prioriteren en de investeringen van workloads beter afstemmen op het belang van elke stroom.
Dit proces voor workloadoptimalisatie is iteratief en omvat drie belangrijke stappen: (1) definieer de stroomstructuur binnen uw workload, (2) definieer technische vereisten en (3) ontwerp de stroom om te voldoen aan de vereisten (zie afbeelding 1).
Afbeelding 1: Het proces voor het optimaliseren van workloads met behulp van stromen.
De stroom definiëren
Voordat u stroomvereisten kunt definiëren, moet u de bedrijfsfactoren voor de stroom begrijpen. De vereisten voor het definiëren van een stroom zijn het identificeren van het bedrijfsproces en de use-case die door de stroom wordt ondersteund. Wanneer u de vereisten begrijpt, kunt u beginnen met het documenteren van de stroom.
Inzicht in de vereisten
Stromen zijn reeksen acties die ondersteuning bieden voor workloadfunctionaliteit. Er zijn twee primaire typen stromen: gebruikersstromen en systeemstromen. Gebruikersstromen bepalen gebruikersinteracties. Systeemstromen bepalen de communicatie tussen workloadonderdelen. Stromen ondersteunen bedrijfsprocessen en gebruiksvoorbeelden. Een workload bestaat uit meerdere use cases. U moet het bedrijfsproces en de use-case identificeren die door de stroom wordt ondersteund voordat u een stroom documenteert (zie afbeelding 2).
Afbeelding 2: De relatie tussen bedrijfsprocessen, use cases, stromen en workload.
Het bedrijfsproces identificeren
Een bedrijfsproces is een reeks acties (fasen) die voldoen aan een bedrijfsvereiste. Stromen bepalen de volgorde die een gebruiker of gegevens nodig hebben om elke fase van een bedrijfsproces uit te voeren. Het online verkopen van producten is bijvoorbeeld een bedrijfsproces. De fasen in dit bedrijfsproces kunnen het product online weergeven, bestellingen ontvangen en het product leveren.
De use-case identificeren
Een use-case definieert de functionele vereisten van een stroom. U moet de use-case identificeren en begrijpen die een stroom ondersteunt voordat u de technische vereisten van een stroom tot stand brengt. Elke use-case moet één fase in een bedrijfsproces ondersteunen (zie afbeelding 2). Een use-case moet de volgende kenmerken definiëren:
Doel: de taken of doelstellingen duidelijk verwoorden, zoals het inschakelen van online aankopen. Deze duidelijkheid begeleidt het functionele ontwerp en stelt duidelijke doelstellingen voor stroomontwerp in.
Kritiek: Beoordeel het belang van de use case, variërend van routine tot kritiek. De waarde die aan een use-case is toegewezen, informeert de prioriteitsaanduiding en het ontwerp van de stroom. Gebruiksvoorbeelden met hoge waarde vereisen mogelijk verbeterde foutafhandeling, prestatieafstemming of overwegingen voor gebruikerservaring.
Consumenten: Bepaal of gebruikers (klanten, personeel) of systeemonderdelen de primaire consumenten zijn. Deze categorisatie bepaalt of het een gebruikersstroom of systeemstroom is en beïnvloedt het ontwerp.
Gebeurtenissen: Triggers of voorwaarden definiëren die de use-case initiëren en afsluiten. Deze gebeurtenissen definiëren de grenzen van de stroom.
Uitvoering: inzicht in de operationele frequentie en variabiliteit van de use-case om te anticiperen op de systeembelasting. U moet een stroom ontwerpen om verschillende uitvoeringsscenario's af te handelen.
Afhankelijkheden: afhankelijkheden identificeren met andere use cases voor risicobeheer. Het herkennen van de afhankelijkheden van een use-case helpt bij het ontwerpen van stromen die probleemloos kunnen worden geïntegreerd met andere systeemonderdelen. U moet ervoor zorgen dat de benodigde invoer en compatibiliteit van uitvoer met volgende processen beschikbaar zijn.
De stroom documenteer
Gebruik de use-case om de stroom te documenteren. U moet elke actie die u nodig hebt in een stroom weergeven of toewijzen. Beslissingscriteria en paden vastleggen. Interacties met andere use cases identificeren. Dit overzicht fungeert als blauwdruk voor stroomontwerp en -beheer. U moet ook bedrijfsgegevens over de stroom vastleggen. Zorg ervoor dat u de volgende details in de stroomdocumentatie opneemt:
Beschrijving van stroom: Een beschrijving op hoog niveau van de stroom.
Bedrijfsproces: het bedrijfsproces dat door de stroom wordt ondersteund.
Proceseigenaar: de persoon die eigenaar is van het bedrijfsproces.
Belanghebbenden: de personen die u moet informeren of raadplegen over de stroomstatus of wijzigingen.
Escalatiepaden: de personen of groepen waarmee u contact moet opnemen om problemen op te lossen. Het is een reeks mensen. Het bereik van individuele verantwoordelijkheid groeit met elke persoon op het pad.
Bedrijfsimpact: Het belang van deze stroom voor het bedrijf.
Criticaliteitsclassificatie: een kwalitatief label dat het relatieve belang van de stroom aangeeft.
Zie Flow-voorbeelden voor meer informatie.
Stroomvereisten definiëren
Gebruik de use-case om de technische doelen van de stroom vast te stellen. Meetbare doelen definiëren voor de stroom die is afgestemd op de vijf pijlers van het Well-Architected Framework (WAF). Deze pijlers bieden een kader voor het instellen van technische doelen:
Betrouwbaarheidsdoelen: beoordeel het belang van elke stroom en stel de betrouwbaarheidsdoelen dienovereenkomstig in. Bepaal prestatiedrempels en stel duidelijke SLA's (Service Level Agreements) en doelstellingen (SLO's) in. Voor hogere criticaliteitsstromen zijn strengere betrouwbaarheidsdoelen vereist.
Beveiligingsdoelen: Analyseer de beveiligingsbehoeften van elke stroom op basis van gegevensgevoeligheid en gebruikersactiviteiten. Implementeer en werk doorlopend beveiligingsmaatregelen bij om aan deze behoeften te voldoen en tegelijkertijd te zorgen voor naleving van regelgevingsstandaarden.
Kostendoelen: inzicht in de vereisten van elke stroom voor effectieve resourcetoewijzing. Stel doelen in om kosten te verdelen met prestaties. Zorg ervoor dat het resourcegebruik overeenkomt met zakelijke prioriteiten.
Operationele doelen: Definieer metrische gegevens voor effectieve bewaking en probleemoplossing. Doelen moeten zorgen voor efficiënt resourcegebruik en afstemming met organisatiedoelen.
Prestatiedoelen: Basisprestatiedoelen voor de eerste vereisten van elke stroom. Zorg ervoor dat essentiële stromen voldoende resources ontvangen en voortdurend doelen aanpassen om te voldoen aan veranderende eisen en gebruikerservaringen te verbeteren.
De stroom ontwerpen
Ontwerp de stroom om te voldoen aan de technische doelen. U moet vertrouwd raken met aanbevolen procedures voor stroomontwerp, zodat u het juiste resultaat krijgt. Bouw en test de stroom. Het ontwerp herhalen totdat het voldoet aan de technische doelen die u hebt vastgesteld.
Best practices voor stroomontwerp volgen
Wanneer u een stroom ontwerpt, volgt u de aanbevolen procedures voor stroomontwerp. Een goed ontworpen stroom heeft de volgende kenmerken:
Bereikd: afzonderlijke begin- en eindpunten voor elke stroom identificeren. Duidelijke grenzen helpen bij het optimaliseren van gebruikers- of systeeminteracties.
Logisch: Ontwerp uw stromen met een logische volgorde van stappen. Optimaliseer voor het meest efficiënte pad en verminder onnodige stappen.
Onderhoudbaar: Ontwerp stromen die eenvoudig kunnen worden bijgewerkt en onderhouden. Gebruik modulaire onderdelen die u kunt wijzigen zonder dat dit van invloed is op de hele werkbelasting.
Gedefinieerd: Neem specifieke voorwaarden op die elke stap in een stroom activeren of begeleiden. Deze precisie zorgt ervoor dat de stroom nauwkeurig reageert op gebruikersinvoer, gegevenswijzigingen of systeemstatussen.
Betrouwbaar: Bouw foutafhandeling en uitzonderingspaden in uw stromen. Effectief foutbeheer voorkomt onderbrekingen en onderhoudt stroomintegriteit onder onverwachte omstandigheden.
Schaalbaar: Zorg ervoor dat deze verschillende belastingen kan verwerken en zich kan aanpassen aan het vergroten of verkleinen van gebruikersdatabases of gegevensvolumes.
Beveiligd: Sluit beveiligingsmaatregelen in de stroom in. Bescherm gegevens en gebruikersinteracties tegen onbevoegde toegang en bedreigingen.
Efficiënt: Plan voor efficiënt gebruik van resources zonder over-inrichting. Houd rekening met kostenoptimalisatie.
Gebruikersgericht: Voor gebruikersstromen kunt u het stroomontwerp afstemmen op de verwachtingen en het gedrag van gebruikers. Maak het intuïtief en verminder de leercurve voor nieuwe gebruikers.
De stroom ontwikkelen en testen
Ontwikkel de stroom om te voldoen aan technische doelen en test deze om ervoor te zorgen dat deze voldoet aan de vereisten. Dit proces valideert dat de stroom werkt zoals bedoeld, efficiënt de taken verwerkt en voldoet aan de technische doelen. Hier volgen richtlijnen voor het bouwen en testen van een stroom:
Technologieën selecteren: Kies technologieën die overeenkomen met de setdoelen op het gebied van betrouwbaarheid, beveiliging en prestaties.
Stroom ontwikkelen: Bouw de stroom volgens het ontwerp en houd rekening met de gestelde doelen.
Teststroom: voer tests uit om ervoor te zorgen dat de stroom voldoet aan doelen. Iterate as needed to meet targets.
Bewaken: bewakingshulpprogramma's implementeren om het resourcegebruik en de kosten bij te houden.
Controleer regelmatig de stroom op basis van de ingestelde doelen en industriestandaarden. Gebruik feedback van bewaking en controles om de stroom te verbeteren. Pas zo nodig doelen en processen aan om te voldoen aan veranderende bedrijfsbehoeften of technologische ontwikkelingen.
Stromen optimaliseren
Herhaal het proces dat in dit artikel is gedefinieerd gedurende de levenscyclus van de stroom. Wanneer u het stroomontwerp doorloopt, gebruikt u het Well-Architected Framework om stromen te optimaliseren vanuit het perspectief van elke pijler:
- Betrouwbaarheid van stroom
- Stroombeveiliging
- Optimalisatie van stroomkosten
- Operationele uitmuntendheid van flow
- Efficiëntie van stroomprestaties
Stroomvoorbeelden
Hier volgen enkele stroomvoorbeelden om u te helpen bij het ontwerpen van uw stromen. In de voorbeelden wordt de referentiearchitectuur voor betrouwbare web-apps gebruikt als basis en worden de documentatie weergegeven die u voor elke stroom moet hebben.
Gebruikersstroom 1: Geplande concerten maken
Beschrijving van stroom: Medewerkers van het callcenter gebruiken de toepassing om een gepland concert te maken.
Bedrijfsprocessen: Deze stroom biedt ondersteuning voor het aankoopticketproces , maar het is asynchroon, waardoor de kritiek wordt verlaagd.
Proceseigenaar: Directeur verkoop.
Belanghebbenden: verkoopafdeling, concertplanning en -activiteiten, platformteam en toepassingsteam.
Escalatiepaden: toepassingsteam, platformteam en vervolgens verkoopafdeling.
Bedrijfsimpact: Deze stroom is belangrijk voor het beschikbaar maken van nieuwe concerten op verkoopplatformen, die rechtstreeks van invloed zijn op de belangrijkste omzetstroom van het bedrijf. Wanneer callcentermedewerkers geen concerten kunnen maken vanwege de onbeschikbaarheid van deze stroom, heeft dit negatieve gevolgen voor zowel de omzet als de reputatie van het bedrijf. Hoge beschikbaarheid is echter niet essentieel voor dit proces, omdat concerten doorgaans wekelijks van tevoren worden gepland. De verkoopafdeling heeft een vereiste van 95% beschikbaarheid voor dit proces opgegeven en is in overeenstemming met downtime buiten kantooruren voor onderhoudsdoeleinden.
Criticaliteitsclassificatie: Laag.
Gebruikersstroom 2: Zoeken in concerten
Beschrijving van stroom: Medewerkers van het callcenter gebruiken de toepassing om te zoeken naar aanstaande concerten.
Bedrijfsprocessen: Deze stroom ondersteunt het aankoopticketproces , maar medewerkers van het callcenter kunnen ervoor kiezen om alle concerten weer te geven als de zoekfunctie niet beschikbaar is.
Proceseigenaar: de afdeling gebruikerservaring (UX).
Belanghebbenden: verkoopafdeling, platformteam en toepassingsteam.
Escalatiepad: toepassingsteam, platformteam, verkoopafdelingmanager on-call.
Bedrijfsimpact: Met deze stroom kunnen medewerkers van het callcenter snel concerten vinden en maken ze deel uit van het normale verkoopproces. Hoge beschikbaarheid van deze stroom is niet essentieel omdat werknemers de mogelijkheid hebben om concerten zelfs in afwezigheid weer te geven. De ervaring van de medewerker van het callcenter wordt hierdoor verslechterd en beïnvloedt de productiviteit. Klanten kunnen frustratie ervaren vanwege verhoogde wachttijden of vertragingen. De verkoopafdeling heeft tijdens normale kantooruren een beschikbaarheid van 99% van deze stroom aangevraagd.
Beoordeling van kritiek: gemiddeld.
Gebruikersstroom 3: Een lijst met de concerten ophalen
Beschrijving van stroom: Medewerkers van het callcenter gebruiken de toepassing om een lijst met concerten op te halen.
Bedrijfsprocessen: Deze stroom ondersteunt het aankoopticketproces rechtstreeks.
Proceseigenaar: Directeur van Platform.
Belanghebbenden: Verkoopafdeling, platformteam, gegevensteam.
Escalatiepad: Gegevensteam, datateam on-call engineer, platformteam on-call engineer.
Bedrijfsimpact: deze stroom is integraal voor het kritieke pad van omzetgenererende transacties voor het bedrijf. Hoge beschikbaarheid is essentieel, omdat medewerkers van het callcenter afhankelijk zijn van deze stroom om ticketaankopen te verwerken. In erkenning van het belang van het bedrijf vereist het bedrijf een uptime van 99,9% voor deze stroom, waaronder verlengde kantooruren.
Beoordeling van kritiek: hoog.
Gebruikersstroom 4: Ticket kopen
Beschrijving van stroom: Medewerkers van het callcenter gebruiken de toepassing (het verificatie- en autorisatieproces) om tickets te kopen voor een gepland concert (de lijst met geplande concerten) namens Relecloud-klanten.
Bedrijfsprocessen: Deze stroom is de kernfunctie en -stroom van de toepassing.
Proceseigenaar: Directeur verkoop.
Belanghebbenden: verkoopafdeling en alle technische teams.
Escalatiepad: Toepassingsteam on-call engineer, platformteam on-call engineer, data team on-call engineer, Chief Operating Officer.
Bedrijfsimpact: hoge beschikbaarheid van deze stroom is van cruciaal belang, omdat het klantenticketaankopen rechtstreeks mogelijk maakt. Elke storing of onbeschikbaarheid van deze stroom kan zowel de omzet als de reputatie van het bedrijf aanzienlijk beïnvloeden. Het bedrijf heeft een strenge eis gesteld voor dit essentiële proces, waarbij 99,9% uptime wordt verwacht, zelfs tijdens langere kantooruren.
Beoordeling van kritiek: hoog.
Gebruikersstroom 5: Verificatie en autorisatie
Beschrijving van stroom: Medewerkers van het callcenter melden zich veilig aan bij de toepassing. Beheerders bieden hen de juiste rollen om tickets te kopen namens Relecloud-klanten.
Bedrijfsprocessen: Deze stroom ondersteunt het aankoopticketproces rechtstreeks. Zonder deze functionaliteit kunnen medewerkers van het callcenter zich niet aanmelden bij de toepassing om tickets te kopen.
Proceseigenaar: platformteam.
Belanghebbenden: platformteam, operationele team en verkoopafdeling.
Escalatiepad: Platformteam on-call engineer, Chief Operating Officer.
Bedrijfsimpact: deze stroom vereist hoge beschikbaarheid omdat medewerkers van het callcenter geen tickets kunnen kopen als deze stroom niet goed werkt. Als deze stroom niet beschikbaar is, is deze rechtstreeks van invloed op de omzet en reputatie. Het is een belangrijk proces waarvoor het bedrijf 99,9% uptime verwacht, inclusief tijdens langere kantooruren.
Beoordeling van kritiek: hoog.
Systeemstroom: Telemetrie verzamelen
Beschrijving van stroom: Informatie over statuswijzigingen in het productiesysteem, webtoepassings- en API-exemplaren verzamelen en verzenden informatie, fouten en waarschuwingen. Met deze gegevens kan het operations-team anomaliedetectie, probleemoplossing en profilering uitvoeren.
Bedrijfsprocessen: Deze stroom biedt geen ondersteuning voor bedrijfsprocessen, maar biedt belangrijke gegevens voor het operationele team.
Proceseigenaar: Directeur van Operations.
Belanghebbenden: Operations-team, platformteam en gegevensteam.
Escalatiepad: Operations-team (24/7), datateam on-call engineer.
Bedrijfsimpact: deze stroom is essentieel voor de bewaking en continue verbetering van het bedrijf. Het moet zo redundant en tolerant mogelijk zijn. Het operationele team is verantwoordelijk voor het snel herstellen van deze stroom na een fout om ontbrekende kritieke informatie en waarschuwingen te voorkomen. Als de stroom de verwachte beschikbaarheid niet bereikt, is er een risico dat er sprake is van problemen met de productie, wat kan leiden tot ernstige gevolgen. Om dit risico te beperken, streeft de operationele afdeling naar 99% uptime, 24/7. Ze moeten onderhoudgerelateerde downtime ten minste 48 uur van tevoren plannen.
Beoordeling van kritiek: gemiddeld.