Microservices - combinatorial tawg ntawm versions

Nyob zoo, Habr! Kuv nthuav qhia rau koj mloog tus neeg txhais lus ntawm tsab xov xwm Microservices – Combinatorial Explosion of Versions.
Microservices - combinatorial tawg ntawm versions
Nyob rau lub sijhawm thaum lub ntiaj teb IT tab tom maj mam txav mus rau microservices thiab cov cuab yeej zoo li Kubernetes, tsuas yog ib qho teeb meem tau dhau los pom ntau dua. Qhov teeb meem no - combinatorial tawg microservice versions. Txawm li cas los xij, lub zej zog IT ntseeg tias qhov xwm txheej tam sim no yog qhov zoo dua "Dependency ntuj raug txim" yav dhau los tiam ntawm technology. Txawm li cas los xij, versioning microservices yog qhov teeb meem nyuaj heev. Ib qho pov thawj ntawm qhov no tuaj yeem yog cov ntawv zoo li "Muab kuv rov qab kuv monolith".

Yog tias koj tseem tsis nkag siab qhov teeb meem los ntawm kev nyeem cov ntawv no, cia kuv piav qhia. Cia peb hais tias koj cov khoom muaj 10 microservices. Tam sim no cia peb xav tias 1 tus tshiab version raug tso tawm rau txhua qhov ntawm cov microservices. Tsuas yog 1 version - Kuv vam tias peb txhua tus tuaj yeem pom zoo tias qhov no yog qhov tsis tseem ceeb thiab tsis tseem ceeb. Tam sim no, txawm li cas los xij, cia peb saib lwm yam ntawm peb cov khoom. Nrog tsuas yog ib qho tshiab ntawm txhua yam, peb tam sim no muaj 2^10 - lossis 1024 permutations ntawm peb cov khoom tuaj yeem tsim tau li cas.

Yog tias tseem muaj kev nkag siab yuam kev, cia kuv rhuav cov lej. Yog li peb muaj 10 microservices, txhua qhov tau txais ib qho hloov tshiab. Ntawd yog, peb tau txais 2 qhov ua tau rau txhua qhov kev pabcuam micro (txawm qub lossis tshiab). Tam sim no, rau txhua yam ntawm cov khoom siv, peb tuaj yeem siv ob qho no. Kev ua lej, nws zoo ib yam li peb muaj tus lej binary ntawm 10 tus lej. Piv txwv li, cia peb hais tias 1 yog tus tshiab version, thiab 0 yog qhov qub version - ces ib qho permutation tuaj yeem txhais tau tias yog 1001000000 - qhov twg 1st thiab 4 cov khoom tau hloov kho, thiab tag nrho lwm tus tsis yog. Los ntawm kev ua lej peb paub tias tus lej 10 tus lej binary tuaj yeem muaj 2^10 lossis 1024 qhov tseem ceeb. Ntawd yog, peb tau lees paub qhov ntsuas ntawm tus lej peb tau cuam tshuam nrog.

Cia peb txuas ntxiv peb qhov laj thawj ntxiv - yuav ua li cas yog tias peb muaj 100 microservices thiab txhua tus muaj 10 qhov ua tau? Tag nrho cov xwm txheej dhau los ua qhov tsis txaus siab - tam sim no peb muaj 10^100 permutations - uas yog tus lej loj. Txawm li cas los xij, kuv nyiam sau cov xwm txheej no li no, vim tias tam sim no peb tsis tau zais tom qab cov lus zoo li "kubernetes", tab sis ntsib teeb meem zoo li nws yog.

Vim li cas kuv thiaj txaus siab rau qhov teeb meem no? Ib feem vim tias, yav dhau los ua haujlwm hauv ntiaj teb ntawm NLP thiab AI, peb tau tham txog qhov teeb meem ntawm kev sib xyaw ua ke tawg ntau txog 5-6 xyoo dhau los. Tsuas yog hloov cov qauv peb muaj cov lus ib leeg, thiab tsis yog cov khoom peb muaj kab lus thiab kab lus. Thiab txawm hais tias cov teeb meem ntawm NLP thiab AI tseem tsis tau daws teeb meem ntau, nws yuav tsum tau lees paub tias kev nce qib tseem ceeb tau ua nyob rau ob peb xyoos dhau los. (hauv kuv lub tswv yim, kev vam meej tuaj yeem ua tiavΠΎNws yuav zoo dua yog tias cov neeg hauv kev lag luam tau them nyiaj tsawg dua rau kev kawm tshuab thiab me ntsis ntxiv rau lwm cov tswv yim - tab sis qhov no twb tsis yog lub ntsiab lus).

Cia peb rov qab mus rau lub ntiaj teb ntawm DevOps thiab microservices. Peb tab tom ntsib teeb meem loj, masquerading li ib tug ntxhw hauv Kunstkamera - vim hais tias qhov kuv nquag hnov ​​yog "tsuas yog siv kubernetes thiab lub kaus mom, thiab txhua yam yuav zoo!" Tab sis tsis yog, txhua yam yuav tsis zoo yog tias txhua yam raug tso tseg. Tsis tas li ntawd, ib qho kev tshuaj ntsuam xyuas rau qhov teeb meem no tsis zoo li tau txais vim nws txoj kev nyuaj. Ib yam li hauv NLP, peb yuav tsum xub ua qhov teeb meem no los ntawm kev txo qhov kev tshawb nrhiav - qhov no, los ntawm kev tshem tawm cov kev hloov pauv tsis tu ncua.

Ib yam uas yuav pab tau yog ib yam uas kuv tau sau xyoo tas los hais txog qhov xav tau kom muaj qhov sib txawv tsawg kawg ntawm cov ntawv tshaj tawm rau cov neeg siv khoom. Nws tseem ceeb heev uas yuav tsum nco ntsoov tias txheej txheem CI / CD tsim tau zoo heev pab txo qis kev hloov pauv. Txawm li cas los xij, lub xeev tam sim no ntawm CI / CD tsis zoo txaus los daws qhov teeb meem ntawm kev hloov pauv yam tsis muaj cov cuab yeej ntxiv rau kev suav nyiaj thiab kev taug qab cov khoom.

Qhov peb xav tau yog ib qho kev sim ntawm cov theem kev sib koom ua ke, qhov uas peb tuaj yeem txiav txim siab qhov kev pheej hmoo rau txhua qhov khoom, thiab tseem muaj cov txheej txheem automated rau kev hloov kho ntau yam khoom thiab kev sim yam tsis muaj kev cuam tshuam tus neeg teb xov tooj - kom pom tias ua haujlwm dab tsi thiab tsis ua dab tsi.

Xws li ib tug system ntawm kev sim yuav zoo li no:

  1. Cov neeg tsim khoom sau cov ntawv xeem (qhov no yog theem tseem ceeb - vim tias lwm yam peb tsis muaj qhov ntsuas ntsuas - nws zoo li sau cov ntaub ntawv hauv tshuab kev kawm).
  2. Txhua qhov kev tivthaiv (qhov project) tau txais nws tus kheej CI system - cov txheej txheem no yog tam sim no tsim tau zoo, thiab qhov teeb meem ntawm kev tsim CI system rau ib qho kev tivthaiv tau raug daws loj heev.
  3. Lub "smart integration system" sau cov txiaj ntsig ntawm ntau yam CI systems thiab sib sau ua ke cov haujlwm ua haujlwm rau hauv cov khoom kawg, khiav kev sim thiab thaum kawg suav txoj hauv kev luv tshaj plaws kom tau txais cov khoom lag luam xav tau raws li cov khoom lag luam uas twb muaj lawm thiab muaj kev pheej hmoo. Yog tias qhov hloov tshiab tsis tuaj yeem ua tau, qhov system no ceeb toom rau cov neeg tsim khoom txog cov khoom uas twb muaj lawm thiab qhov twg yog qhov ua rau yuam kev. Ib zaug ntxiv, cov txheej txheem xeem yog qhov tseem ceeb ntawm no - txij li qhov kev sib koom ua ke siv cov kev xeem raws li kev ntsuas ntsuas.
  4. CD system, uas tom qab ntawd tau txais cov ntaub ntawv los ntawm Smart Integration System thiab ua qhov hloov tshiab ncaj qha. Cov theem no xaus lub voj voog.

Ua kom luv luv, rau kuv ib qho teeb meem loj tshaj plaws tam sim no yog qhov tsis muaj xws li "Smart Integration System" uas yuav txuas ntau yam khoom rau hauv ib yam khoom thiab yog li tso cai rau koj taug qab seb cov khoom lag luam tag nrho tau muab tso ua ke li cas. Kuv yuav txaus siab rau lub zej zog txoj kev xav ntawm qhov no (spoiler - Kuv tab tom ua haujlwm rau ib qhov project Reliza, uas tuaj yeem dhau los ua qhov kev sib koom ua ke ntse).

Ib qho kawg uas kuv xav hais yog tias, rau kuv, ib qho monolith tsis tuaj yeem siv tau rau txhua qhov haujlwm ntawm qhov nruab nrab. Rau kuv, kev sim ua kom lub sijhawm siv sijhawm thiab kev txhim kho zoo los ntawm kev rov qab mus rau ib qho monolith ua rau muaj kev tsis ntseeg loj. Ua ntej, lub monolith muaj qhov teeb meem zoo sib xws ntawm kev tswj cov khoom - ntawm ntau lub tsev qiv ntawv uas nws muaj, txawm li cas los xij, tag nrho qhov no tsis pom zoo thiab pom nws tus kheej feem ntau hauv lub sijhawm siv los ntawm cov neeg tsim khoom. Qhov tshwm sim ntawm qhov teeb meem monolith yog qhov tsis muaj peev xwm virtual ntawm kev hloov pauv rau cov cai - thiab kev loj hlob qeeb heev.

Microservices txhim kho qhov teeb meem no, tab sis tom qab ntawd lub microservice architecture ntsib qhov teeb meem ntawm combinatorial tawg nyob rau theem kev koom ua ke. Yog lawm, feem ntau, peb tau hloov qhov teeb meem tib yam los ntawm kev txhim kho mus rau theem kev koom ua ke. Txawm li cas los xij, hauv kuv lub tswv yim, cov kev pabcuam microservices tseem ua rau cov txiaj ntsig zoo dua, thiab pab pawg ua tiav cov txiaj ntsig sai dua (tej zaum feem ntau yog vim qhov txo qis ntawm qhov loj ntawm chav tsev loj hlob - lossis batch loj). Txawm li cas los xij, kev txav los ntawm monolith mus rau microservices tseem tsis tau coj kev txhim kho txaus rau cov txheej txheem - kev sib xyaw ua ke tawg ntawm microservice versions yog qhov teeb meem loj, thiab peb muaj peev xwm txhim kho qhov xwm txheej thaum peb daws nws.

Tau qhov twg los: www.hab.com

Ntxiv ib saib