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