Lamina maritrano mety

Hey Habr!

Raha jerena ny zava-mitranga amin'izao fotoana izao noho ny coronavirus, serivisy Internet maromaro no nanomboka nahazo entana nitombo. Ohatra, Ny iray amin'ireo rojo antsinjarany UK dia nanakana fotsiny ny tranokala famandrihana an-tserasera., satria tsy ampy ny fahafaha-manao. Ary tsy azo atao foana ny manafaingana ny mpizara amin'ny fanampiana fitaovana mahery vaika kokoa, fa ny fangatahan'ny mpanjifa dia tsy maintsy karakaraina (na handeha any amin'ny mpifaninana).

Amin'ity lahatsoratra ity dia hiresaka fohifohy momba ny fomba fanao malaza izay ahafahanao mamorona serivisy haingana sy mandefitra. Na izany aza, avy amin'ireo tetik'asa fampandrosoana azo atao dia ireo izay amin'izao fotoana izao ihany no nofidiko mora ampiasaina. Ho an'ny singa tsirairay dia manana tranomboky efa vita ianao, na manana fahafahana hamaha ny olana amin'ny fampiasana sehatra rahona.

Fanamafisana mitsivalana

Ny teboka tsotra sy malaza indrindra. Amin'ny ankapobeny, ny rafitra fizarana entana roa mahazatra indrindra dia ny fanamafisam-peo mitsivalana sy mitsangana. Amin'ny tranga voalohany avelanao hihazakazaka mifanitsy ny serivisy, ka mizara ny entana eo anelanelan'izy ireo. Amin'ny faharoa manafatra mpizara matanjaka kokoa ianao na manatsara ny kaody.

Ohatra, haka fitehirizana rakitra rahona abstract aho, izany hoe, analogue ny OwnCloud, OneDrive, sy ny sisa.

Ny sary manara-penitra amin'ny fizaran-tany toy izany dia eto ambany, saingy mampiseho fotsiny ny fahasarotan'ny rafitra. Rehefa dinihina tokoa, dia mila mampifanaraka ny serivisy. Inona no mitranga raha mitahiry rakitra iray avy amin'ny takelaka ny mpampiasa ary te hijery izany amin'ny telefaona?

Lamina maritrano mety
Ny fahasamihafana misy eo amin'ny fomba fiasa: amin'ny scaling mitsangana, vonona ny hampitombo ny herin'ny nodes, ary amin'ny scaling horizontal, dia vonona ny hanampy nodes vaovao hizara ny entana.

CQRS

Fizarana andraikitra amin'ny fangatahana fangatahana Lasitra iray tena manan-danja, satria mamela ny mpanjifa samihafa tsy hifandray amin'ny serivisy samihafa ihany, fa koa handray ny hetsika mitovy. Tsy dia mibaribary loatra ny tombony azony amin'ny fampiharana tsotra, fa tena zava-dehibe (ary tsotra) ho an'ny serivisy be atao. Ny tena maha izy azy: tsy tokony hifandona ny fikorianan'ny angona miditra sy mivoaka. Izany hoe, tsy afaka mandefa fangatahana ianao ary manantena valiny, fa mandefa fangatahana amin'ny serivisy A ianao, fa mahazo valiny avy amin'ny serivisy B.

Ny tombony voalohany amin'ity fomba fiasa ity dia ny fahafahana manapaka ny fifandraisana (amin'ny heviny malalaka) eo am-panatanterahana fangatahana lava. Ohatra, andeha isika haka filaharana mahazatra kokoa na latsaka:

  1. Nandefa fangatahana tany amin'ny mpizara ny mpanjifa.
  2. Nanomboka naharitra elaela ny mpizara.
  3. Namaly ny mpanjifa tamin'ny vokatra ny mpizara.

Alao sary an-tsaina fa ao amin'ny teboka 2 dia tapaka ny fifandraisana (na ny tambajotra dia niverina indray, na ny mpampiasa dia nandeha tamin'ny pejy hafa, nanapaka ny fifandraisana). Amin'ity tranga ity, ho sarotra ho an'ny mpizara ny mandefa valiny amin'ny mpampiasa miaraka amin'ny fampahalalana momba ny tena nokarakaraina. Amin'ny fampiasana CQRS, ny filaharana dia ho hafa kely:

  1. Ny mpanjifa dia nisoratra anarana tamin'ny fanavaozana.
  2. Nandefa fangatahana tany amin'ny mpizara ny mpanjifa.
  3. Namaly ny “fangatahana” ilay mpizara.
  4. Namaly ny vokatra tamin'ny alalan'ny fantsona avy amin'ny teboka "1" ny mpizara.

Lamina maritrano mety

Araka ny hitanao, ny tetika dia sarotra kokoa. Ankoatr'izay, tsy hita eto ny fomba famaliana fangatahana intuitive. Na izany aza, araka ny hitanao, ny fahatapahan'ny fifandraisana eo am-pikarakarana ny fangatahana dia tsy hitondra fahadisoana. Ankoatr'izay, raha toa ka mifandray amin'ny serivisy amin'ny fitaovana maromaro ny mpampiasa (ohatra, avy amin'ny telefaona finday sy takelaka), azonao atao ny mahazo antoka fa tonga amin'ny fitaovana roa ny valiny.

Mahaliana fa ny kaody amin'ny fanodinana hafatra ho avy dia mitovy (tsy 100%) na ho an'ny hetsika izay voataonan'ny mpanjifa ihany, na ho an'ny hetsika hafa, anisan'izany ny avy amin'ny mpanjifa hafa.

Na izany aza, raha ny marina dia mahazo tombony fanampiny isika noho ny fisian'ny fikorianan'ny unidirectional azo atao amin'ny fomba fiasa (mampiasa RX sy mitovy). Ary izany dia efa miampy lehibe, satria amin'ny ankapobeny dia azo atao ny fampiharana tanteraka, ary koa mampiasa fomba fiasa. Ho an'ny programa matavy, dia afaka mitahiry be dia be ny fampandrosoana sy ny loharanon-karena fanohanana.

Raha ampifandraisintsika amin'ny scaling horizontaly io fomba fiasa io, dia ho tombony dia mahazo fahafahana mandefa fangatahana amin'ny mpizara iray ary mahazo valiny avy amin'ny iray hafa. Noho izany, ny mpanjifa dia afaka misafidy ny serivisy mety aminy, ary ny rafitra ao anatiny dia mbola afaka mandrindra ny hetsika tsara.

Famoronana hetsika

Araka ny fantatrao, iray amin'ireo endri-javatra lehibe amin'ny rafitra mizara dia ny tsy fisian'ny fotoana mahazatra, fizarana fanakianana mahazatra. Ho an'ny dingana iray dia azonao atao ny manao synchronization (amin'ny mutexes mitovy), izay azonao antoka fa tsy misy olon-kafa manatanteraka io fehezan-dalàna io. Na izany aza, mampidi-doza ho an'ny rafitra fizarana izany, satria mitaky ambony, ary hamono ny hatsaran'ny scaling rehetra - mbola hiandry iray ny singa rehetra.

Avy eto isika dia mahazo zava-misy manan-danja - ny rafitra fizarana haingana dia tsy azo atambatra, satria hampihena ny fahombiazantsika. Amin'ny lafiny iray, matetika isika no mila tsy miovaova eo amin'ny singa. Ary noho izany dia azonao ampiasaina ny fomba fiasa tsy miovaova farany, izay azo antoka fa raha tsy misy fiovana angon-drakitra mandritra ny fotoana vitsivitsy aorian'ny fanavaozana farany ("amin'ny farany"), ny fanontaniana rehetra dia hamerina ny sanda farany nohavaozina.

Zava-dehibe ny mahatakatra fa ny angon-drakitra mahazatra dia matetika ampiasaina tsy miovaova mafy, izay manana ny vaovao mitovy amin'ny node tsirairay (matetika izany raha toa ka heverina fa niorina ny fifampiraharahana taorian'ny famalian'ny mpizara faharoa). Misy fialan-tsasatra eto noho ny haavon'ny fitokana-monina, fa ny hevitra ankapobeny dia tsy miova - afaka miaina ao anatin'ny tontolo mirindra tanteraka ianao.

Na izany aza, andao hiverina amin'ny asa voalohany. Raha misy ampahany amin'ny rafitra azo aorina amin'ny tsy miovaova farany, dia afaka manamboatra ity kisary manaraka ity isika.

Lamina maritrano mety

Ny endri-javatra manan-danja amin'ity fomba ity:

  • Ny fangatahana miditra tsirairay dia apetraka amin'ny filaharana iray.
  • Eo am-panaovana fangatahana dia mety hametraka asa amin'ny filaharana hafa koa ny serivisy.
  • Ny hetsika ho avy tsirairay dia manana famantarana (izay ilaina amin'ny deduplication).
  • Ny filaharana dia miasa ara-ideolojika araka ny rafitra "ampidiro ihany". Tsy afaka manaisotra singa ao aminy ianao na mandamina azy ireo.
  • Ny filaharana dia miasa araka ny rafitra FIFO (miala tsiny amin'ny tautologie). Raha mila manao famonoana parallèle ianao, dia amin'ny dingana iray dia tokony hamindra zavatra amin'ny filaharana samihafa ianao.

Mamelà ahy hampahatsiahy anao fa mandinika ny raharaha momba ny fitehirizana rakitra an-tserasera izahay. Amin'ity tranga ity, ny rafitra dia ho toy izao manaraka izao:

Lamina maritrano mety

Zava-dehibe fa ny serivisy ao amin'ny kisary dia tsy voatery midika hoe mpizara misaraka. Na ny dingana dia mety ho mitovy. Zava-dehibe iray hafa: ara-ideolojika, ireo zavatra ireo dia sarahina amin'ny fomba izay azo ampiharina mora foana ny scaling horizontaly.

Ary ho an'ny mpampiasa roa dia ho toy izao ny kisary (ny serivisy natao ho an'ny mpampiasa samihafa dia aseho amin'ny loko samihafa):

Lamina maritrano mety

Bonus avy amin'ny fitambarana toy izany:

  • Misaraka ny serivisy fanodinana fampahalalana. Misaraka ihany koa ny filaharana. Raha mila mampitombo ny fahafahan'ny rafitra isika dia mila manangana serivisy bebe kokoa amin'ny mpizara bebe kokoa.
  • Rehefa mahazo vaovao avy amin'ny mpampiasa iray izahay, dia tsy mila miandry mandra-pahazoan-dàlana tanteraka ny angon-drakitra. Mifanohitra amin'izany, mila mamaly "ok" fotsiny isika ary manomboka miasa tsikelikely. Mandritra izany fotoana izany, ny filaharana dia manalefaka ny tampon'isa, satria ny fampidirana zavatra vaovao dia mitranga haingana, ary ny mpampiasa dia tsy mila miandry ny fandehanana feno amin'ny tsingerina manontolo.
  • Ohatra, nanampy serivisy deduplication aho izay manandrana manambatra rakitra mitovy. Raha miasa mandritra ny fotoana maharitra izy io amin'ny 1% amin'ny tranga, dia tsy ho hitan'ny mpanjifa izany (jereo etsy ambony), izay tombony lehibe, satria tsy voatery ho XNUMX% haingana sy azo itokisana intsony isika.

Hita avy hatrany anefa ny fatiantoka:

  • Very ny firindrana henjana ny rafitra misy antsika. Midika izany fa raha toa ianao ka misoratra anarana amin'ny serivisy samihafa, dia azo atao ny mahazo fanjakana hafa (satria ny iray amin'ireo serivisy dia mety tsy manam-potoana handraisana fampandrenesana avy amin'ny filaharana anatiny). Vokatr'izany dia tsy manana fotoana mahazatra ny rafitra ankehitriny. Izany hoe, tsy azo atao, ohatra, ny mandamina ny zava-mitranga rehetra amin'ny fotoana fahatongavana fotsiny, satria ny famantaranandro eo amin'ny mpizara dia mety tsy mifanaraka (ankoatra izany, ny fotoana mitovy amin'ny mpizara roa dia utopia).
  • Tsy misy hetsika azo averina tsotra izao (araka ny azo atao amin'ny angon-drakitra). Mila manampy hetsika vaovao kosa ianao − hetsika fanonerana, izay hanova ny fanjakana farany ho amin'ilay ilaina. Ohatra avy amin'ny faritra mitovitovy: raha tsy manoratra tantara (izay ratsy amin'ny tranga sasany), dia tsy afaka mamerina ny commit amin'ny git ianao, fa afaka manao manokana. famerenana indray, izay mamerina fotsiny ny fanjakana taloha. Na izany aza, na ny fahadisoam-panantenana sy ny famerenana indray dia hijanona amin'ny tantara.
  • Mety hiova avy amin'ny famoahana mankany amin'ny famoahana ny kisary angona, saingy tsy azo havaozina amin'ny fenitra vaovao intsony ny hetsika taloha (satria tsy azo ovaina ny hetsika).

Araka ny hitanao, ny Event Sourcing dia miasa tsara amin'ny CQRS. Ankoatr'izay, ny fametrahana rafitra misy filaharana mahomby sy mety, nefa tsy manasaraka ny fikorianan'ny angon-drakitra, dia efa sarotra amin'ny tenany ihany, satria tsy maintsy ampiana teboka synchronization ianao izay hanaisotra ny vokatra tsara rehetra amin'ny filaharana. Ny fampiharana ireo fomba roa ireo indray mandeha dia ilaina ny manitsy kely ny code program. Amin'ny tranga misy anay, rehefa mandefa rakitra amin'ny mpizara ny valiny dia "ok", izay midika fotsiny hoe "voavonjy ny fiasan'ny fampidirana ilay rakitra." Amin'ny fomba ofisialy, tsy midika izany fa efa misy amin'ny fitaovana hafa ny angon-drakitra (ohatra, ny serivisy deduplication dia afaka manangana indray ny index). Na izany aza, rehefa afaka kelikely, ny mpanjifa dia hahazo fampandrenesana amin'ny endrika "rakitra X efa voavonjy."

Vokatr'izany:

  • Mitombo ny isan'ny sata fandefasana rakitra: raha tokony ho ny "rakitra nalefa" mahazatra, dia mahazo roa isika: "nampidirina amin'ny filaharana ao amin'ny server ny rakitra" ary "voatahiry ao anaty fitahirizana ny rakitra." Ity farany dia midika fa ny fitaovana hafa dia efa afaka manomboka mandray ny rakitra (nampifanarahana amin'ny hoe miasa amin'ny hafainganam-pandeha samihafa ny filaharana).
  • Noho ny zava-misy fa ny vaovao fanolorana izao dia tonga amin'ny alalan'ny fantsona samy hafa, dia mila mitady vahaolana mba handraisana ny toetry ny fanodinana ny rakitra. Vokatr'izany: tsy sahala amin'ny valin'ny fangatahana mahazatra, ny mpanjifa dia azo averina amin'ny fanodinana ny rakitra, fa ny satan'ity fanodinana ity dia ho marina. Ankoatra izany, ity zavatra ity dia miasa, amin'ny ankapobeny, ivelan'ny boaty. Vokany: mandefitra kokoa amin'ny tsy fahombiazana isika ankehitriny.

Sharding

Araka ny voalaza etsy ambony, ny rafitra loharanon-javatra dia tsy misy firindrana hentitra. Midika izany fa afaka mampiasa fitahirizana maromaro tsy misy fampifanarahana eo amin'izy ireo isika. Rehefa manatona ny olana misy antsika dia afaka:

  • Saraho ny rakitra araka ny karazana. Ohatra, azo vakiana ny sary / horonan-tsary ary azo alaina ny endrika mahomby kokoa.
  • Zarao amin'ny firenena ny kaonty. Noho ny lalàna maro dia mety takiana izany, fa ity rafitra ara-drafitra ity dia manome fahafahana ho azy

Lamina maritrano mety

Raha te hamindra angona avy amin'ny fitahirizana iray mankany amin'ny iray hafa ianao, dia tsy ampy intsony ny fomba mahazatra. Indrisy anefa fa amin'ity tranga ity dia mila manakana ny filaharana ianao, manao ny fifindra-monina, ary manomboka izany. Amin'ny tranga ankapobeny, tsy azo afindra "amin'ny sidina" ny angon-drakitra, na izany aza, raha voatahiry tanteraka ny filaharana hetsika, ary manana sarin'ny fitehirizana teo aloha ianao, dia afaka mamerina ny hetsika toy izao manaraka izao izahay:

  • Ao amin'ny Loharanon-javatra, ny hetsika tsirairay dia manana ny famantarana azy manokana (mety indrindra, tsy mihena). Midika izany fa afaka manampy saha amin'ny fitahirizana isika - ny id amin'ny singa voavoatra farany.
  • Manao dika mitovy ny filaharana izahay mba hahafahan'ny hetsika rehetra atao amin'ny fitahirizana tsy miankina maromaro (ny voalohany dia ilay efa voatahiry ny angon-drakitra, ary ny faharoa dia vaovao, saingy mbola foana). Ny filaharana faharoa, mazava ho azy, tsy mbola voavoatra.
  • Manomboka ny filaharana faharoa (izany hoe manomboka mamerina ny hetsika).
  • Rehefa somary foana ny filaharana vaovao (izany hoe, azo ekena ny fahasamihafan'ny fotoana eo anelanelan'ny fampidirana singa iray sy ny fakana azy), dia afaka manomboka mamadika ny mpamaky amin'ny fitahirizana vaovao ianao.

Araka ny hitanao, tsy nanana, ary mbola tsy nanana, tsy miovaova henjana ao amin'ny rafitra misy antsika. Tsy misy afa-tsy ny tsy fitovian-kevitra amin'ny farany, izany hoe, antoka fa ny hetsika dia karakaraina amin'ny filaharana mitovy (fa mety amin'ny fahatarana samihafa). Ary, amin'ny fampiasana an'io, dia afaka mamindra angona mora foana isika nefa tsy manakana ny rafitra mankany amin'ny ilany hafa amin'ny tany.

Noho izany, ny fanohizana ny ohatra momba ny fitahirizana rakitra an-tserasera, ny maritrano toy izany dia efa manome tombony maromaro:

  • Afaka mamindra zavatra akaiky kokoa amin'ny mpampiasa amin'ny fomba mavitrika isika. Amin'izany fomba izany dia afaka manatsara ny kalitaon'ny serivisy ianao.
  • Mety mitahiry angona sasany ao anatin'ny orinasa isika. Ohatra, ny mpampiasa Enterprise matetika dia mitaky ny angon-dry zareo hotehirizina ao amin'ny foibe angon-drakitra voafehy (mba hisorohana ny fiparitahan'ny data). Amin'ny alàlan'ny sharding dia afaka manohana izany mora foana isika. Ary mora kokoa ny asa raha manana rahona mifanentana ny mpanjifa (ohatra, Azure self-hosted).
  • Ary ny zava-dehibe indrindra dia tsy mila manao izany isika. Rehefa dinihina tokoa, hanomboka amin'ny, dia ho faly amin'ny fitahirizana iray ho an'ny kaonty rehetra (mba hanomboka hiasa haingana). Ary ny tena mampiavaka an'ity rafitra ity dia na dia azo itarina aza izy io, amin'ny dingana voalohany dia tena tsotra. Tsy mila manoratra avy hatrany ianao izay miasa miaraka amin'ny filaharana mahaleo tena iray tapitrisa, sns. Raha ilaina dia azo atao izany amin'ny ho avy.

Static Content Hosting

Ity teboka ity dia mety ho toa miharihary, saingy mbola ilaina ho an'ny fampiharana mavesatra kokoa na latsaka. Tsotra ny votoatiny: ny votoaty static rehetra dia zaraina tsy avy amin'ny mpizara iray izay misy ny fampiharana, fa avy amin'ireo manokana natokana ho an'ity asa ity. Vokatr'izany, ireo asa ireo dia vita haingana kokoa (nginx misy fepetra dia manolotra rakitra haingana kokoa ary lafo kokoa noho ny mpizara Java). Ny maritrano fanampiny CDN (Content Delivery Network) mamela antsika hahita ny rakitray akaiky kokoa ny mpampiasa farany, izay misy fiantraikany tsara amin'ny fanamorana ny fiaraha-miasa amin'ny serivisy.

Ny ohatra tsotra sy mahazatra indrindra amin'ny votoaty static dia andian-tsoratra sy sary ho an'ny tranonkala iray. Tsotra ny zava-drehetra miaraka amin'izy ireo - fantatra mialoha izy ireo, avy eo dia alefa any amin'ny mpizara CDN ny rakitra, avy amin'ny fizarana azy ireo amin'ny mpampiasa farany.

Na izany aza, raha ny tena izy, ho an'ny votoaty static, azonao atao ny mampiasa fomba fiasa mitovy amin'ny maritrano lambda. Andao hiverina amin'ny asantsika (fitehirizana rakitra an-tserasera), izay ilaintsika ny fizarana rakitra amin'ny mpampiasa. Ny vahaolana tsotra indrindra dia ny mamorona serivisy izay, isaky ny fangatahan'ny mpampiasa, dia manao ny fisavana rehetra ilaina (fanomezan-dàlana, sns.), ary avy eo misintona mivantana ny rakitra avy amin'ny fitahirizanay. Ny fatiantoka lehibe amin'ity fomba fiasa ity dia ny votoaty static (ary ny rakitra misy fanavaozana sasany, raha ny marina, votoaty static) dia zarain'ny mpizara iray izay misy ny lojikan'ny orinasa. Azonao atao kosa ny manao izao kisary manaraka izao:

  • Ny mpizara dia manome URL fampidinana. Izy io dia mety amin'ny endrika file_id + key, izay ny fanalahidy dia sonia nomerika kely izay manome zo hidirana amin'ny loharano mandritra ny 24 ora manaraka.
  • Ny rakitra dia zaraina amin'ny nginx tsotra miaraka amin'ireto safidy manaraka ireto:
    • Caching votoaty. Koa satria ity serivisy ity dia azo jerena amin'ny mpizara mitokana, dia namela ny tenanay ho tahiry ho an'ny ho avy izahay miaraka amin'ny fahafahana mitahiry ireo rakitra alaina farany rehetra ao anaty kapila.
    • Fanamarinana ny fanalahidy amin'ny fotoana famoronana fifandraisana
  • Azo atao: fanodinana votoaty mivantana. Ohatra, raha manindry ny rakitra rehetra ao amin'ny serivisy isika dia afaka manao unzipping mivantana amin'ity module ity. Vokany: ny asa IO dia atao amin'izay misy azy. Ny archiver ao amin'ny Java dia hanome fahatsiarovana fanampiny be dia be, fa ny famerenana manoratra serivisy miaraka amin'ny lojika fandraharahana amin'ny fepetra Rust/C++ dia mety tsy mahomby ihany koa. Amin'ny tranga misy antsika, dia misy dingana samihafa (na serivisy) ampiasaina, ary noho izany dia afaka manasaraka tsara ny lojikan'ny orinasa sy ny fiasan'ny IO isika.

Lamina maritrano mety

Ity tetika ity dia tsy mitovy amin'ny fizarana votoaty static (satria tsy mampakatra ny fonosana static manontolo any ho any izahay), fa raha ny marina, ity fomba ity dia mahakasika ny fizarana angon-drakitra tsy miova. Fanampin'izay, ity tetika ity dia azo atao amin'ny ankapobeny amin'ny tranga hafa izay tsy mitongilana fotsiny ny votoaty, fa azo aseho ho andiana sakana tsy azo ovaina sy tsy voafafa (na dia azo ampiana aza).

Ohatra iray hafa (ho fanamafisana): raha niara-niasa tamin'i Jenkins/TeamCity ianao, dia fantatrao fa samy voasoratra ao Java ny vahaolana roa. Samy dingana Java izy ireo izay mitantana ny fananganana orkestra sy ny fitantanana votoaty. Indrindra indrindra, samy manana asa toy ny "mamindra rakitra / lahatahiry avy amin'ny mpizara." Ohatra: mamoaka artifacts, mamindra kaody loharano (rehefa tsy maka ny code mivantana avy amin'ny tahiry ny mpiasa, fa ny mpizara no manao izany ho azy), fidirana amin'ny logs. Ireo asa rehetra ireo dia samy hafa amin'ny entany IO. Izany hoe, hita fa ny mpizara tompon'andraikitra amin'ny lojika raharaham-barotra sarotra dia tsy maintsy miaraka amin'izay koa ho afaka hanosika amin'ny fomba mahomby ny angon-drakitra mikoriana amin'ny tenany. Ary ny tena mahaliana dia ny hetsika toy izany dia azo atolotra amin'ny nginx mitovy amin'ny tetika mitovy (afa-tsy hoe tokony hampidirina amin'ny fangatahana ny fanalahidin'ny data).

Na izany aza, raha miverina amin'ny rafitra misy antsika isika dia mahazo kisary mitovy amin'izany:

Lamina maritrano mety

Araka ny hitanao dia nanjary sarotra be ny rafitra. Tsy ny mini-process fotsiny izao no mitahiry rakitra eto an-toerana. Ankehitriny ny zavatra takiana dia tsy ny fanohanana tsotra indrindra, ny fanaraha-maso ny dikan-teny API, sns. Noho izany, rehefa vita ny sary rehetra dia tsara ny manombana amin'ny antsipiriany raha mendrika ny vidiny ny fanitarana. Na izany aza, raha te-hanitatra ny rafitra ianao (anisan'izany ny miasa amin'ny mpampiasa maro kokoa), dia tsy maintsy mitady vahaolana mitovy amin'izany ianao. Saingy, vokatr'izany, ny rafitra dia vonona ara-drafitra amin'ny fitomboan'ny entana (saika ny singa rehetra dia azo atao clone ho an'ny scaling horizontal). Ny rafitra dia azo havaozina tsy misy fampitsaharana azy (fotsiny ny asa sasany dia hihena kely).

Araka ny efa nolazaiko tany am-boalohany, ankehitriny dia misy serivisy Internet maromaro nanomboka nahazo entana nitombo. Ary ny sasany tamin'izy ireo dia nanomboka nitsahatra tsy niasa tsara. Raha ny marina, tsy nahomby ny rafitra tamin'ny fotoana tokony hahazoana vola ny orinasa. Izany hoe, fa tsy fanaterana nahemotra, fa tsy manoro hevitra amin'ny mpanjifa hoe "manomana ny fanateranao mandritra ny volana ho avy", hoy ny rafitra fotsiny hoe "mandehana any amin'ireo mpifaninana aminao." Raha ny marina, izany no vidin'ny famokarana ambany: ny fatiantoka dia hitranga amin'ny fotoana tena avo indrindra.

famaranana

Efa fantatra teo aloha ireo fomba fiasa rehetra ireo. Io VK io ihany dia efa ela no nampiasa ny hevitra momba ny Static Content Hosting hanehoana sary. Betsaka ny lalao an-tserasera mampiasa ny rafitra Sharding mba hizarana ny mpilalao ho faritra na hanasarahana ny toerana misy ny lalao (raha iray izao tontolo izao). Ny fomba fiasa Sourcing hetsika dia ampiasaina amin'ny mailaka. Ny ankamaroan'ny fampiharana ara-barotra izay angon-drakitra raisina tsy tapaka dia miorina amin'ny fomba CQRS mba ahafahana manivana ny angon-drakitra voaray. Eny, efa ela no nampiasaina tamin'ny serivisy maro ny scaling horizontal.

Na izany aza, ny tena zava-dehibe, ireo lamina rehetra ireo dia lasa mora ampiasaina amin'ny fampiharana maoderina (raha mety, mazava ho azy). Ny rahona dia manolotra Sharding sy marindrano avy hatrany, izay mora kokoa noho ny manafatra lohamilina voatokana samihafa any amin'ny foibe data samihafa. Lasa mora kokoa ny CQRS, raha noho ny fivoaran'ny tranomboky toa ny RX ihany. Tokony ho 10 taona lasa izay, tranonkala tsy fahita firy no afaka manohana izany. Ny Event Sourcing dia tena mora apetraka ihany koa noho ny kaontenera efa vita miaraka amin'i Apache Kafka. 10 taona lasa izay dia mety ho fanavaozana izany, ankehitriny dia mahazatra. Toy izany koa amin'ny Static Content Hosting: noho ny teknolojia mety kokoa (anisan'izany ny fisian'ny antontan-taratasy amin'ny antsipiriany sy ny angon-drakitra lehibe misy valiny), dia lasa tsotra kokoa io fomba fiasa io.

Vokatr'izany dia lasa tsotra kokoa ankehitriny ny fampiharana ireo lamina ara-javakanto somary sarotra, izay midika fa tsara kokoa ny mijery azy io mialoha. Raha ao anatin'ny fampiharana folo taona ny iray amin'ireo vahaolana etsy ambony dia nilaozana noho ny vidin'ny fampiharana sy ny fampandehanana, amin'izao fotoana izao, amin'ny fampiharana vaovao, na aorian'ny refactoring, dia afaka mamorona serivisy iray izay efa azo havaozina ara-drafitra ( eo amin'ny lafiny fampisehoana) ary efa vonona amin'ny fangatahana vaovao avy amin'ny mpanjifa (ohatra, ny fametrahana ny angona manokana).

Ary ny tena zava-dehibe: aza mampiasa ireto fomba fiasa ireto raha manana fampiharana tsotra ianao. Eny, tsara tarehy sy mahaliana izy ireo, fa ho an'ny tranokala miaraka amin'ny fitsidihan'ny olona 100, dia matetika ianao no mahazo miaraka amin'ny monolith mahazatra (farafaharatsiny ety ivelany, ny zavatra rehetra ao anatiny dia azo zaraina ho modules, sns.).

Source: www.habr.com

Add a comment