Uploaded by Gerco van dijk

Design-GoHealthyV1

advertisement
Gerco van Dijk
Conclusion Accelerate
INTEGRATIE DESIGN
GOHEALTHY
01-03-2023
Contents
1.
Inleiding ........................................................................................................................................... 2
2.
Functionele vraag ............................................................................................................................ 2
3.
Architectuur kaders ......................................................................................................................... 2
4.
Design .............................................................................................................................................. 3
4.1 Design uitleg .................................................................................................................................. 3
4.1.1 Het landschap ......................................................................................................................... 3
4.1.2 Qeuing .................................................................................................................................... 3
4.1.3 Beveiliging .............................................................................................................................. 3
4.1.4 Internationaal ......................................................................................................................... 4
4.1.5 Dashboard .............................................................................................................................. 4
4.2 Design plaat ................................................................................................................................... 5
5.
Planning ........................................................................................................................................... 6
1. Inleiding
In dit design zal de architectuur van het integratie landschap worden beschreven voor GoHealthy. Zij
zijn een startup dat de nieuwe bol.com willen worden in verzorgingsproducten. Zij willen ons
webshop platform internationaal op de markt zetten. Om klanten met hun te laten communiceren
willen zij een selfservice portal waarbij nieuwe partners zicht kunnen aanmelden en zo toegang
kunnen krijgen tot onze backend systemen. Waarna klanten via hun website deze producten weer
kunnen kopen.
2. Functionele vraag
Wij willen de nieuwe bol.com willen worden in verzorgingsproducten. Ons verdien model zal ook
daar liggen, onze klanten moeten betalen om orders naar ons te sturen. In ruil daarvoor verzorgen
wij de hele afhandeling van de order.
We hebben 1 klant die als bijzonder gezien wordt en behandelen we ook als bijzondere klant die niet
met bovenstaande hoeft te committeren. Deze klant hoeft ook niet aan ons datamodel te houden.
Het moet mogelijk zijn om hun producten catalogus naar ons te uploaden en klanten mogen ook
inzicht hebben tot de huidige producten catalogus om zo weer op hun webshop zichtbaar te maken.
Deze catalogus zal alles bevatten dat we op dat moment hebben. Dit zal groeien naarmate het
klanten bestand groeit en hun producten aan de catalogus toegevoegd wordt.
Iedere klant moet doormiddel van hun eigen credentials zich kenbaar maken op de verschillende
endpoints en met minimale effort moeten wij deze kunnen beheren.
Downtime is een NO GO, klanten tevredenheid moet op de eerste plaats staan. Verder zal de
snelheid hoog moeten zijn voor de verschillende calls die we verzorgen. Dit om de concurrentie
achter ons te houden.
3. Architectuur kaders
De volgende kaders zijn er meegegeven waar het design aan moet voldoen:
-
Beveiligde verbindingen en authenticatie
Landingspagina voor nieuwe klanten
API-led connectivity
Er mogen geen berichten verloren gaan bij wijzigingsverzoeken
Oplossing moet (zeer) schaalbaar zijn vanwege de internationale ambities
Toepassing moet eenvoudig opnieuw te gebruiken zijn voor vergelijkbare toepassingen
Het backend systeem is traag en kan weinig load aan en is niet altijd stabiel. Deze moet zo
goed mogelijk worden beschermd tegen hoge load.
Performance requirements:
o Ophalen van orders: een piek belasting van 1000 orders per uur aan kunnen.
o Verwerken orders:10000 orders per dag verwerkt kunnen worden.
o Bij het ophalen van product catalogus willen we dat dit ongeacht de grote van de
catalogus binnen 3 seconden gedaan kan worden.
Het backend systeem heeft de volgende operaties:
-
Create order
Read order
Update order
Get orderstatus
Read customer
Read product catalog
Update product catalog
4. Design
Hieronder zal het design worden uitgelegd en weergegeven doormiddel van een designplaat.
4.1 Design uitleg
4.1.1 Het landschap
Voor het maken van het integratie landschap wordt gebruik gemaakt van API-led connectivity. Dit is
een vorm van opbouw in de api’s. We delen de api’s op in 3 lagen. De Experience-API's (EA), de
Proces-API's (PA) en de Systeem-API's (SA). Experience-API's zijn gericht op het leveren van een fijne
eindgebruikerservaring. Ze krijgen hun kracht door zich maniakaal op de consument te richten en de
reeds gecreëerde bouwstenen te hergebruiken. Proces-API's werken samen met en vormen
gegevens binnen een enkel systeem of tussen systemen. System-API's hebben meestal toegang tot
de kernregistratiesystemen en bieden een manier om de gebruiker te isoleren van de complexiteit of
eventuele wijzigingen in de onderliggende systemen.
In dit landschap zijn er 2 Experience-API's. De Product-EA en de GoHealthy-EA. De Product-EA maakt
contact met de portal waarbij partners hun product catalogus kunnen uploaden en bekijken. Daarna
zijn er 3 Proces-API’s om alle gevraagde REST calls door geordende banen de leiden. Om daarna door
de 3 System-API’s te verbinden met de desbetreffende backend systemen. In dit geval is dit 1
backend systeem met 3 verschillende verantwoordelijkheden. Het product management systeem,
het order management syteem en het customer management systeem.
4.1.2 Qeuing
Om te zorgen dat er geen verlies van berichten zal zijn. Zal er gebruik worden gemaakt van een
queue. Deze zal de inkomende berichten opvangen en met een rustig tempo verwerken naar de
backend. Op deze manier zal er geen verlies zijn van berichten bij het plaatsen van producten of
orders. Deze queue zal een orderId of een productId terug geven naar de klant of partner waarna ze
hun geplaatste product of order kunnen ophalen.
4.1.3 Beveiliging
Mulesoft biedt een open locatie (Exchange) aan waar toekomstige partners de Portal-EA kunnen
vinden en ze toeging kunnen vragen om gebruik te maken van deze API. Deze toegang zal door
GoHealthy moeten worden goedgekeurd voordat de partner gebruik kan maken van deze API. Deze
klanten zijn in het design “silver”. De premium klant zal een TLS beveiliging krijgen met het landschap
en hun eigen endpoint. Deze klant is in het design “gold”.
4.1.4 Internationaal
CloudHub gebruikt Amazon AWS voor zijn cloudinfrastructuur. De beschikbaarheid en
implementaties in CloudHub zijn onderverdeeld in verschillende regio's, die op hun beurt verwijzen
naar de overeenkomstige Amazon-regio's. Dit betekend dat we deze integratie overal in de wereld
kunnen deployen en hiermee de snelheid hoog kunnen houden.
4.1.5 Dashboard
Gebruik ingebouwde dashboards of pas uw eigen dashboards aan om direct inzicht te krijgen in de
prestaties van uw applicaties en gedetailleerde analyse van uw netwerk.
Ingebouwde en aangepaste dashboards geven de statistieken van uw app-netwerk weer. Ze bieden
visuele weergaven van uw bronnen, zodat u afwijkingen kunt detecteren, problemen kunt oplossen
en trends kunt zien die in ruwe vorm niet duidelijk zijn.
U kunt veel datapunten en statistieken volgen vanuit een aangepast dashboard dat kijkt naar
meerdere services in de app en in uw dashboards voor alle systemen.
4.2 Design plaat
Hieronder is een afbeelding van de design uitleg.
5. Planning
Voor het bouwen van een juist integratie landschap moeten er een aantal dingen gebeuren.
Hieronder staat hoog over de acties die er moeten gebeuren:
-
8 API’s
Authenticatie
CDM
API Testing
Load testing
Queueing
CICD
Dashboards
Jullie hebben aangegeven dat jullie graag op 1 juni een werkend landschap willen zien. Nu is het
design te groot om helemaal af te maken in de uren die ik tot 1 juni gekregen heb. Gezien de uren
raad ik om te bouwen:
-
-
-
-
-
Product-EA
o POST:/product (gold)
o POST:/product (silver)
o GET:/product/{productId}
o Gebruik van queue
Product-PA:
o POST:/product
o GET:/product/{productId}
Product-SA:
o POST:/product
o GET:/product/{productId}
goHealthy-EA:
o POST:/create/order
o Gebruik van queue
Order-PA:
o POST:/create/order
Order-SA:
o POST:/create/order
CDM
Authenticatie
Load testing
Download