Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Školení pro architekty a vývojáře konzumentů služeb

Podobné prezentace


Prezentace na téma: "Školení pro architekty a vývojáře konzumentů služeb"— Transkript prezentace:

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 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 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ří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


Stáhnout ppt "Školení pro architekty a vývojáře konzumentů služeb"

Podobné prezentace


Reklamy Google