Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Školení pro architekty a vývojáře konzumentů služeb
Červen 2018
2
Účel školení Metodická podpora návrhářů a vývojářů systémů konzumujících služby NSN Vysvětlení principů architektury NSN Základní vlastnosti a role sběrnice ESB v NSN Přehled použitých komponent pro ESB Principy a přehled sdílených služeb na ESB Metodika modelování služeb Proces registrace systému jakožto konzumenta služby Způsob definice požadavků na nové služby Odkazy na dokumentaci NSN
3
Výchozí předpoklady Školení je určeno pro:
Softwarové architekty systémů konzumujících služby do NSN Vedoucí vývojáře systémů konzumujících služby NSN Předpokládané znalosti a zkušenosti: Architekt Principy SOA Standardní integrační patterny (EAI) Znalost protokol a standardů http(s), SOAP, JMS, WS-S, OAuth2, LDAP UML + Enterprise Architect Vývojář OOP WS/SOAP/JMS XML, XSD
4
Vlastnosti NSN Podpora modularity systému Bezpečné doručování zpráv
Rozšiřitelnost, univerzální systém Škálovatelnost Snadná konfigurace Snadné monitorování
5
Diagram konzumování služeb NSN
Nový systém NDIC Diagram konzumování služeb NSN
6
Obecný účel ESB
7
Špagetový anti-pattern
Monolitické vs. modulární aplikace Rozpad původního NSN na moduly poskytující služby Možnost zapojení dalších modulů (konzumenti dat, poskytovatelé služeb) Princip SOA Exponencielní počet spojů bez ESB Zprostředkování komunikace s vnějším světem (lineární nárůst) Vzájemná komunikace modulů (exponenciální nárůst)
8
Špagetový anti-pattern
Externí systémy Stávající NDIC
9
Špagetový anti-pattern
Externí systémy NSN Modul 1 Modul 2 Modul 3 Modul 4 Modul 5 Modul N
10
Špagetový anti-pattern
Externí systémy NSN ESB Ext/Int Mod 1 Mod 2 Mod3 Mod 4 Mod 5 Mod N
11
Formáty, protokoly, jazyky
Otevřenost vůči vnějšímu i vnitřnímu světu NSN SOAP vs REST JSON vs XML ESB Ext/Int HTTP(s), JMS, MQTT… Java, C#, SQL, Typescript, R…
12
Fronty nedoručitelných zpráv
Integrační patterny Message routing Publish/subscribe Obohacování zpráv Garantované doručení Fronty nedoručitelných zpráv
13
Role ESB v NSN
14
Role ESB v NSN Technická integrace – zajištění přenosu zpráv
Podpora modularity systému – HUB, PIPE, CED Bezpečné doručování zpráv Správa a konfigurovatelnost Monitoring datových toků – metriky služeb, procesů, front
15
Zajištění přenosu zpráv
Cluster pro ESB Ext i ESB Int Řízení toků zpráv Asynchronní doručení datových vstupů Implementace proxy služeb
16
HUB, PIPE, CED HUB PIPE CED (Custom endpoint delivery)
Distribuce dat na více endpointů Customizovatelné seznamy adresátů PIPE Zpráva zpracování sadou po sobě jdoucích služeb Customizovatelné flow volání CED (Custom endpoint delivery) Endpoint definován v hlavičce zprávy Umožňuje modulu oslovit list adresátů se specifickými daty Dva kroky: Získání listu z konfigurace Odeslání na endpoint pomocí reference
17
Garantované doručení zpráv
Fronta příchozích zpráv (mezi ESB Ext a ESB Int) Vlastní zpracování zprávy Fronta odchozích zpráv per endpoint Konfigurovatelný počet opakování
18
Centrální konfigurace
WSO2 Governance Registry pro centrální správu konfigurace ESB Služby Zdroje (WSDL, XSD) Endpointy Sekvence Řízení konfigurace v rámci nasazení Ad-hoc změny pomocí GUI Zprostředkování GR modulům Seznamy Nastavení
19
Monitorování datových toků
Služby Četnost, časy Fronty Naplnění, čištění Procesy Počty, časy, chyby
20
Platforma WSO2
21
Platforma WSO2 Platforma a produkty v rámci ní
ESB EI – podporované formáty, protokoly, patterny
22
WSO2 WSO2 je plně open source řešení.
Produktové portfolio měnící se v čase podle aktuálních trendů Java based Produktová roadmap plánovaná cca na 6 měsíců dopředu
23
Použité produkty platformy WSO2
Enteprise Integrator (ESB) Enteprise Integrator tvoří kostru celého navrhovaného řešení Identity server Slouží pro správu identit (jako jsou zaměstnanci, dodavatelé, partneři a zákazníci) pro systémy poskytující služby nebo aplikace Governance registry Slouží k ukládání konfiguračních dat (např. endpoint, wsdl, xsd), které se sdílejí mezi několika instancemi WSO2 produktu Stream processor Slouží pro statistické vyhodnocování provozu ESB sběrnic (četnosti, objemy a odezvy služeb)
24
Komunikace s ESB
25
ESB Ext, Int Zabezpečení systému vůči vnějším hrozbám
Propojení vnitřních modulů
26
Použití EI v rámci NDIC
27
Externí komunikace
28
Interní komunikace
29
SoapUI: Autorizace volání
EI: Nastavení policy PÚ Autorizace WS Služby jsou zabezpečeny pomocí standardu Web Service Security (WSS) s využitím prostého usernameToken patternu, nebo pomocí http-basic autentizace (přeloží se na WSS) Formátové kontroly jsou dány WSDL a policy soubory definující službu
30
Autorizace WS
31
Autorizace WS Oprávněné účty jsou udržovány v centrálním user-store v AD infrastruktury ŘSD, na který je napojen Identity Server. Autentizace probíhá prostřednictvím Identity serveru (SAML), nebo přímo AD (WS) Přístup k webovým službám je spravován na úrovni rolí uživatelů - tzv. role based policy
32
Uživatelé, role a oprávnění
Typy uživatelských rolí Operátor Technický dohled Manažer – externí uživatel Administrátor systému NDIC Deployer Administrátor ESB
33
Zajištění dostupnosti
Active-Active komponenty Active-Passive komponenty
34
Load balancing Load balancing s následujícími požadavky na funkčnost:
Odolnost/robustnost Ochranu proti DDOS útokům HTTPS terminace Load balancing (minimálně round-robin algoritmus) Detekce nedostupnosti endpoint (minimálně na základě opakovaných negativních odpovědí serveru) Reverse proxy – mapování URL služeb
35
Load balancing ESB
36
Load balancing ESB je load-balancováno na dvou úrovních
Externí ESB - Externí load-balancer zajišťuje směrování trafficu přicházejícího zejména z externích systémů Vnitřní komponenty ESB - Interní load-balancer zajišťuje směřování trafficu přicházejícího z interních systémů NDIC, Funkčních modulů, ale obsluhuje i komunikaci komponent ESB mezi sebou
37
Záložní lokalita Infrastruktura lokality pro přechod do sekundární lokality se skládá z Diskové pole Servery (fyzický HW) Virtualizační centrum, konfigurace a recovery management
38
Bezpečné doručování zpráv
Bezpečné doručení zprávy je zaručeno užitím EIP patternu "Guaranteed Delivery" Odesílatel neodešle zprávu přímo příjemci. Namísto toho odesílatel uloží zprávu do jms queue v rámci ActiveMQ brokera. Zpráva je typu persistent. Tato zpráva je nejprve uložena do jdbc ActiveMQ. Tam je do té doby, dokud není úspěšně odeslána koncovému příjemci
39
Přehled patternů a jejich význam
Async data transform (ServerInput) Tento pattern představuje transformaci dat vstupní zprávy, kterou asynchronně rozešle k určeným adresátům HUB - External data publish/Internal Message Tento pattern představuje požadavek "nějaké externí služby" (může jí být policie - například omezení v provozu) na rozeslání notifikace. Tato notifikace má obecně více adresátů Pipe Služby implementující tento pattern přijatou zprávu uloží do JMS fronty, potvrdí přijetí a odešlou zprávu na backend systém
40
Přehled patternů a jejich význam
Simple proxy (EXT, INT) Tento pattern představuje čistě přeposílač vstupní zprávy bez transformace dat CED – Custom Endpoint Delivery Tento pattern představuje přeposílač vstupní zprávy bez transformace dat. Zpráva se posílá na endpoint na základe identifikátoru v http hlavičce
41
Logy – ELK mechanismus
42
Kibana – přehledy, filtry
Monitorovací dashboard (Kibana) obsahuje web aplikaci pro administrátory. Webová aplikace bude obsahovat grafické zobrazení vybraných statistik Z tohoto dashboardu bude možné získat mimo jiné tyto informace Kolikrát byla služba volána v daném časovém intervalu a jakým uživatelem Který uživatel a kolikrát se přihlašoval se špatnými přihlašovacími údaji Jako skončilo volání služby Výpis volaní služeb, které skončily chybou Kterými částmi procesu (aktivitami) volání prošlo a kde skončilo Jaká je průměrná délka volání služby nebo její části
43
Kibana
44
CorrelationId Logy aplikací jsou unifikovány do jednotného formátu tak, aby bylo následně možné v nich vyhledávat napříč systémy, nebo sledovat zpracování konkrétní události v čase Vlastní message pak vždy obsahuje údaje zaznamenané vlastním producentem logu Jedním z těchto údajů je correlationId (pro události iniciované mimo ESB)
45
Sledované metriky PÚ Základní metriky Stav služeb, front
Kibana: Sledování logů Monitoring Dashboard: Procesy, fronty PÚ Sledované metriky Základní metriky Stav služeb, front Sledované procesy Monitoring Dashboard
46
Registrace nového konzumenta
47
Interface agreement Model služby WSDL Anotované XSD
Ukázka request/response SoapUI/JMeter projekt pro otestování
48
Proces registrace pro konzumováni WS
Nastavení sítové infrastruktury Vytvoření systémového účtu Zařazení do skupiny Získání certifikátu pro komunikaci pomocí SSL
49
Proces registrace do publish/subscribe služeb
Implementace WS pro dané rozhraní dle interface agreement Poskytnutí URL a WSDL pro kontrolu Přidělení systémového účtu pro ESB Poskytnutá SSL certifikátu pro komunikaci s WS Konfigurace HUB služby
50
Požadavek na novou službu
51
Specifikace služby Odůvodnění Zdrojový systém dat
Povaha dat (binární, textová, strukturovaná) Protokol komunikace Formát komunikace Odhad počtu volání
52
Praktická ukázka vytvoření klienta služby
53
Příprava vzorového projektu
Vývoj klienta služby EI PÚ Příprava vzorového projektu Git repository Příprava vývojového prostředí – IDE Příprava podkladů pro volání služby Stažení WSDL Ověření systémového účtu SoapUI test
54
Vytvoření klienta služby
Vygenerování klienta dle WSDL Implementace jednoduchého requestu a zpracování response Ověření funkce
55
Build a nasazení Příprava balíčku Publikace balíčku do artifactory ŘSD
Nasazení balíčku do TST prostředí
56
Integrační test Vytvoření testu Příprava testovacích dat
Integrace testu do CI Realizace testu
57
Děkujeme za pozornost
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.