Microservices: lawv yog dab tsi, yog vim li cas lawv yog thiab thaum twg yuav siv lawv

Kuv xav sau ib tsab xov xwm ntawm lub ntsiab lus ntawm microservice architecture rau lub sijhawm ntev, tab sis ob yam tseem txwv kuv - qhov ntxiv kuv poob rau hauv lub ncauj lus, qhov ntau nws zoo li kuv paub tias qhov kuv paub yog qhov pom tseeb, thiab qhov kuv tsis ua. t paub yuav tsum tau kawm thiab kawm. Ntawm qhov tod tes, kuv xav tias twb muaj ib yam dab tsi los tham nrog cov neeg tuaj saib dav. Yog li lwm txoj kev xav tau txais tos.

Conway Txoj Cai thiab kev sib raug zoo ntawm kev lag luam, koom haum thiab cov ntaub ntawv xov xwm

Ib zaug ntxiv kuv yuav tso cai rau kuv tus kheej los hais:

"Txhua lub koom haum uas tsim cov txheej txheem (hauv kev nkag siab dav) yuav tau txais tus qauv tsim uas nws cov qauv rov ua dua cov qauv ntawm pawg hauv lub koom haum ntawd."
- Melvyn Conway, 1967

Hauv kuv lub tswv yim, txoj cai lij choj no muaj feem cuam tshuam txog qhov muaj peev xwm ntawm kev teeb tsa kev lag luam, tsis yog ncaj qha rau cov ntaub ntawv xov xwm. Cia kuv piav nrog ib qho piv txwv. Cia peb hais tias peb muaj lub sijhawm ua lag luam ruaj khov nrog lub neej voj voog ntawm qhov ntev uas nws ua rau kev txiav txim siab los npaj kev lag luam (qhov no tsis yog typo, tab sis kuv nyiam lo lus no uas kuv nyiag). yuav koom ua ke thiab kev sib raug zoo rau qhov kev lag luam no.

Kev lag luam orientation ntawm cov ntaub ntawv systems

Microservices: lawv yog dab tsi, yog vim li cas lawv yog thiab thaum twg yuav siv lawv

Cia kuv piav nrog ib qho piv txwv. Cia peb hais tias muaj lub sijhawm ua lag luam los npaj kev lag luam muag pizza. Hauv V1 version (cia peb hu nws ua ntej cov ntaub ntawv), lub tuam txhab yog pizzeria, sau npe nyiaj ntsuab, thiab kev pabcuam xa khoom. Qhov no version tau nyob ntev nyob rau hauv tej yam kev mob ntawm tsawg ib puag ncig variability. Tom qab ntawd version 2 los hloov nws - ntau dua thiab muaj peev xwm siv cov ntaub ntawv xov xwm ntawm nws qhov tseem ceeb rau kev lag luam nrog monolithic architecture. Thiab ntawm no, hauv kuv lub tswv yim, tsuas yog qhov kev tsis ncaj ncees txaus ntshai nyob rau hauv kev sib raug zoo nrog monoliths - liam tias monolithic architecture tsis sib haum rau tus qauv ua lag luam. Yog lawm, yog tias qhov no yog li ntawd, lub kaw lus yuav tsis tuaj yeem ua haujlwm ntawm txhua qhov - qhov tsis sib xws nrog tib lub Conway txoj cai thiab kev nkag siab zoo. Tsis yog, monolithic architecture yog tag nrho raws li cov qauv kev lag luam nyob rau theem no ntawm kev txhim kho kev lag luam - Kuv, tau kawg, txhais tau tias theem thaum lub kaw lus twb tau tsim thiab muab tso rau hauv kev ua haujlwm. Nws yog qhov tseeb tiag tiag uas tsis hais txog kev tsim vaj tsev li cas, ob qho tib si kev pabcuam-oriented architecture version 3 thiab microservices architecture version N yuav ua haujlwm zoo sib npaug. Dab tsi yog qhov ntes?

Txhua yam ntws, txhua yam hloov pauv, lossis puas yog microservices txhais tau tias los tawm tsam qhov nyuaj?

Ua ntej peb mus ntxiv, cia saib qee qhov kev xav tsis zoo txog microservice architecture.

Cov neeg txhawb nqa ntawm kev siv microservice mus kom ze feem ntau sib cav tias kev rhuav tshem ib qho monolith rau hauv microservices yooj yim rau txoj kev txhim kho los ntawm kev txo cov cai hauv paus ntawm cov kev pabcuam ib leeg. Hauv kuv lub tswv yim, nqe lus no yog qhov tsis muaj tseeb. Tiag tiag, qhov pom tseeb kev sib cuam tshuam hauv monolith thiab homogeneous code zoo li nyuaj? Yog tias qhov no yog qhov tseeb tiag, txhua qhov haujlwm yuav pib tsim los ua microservices, thaum xyaum qhia tau hais tias kev tsiv teb tsaws ntawm monolith mus rau microservices yog ntau dua. Complexity tsis ploj mus; nws tsuas yog txav los ntawm ib tus neeg modules mus rau interfaces (xws li cov ntaub ntawv tsheb npav, RPC, APIs, thiab lwm yam kev cai) thiab cov txheej txheem orchestrating. Thiab qhov no yog qhov nyuaj!

Qhov kom zoo dua ntawm kev siv ib pawg heterogeneous kuj yog questionable. Kuv yuav tsis sib cav tias qhov no kuj ua tau, tab sis qhov tseeb nws tsis tshua tshwm sim (Saib tom ntej - qhov no yuav tsum tshwm sim - tab sis yog qhov tshwm sim ntau dua li qhov zoo dua).

Cov khoom siv lub neej voj voog thiab kev pabcuam lub neej

Ua tib zoo saib daim duab saum toj no. Nws tsis yog qhov xwm txheej uas kuv tau sau tseg txog kev txo qis hauv lub neej ntawm ib qho kev sib cais ntawm kev lag luam - hauv cov xwm txheej niaj hnub no, nws yog qhov nrawm ntawm kev hloov pauv ntawm kev lag luam ntawm cov qauv uas txiav txim siab rau nws txoj kev vam meej. Kev vam meej ntawm ib yam khoom yog txiav txim siab los ntawm kev ceev ntawm kev sim kev lag luam hypotheses hauv nws. Thiab ntawm no, hauv kuv lub tswv yim, lus dag lub ntsiab kom zoo dua ntawm microservice architecture. Tab sis cia peb mus nyob rau hauv kev txiav txim.

Cia peb txav mus rau theem tom ntej hauv kev hloov pauv ntawm cov ntaub ntawv xov xwm - mus rau kev pabcuam-oriented architecture ntawm SOA. Yog li, ntawm qee qhov taw tes peb tseem ceeb hauv peb cov khoom cov kev pab cuam nyob ntev - nyob ntev nyob rau hauv qhov kev txiav txim siab tias thaum tsiv ntawm cov qauv ntawm cov khoom, muaj lub caij nyoog uas lub neej voj voog ntawm cov kev pab cuam yuav ntev dua lub neej voj voog ntawm cov khoom tom ntej. Nws yuav yog qhov laj thawj tsis hloov lawv txhua - peb Dab tsi tseem ceeb yog qhov ceev ntawm kev hloov mus rau lwm lub version. Tab sis alas, peb raug yuam kom hloov mus tas li rau cov kev pabcuam - thiab ntawm no txhua yam ua haujlwm rau peb, DevOps kev coj ua, ntim khoom, thiab lwm yam - txhua yam uas los rau hauv siab. Tab sis cov no tseem tsis yog microservices!

Microservices raws li ib tug txhais tau tias los tawm tsam complexity ... configuration tswj

Thiab ntawm no peb tuaj yeem txav mus rau qhov kev txhais lub luag haujlwm ntawm microservices - qhov no yog ib txoj hauv kev uas yooj yim rau kev tswj cov khoom lag luam. Hauv kev nthuav dav ntxiv, kev ua haujlwm ntawm txhua lub microservice piav qhia meej txog kev ua lag luam hauv cov khoom raws li tus qauv sau - thiab cov no yog cov khoom uas nyob tsis nyob rau hauv luv luv version, tab sis nyob rau hauv ib tug ntev lub sij hawm ua lag ua luam lub sij hawm. Thiab qhov kev hloov pauv mus rau lwm qhov ntawm cov khoom lag luam tshwm sim tsis pom tseeb - koj hloov / ntxiv ib qho microservice, thiab tej zaum tsuas yog lub tswv yim ntawm lawv cov kev sib cuam tshuam, thiab mam li nco dheev koj pom koj tus kheej yav tom ntej, tawm hauv qab quaj cov neeg sib tw uas txuas ntxiv dhia ntawm cov qauv ntawm lawv monoliths. Tam sim no xav txog tias muaj qhov loj me me ntawm microservices nrog kev sib txuas ua ntej thiab kev ua lag luam muaj peev xwm. Thiab koj tuaj thiab tsim cov qauv ntawm koj cov khoom los ntawm kev npaj ua microservices - yooj yim los ntawm kev kos duab kos duab, piv txwv li. Pab kev zoo siab - koj muaj lub platform - thiab tam sim no koj tuaj yeem nyiam kev lag luam rau koj tus kheej. Npau suav Npau suav.

tshawb pom

  • Lub architecture ntawm lub system yuav tsum tau txiav txim los ntawm lub neej voj voog ntawm nws cov Cheebtsam. Yog tias ib qho khoom siv nyob hauv cov khoom lag luam, tsis muaj qhov taw qhia hauv kev ua kom qhov nyuaj ntawm qhov system los ntawm kev siv microservice mus kom ze.
  • Microservice architecture yuav tsum ua raws li tus qauv sau - vim tias lub sijhawm ua lag luam yog lub sijhawm ntev tshaj plaws
  • Kev coj tus me nyuam (DevOps kev coj ua) thiab orchestration yog ib qho tseem ceeb tshaj plaws rau microservice architecture - vim tias qhov nce ntawm tus nqi hloov pauv ntawm cov khoom ua rau muaj kev xav tau ntawm kev ceev thiab kev xa khoom zoo.

Tau qhov twg los: www.hab.com

Ntxiv ib saib