Arhitektura mikroservisov - tečaj 46.900 rub. iz izobraževalnega centra IBS, usposabljanje 24 ur, datum 27. november 2023.
Miscellanea / / November 27, 2023
Mikrostoritvena arhitektura (MSA) je relativno nedavno pridobila slavo kot najbolj priljubljen arhitekturni pristop. Njegova uporaba zagotavlja številne prednosti v različnih fazah življenjskega cikla izdelka. Zlasti MCA omogoča hitrejše odzivne čase na poslovne zahteve, zaradi česar je pogosto boljši od drugih arhitekturnih stilov.
Vendar pa se v procesu razvoja MCA sistemov arhitekt sooča s številnimi izzivi, od katerih mnogi povzročijo, da se začetniki vrnejo nazaj.
Napake pri razgradnji lahko povzročijo resno povečanje kompleksnosti razvoja. Zmogljivost trpi zaradi nepremostljive omrežne zakasnitve. Porazdeljeno shranjevanje podatkov ne omogoča doslednosti transakcij. Veliko število komponent, ki medsebojno delujejo prek omrežja, zmanjšuje zanesljivost. Težko je zagotoviti varnost. Poleg tega testiranje in vzdrževanje porazdeljenega sistema zahteva ločeno razpravo.
Ta tečaj bo pokazal prednosti in slabosti uporabe MCA. Pomagal vam bo sprejeti informirano odločitev o uporabnosti ISA glede na potrebe podjetja in sposobnosti ekipe. Predmet preučuje glavna vprašanja, povezana z implementacijo arhitekture mikrostoritev. Strategije, mehanizmi, vzorci, ki rešujejo zgoraj navedene probleme. Za vsako obravnavano težavo bodo predstavljena najpogostejša orodja (kot so Kubernetes, Istio, Histryx, Kibana in mnoga druga).
Praktične vaje vam bodo omogočile pridobitev veščin samostojnega projektiranja MCA sistemov.
Zajete teme:
1. Arhitekturni slogi (2 uri)
Koncepti monolita, SOA, MSA.
Primerjava in utemeljitev izbire.
2. Vzorci razgradnje MSA (2 uri)
Optimalna velikost mikrostoritve;
Razčlenitev storitev po poslovnih priložnostih;
Razčlenitev storitev po problematičnih področjih;
Prakse definiranja predmetnih področij;
Razčlenitev po tehničnih in organizacijskih vidikih.
3. Organizacija razvoja za MSA (1 ura)
Organizacija ekip v okviru MSA;
Organizacija repozitorija kod v okviru MSA.
4. Integracija mikrostoritev (3 ure)
Vzorci interakcije;
Sinhroni in asinhroni mehanizmi interakcije;
Orkestracija in koreografija;
Osnovni protokoli in tehnologije (REST, gRPC, GraphQL, Kafka, RabbitMQ itd.);
Interakcija z zunanjimi sistemi (API Gateway, BFF);
Reaktivni sistemi;
Arhitekture, ki temeljijo na dogodkih;
Ločitev ukaza in zahteve.
5. Organizacija dela s podatki v MSA (3 ure)
Vzorci dela s podatki;
Ustvarjanje dogodkov;
Referenčni podatki v MSA;
En sam vir resnice (Source of Truth) v MSA.
6. Osnovne predloge ISA (9 ur)
Možnost spreminjanja.
Rešitev problema visoke povezljivosti. Različice vmesnikov in dogodkov. Vrste pogodb. Spremembe modela dogodka. Vzorci za organiziranje zahtev. Mikroservisno ohišje. Storitvena mreža.
Razširljivost.
Vzorci za konstruiranje balansirjev. Storitve zaznavanja in vzorci za delo z njimi.
Izvedba.
Vzorci delovanja v MSA (prekomerno ubijanje, elegantna degradacija itd.).
Doslednost.
Težave z doslednostjo v MSA. CAP izrek. Rešitve težav z doslednostjo. Dvofazne obveznosti. SAGA vzorec. Zmanjšana stopnja konsistence.
Zanesljivost.
Mehanizmi tolerance napak. Vzorci odklopnikov, dušenje, odvisne časovne omejitve itd.
Varnost.
Varnostni mehanizmi v MSA. Preverjanje pristnosti. Pooblastilo. Zaščita perimetra. Zaščita komunikacijskih kanalov. Osnovni protokoli in vzorci (OAUTH2, JWT, gatekeeper, valet key itd.).
Preizkušljivost.
Testiranje piramide in kvadrata. Značilnosti testiranja mikrostoritev.
Testiranje enot. Integracijsko testiranje. Testiranje komponent. E2E testiranje. Vzorci testiranja MSA.
Enostavnost vzdrževanja.
Opazljivost. Vzorci spremljanja (razdeljeno sledenje, združevanje dnevnikov). Spremljanje in beleženje. Konfiguriranje mikrostoritev. Eksternalizacija konfiguracije. Sistemska podpora.
7. Uvajanje mikrostoritev (2 uri)
vzorec »cevovoda uvajanja«;
vzorci uvajanja;
Uporaba tehnologij Docker in Kubernetes;
Uporaba mreže ISTIO;
Namestitev brez strežnika;
Strategije uvajanja (modro-zelena, kanarčka itd.).
8. Strategije prehoda iz monolita v MSA (2 uri)
Strategije za prehod z monolitnih na mikrostoritve;
Monolit zadavitelja;
Vzorci davljenja;
Komunikacija med mikrostoritvijo in monolitom;
Selitev baze podatkov.