SlideShare a Scribd company logo
1 of 19
Download to read offline
SERVICE
MESH
Trendy v oblasti mikro
služieb
Ladislav Horváth
Tech. manažér v Accenture
Zameranie:
• Projektový manažment a
dodanie softwéru
• Architektúra
• Devops
Projektový tech. manažér s viac
ako 10 ročnou praxou v obore
vývoja softvéru a riadenia IT 20-
30 členných teamov.
Aktuálne sa angažuje v oblasti
digital decoupling, ktorá súvisí s
architektúrou mikro služieb.
Súčasťou role je návrh a
príprava riešenia, plánovanie a
monitoring implementácie.
Technické zázemie v oblasti
návrhu a vývoja MIS a CRM s
aplikáciou monolitickej
architektúry aj decouping
aplikácii s využitím prístupu
event-driven mikro služieb.
Certifikovaný Avanade Scrum
Project Manager, PRINCE 2
Foundation
PoA: Orchestrácia
mikroslužieb pre banku
Návrh a riadenie vývoja
prototypu za účelom
identifikácie vhodného
orchestračného komponentu.
Vernostná platforma pre
oblasť leteckých spoločností
Postupné odpájanie mainframe a
nahrádzanie jeho funkcionality
novou platformou na báze
domain driven design a event-
driven mikro služieb.
B2B cestovný portál
Implementácia nového B2B
produktu ako služby s podporou
multitenancy pre schvaľovanie
nákupu leteniek, hotelov a iných
služieb týkajúcich sa služobných
ciest.
Platforma Digital Decoupling
Návrh a príprava architektúry,
plánu na dodávku, skladby
teamu, rozbeh a riadenie
projektu
Riadenie platformy,
zabezpečenie teamov
vyškolených a skúsených v
oblasti event-driven mikro
služieb.
Copyright © 2020 Accenture. All rights reserved. 2
LADISLAV
HORVÁTH
1
2
3
4
5
Copyright © 2020 Accenture. All rights reserved. 3
Architektúra mikro služieb
Stručné porovnanie s monolitom
Projektové výzvy
Skladba teamu, krátky čas na dodanie, technické
požiadavky
Service mesh
Definícia, architektúra, funkcionalita
Demo
Traffic manažment, zabezpečenie mikro služieb
Otázky a odpovede
Copyright © 2020 Accenture. All rights reserved. 4
MIKRO SLUŽBY
ARCHITEKTÚRA
Copyright © 2020 Accenture. All rights reserved. 5
ARCHITEKTÚRA
DEMO: MIKRO SLUŽBY
Microservice
CustomerCustomer
Microservice
PreferencePreference
Microservice
Recommendatio
n v1
Recommendatio
n v1
Microservice
Recommendatio
n v2
Recommendatio
n v2
API Gateway / Proxy
http
http
http
IAM
Metrics
Dashboard
* https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.3.x/index.html
Copyright © 2020 Accenture. All rights reserved. 6
PROJEKTOVÉ
VÝZVY
Copyright © 2020 Accenture. All rights reserved. 7
Ako riadiť premávku? Akú
gateway/proxy použiť?
Ak je požiadavka na canary
alebo green/blue
nasadzovanie, ako nastaviť
gateway?
Validácia JWT tokenu. Je
potreba validovať pre každé
volanie a každého klienta?
Kam umiestniť konfiguráciu
alebo implementáciu čo
najefektívnejšie?
Ak bude konfigurácia
súčasťou kontajnerov, ako
zabezpečiť nasadenie
zmeny?
Autorizačné pravidlá (RBAC)
je náročné implementovať,
ak je požiadavka vyhnúť sa
hard-kódu.
Ako implementovať load
balancing medzi službami?
Zahrnúť do služieb kód pre
circuit breaker, retries on
failure alebo timeout?
Ako zabezpečiť perzistenciu
stavu pre circuit breaker pre
rovnaké služby v rámci
rôznych kubernetes podov?
Ako zbierať telemetriu a
zobrazovať ich na
dashboarde? Je potreba
použiť napr. java
dependenciu alebo knižnicu
pre zber metrík pre každú
službu?
Ako nastaviť nástroje pre
zber, agregovanie a
zobrazovanie metrík?
OPERAČNÉ OBLASTI, KTORÉ
VÝVOJOVÝ TEAM MUSÍ
PRIPRAVIŤ
KONTROLA PREMÁVKY MONITORING ODOLNOSŤ SLUŽIEB ZABEZPEČENIE
8Copyright © 2020 Accenture. All rights reserved.
SKLADBA TEAMU
Existujú buď programátori
alebo ops ľudia. Kombinácia je
veľmi zriedkavá, každá oblasť
vyžaduje istú mieru
špecializácie.
Väčšina preferuje vývoj pred
ops zadaním  nedostatok
skúsených ops administrátorov
na trhu.
Team je obvykle zložený z 1-2
ops, zvyšok sú programátori.
Vývoj na zelenej lúke formou
tzv. Minimum Viable Product
trvá priemerne 5-6 mesiacov.
Obvykle kapacita pre
operations je alokovaná na
prípravu rôznych test prostredí
a CI/CD. Problém je, že nástroje
pre monitoring a správu musia
byť pripravené v rovnaký čas
ako samotné riešenie.
Iba sieť mikro služieb tvorí
funkčný celok s hodnotou pre
klienta. Ich závislosti môžu
narásť behom pár mesiacov,
čím rastie komplexnosť celého
riešenia.
Dôsledkom je fakt, že team
viac času venuje implementácii
biznis požiadaviek ako kladeniu
základov pre prevádzku
systému.
KOMPLEXITA KRÁTKY ČAS NA DODANIE
FAKTORY, KTORÉ MÔŽU MAŤ
VPLYV NA VOĽBU SERVICE
MESHU
Copyright © 2020 Accenture. All rights reserved. 9
SERVICE MESH
DEFINÍCIA
Copyright © 2020 Accenture. All rights reserved. 10
HTTPS://DZONE.COM/ARTICLES/WHAT-
IS-A-SERVICE-MESH-AND-WHY-DO-
YOU-NEED-ONE
“IS AN UMBRELLA TERM FOR
PRODUCTS THAT SEEK TO
SOLVE THE PROBLEMS THAT
MICROSERVICES'
ARCHITECTURES CREATE.
THESE CHALLENGES INCLUDE
SECURITY, NETWORK TRAFFIC
CONTROL, AND APPLICATION
TELEMETRY”
„data plane“ pozostáva zo sady Envoy proxín, ktoré
sú nasadené ako „sajdkári“. Sprostredkovávajú a
kontrolujú komunikáciu medzi mikro službami. Tiež
zbierajú a reportujú telemetriu o premávke v meshi.
„control plane“ riadi a konfiguruje proxiny na
smerovanie premávky.
Copyright © 2020 Accenture. All rights reserved. 11
ARCHITEKTÚRA
ISTIO
* https://istio.io/docs/ops/deployment/architecture/
• Load balancing
• TLS termination
• HTTP/2 and gRPC proxies
• Circuit breakers
• Health checks
• Staged rollouts with %-
based traffic split
• Fault injection
• Rich metrics
12Copyright © 2020 Accenture. All rights reserved.
Vyvinutá v jazyku C++. Sprostredkováva vstupno-
výstupnú premávku pre všetky služby v service meshi.
Nasadená formou „sajdkáry“ v tom istom kubernetes pode
ako samotná mikroslužba, čím ju obohacuje o mnoho
funkcionalít (viď zoznam vpravo).
Umožňuje Istiu extrahovať množstvo signálov o premávke
ako atribúty (napr. obsah http header), ktoré je možné
použiť v rámci konfigurácie alebo ako informáciu v
monitoring nástrojoch (Grafana, Kiali).
ENVOY
PROXY
PILOT
Copyright © 2020 Accenture. All rights reserved. 13
Konvertuje konfiguráciu z Istio CRD yaml definície pre
kontrolu premávky na konfiguráciu špecifickú pre Envoy a
propaguje ju na všetky sajdkáry bez prerušenia behu
aplikácie.
ROUTING PRÍKLAD
50% všetkých requestov na verziu 1 služby a 50% na
verziu 2.
PRÍKLAD
Copyright © 2020 Accenture. All rights reserved. 14
Zabezpečuje autentizáciu konečných uživateľov
použitím OAuth2 s validáciou JWT tokenu a
komunikáciu medzi službami navzájom.
CITADEL
Copyright © 2020 Accenture. All rights reserved. 15
Istio umožňuje pripojiť mikro
službu v meshi na databázu
mimo meshu, ktorá môže
napr. bežať v kubernetes
pode.
V prípade MySQL je ale
potreba workaround z
dôvodu bugu v Istiu. Jediná
možnosť ktorá fungovala,
bolo mTLS pripojenie.
Istio dokáže monitorovať a
kontrolovať premávku pre
viacero prostredí pod
rovnakým clusterom v
rôznych kubernetes
namespaceoch. Je ale nutné
konfigurovať zvlášť ingress
gateway pre každé
prostredie.
Istio umožňuje autorizáciu na
základe atribútov v JWT
tokene resp HTTP hlavičke. V
prípade špecifických
požiadaviek autorizácie na
základe hodnôt v databáze
mikro služby bola nutnosť
skombinovať Istio autorizáciu
na vyššej úrovni s
implementáciou v službe.
Konfigurácia RBAC pre rôzne
endpointy nepodporuje
regex.
Istio validuje aj atribút Issuer.
V prípade lokálneho IAM
nástroja, Keycloak, bol Issuer
rozdielny podľa toho, či bol
token vystavený cez url
obsahujúcu public hostname
alebo kubernetes FQDN.
Spôsob konfigurácie
viacerých JWT providerov
pod jedným meshom nie je
dokumentovaný.
PRVÁ SKÚSENOSŤ S
KONFIGURÁCIOU
KONEKTIVITA NA DB JWT VALIDÁCIA AUTORIZÁCIA
1 CLUSTER VIAC
PROSTREDÍ
Copyright © 2020 Accenture. All rights reserved. 16
DEMO
Kubernetes
Pod
Copyright © 2020 Accenture. All rights reserved. 17
ARCHITECTURE
ISTIO DEMO
Microservice
CustomerCustomer
Microservice
PreferencePreference
Istio ingress gateway
http
http
http
IAM
Keycloak
Metrics
Prometheu
s
Dashboard
Grafana
Kiali
Envoy
Pod
Envoy Microservice
Recommendatio
n v1
Recommendatio
n v1
Pod
Envoy
Pod
Envoy
Recommnedation
v2
* https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.3.x/index.html
OTÁZKY
ODPOVEDE
Copyright © 2020 Accenture. All rights reserved. 18
POUŽITÉ ZDROJE
Copyright © 2020 Accenture. All rights reserved. 19
https://istio.io/docs/ops/deployment/architecture/
https://redhat-developer-demos.github.io/istio-tutorial/istio
-tutorial/1.3.x/index.html
https://dzone.com/articles/what-is-a-service-mesh-and-wh
y-do-you-need-one

More Related Content

Similar to Cncf meetup-service-mesh-sk

Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Catana0605
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Michal Fojtik
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieJozef Toth
 
Poster: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Poster: Tvorba webovej aplikácie s podporou mapovej služby WFS-TPoster: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Poster: Tvorba webovej aplikácie s podporou mapovej služby WFS-TGeokomunita
 
Referát: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Referát: Tvorba webovej aplikácie s podporou mapovej služby WFS-TReferát: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Referát: Tvorba webovej aplikácie s podporou mapovej služby WFS-TGeokomunita
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingDavinci software
 
Privátny cloud v praxi
Privátny cloud v praxiPrivátny cloud v praxi
Privátny cloud v praxiMartin Gucky
 
GAMO IMS - Incident Management System
GAMO IMS - Incident Management SystemGAMO IMS - Incident Management System
GAMO IMS - Incident Management SystemGAMO a.s.
 
Incident Management System
Incident Management SystemIncident Management System
Incident Management SystemGAMO a.s.
 
Záverečná úloha KPI
Záverečná úloha KPIZáverečná úloha KPI
Záverečná úloha KPIanonym2222
 
2Ring CALL ACCOUNTING_avaya
2Ring CALL ACCOUNTING_avaya2Ring CALL ACCOUNTING_avaya
2Ring CALL ACCOUNTING_avaya2Ring
 
CGC_KOMPLEXNE BEZPECNOSTNE RIESENIA
CGC_KOMPLEXNE BEZPECNOSTNE RIESENIACGC_KOMPLEXNE BEZPECNOSTNE RIESENIA
CGC_KOMPLEXNE BEZPECNOSTNE RIESENIASpacek Jozef
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)DCIT, a.s.
 
Firemný profil
Firemný profilFiremný profil
Firemný profilLundegaard
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineJuraj Michálek
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Drahoslav Madar
 

Similar to Cncf meetup-service-mesh-sk (20)

Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
 
Cv_sk
Cv_skCv_sk
Cv_sk
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácie
 
Poster: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Poster: Tvorba webovej aplikácie s podporou mapovej služby WFS-TPoster: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Poster: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
 
Referát: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Referát: Tvorba webovej aplikácie s podporou mapovej služby WFS-TReferát: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
Referát: Tvorba webovej aplikácie s podporou mapovej služby WFS-T
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud Computing
 
Privátny cloud v praxi
Privátny cloud v praxiPrivátny cloud v praxi
Privátny cloud v praxi
 
GAMO IMS - Incident Management System
GAMO IMS - Incident Management SystemGAMO IMS - Incident Management System
GAMO IMS - Incident Management System
 
Incident Management System
Incident Management SystemIncident Management System
Incident Management System
 
Záverečná úloha KPI
Záverečná úloha KPIZáverečná úloha KPI
Záverečná úloha KPI
 
2Ring CALL ACCOUNTING_avaya
2Ring CALL ACCOUNTING_avaya2Ring CALL ACCOUNTING_avaya
2Ring CALL ACCOUNTING_avaya
 
GAMO Cloud
GAMO CloudGAMO Cloud
GAMO Cloud
 
zaverecna_prace (1)
zaverecna_prace (1)zaverecna_prace (1)
zaverecna_prace (1)
 
CGC_KOMPLEXNE BEZPECNOSTNE RIESENIA
CGC_KOMPLEXNE BEZPECNOSTNE RIESENIACGC_KOMPLEXNE BEZPECNOSTNE RIESENIA
CGC_KOMPLEXNE BEZPECNOSTNE RIESENIA
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)
 
GAMO Cloud
GAMO CloudGAMO Cloud
GAMO Cloud
 
Firemný profil
Firemný profilFiremný profil
Firemný profil
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App Engine
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?
 

More from Juraj Hantak

Kubernetes day 2_jozef_halgas_pf
Kubernetes day 2_jozef_halgas_pfKubernetes day 2_jozef_halgas_pf
Kubernetes day 2_jozef_halgas_pfJuraj Hantak
 
Kubernetes day 2 @ zse energia
Kubernetes day 2 @ zse energiaKubernetes day 2 @ zse energia
Kubernetes day 2 @ zse energiaJuraj Hantak
 
Dev ops culture_final
Dev ops culture_finalDev ops culture_final
Dev ops culture_finalJuraj Hantak
 
Integracia security do ci cd pipelines
Integracia security do ci cd pipelinesIntegracia security do ci cd pipelines
Integracia security do ci cd pipelinesJuraj Hantak
 
Secrets management vault cncf meetup
Secrets management vault cncf meetupSecrets management vault cncf meetup
Secrets management vault cncf meetupJuraj Hantak
 
Introductiontohelmcharts2021
Introductiontohelmcharts2021Introductiontohelmcharts2021
Introductiontohelmcharts2021Juraj Hantak
 
Intro to creating kubernetes operators
Intro to creating kubernetes operators Intro to creating kubernetes operators
Intro to creating kubernetes operators Juraj Hantak
 
19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetes19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetesJuraj Hantak
 
16. Cncf meetup-docker
16. Cncf meetup-docker16. Cncf meetup-docker
16. Cncf meetup-dockerJuraj Hantak
 
16. meetup sietovy model v kubernetes
16. meetup sietovy model v kubernetes16. meetup sietovy model v kubernetes
16. meetup sietovy model v kubernetesJuraj Hantak
 
Terraform a gitlab ci
Terraform a gitlab ciTerraform a gitlab ci
Terraform a gitlab ciJuraj Hantak
 
Monitoring with prometheus at scale
Monitoring with prometheus at scaleMonitoring with prometheus at scale
Monitoring with prometheus at scaleJuraj Hantak
 
Kubernetes monitoring using prometheus stack
Kubernetes monitoring using prometheus stackKubernetes monitoring using prometheus stack
Kubernetes monitoring using prometheus stackJuraj Hantak
 
12.cncfsk meetup observability and analysis
12.cncfsk meetup observability and analysis12.cncfsk meetup observability and analysis
12.cncfsk meetup observability and analysisJuraj Hantak
 

More from Juraj Hantak (20)

Kubernetes day 2_jozef_halgas_pf
Kubernetes day 2_jozef_halgas_pfKubernetes day 2_jozef_halgas_pf
Kubernetes day 2_jozef_halgas_pf
 
Kubernetes day 2 @ zse energia
Kubernetes day 2 @ zse energiaKubernetes day 2 @ zse energia
Kubernetes day 2 @ zse energia
 
Dev ops culture_final
Dev ops culture_finalDev ops culture_final
Dev ops culture_final
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
23 meetup rancher
23 meetup rancher23 meetup rancher
23 meetup rancher
 
Integracia security do ci cd pipelines
Integracia security do ci cd pipelinesIntegracia security do ci cd pipelines
Integracia security do ci cd pipelines
 
CNCF opa
CNCF opaCNCF opa
CNCF opa
 
Secrets management vault cncf meetup
Secrets management vault cncf meetupSecrets management vault cncf meetup
Secrets management vault cncf meetup
 
Introductiontohelmcharts2021
Introductiontohelmcharts2021Introductiontohelmcharts2021
Introductiontohelmcharts2021
 
Intro to creating kubernetes operators
Intro to creating kubernetes operators Intro to creating kubernetes operators
Intro to creating kubernetes operators
 
19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetes19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetes
 
16. Cncf meetup-docker
16. Cncf meetup-docker16. Cncf meetup-docker
16. Cncf meetup-docker
 
16. meetup sietovy model v kubernetes
16. meetup sietovy model v kubernetes16. meetup sietovy model v kubernetes
16. meetup sietovy model v kubernetes
 
16.meetup uvod
16.meetup uvod16.meetup uvod
16.meetup uvod
 
14. meetup
14. meetup14. meetup
14. meetup
 
Terraform a gitlab ci
Terraform a gitlab ciTerraform a gitlab ci
Terraform a gitlab ci
 
Monitoring with prometheus at scale
Monitoring with prometheus at scaleMonitoring with prometheus at scale
Monitoring with prometheus at scale
 
Kubernetes monitoring using prometheus stack
Kubernetes monitoring using prometheus stackKubernetes monitoring using prometheus stack
Kubernetes monitoring using prometheus stack
 
12.cncfsk meetup observability and analysis
12.cncfsk meetup observability and analysis12.cncfsk meetup observability and analysis
12.cncfsk meetup observability and analysis
 
Grafana 7.0
Grafana 7.0Grafana 7.0
Grafana 7.0
 

Cncf meetup-service-mesh-sk

  • 1. SERVICE MESH Trendy v oblasti mikro služieb Ladislav Horváth
  • 2. Tech. manažér v Accenture Zameranie: • Projektový manažment a dodanie softwéru • Architektúra • Devops Projektový tech. manažér s viac ako 10 ročnou praxou v obore vývoja softvéru a riadenia IT 20- 30 členných teamov. Aktuálne sa angažuje v oblasti digital decoupling, ktorá súvisí s architektúrou mikro služieb. Súčasťou role je návrh a príprava riešenia, plánovanie a monitoring implementácie. Technické zázemie v oblasti návrhu a vývoja MIS a CRM s aplikáciou monolitickej architektúry aj decouping aplikácii s využitím prístupu event-driven mikro služieb. Certifikovaný Avanade Scrum Project Manager, PRINCE 2 Foundation PoA: Orchestrácia mikroslužieb pre banku Návrh a riadenie vývoja prototypu za účelom identifikácie vhodného orchestračného komponentu. Vernostná platforma pre oblasť leteckých spoločností Postupné odpájanie mainframe a nahrádzanie jeho funkcionality novou platformou na báze domain driven design a event- driven mikro služieb. B2B cestovný portál Implementácia nového B2B produktu ako služby s podporou multitenancy pre schvaľovanie nákupu leteniek, hotelov a iných služieb týkajúcich sa služobných ciest. Platforma Digital Decoupling Návrh a príprava architektúry, plánu na dodávku, skladby teamu, rozbeh a riadenie projektu Riadenie platformy, zabezpečenie teamov vyškolených a skúsených v oblasti event-driven mikro služieb. Copyright © 2020 Accenture. All rights reserved. 2 LADISLAV HORVÁTH
  • 3. 1 2 3 4 5 Copyright © 2020 Accenture. All rights reserved. 3 Architektúra mikro služieb Stručné porovnanie s monolitom Projektové výzvy Skladba teamu, krátky čas na dodanie, technické požiadavky Service mesh Definícia, architektúra, funkcionalita Demo Traffic manažment, zabezpečenie mikro služieb Otázky a odpovede
  • 4. Copyright © 2020 Accenture. All rights reserved. 4 MIKRO SLUŽBY ARCHITEKTÚRA
  • 5. Copyright © 2020 Accenture. All rights reserved. 5 ARCHITEKTÚRA DEMO: MIKRO SLUŽBY Microservice CustomerCustomer Microservice PreferencePreference Microservice Recommendatio n v1 Recommendatio n v1 Microservice Recommendatio n v2 Recommendatio n v2 API Gateway / Proxy http http http IAM Metrics Dashboard * https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.3.x/index.html
  • 6. Copyright © 2020 Accenture. All rights reserved. 6 PROJEKTOVÉ VÝZVY
  • 7. Copyright © 2020 Accenture. All rights reserved. 7 Ako riadiť premávku? Akú gateway/proxy použiť? Ak je požiadavka na canary alebo green/blue nasadzovanie, ako nastaviť gateway? Validácia JWT tokenu. Je potreba validovať pre každé volanie a každého klienta? Kam umiestniť konfiguráciu alebo implementáciu čo najefektívnejšie? Ak bude konfigurácia súčasťou kontajnerov, ako zabezpečiť nasadenie zmeny? Autorizačné pravidlá (RBAC) je náročné implementovať, ak je požiadavka vyhnúť sa hard-kódu. Ako implementovať load balancing medzi službami? Zahrnúť do služieb kód pre circuit breaker, retries on failure alebo timeout? Ako zabezpečiť perzistenciu stavu pre circuit breaker pre rovnaké služby v rámci rôznych kubernetes podov? Ako zbierať telemetriu a zobrazovať ich na dashboarde? Je potreba použiť napr. java dependenciu alebo knižnicu pre zber metrík pre každú službu? Ako nastaviť nástroje pre zber, agregovanie a zobrazovanie metrík? OPERAČNÉ OBLASTI, KTORÉ VÝVOJOVÝ TEAM MUSÍ PRIPRAVIŤ KONTROLA PREMÁVKY MONITORING ODOLNOSŤ SLUŽIEB ZABEZPEČENIE
  • 8. 8Copyright © 2020 Accenture. All rights reserved. SKLADBA TEAMU Existujú buď programátori alebo ops ľudia. Kombinácia je veľmi zriedkavá, každá oblasť vyžaduje istú mieru špecializácie. Väčšina preferuje vývoj pred ops zadaním  nedostatok skúsených ops administrátorov na trhu. Team je obvykle zložený z 1-2 ops, zvyšok sú programátori. Vývoj na zelenej lúke formou tzv. Minimum Viable Product trvá priemerne 5-6 mesiacov. Obvykle kapacita pre operations je alokovaná na prípravu rôznych test prostredí a CI/CD. Problém je, že nástroje pre monitoring a správu musia byť pripravené v rovnaký čas ako samotné riešenie. Iba sieť mikro služieb tvorí funkčný celok s hodnotou pre klienta. Ich závislosti môžu narásť behom pár mesiacov, čím rastie komplexnosť celého riešenia. Dôsledkom je fakt, že team viac času venuje implementácii biznis požiadaviek ako kladeniu základov pre prevádzku systému. KOMPLEXITA KRÁTKY ČAS NA DODANIE FAKTORY, KTORÉ MÔŽU MAŤ VPLYV NA VOĽBU SERVICE MESHU
  • 9. Copyright © 2020 Accenture. All rights reserved. 9 SERVICE MESH
  • 10. DEFINÍCIA Copyright © 2020 Accenture. All rights reserved. 10 HTTPS://DZONE.COM/ARTICLES/WHAT- IS-A-SERVICE-MESH-AND-WHY-DO- YOU-NEED-ONE “IS AN UMBRELLA TERM FOR PRODUCTS THAT SEEK TO SOLVE THE PROBLEMS THAT MICROSERVICES' ARCHITECTURES CREATE. THESE CHALLENGES INCLUDE SECURITY, NETWORK TRAFFIC CONTROL, AND APPLICATION TELEMETRY”
  • 11. „data plane“ pozostáva zo sady Envoy proxín, ktoré sú nasadené ako „sajdkári“. Sprostredkovávajú a kontrolujú komunikáciu medzi mikro službami. Tiež zbierajú a reportujú telemetriu o premávke v meshi. „control plane“ riadi a konfiguruje proxiny na smerovanie premávky. Copyright © 2020 Accenture. All rights reserved. 11 ARCHITEKTÚRA ISTIO * https://istio.io/docs/ops/deployment/architecture/
  • 12. • Load balancing • TLS termination • HTTP/2 and gRPC proxies • Circuit breakers • Health checks • Staged rollouts with %- based traffic split • Fault injection • Rich metrics 12Copyright © 2020 Accenture. All rights reserved. Vyvinutá v jazyku C++. Sprostredkováva vstupno- výstupnú premávku pre všetky služby v service meshi. Nasadená formou „sajdkáry“ v tom istom kubernetes pode ako samotná mikroslužba, čím ju obohacuje o mnoho funkcionalít (viď zoznam vpravo). Umožňuje Istiu extrahovať množstvo signálov o premávke ako atribúty (napr. obsah http header), ktoré je možné použiť v rámci konfigurácie alebo ako informáciu v monitoring nástrojoch (Grafana, Kiali). ENVOY PROXY
  • 13. PILOT Copyright © 2020 Accenture. All rights reserved. 13 Konvertuje konfiguráciu z Istio CRD yaml definície pre kontrolu premávky na konfiguráciu špecifickú pre Envoy a propaguje ju na všetky sajdkáry bez prerušenia behu aplikácie. ROUTING PRÍKLAD 50% všetkých requestov na verziu 1 služby a 50% na verziu 2.
  • 14. PRÍKLAD Copyright © 2020 Accenture. All rights reserved. 14 Zabezpečuje autentizáciu konečných uživateľov použitím OAuth2 s validáciou JWT tokenu a komunikáciu medzi službami navzájom. CITADEL
  • 15. Copyright © 2020 Accenture. All rights reserved. 15 Istio umožňuje pripojiť mikro službu v meshi na databázu mimo meshu, ktorá môže napr. bežať v kubernetes pode. V prípade MySQL je ale potreba workaround z dôvodu bugu v Istiu. Jediná možnosť ktorá fungovala, bolo mTLS pripojenie. Istio dokáže monitorovať a kontrolovať premávku pre viacero prostredí pod rovnakým clusterom v rôznych kubernetes namespaceoch. Je ale nutné konfigurovať zvlášť ingress gateway pre každé prostredie. Istio umožňuje autorizáciu na základe atribútov v JWT tokene resp HTTP hlavičke. V prípade špecifických požiadaviek autorizácie na základe hodnôt v databáze mikro služby bola nutnosť skombinovať Istio autorizáciu na vyššej úrovni s implementáciou v službe. Konfigurácia RBAC pre rôzne endpointy nepodporuje regex. Istio validuje aj atribút Issuer. V prípade lokálneho IAM nástroja, Keycloak, bol Issuer rozdielny podľa toho, či bol token vystavený cez url obsahujúcu public hostname alebo kubernetes FQDN. Spôsob konfigurácie viacerých JWT providerov pod jedným meshom nie je dokumentovaný. PRVÁ SKÚSENOSŤ S KONFIGURÁCIOU KONEKTIVITA NA DB JWT VALIDÁCIA AUTORIZÁCIA 1 CLUSTER VIAC PROSTREDÍ
  • 16. Copyright © 2020 Accenture. All rights reserved. 16 DEMO
  • 17. Kubernetes Pod Copyright © 2020 Accenture. All rights reserved. 17 ARCHITECTURE ISTIO DEMO Microservice CustomerCustomer Microservice PreferencePreference Istio ingress gateway http http http IAM Keycloak Metrics Prometheu s Dashboard Grafana Kiali Envoy Pod Envoy Microservice Recommendatio n v1 Recommendatio n v1 Pod Envoy Pod Envoy Recommnedation v2 * https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.3.x/index.html
  • 18. OTÁZKY ODPOVEDE Copyright © 2020 Accenture. All rights reserved. 18
  • 19. POUŽITÉ ZDROJE Copyright © 2020 Accenture. All rights reserved. 19 https://istio.io/docs/ops/deployment/architecture/ https://redhat-developer-demos.github.io/istio-tutorial/istio -tutorial/1.3.x/index.html https://dzone.com/articles/what-is-a-service-mesh-and-wh y-do-you-need-one