Tupperware: mpamono an'i Kubernetes ao amin'ny Facebook?

Fitantanana mahomby sy azo itokisana amin'ny cluster amin'ny ambaratonga rehetra miaraka amin'ny Tupperware

Tupperware: mpamono an'i Kubernetes ao amin'ny Facebook?

Androany amin'ny Systems@Scale conference nampiditra Tupperware izahay, rafitra fitantanana cluster izay mandrindra ny kaontenera amin'ny lohamilina an-tapitrisany izay saika ny serivisy rehetra. Tamin'ny taona 2011 no nametrahanay voalohany ny Tupperware, ary nanomboka teo dia nitombo ny fotodrafitrasa 1 data center iray manontolo 15 foibe angon-drakitra voazarazara. Nandritra izany fotoana izany, Tupperware dia tsy nijanona ary nivoatra niaraka taminay. Hasehonay anao ny fomba omen'ny Tupperware ny fitantanana kluster kilasy voalohany, ao anatin'izany ny fanohanana mora amin'ny serivisy manara-penitra, ny tontonana fanaraha-maso tokana ho an'ny foibe data rehetra, ary ny fahafahana mizara fahafaha-manao eo amin'ny serivisy amin'ny fotoana tena izy. Hizara ny lesona azonay ihany koa izahay rehefa mivoatra ny fotodrafitrasa.

Tupperware dia manao asa samihafa. Mampiasa azy io ny mpamorona fampiharana hanaterana sy hitantana ny rindranasa. Izy io dia mametaka ny kaody fampiharana sy ny fiankinan-doha amin'ny sary ary manolotra izany amin'ny mpizara ho fitoeran-javatra. Ny kaontenera dia manome fitokanana eo amin'ireo rindranasa amin'ny lohamilina iray ihany mba ahafahan'ny mpamorona miatrika ny lojika fampiharana ary tsy mila manahy momba ny fitadiavana mpizara na ny fitantanana ny fanavaozana. Manara-maso ny asan'ny mpizara ihany koa ny Tupperware, ary raha mahita tsy fahombiazana izy dia mamindra kaontenera avy amin'ny mpizara olana.

Mampiasa Tupperware ireo injeniera amin'ny fandrindrana fahaiza-manao mba hizarana ny fahafahan'ny mpizara ho an'ny ekipa mifototra amin'ny tetibola sy ny teritery. Ampiasain'izy ireo ihany koa izy ireo hanatsarana ny fampiasana server. Mitodika any amin'ny Tupperware ireo mpandraharaha ivom-pamokarana mba hizara araka ny tokony ho izy ireo kaontenera manerana ny ivontoerana data ary hampiato na hamindra ireo kaontenera mandritra ny fikojakojana. Noho izany, ny fikojakojana lohamilina, tambajotra ary fitaovana dia mitaky fandraisan'anjaran'olombelona kely indrindra.

Tupperware architecture

Tupperware: mpamono an'i Kubernetes ao amin'ny Facebook?

Tupperware PRN architecture dia iray amin'ireo faritra amin'ny ivon-toerana misy anay. Ny faritra dia ahitana tranobe ivon-toerana maromaro (PRN1 sy PRN2) eo akaiky eo. Mikasa ny hanao tontonana fanaraha-maso iray izay hitantana ny mpizara rehetra amin'ny faritra iray izahay.

Ny mpamorona fampiharana dia manolotra serivisy amin'ny endrika asa Tupperware. Misy kaontenera maromaro ny asa iray, ary mitovy amin'ny fehezan-dalàna fampiharana azy ireo.

Ny Tupperware dia tompon'andraikitra amin'ny famatsiana kaontenera sy ny fitantanana ny androm-piainany. Izy io dia ahitana singa maromaro:

  • Ny frontend Tupperware dia manome API ho an'ny mpampiasa interface, CLI, ary fitaovana automatique hafa ahafahanao mifandray amin'ny Tupperware. Manafina ny rafitra anatiny manontolo amin'ny tompon'ny Tupperware izy ireo.
  • Tupperware Scheduler dia tontonana fanaraha-maso tompon'andraikitra amin'ny fitantanana ny fitoeran-javatra sy ny fiainan'ny asa. Apetraka amin'ny sehatra isam-paritra sy maneran-tany izy io, izay itantanan'ny mpandrindra isam-paritra ny mpizara amin'ny faritra iray ary ny mpizara maneran-tany mitantana ireo mpizara avy amin'ny faritra samihafa. Ny scheduler dia mizara ho shards, ary ny shard tsirairay dia mitantana andiana asa.
  • Ny Proxy Scheduler an'i Tupperware dia manafina ny sharding anatiny ary manome fitaratra tokana mety ho an'ireo mpampiasa Tupperware.
  • Ny mpizara Tupperware dia manome fitoerana ho an'ny mpizara. Ny fandaharam-potoana dia mitantana ny fijanonana, ny fanombohana, ny fanavaozana ary ny tsy fahampian'ny kaontenera. Amin'izao fotoana izao, ny mpizara iray dia afaka mitantana ny faritra manontolo tsy misaraka amin'ny shards. (Mariho ny fahasamihafan'ny voambolana. Ohatra, ny fandaharam-potoana ao amin'ny Tupperware dia mifanitsy amin'ny tontonana fanaraha-maso ao Kubernetes, ary ny mpizara Tupperware dia antsoina hoe mpandrindra ao amin'ny Kubernetes.)
  • Mitahiry ny loharanon'ny fahamarinana ho an'ny hetsika mpizara sy serivisy ny ressource broker. Mitantana broker loharano iray ho an'ny foibe data tsirairay izahay, ary mitahiry ny fampahalalana rehetra momba ny lohamilina ao amin'io foibe data io. Ny mpanelanelana amin'ny loharanon-karena sy ny rafi-pitantanana ny fahaiza-manao, na ny rafitra famatsiana loharanon-karena, dia manapa-kevitra amin'ny fomba mavitrika hoe iza amin'ireo mpandefa fandaharam-potoana no mifehy ny lohamilina. Ny serivisy fanaraha-maso ara-pahasalamana dia manara-maso ny lohamilina ary mitahiry ny angona momba ny fahasalaman'izy ireo ao amin'ny broker resource. Raha manana olana na mila fikojakojana ny mpizara iray, dia miteny amin'ny mpizara sy ny mpandrindra ny mpizara loharano mba hampiato ny fitoeran-javatra na hamindra azy any amin'ny lohamilina hafa.
  • Ny Agent Tupperware dia daemon mandeha amin'ny mpizara tsirairay izay mitantana ny famatsiana sy ny fanesorana ny kaontenera. Ny fampiharana dia mandeha ao anaty fitoeran-javatra iray, izay manome azy ireo fitokana-monina bebe kokoa sy azo averina. On ny fihaonambe Systems @Scale tamin'ny taon-dasa Efa nofaritanay ny fomba namoronana ny kaontenera Tupperware tsirairay amin'ny fampiasana sary, btrfs, cgroupv2 ary systemd.

Endri-javatra miavaka amin'ny Tupperware

Ny Tupperware dia mitovy amin'ny fomba maro amin'ny rafitra fitantanana cluster hafa toy ny Kubernetes sy Mesos, fa misy ihany koa ny fahasamihafana:

  • Fanohanana naorina ho an'ny serivisy ara-panjakana.
  • Panel fanaraha-maso tokana ho an'ny mpizara any amin'ny foibe angon-drakitra isan-karazany mba ho azy ny fandefasana ireo kaontenera mifototra amin'ny fikasana, ny fanafoanana ny cluster ary ny fikojakojana.
  • Fizarana mazava ny tontonana fanaraha-maso ho zooming.
  • Ny computing elastika dia ahafahanao mizara hery eo amin'ny serivisy amin'ny fotoana tena izy.

Namolavola ireo endri-javatra mahafinaritra ireo izahay hanohanana karazana fampiharana tsy misy fanjakana sy tsy misy fanjakana manerana ny andiana mpizara ifampizarana manerantany.

Fanohanana naorina ho an'ny serivisy ara-panjakana.

Tupperware dia miasa amin'ny serivisy manara-penitra isan-karazany izay mitahiry angona vokatra maharitra ho an'ny Facebook, Instagram, Messenger ary WhatsApp. Mety ho toeram-pivarotana lehibe misy tsiroaroa manandanja ireo (oh. ZippyDB) ary ny fitahirizana angona fanaraha-maso (ohatra, ODS Gorilla и Scuba). Tsy mora ny fikojakojana ny tolotra ara-panjakana, satria ny rafitra dia tsy maintsy miantoka fa ny famatsiana kaontenera dia mahazaka fikorontanana goavana, anisan'izany ny fahatapahan'ny tambajotra na ny fahatapahan-jiro. Ary na dia miasa tsara ho an'ny serivisy tsy misy fanjakana aza ny teknika mahazatra, toy ny fizarana kaontenera manerana ny faritra misy hadisoana, dia mila fanohanana fanampiny ny sampan-draharaham-panjakana.

Ohatra, raha toa ny tsy fahombiazan'ny seriver dia mahatonga ny replica database iray tsy misy, tokony havelanao ve ny fikojakojana mandeha ho azy izay hanavao ny cores amin'ny server 50 avy amin'ny dobo 10? Miankina amin'ny zava-misy. Raha manana dika mitovy amin'ny tahiry mitovy ny iray amin'ireo mpizara 50 ireo dia aleo miandry fa tsy very 2 indray mandeha. Mba handraisana fanapahan-kevitra mavitrika momba ny fikojakojana sy ny fahombiazan'ny rafitra, dia mila fampahalalana momba ny famerenan'ny angona anatiny sy ny lojikan'ny fametrahan'ny tolotra ara-panjakana tsirairay.

Ny seha-pifandraisana TaskControl dia ahafahan'ny serivisy misy fanjakana misy fiantraikany amin'ny fanapahan-kevitra izay misy fiantraikany amin'ny fisian'ny angona. Amin'ny fampiasana an'io interface io, ny mpandrindra dia mampahafantatra ny fampiharana ivelany momba ny fiasan'ny container (avereno indray, fanavaozana, fifindra-monina, fikojakojana). Ny serivisy manara-penitra dia mametraka mpanara-maso izay milaza amin'ny Tupperware rehefa azo antoka ny fanatanterahana ny fandidiana tsirairay, ary azo avadika na ahemotra vetivety ireo asa ireo. Ao amin'ny ohatra etsy ambony, ny mpanara-maso ny angon-drakitra dia afaka nilaza tamin'i Tupperware mba hanavao ny 49 amin'ireo mpizara 50, fa avelao ny mpizara manokana (X) irery amin'izao fotoana izao. Vokatr'izany, raha mandalo ny vanim-potoana fanavaozana kernel ary mbola tsy afaka mamerina ny kopia misy olana ny angon-drakitra, dia mbola hanavao ny mpizara X ny Tupperware.

Tupperware: mpamono an'i Kubernetes ao amin'ny Facebook?

Tolotra manara-penitra maro ao amin'ny Tupperware no mampiasa TaskControl tsy mivantana, fa amin'ny alalan'ny ShardManager, sehatra iraisana amin'ny famoronana tolotra ara-panjakana ao amin'ny Facebook. Miaraka amin'ny Tupperware, ny mpamorona dia afaka mamaritra ny tanjony amin'ny fomba tokony hizarana ireo kaontenera manerana ny foibe data. Miaraka amin'ny ShardManager, ny mpamorona dia mamaritra ny tanjon'izy ireo amin'ny fomba tokony hizarana shards data manerana ny container. ShardManager dia mahafantatra ny fametrahana angon-drakitra sy ny famerenan'ny fampiharana azy ary mifandray amin'ny Tupperware amin'ny alàlan'ny interface TaskControl mba handaminana ny fampandehanana ny kaontenera tsy misy fandraisana anjara mivantana amin'ny fampiharana. Ity fampidirana ity dia manamora ny fitantanana ny serivisy misy fanjakana, fa ny TaskControl dia mahavita bebe kokoa. Ohatra, tsy misy fanjakana ny ambaratongan-tranonkalanay ary mampiasa TaskControl hanitsiana ny tahan'ny fanavaozana amin'ny kaontenera. Tamin'ny farany afaka mamita haingana ny famoahana rindrambaiko maro ny ambaratongan-tranonkala isan'andro tsy mampandefitra ny fisiany.

Mitantana mpizara ao amin'ny foibe data

Tamin'ny voalohany natomboka tamin'ny 2011 ny Tupperware, ny klioban'ny mpizara tsirairay dia nokarakarain'ny fandaharam-potoana manokana. Tamin'izany fotoana izany, ny kluster Facebook dia vondron-tranonkala mpizara mifandray amin'ny fikandrana tambajotra iray, ary ny foibe angon-drakitra dia misy cluster maromaro. Ny mpandrindra dia afaka mitantana lohamilina amin'ny kluster iray ihany, midika izany fa tsy afaka miparitaka amin'ny kluster maro ny asa. Nitombo ny fotodrafitrasanay, tsy nitsaha-nitsahatra ny fanafoanana ny cluster. Satria ny Tupperware dia tsy afaka namindra ny asa avy amin'ny cluster decommissioned ho any amin'ny cluster hafa tsy misy fiovana, dia nitaky ezaka be sy fandrindrana tamim-pitandremana teo amin'ny mpamorona fampiharana sy ny mpandraharaha foibe data. Niteraka loharanon-karena very maina izany dingana izany rehefa tsy niasa nandritra ny volana maro ny mpizara noho ny fomba fanafoanana.

Namorona mpanelanelana loharano izahay hamahana ny olan'ny fanafoanana ny kluster ary handrindra ireo karazana asa fikojakojana hafa. Ny mpikirakira loharanon-karena dia manara-maso ny fampahalalana ara-batana rehetra mifandraika amin'ny mpizara iray ary manapa-kevitra amin'ny fomba mavitrika hoe iza amin'ny fandaharam-potoana no mifehy ny mpizara tsirairay. Ny fampifandraisana ireo mpizara amin'ny fandaharam-potoana amin'ny fomba dinamika dia ahafahan'ny mpandrindra mitantana ireo mpizara amin'ny foibe angon-drakitra samihafa. Satria tsy voafetra ho an'ny cluster tokana intsony ny asa Tupperware, ireo mpampiasa Tupperware dia afaka mamaritra ny fomba tokony hizarana ny kaontenera amin'ny sehatra misy hadisoana. Ohatra, afaka manambara ny fikasany ny mpamorona iray (milaza hoe: "mitantana ny asako amin'ny sehatra 2 tsy mety ao amin'ny faritr'i PRN") nefa tsy mamaritra faritra misy azy manokana. Ny Tupperware mihitsy dia hahita mpizara mety hampihatra izany fikasana izany, na dia tapaka aza ny cluster na serivisy.

Scalable hanohanana ny rafitra manerantany manontolo

Ara-tantara, nozaraina ho dobo mpizara natokana an-jatony ho an'ny ekipa tsirairay ny fotodrafitrasantsika. Noho ny fizarazarana sy ny tsy fahampian'ny fenitra, dia nanana sarany lafo be izahay, ary sarotra kokoa ny mampiasa ireo mpizara tsy miasa. Tamin'ny fihaonambe tamin'ny taon-dasa Systems @Scale natolotray fotodrafitrasa ho serivisy (IaaS), izay tokony hampiray ny fotodrafitrasantsika ho zaridaina mpizara tokana lehibe. Saingy manana fahasahiranana manokana ny zaridaina mpizara tokana. Tsy maintsy mahafeno fepetra sasany izany:

  • Scalability. Nitombo ny fotodrafitrasanay rehefa nampiana ivom-baovao isaky ny faritra izahay. Lasa kely kokoa ny mpizara ary mitsitsy angovo kokoa, noho izany dia maro kokoa izy ireo isaky ny faritra. Vokatr'izany, ny mpandrindra tokana isaky ny faritra dia tsy afaka mitantana ny isan'ny kaontenera azo atao amin'ny lohamilina an'hetsiny isaky ny faritra.
  • Azo itokisana. Na dia azo ampitomboina be toy izany aza ny fandaharam-potoana, ny sakan'ny lehibe amin'ny fandaharam-potoana dia midika fa misy ny mety hisian'ny hadisoana ary mety ho lasa tsy voafehy ny faritra iray manontolo.
  • Fandeferana fahadisoana. Raha sendra ny tsy fahombiazan'ny fotodrafitrasa goavana (ohatra, ny lohamilina mitantana ny fandaharam-potoana dia tsy mahomby noho ny tsy fahombiazan'ny tambajotra na ny fahatapahan-jiro), ny voka-dratsy dia tokony hisy fiantraikany amin'ny ampahany amin'ny lohamilina ao amin'ny faritra ihany.
  • Ny fanamorana fampiasana. Toa mila manao fandaharam-potoana mahaleo tena maromaro ho an'ny faritra iray ianao. Saingy amin'ny fomba fijery mora kokoa, ny fidirana tokana amin'ny dobo iombonana amin'ny faritra iray dia manamora ny fitantanana ny fahaiza-manao sy ny asa.

Nozarainay ho shards ny scheduler mba hamahana ny olana amin'ny fikojakojana dobo lehibe iraisana. Ny shard scheduler tsirairay dia mitantana ny andian-asany manokana ao amin'ny faritra, ary mampihena ny risika mifandray amin'ny mpandrindra izany. Rehefa mitombo ny dobo ifampizarana dia afaka manampy shards mpandrindra bebe kokoa isika. Ho an'ny mpampiasa Tupperware, ny shards sy ny proxies mpandrindra dia toy ny tontonana fanaraha-maso iray. Tsy mila miara-miasa amin'ny andian-tsarimihetsika mandrindra asa izy ireo. Ny shards scheduler dia tena tsy mitovy amin'ny cluster schedulers izay nampiasainay teo aloha, rehefa nizarazara ny tontonana fanaraha-maso nefa tsy nizarazara ny dobo ifampizarana server araka ny topologie tambajotra.

Hatsarao ny fahombiazan'ny fampiasana amin'ny informatika elastika

Arakaraky ny lehibe kokoa ny fotodrafitrasantsika, no zava-dehibe kokoa ny fampiasana ireo mpizara antsika amin'ny fomba mahomby mba hanatsarana ny vidin'ny fotodrafitrasa sy hampihenana ny entana. Misy fomba roa hampitomboana ny fahombiazan'ny fampiasana mpizara:

  • Computing elastika - mampihena ny serivisy an-tserasera mandritra ny ora mangina ary mampiasa mpizara maimaim-poana ho an'ny enta-mavesatra ivelan'ny aterineto, toy ny fianarana milina sy ny asa MapReduce.
  • Bebe loatra - Apetraho amin'ny lohamilina iray ihany ny serivisy an-tserasera sy ny enta-mavesatry ny batch mba ho laharam-pahamehana ny enta-mavesatra.

Ny fahatapahan-jiro ao amin'ny foibe data dia fampiasana herinaratra. Noho izany, aleonay mpizara kely mitsitsy angovo izay miaraka manome hery fanodinana bebe kokoa. Indrisy anefa, amin'ny lohamilina kely misy CPU sy fitadidiana kely dia tsy mahomby ny overloading. Mazava ho azy fa afaka mametraka kaontenera maromaro misy serivisy kely izahay amin'ny mpizara kely iray mitsitsy angovo izay mandany loharanon-karena sy fitadidiana kely, fa ny serivisy lehibe dia hanana fahombiazana ambany amin'ity toe-javatra ity. Noho izany, manoro hevitra ny mpamorona ny serivisy lehibe izahay mba hanatsara azy ireo mba hampiasain'izy ireo ny lohamilina manontolo.


Amin'ny ankapobeny, manatsara ny fahombiazan'ny fampiasana amin'ny fampiasana informatika elastika izahay. Maro amin'ireo tolotra lehibe ataonay, toy ny News Feed, Fampiharana hafatra, ary sehatra web eo anoloana, dia miovaova arakaraka ny andro. Inianay hampihenana ny serivisy an-tserasera mandritra ny ora mangina ary mampiasa mpizara afaka amin'ny enta-mavesatry ny asa ivelan'ny aterineto, toy ny fianarana milina sy ny asa MapReduce.

Tupperware: mpamono an'i Kubernetes ao amin'ny Facebook?

Fantatsika avy amin'ny traikefa fa tsara indrindra ny manome ny lohamilina manontolo ho toy ny singa misy tanjaka elastika satria ny serivisy lehibe dia sady mpamatsy vola lehibe no mpanjifa lehibe amin'ny fahaiza-manao elastika, ary natao tsara indrindra hampiasana ireo mpizara manontolo. Rehefa avoaka amin'ny serivisy an-tserasera ny mpizara mandritra ny ora mangina, dia manofa ny lohamilina amin'ny mpandrindra ny mpizara loharanon-karena mba hampandehanana enta-mavesatry ny asa ivelan'ny aterineto. Raha mahatsapa enta-mavesatra be loatra ny serivisy an-tserasera, dia mampahatsiahy haingana ny mpizara nindramina ny mpizara loharanon-karena ary, miaraka amin'ny mpandrindra, mamerina izany amin'ny serivisy an-tserasera.

Lesona azo sy drafitra ho an'ny ho avy

Nandritra ny 8 taona lasa, dia namolavola Tupperware izahay mba hanarahana ny fitomboana haingana ny Facebook. Mizara izay nianarantsika izahay ary manantena fa hanampy ny hafa hitantana fotodrafitrasa mitombo haingana izany:

  • Mametraha fifandraisana moramora eo amin'ny tontonana fanaraha-maso sy ny lohamilina tantaniny. Ity flexibilité ity dia ahafahan'ny tontolon'ny fanaraha-maso hitantana ireo mpizara any amin'ny foibe data samihafa, manampy amin'ny fanalefahana sy fikojakojana ny cluster, ary mamela ny fizarana fahaiza-manao mavitrika amin'ny fampiasana informatika elastika.
  • Miaraka amin'ny tontonana fanaraha-maso tokana ao amin'ny faritra, dia lasa mora kokoa ny miasa amin'ny asa ary mora kokoa ny mitantana andiana mpizara mizara. Mariho fa ny tontonana fanaraha-maso dia mitazona teboka tokana hidirana, na dia misaraka aza ny rafitra anatiny noho ny anton'ny habeny na ny fandeferana ny fahadisoana.
  • Amin'ny fampiasana modely plugin, ny tontonana fanaraha-maso dia afaka mampahafantatra ny fampiharana ivelany momba ny fiasan'ny container ho avy. Ankoatr'izay, ny serivisy stateful dia afaka mampiasa ny interface plugin mba hanamboarana ny fitantanana container. Miaraka amin'ity modely plugin ity, ny tontonana fanaraha-maso dia manome fahatsoran'ny serivisy amin'ny fomba mahomby.
  • Mino izahay fa ny informatika elastika, izay esorinay ny mpizara manontolo amin'ny serivisy mpamatsy vola ho an'ny asa batch, fianarana milina, ary serivisy tsy maika, no fomba tsara indrindra hanatsarana ny fahombiazan'ny mpizara kely mahomby amin'ny angovo.

Vao manomboka mampihatra isika andian-tsambo mpizara tokana manerantany. Amin'izao fotoana izao dia manodidina ny 20% amin'ireo mpizara anay no ao anaty dobo iombonana. Mba hahatratrarana ny 100%, olana maro no tokony hodinihina, ao anatin'izany ny fitazonana dobo fitehirizana iombonana, ny fikojakojana automatique, ny fitantanana ny fepetra takian'ny mpanofa, ny fanatsarana ny fampiasana ny mpizara, ary ny fanatsarana ny fanohanana ny enta-mavesatry ny fianarana milina. Tsy andrintsika ny hiatrika ireo fanamby ireo ary hizara ny fahombiazanay.

Source: www.habr.com

Add a comment