Mikrostoritve so arhitekturni pristop k razvoju programskih aplikacij kot zbirke majhnih neodvisnih storitev, ki med seboj komunicirajo prek omrežja. Namesto da bi zgradili monolitno aplikacijo, kjer je vsa funkcionalnost tesno integrirana v eno kodno zbirko, mikrostoritve razčlenijo aplikacijo na manjše, ohlapno povezane storitve.
trenutni datum v Javi
Pomembne teme za mikrostoritve
- Kaj so mikrostoritve?
- Kako delujejo mikrostoritve?
- Katere so glavne komponente arhitekture mikrostoritev?
- Kakšni so oblikovalski vzorci mikrostoritev?
- Kaj so anti-vzorci v mikrostoritvah?
- Primer mikrostoritev iz resničnega sveta
- Mikrostoritve proti monolitni arhitekturi?
- Kako preiti z monolitnih na mikrostoritve?
- Storitveno usmerjena arhitektura (SOA) v primerjavi z arhitekturo mikrostoritev
- Mikrostoritve v oblaku
- Vloga mikrostoritev v DevOps
- Prednosti uporabe arhitekture mikrostoritev
- Izzivi uporabe arhitekture mikrostoritev
- Primeri podjetij iz resničnega sveta, ki uporabljajo arhitekturo mikrostoritev
- Tehnologije, ki omogočajo arhitekturo mikrostoritev
1. Kaj so mikrostoritve?
Microservice je majhna, ohlapno povezana porazdeljena storitev. Vsaka mikrostoritev je zasnovana za izvajanje določene poslovne funkcije in jo je mogoče neodvisno razviti, namestiti in prilagoditi. Omogoča vam, da vzamete veliko aplikacijo in jo razstavite ali razdelite na lahko obvladljive majhne komponente z ozko opredeljenimi odgovornostmi. Velja za gradnik sodobnih aplikacij. Mikrostoritve so lahko napisane v različnih programskih jezikih in ogrodjih, vsaka storitev pa deluje kot mini aplikacija zase.
2. Kako delujejo mikrostoritve?
Mikrostoritve delujejo tako, da kompleksno aplikacijo razdelijo na manjše, neodvisne dele, ki komunicirajo in delujejo skupaj ter zagotavljajo prilagodljivost, razširljivost , in lažje vzdrževanje, podobno kot bi gradili mesto iz modularnih, med seboj povezanih komponent.
Razumejmo, kako delujejo mikrostoritve:
- Modularna struktura:
- Arhitektura mikrostoritev razdeli velike, monolitne aplikacije na manjše, neodvisne storitve.
- Vsaka storitev je samostojen modul s specifično poslovno zmogljivostjo ali funkcijo.
- Ta modularna struktura spodbuja fleksibilnost, enostavnost razvoja in poenostavljeno vzdrževanje.
- Neodvisne funkcije:
- Vsaka mikrostoritev je zasnovana za obravnavo določene poslovne funkcije ali funkcije.
- Na primer, ena storitev lahko upravlja preverjanje pristnosti uporabnikov, medtem ko druga obravnava funkcije kataloga izdelkov.
- Ta neodvisnost omogoča specializiran razvoj in vzdrževanje vsake storitve.
- Komunikacija:
- Mikrostoritve med seboj komunicirajo prek dobro definiranih vmesnikov za programiranje aplikacij (API).
- API-ji služijo kot vmesniki, prek katerih storitve izmenjujejo informacije in zahteve.
- Ta standardizirana komunikacija omogoča interoperabilnost in fleksibilnost pri integraciji storitev.
- Prilagodljivost:
- Arhitektura mikrostoritev podpira uporabo različnih tehnologij za vsako storitev.
- To pomeni, da je mogoče izbrati različne programske jezike, ogrodja in baze podatkov na podlagi posebnih zahtev posamezne mikrostoritve.
- Ekipe imajo prožnost pri uporabi najboljših orodij za svoje funkcije.
- Neodvisnost in posodobitve:
- Mikrostoritve delujejo neodvisno in omogočajo posodobitve ali spremembe ene storitve brez vpliva na celoten sistem.
- To ločevanje storitev zmanjša tveganje za sistemske motnje med posodobitvami, kar olajša izvajanje sprememb in izboljšav.
- Mikrostoritve prispevajo tudi k odpornosti sistema z zagotavljanjem, da če ena storitev naleti na težave ali okvare, ne uniči celotnega sistema.
- Razširljivost:
- Mikrostoritve ponujajo razširljivost, saj omogočajo dodajanje primerkov določenih storitev.
- Če določena funkcija zahteva več virov, se lahko za obvladovanje povečanega povpraševanja uvedejo dodatni primerki te mikrostoritve.
- Ta razširljivost je ključnega pomena za prilagajanje različnim delovnim obremenitvam.
- Stalno izboljševanje:
- Modularna narava mikrostoritev omogoča nenehne izboljšave.
- Razvojne skupine lahko samostojno delajo in izdajo posodobitve za svoje storitve.
- Ta agilnost omogoča sistemu, da se hitro razvija in odziva na spreminjajoče se zahteve ali potrebe uporabnikov.
3. Katere so glavne komponente arhitekture mikrostoritev?
Arhitektura mikrostoritev obsega več komponent, ki skupaj ustvarjajo modularen, razširljiv in neodvisno uvedljiv sistem.
Glavne komponente mikrostoritev vključujejo :
- Mikrostoritve: To so individualne, samostojne storitve, ki zajemajo specifične poslovne zmogljivosti. Vsaka mikrostoritev se osredotoča na posebno funkcijo ali funkcijo.
- Prehod API: Prehod API je osrednja vstopna točka za zunanje odjemalce za interakcijo z mikrostoritvami. Upravlja zahteve, skrbi za preverjanje pristnosti in usmerja zahteve do ustreznih mikrostoritev.
- Register storitev in odkrivanje: Ta komponenta spremlja lokacije in omrežne naslove vseh mikrostoritev v sistemu. Odkrivanje storitev zagotavlja, da lahko storitve dinamično locirajo in komunicirajo med seboj.
- Izravnalnik obremenitve: Izravnalniki obremenitve porazdelijo dohodni omrežni promet med več primerkov mikrostoritev. To zagotavlja, da je delovna obremenitev enakomerno porazdeljena, kar optimizira uporabo virov in preprečuje, da bi posamezna storitev postala ozko grlo.
- Kontejnerizacija: Vsebniki, kot je Docker, zajemajo mikrostoritve in njihove odvisnosti. Orodja za orkestracijo, kot je Kubernetes, upravljajo uvajanje, skaliranje in delovanje vsebnikov, kar zagotavlja učinkovito uporabo virov.
- Vodilo dogodka/posrednik sporočil: Vodilo dogodkov ali posrednik sporočil olajša komunikacijo in usklajevanje med mikrostoritvami. Storitvam omogoča objavo in naročanje na dogodke, kar omogoča asinhrono komunikacijo in ločevanje.
- Centralizirano beleženje in spremljanje: Orodja za centralizirano beleženje in spremljanje pomagajo spremljati delovanje in zdravje mikrostoritev. Zagotavljajo vpogled v vedenje sistema, odkrivajo težave in pomagajo pri odpravljanju težav.
- Baza podatkov na mikrostoritev: Vsaka mikrostoritev ima običajno svojo bazo podatkov, kar zagotavlja avtonomijo podatkov. To omogoča storitvam, da neodvisno upravljajo in prilagajajo svoje shranjevanje podatkov glede na svoje posebne zahteve.
- Predpomnjenje: Mehanizme predpomnjenja je mogoče implementirati za izboljšanje zmogljivosti s shranjevanjem pogosto dostopanih podatkov bližje mikrostoritvam. To zmanjša potrebo po ponavljajočem pridobivanju istih podatkov iz baz podatkov.
- Komponente tolerance napak in odpornosti: Implementacija komponent za toleranco napak, kot so odklopniki in mehanizmi za ponovni poskus, zagotavlja, da lahko sistem elegantno obravnava napake v mikrostoritvah in se obnovi brez vpliva na splošno funkcionalnost.
4. Kakšni so načrtovalski vzorci mikrostoritev?
Ko se med delom v sistemu pojavi težava, je treba upoštevati nekatere prakse, v mikrostoritvah pa so te prakse načrtovalski vzorci. Vzorci načrtovanja mikrostoritev so takšne prakse, ki ob upoštevanju vodijo do učinkovitih arhitekturnih vzorcev, kar ima za posledico premagovanje izzivov, kot je neučinkovito upravljanje teh storitev, in tudi povečanje učinkovitosti. Med delom na aplikaciji se je treba zavedati, kateri oblikovalski vzorec uporabiti za ustvarjanje učinkovite aplikacije.
- Zbiralnik
- Priklical je storitve, da bi prejel zahtevane informacije (povezane podatke) iz različnih storitev, uporabil nekaj logike in ustvaril rezultat.
- Zbrane podatke lahko uporabijo ustrezne službe. Koraki, ki se izvajajo v vzorcu zbiralnika, vključujejo zahtevo, ki jo prejme storitev, nato pa zahteva, poslana več drugim storitvam, združi vsak rezultat in končno odgovori na prvotno zahtevo.
- API Gateway
- API Gateway deluje kot rešitev za zahtevo mikrostoritvam.
- Služi kot vstopna točka za vse mikrostoritve in ustvarja natančne API-je za različne odjemalce.
- Postavljene zahteve se posredujejo prehodu API in izravnalnik obremenitve pomaga pri preverjanju, ali je zahteva obravnavana in poslana ustrezni storitvi.
- Dogodek Sourcing
- Ta vzorec oblikovanja ustvarja dogodke v zvezi s spremembami (podatkov) v stanju aplikacije.
- Z uporabo teh dogodkov lahko razvijalci spremljajo zapise izvedenih sprememb.
- Davitelj
- Davilec je znan tudi kot vzorec vinske trte, saj deluje na enak način, kot trta zadavi drevo okoli sebe. Za vsak klic URI (Uniform Resource Identifier) gre klic naprej in nazaj in je tudi razdeljen na različne domene.
- Tukaj dve ločeni aplikaciji ostaneta ena ob drugi v istem prostoru URI in tukaj bo naenkrat upoštevana ena domena. Tako nova refaktorirana aplikacija nadomesti prvotno aplikacijo.
- Razgradnja
- Vzorec načrtovanja dekompozicije je dekompozicija aplikacije na manjše mikrostoritve, ki imajo lastno funkcionalnost.
- Na podlagi poslovnih zahtev lahko aplikacijo razdelite na podkomponente. Na primer, Amazon ima ločene storitve za izdelke, naročila, stranke, plačila itd.
5. Kaj so anti-vzorci v mikrostoritvah?
Učenje antipatternov v mikrostoritvah je ključnega pomena za izogibanje pogostim napakam. Zagotavlja vpogled v morebitne težave, ki lahko ogrozijo razširljivost sistema, neodvisnost in vzdržljivost. Z razumevanjem teh protivzorcev lahko razvijalci sprejemajo informirane odločitve, izvajajo najboljše prakse in prispevajo k uspešnemu načrtovanju in uvajanju robustnih arhitektur mikrostoritev.
Spodaj je glavnih 5 antipatternov v mikrostoritvah
- Podatkovni monolit: Deljenje centralizirane baze podatkov med mikrostoritvami, kar spodkopava neodvisnost in razširljivost.
- Klepetalne storitve: Mikrostoritve prekomerno komunicirajo za majhne naloge, kar vodi do večjih stroškov omrežja in zakasnitve.
- Prekomerna uporaba mikrostoritev: Ustvarjanje preveč mikrostoritev za nepomembne funkcije, ki uvajajo nepotrebno kompleksnost.
- Neustrezne meje storitev: Slabo definirane meje mikrostoritev, kar povzroča dvoumnost in nejasne odgovornosti.
- Ignoriranje varnosti: Zanemarjanje varnostnih vprašanj v mikro storitvah, tveganje ranljivosti in kršitev podatkov.
6. Primer mikrostoritev iz resničnega sveta
Razumejmo Miscroservices na primeru aplikacije Amazon E-Commerce iz resničnega sveta:
Amazonova spletna trgovina je kot ogromna sestavljanka, sestavljena iz številnih majhnih, specializiranih kosov, imenovanih mikrostoritve. Vsaka mikrostoritev opravi določeno nalogo, da zagotovi, da vse teče gladko. Te mikrostoritve skupaj delujejo v zakulisju in vam zagotavljajo odlično nakupovalno izkušnjo.
Spodaj so mikrostoritve, vključene v aplikacijo Amazon E-commerce:
- Uporabniška storitev: Upravlja uporabniške račune, preverjanje pristnosti in nastavitve. Ukvarja se z registracijo uporabnikov, prijavo in upravljanjem profilov, kar uporabnikom zagotavlja prilagojeno izkušnjo.
- Storitev iskanja: Poganja funkcionalnost iskanja na platformi, kar uporabnikom omogoča hitro iskanje izdelkov. Indeksira informacije o izdelkih in zagotavlja ustrezne rezultate iskanja na podlagi uporabniških poizvedb.
- Storitev kataloga: Upravlja katalog izdelkov, vključno s podrobnostmi o izdelkih, kategorijami in odnosi. Zagotavlja, da so informacije o izdelku točne, posodobljene in lahko dostopne uporabnikom.
- Storitev vozičkov : Upravlja uporabnikov nakupovalni voziček in mu omogoča dodajanje, odstranjevanje in spreminjanje artiklov pred zaključkom nakupa. Zagotavlja brezhibno nakupovalno izkušnjo s sledenjem izbranim artiklom.
- Storitev seznama želja : Upravlja uporabniške sezname želja, kar jim omogoča shranjevanje izdelkov za prihodnji nakup. Uporabnikom omogoča priročen način za sledenje in upravljanje želenih predmetov.
- Storitev sprejemanja naročil : Sprejema in obdeluje naročila strank. Potrjuje naročila, preverja razpoložljivost izdelkov in sproži postopek izpolnitve naročila.
- Storitev obdelave naročil: Vodi obdelavo in izpolnjevanje naročil. Usklajuje se z inventarjem, pošiljanjem in plačilnimi storitvami, da zagotovi pravočasno in natančno dostavo naročil.
- Plačilna storitev : obravnava obdelavo plačil za naročila. Varno obdeluje plačilne transakcije, se integrira s plačilnimi prehodi in upravlja podatke, povezane s plačili.
- Logistična storitev : Koordinira logistiko dostave naročil. Izračunava stroške pošiljanja, dodeljuje prevoznike, sledi pošiljkam in upravlja dostavne poti.
- Storitev skladišča: Upravlja zaloge v skladiščih. Sledi ravni zalog, posodablja razpoložljivost zalog in usklajuje obnavljanje zalog.
- Storitev obveščanja : uporabnikom pošilja obvestila o njihovih naročilih, promocijah in drugih pomembnih informacijah. Uporabnike obvešča o statusu njihove interakcije s platformo.
- Storitev za priporočila : uporabnikom nudi prilagojena priporočila za izdelke. Analizira vedenje in želje uporabnikov, da predlaga ustrezne izdelke, izboljšuje uporabniško izkušnjo in spodbuja prodajo.
7. Mikrostoritve proti monolitni arhitekturi?
Spodaj je tabelarična primerjava med mikrostoritvami in monolitno arhitekturo v različnih vidikih:
| Vidik | Arhitektura mikrostoritev | Monolitna arhitektura |
|---|---|---|
| Arhitekturni slog | Razčlenjen na majhne, neodvisne storitve. | Enotna, tesno integrirana kodna baza. |
| Struktura razvojne ekipe | Majhne, medfunkcionalne ekipe za vsako mikrostoritev. | Večja, centralizirana razvojna ekipa. |
| Razširljivost | Samostojno skaliranje posameznih storitev. | Skaliranje vključuje podvajanje celotne aplikacije. |
| Razporeditev | Samostojna uvedba storitev. | Celotna aplikacija je razporejena kot ena enota. |
| Uporaba virov | Učinkovita uporaba virov, saj se lahko storitve neodvisno spreminjajo. | Sredstva, dodeljena na podlagi splošnih potreb aplikacije. |
| Hitrost razvoja | Hitrejši cikli razvoja in uvajanja. | Počasnejši razvoj in uvajanje zaradi celotne kodne baze. |
| Prilagodljivost | Lažje sprejemanje novih tehnologij za določene storitve. | Omejena prilagodljivost zaradi skupnega tehnološkega sklada. |
| Vzdrževanje | Lažje vzdrževanje manjših, osredotočenih kodnih baz. | Vzdrževanje je lahko zapleteno za veliko, monolitno kodno bazo. |
| Testiranje | Neodvisno testiranje vsake mikrostoritve. | Celovito testiranje celotne aplikacije. |
| Odvisnost od infrastrukture | Manj odvisno od posebnih infrastrukturnih izbir. | Vezan na specifično infrastrukturo zaradi skupne kodne baze. |
8. Kako preiti z monolitnih na mikrostoritve?

Spodaj so glavni ključni koraki za prehod z monolitne na arhitekturo mikrostoritev:
- Ocenite Monolith: Razumevanje obstoječe monolitne aplikacije, prepoznavanje komponent za selitev.
- Definirajte mikrostoritve: Razčlenite monolit na različne poslovne zmogljivosti za mikrostoritve.
- Vzorec zadavitelja: Postopno zamenjajte monolitne dele z mikrostoritvami, pri čemer uporabite pristop postopne migracije.
- Definicija API-ja: Jasno definirajte API-je in pogodbe za brezhibno komunikacijo mikrostoritev.
- Izvedba CI/CD: Nastavite stalno integracijo/neprekinjeno uvajanje (CI/CD) za samodejno testiranje in uvajanje.
- Decentralizacija podatkov: Prehod na pristop baze podatkov na storitev, zmanjšanje odvisnosti od centralne baze podatkov.
- Odkrivanje storitve: Predstavite mehanizme odkrivanja storitev za dinamično komunikacijo med mikrostoritvami.
- Beleženje in spremljanje: Izvedite centralizirano beleženje in spremljanje za vpogled v delovanje mikrostoritev.
- Medsektorski pomisleki: Dosledno upravljajte medsektorske pomisleke, kot sta varnost in preverjanje pristnosti v vseh mikrostoritvah.
- Ponavljajoča se izboljšava: Sprejmite iterativni pristop, ki nenehno izboljšuje in širi mikrostoritve na podlagi povratnih informacij in razvijajočih se potreb.
9. Storitveno usmerjena arhitektura (SOA) v primerjavi z arhitekturo mikrostoritev
Spodaj je tabelarična primerjava med storitveno usmerjeno arhitekturo (SOA) in mikrostoritvami v različnih vidikih:
| Vidik | Storitveno usmerjena arhitektura (SOA) | Arhitektura mikrostoritev |
|---|---|---|
| Obseg | Vključuje širok nabor arhitekturnih načel. | Osredotoča se na gradnjo majhnih, neodvisnih storitev. |
| Velikost storitev | Storitve so ponavadi večje in celovitejše. | Storitve so majhne, osredotočene in enonamenske. |
| Upravljanje podatkov | Skupni podatkovni model in skupne baze podatkov so pogosti. | Vsaka storitev ima svojo bazo ali shrambo podatkov. |
| Komunikacija | Običajno se opira na standardizirane protokole, kot je SOAP. | Uporablja lahke protokole, kot sta REST ali sporočanje. |
| Tehnološka raznolikost | Lahko ima različne tehnologije, vendar pogosto standardizirano vmesno programsko opremo. | Spodbuja različne tehnologije za vsako storitev. |
| Razporeditev | Storitve se pogosto uporabljajo neodvisno. | Spodbuja neodvisno uvajanje mikrostoritev. |
| Razširljivost | Horizontalno skaliranje celotnih storitev je običajno. | Omogoča neodvisno skaliranje posameznih storitev. |
| Hitrost razvoja | Počasnejši razvojni cikli zaradi večjih storitev. | Hitrejši razvojni cikli z manjšimi storitvami. |
| Prilagodljivost | Lahko je prilagodljiv, vendar lahko spremembe vplivajo na več storitev. | Zagotavlja fleksibilnost zaradi neodvisnih storitev. |
| Uporaba virov | Med nizkim povpraševanjem so lahko viri premalo izkoriščeni. | Učinkovita uporaba virov, saj se lahko storitve neodvisno prilagajajo. |
| Upravljanje odvisnosti | Zanaša se na skupne komponente in centralizirano upravljanje. | Vsaka mikrostoritev neodvisno upravlja svoje odvisnosti. |
| Težave pri posvojitvi | Na splošno zahteva več načrtovanja in organizacijskih sprememb. | Lažji za postopno sprejemanje in primeren za agilni razvoj. |
10. Mikrostoritve v oblaku
Mikrostoritve in oblaki se med seboj zagotavljajo prilagodljivo, učinkovito in sodelovalno okolje za gradnjo in izvajanje programskih aplikacij
- Poenostavljene operacije Ponudniki v oblaku skrbijo za vzdrževanje in varnost infrastrukture, kar poenostavi delo za ekipe mikrostoritev. Lahko se osredotočijo na svoje posebne naloge, ne da bi jih skrbelo tehnične podrobnosti v ozadju.
- Stroškovna učinkovitost Združevanje mikrostoritev z viri v oblaku je kot plačilo za natančna orodja in delovni prostor, ki ga uporabljate. Je stroškovno učinkovito, ker niste obtičali z nepotrebno opremo ali prostorom.
- Prilagodljivost Potrebujete več ekip ali želite spremeniti proizvodni proces? Oblak vam omogoča hitro prilagajanje, kot je preurejanje delovnih postaj v prilagodljivem delovnem prostoru.
11. Vloga mikrostoritev v DevOps
DevOps in mikrostoritve so tesno povezane in gredo pogosto z roko v roki za izboljšanje vidikov razvoja, uvajanja in delovanja sodobnih programskih sistemov. Tukaj je kratek pregled, kako DevOps in mikrostoritve delujejo skupaj:
- Neprekinjena integracija/neprekinjeno uvajanje (CI/CD):
- V arhitekturi mikrostoritev je vsako storitev mogoče neodvisno razviti, preizkusiti in uvesti. Cevovodi CI/CD so ključnega pomena za učinkovito upravljanje nenehnih posodobitev in izdaj, povezanih z mikrostoritvami.
- Prakse DevOps poudarjajo cevovode CI/CD, ki vključujejo avtomatizacijo gradnje, testiranja in uvajanja programske opreme.
- Agilni razvoj:
- Mikrostoritve same po sebi podpirajo agilni razvoj, tako da ekipam omogočajo neodvisno delo na določenih storitvah, kar omogoča hitro ponovitev in uvajanje novih funkcij.
- DevOps spodbuja sodelovanje med razvojnimi in operativnimi ekipami ter spodbuja agilne razvojne prakse.
- Neprekinjeno spremljanje in beleženje
- Arhitektura mikrostoritev zahteva robusten nadzor za sledenje zdravju in interakcijam med različnimi storitvami, kar pomaga pri zgodnjem odkrivanju in reševanju težav. DevOps poudarja stalno spremljanje in beleženje za vpogled v delovanje aplikacij v realnem času.
12. Prednosti uporabe arhitekture mikrostoritev
- Modularnost in ločevanje:
- Neodvisni razvoj: Mikrostoritve se razvijajo in uvajajo neodvisno, kar omogoča različnim ekipam, da delajo na različnih storitvah hkrati.
- Izolacija napak: Napake v eni mikrostoritvi ne vplivajo nujno na druge, kar zagotavlja večjo izolacijo napak.
- Razširljivost:
- Zrnato skaliranje: Vsako mikrostoritev je mogoče prilagoditi neodvisno glede na njene posebne potrebe po virih, kar omogoča učinkovito uporabo virov.
- Elastičnost: Arhitekture mikrostoritev se lahko enostavno prilagodijo različnim delovnim obremenitvam z dinamičnim prilagajanjem posameznih storitev.
- Tehnološka raznolikost:
- Svoboda tehnologije: Vsako mikrostoritev je mogoče implementirati z uporabo najustreznejšega tehnološkega sklada za njene specifične zahteve, kar spodbuja tehnološko raznolikost.
- Avtonomne ekipe:
- Opolnomočenje ekipe: Mikrostoritve pogosto omogočajo majhnim, medfunkcionalnim skupinam, da neodvisno delajo na določenih storitvah, spodbujajo avtonomijo in hitrejše odločanje.
- Zmanjšani stroški usklajevanja: Ekipe lahko izdajo in posodobijo svoje storitve brez potrebe po obsežnem usklajevanju z drugimi ekipami.
- Hitra uvedba in neprekinjena dostava:
- Hitrejši cikli sproščanja: Mikrostoritve je mogoče razviti, preizkusiti in uvesti neodvisno, kar omogoča hitrejše cikle izdajanja.
- Nenehna integracija in uvajanje (CI/CD): Orodja za avtomatizacijo podpirajo stalne prakse integracije in uvajanja, s čimer se poveča hitrost in zanesljivost razvoja.
- Enostavno vzdrževanje:
- Izolirane kodne baze: Manjše, osredotočene kodne baze je lažje razumeti, vzdrževati in odpravljati težave.
- Tekoče posodobitve: Posamezne mikrostoritve je mogoče posodobiti ali povrniti, ne da bi to vplivalo na celotno aplikacijo.
13. Izzivi uporabe arhitekture mikrostoritev
- Kompleksnost porazdeljenih sistemov: Mikrostoritve predstavljajo kompleksnost porazdeljenih sistemov. Upravljanje komunikacije med storitvami, obravnavanje omrežne zakasnitve in zagotavljanje skladnosti podatkov med storitvami je lahko izziv.
- Povečani razvojni in operativni stroški: Razgradnja aplikacije na mikrostoritve zahteva dodatne napore v smislu razvoja, testiranja, uvajanja in spremljanja. Ekipe morajo upravljati večje število storitev, vsaka s svojo kodno bazo, odvisnostmi in postopkom uvajanja.
- Stroški komunikacije med službami: Mikrostoritve morajo med seboj komunicirati prek omrežja. To lahko povzroči povečano zakasnitev in dodatno zapletenost pri upravljanju komunikacijskih protokolov, obravnavanju napak in prenosu podatkov.
- Doslednost podatkov in upravljanje transakcij: Ohranjanje konsistentnosti podatkov med mikro storitvami je lahko izziv. Izvajanje porazdeljenih transakcij in zagotavljanje celovitosti podatkov postane zapleteno in tradicionalnih transakcij ACID morda ne bo enostavno doseči.
- Izzivi pri uvajanju: Usklajevanje uvajanja več mikrostoritev, zlasti če so med njimi odvisnosti, je lahko zapleteno. Zagotavljanje doslednosti in izogibanje izpadom storitev med posodobitvami zahteva skrbno načrtovanje.
- Kompleksnost spremljanja in odpravljanja napak: Spremljanje in odpravljanje napak postane bolj zapleteno v okolju mikrostoritev. Prepoznavanje temeljnega vzroka težav lahko vključuje sledenje zahtevam v več storitvah, centralizirano beleženje pa postane ključno za učinkovito odpravljanje napak.
14. Primeri podjetij iz resničnega sveta, ki uporabljajo arhitekturo mikrostoritev
Organizacije so med uporabo mikrostoritev v svojih aplikacijah doživele veliko spremembo in tu je prišel prehod z monolitnih na mikrostoritve. Lahko si ogledate nekaj primerov iz resničnega življenja v aplikacijah, ki uporabljajo mikroservis, so:
- Amazon: Sprva je bil Amazon monolitna aplikacija, ko pa je mikrostoritev nastala, je bil Amazon prva platforma, ki je svojo aplikacijo razdelila na majhne komponente in s tem prilagodila mikrostoritev. Zaradi zmožnosti spreminjanja posameznih funkcij in virov se je funkcionalnost spletnega mesta v veliki meri izboljšala.
- Netflix: Netflix je eno takšnih podjetij, ki uporablja mikrostoritve s API-ji . Leta 2007, ko je Netflix začel svojo pot proti storitvi pretakanja filmov, je utrpel velike izpade storitev in izzive, nato pa je prišla arhitektura mikrostoritev, ki je bila blagoslov za platformo.
- Uber: Ko je Uber prešel iz monolitne narave v mikrostoritev, je doživel gladko pot. Z uporabo mikrostoritvene arhitekture so se ogledi spletnih strani in iskanja povečali v večji meri.
15. Tehnologije, ki omogočajo mikrostoritveno arhitekturo
- Docker:
- Docker je kontejnerska platforma, ki razvijalcem omogoča pakiranje aplikacij in njihovih odvisnosti v lahke, prenosne vsebnike. Ti vsebniki vsebujejo vse, kar je potrebno za zagon aplikacije, vključno s kodo, izvajalnim časom, knjižnicami in sistemskimi orodji, kar zagotavlja skladnost v različnih okoljih.
- Kubernetes:
- Kubernetes je odprtokodna platforma za orkestracijo vsebnikov, ki jo je prvotno razvil Google. Avtomatizira uvajanje, skaliranje in upravljanje aplikacij v vsebnikih, zagotavlja funkcije za razporejanje vsebnikov, odkrivanje storitev, uravnoteženje obremenitve in drugo.
- Storitvena mreža:
- Storitvene mrežne tehnologije, kot sta Istio in Linkerd, zagotavljajo namensko infrastrukturno plast za upravljanje komunikacije med storitvami, upravljanje prometa in opazljivost v arhitekturah mikrostoritev. Ponujajo funkcije, kot so uravnoteženje obremenitve, odkrivanje storitev, prekinitev tokokroga in zbiranje meritev.
- Prehodi API :
- Prehodi API, kot sta Kong in Tyk, služijo kot vstopne točke za zunanje odjemalce za dostop do aplikacij, ki temeljijo na mikrostoritvah. Zagotavljajo funkcije, kot so usmerjanje, preverjanje pristnosti, omejevanje hitrosti in transformacije zahtev/odgovorov.
- Arhitektura, ki temelji na dogodkih :
- Arhitekture, ki temeljijo na dogodkih, olajšajo komunikacijo med mikrostoritvami, tako da jim omogočijo asinhrono ustvarjanje in uporabo dogodkov. Tehnologije, kot so Apache Kafka, RabbitMQ in Amazon SNS/SQS, zagotavljajo razširljive, zanesljive sisteme sporočanja za gradnjo mikrostoritev, ki temeljijo na dogodkih.
- Računalništvo brez strežnika:
- Čeprav niso izključno za mikrostoritve, lahko brezstrežniške platforme, kot so AWS Lambda, Azure Functions in Google Cloud Functions, uporabite za uvajanje posameznih mikrostoritev brez upravljanja osnovne infrastrukture, nadaljnjega ločevanja in skaliranja storitev.
16. Zaključek
Zdaj ko veš Kaj so mikrostoritve , je zelo pomembno, da imate o njih praktično predstavo, tako da na njih delate praktično. Ta članek v celoti odgovarja na vse vaše dvome o mikrostoritvah, njihovi arhitekturi, delovanju, funkcijah, aplikacijah v resničnem življenju itd. Mikrostoritve so izraz, ki ga morate poznati pri izdelavi aplikacije. Zato je zelo pomembno, da ga dobro obvladate.