Tupperware: Kubernetes killer sa Facebook?

Episyente ug kasaligan nga pagdumala sa mga cluster sa bisan unsang sukod sa Tupperware

Tupperware: Kubernetes killer sa Facebook?

Karon sa Sistema@Scale nga komperensya among gipaila ang Tupperware, among cluster management system nga nag-orkestra sa mga sudlanan sa minilyon nga mga server nga nagdagan halos sa tanan namong mga serbisyo. Una namo nga gipakatap ang Tupperware niadtong 2011, ug sukad niadto mitubo ang among imprastraktura 1 data center hangtod sa tibuok 15 ka geo-distributed nga mga sentro sa datos. Niining panahona, ang Tupperware wala mohunong ug nag-uswag uban kanamo. Ipakita namo kanimo kung giunsa paghatag sa Tupperware ang first-class nga pagdumala sa cluster, lakip ang kombenyente nga suporta alang sa stateful nga mga serbisyo, usa ka control panel alang sa tanan nga mga sentro sa datos, ug ang abilidad sa pag-apod-apod sa kapasidad tali sa mga serbisyo sa tinuud nga oras. Ipaambit usab namo ang mga leksyon nga among nakat-unan samtang nag-uswag ang among imprastraktura.

Ang Tupperware naghimo sa lainlaing mga buluhaton. Gigamit kini sa mga developer sa aplikasyon sa paghatud ug pagdumala sa mga aplikasyon. Giputos niini ang code sa aplikasyon ug mga dependency sa usa ka imahe ug gihatud kini sa mga server ingon mga sudlanan. Ang mga sudlanan naghatag og paglainlain tali sa mga aplikasyon sa parehas nga server aron ang mga developers mag-atubang sa lohika sa aplikasyon ug dili kinahanglan nga mabalaka bahin sa pagpangita sa mga server o pagdumala sa mga update. Gibantayan usab sa Tupperware ang performance sa server, ug kung makit-an ang kapakyasan, gibalhin niini ang mga sulud gikan sa problema nga server.

Gigamit sa mga inhenyero sa pagplano sa kapasidad ang Tupperware aron igahin ang kapasidad sa server sa mga team base sa badyet ug mga pagpugong. Gigamit usab nila kini aron mapaayo ang paggamit sa server. Ang mga operator sa data center midangop sa Tupperware aron sa hustong pag-apod-apod sa mga sudlanan sa mga sentro sa datos ug paghunong o pagbalhin sa mga sudlanan atol sa pagmentinar. Salamat niini, ang pagpadayon sa mga server, network ug kagamitan nanginahanglan gamay nga interbensyon sa tawo.

Tupperware nga arkitektura

Tupperware: Kubernetes killer sa Facebook?

Ang Tupperware PRN nga arkitektura usa sa mga rehiyon sa among mga sentro sa datos. Ang rehiyon naglangkob sa daghang mga data center building (PRN1 ug PRN2) nga nahimutang sa duol. Nagplano kami nga maghimo usa ka control panel nga magdumala sa tanan nga mga server sa usa ka rehiyon.

Ang mga nag-develop sa aplikasyon naghatag mga serbisyo sa porma sa mga trabaho sa Tupperware. Ang usa ka trabaho naglangkob sa daghang mga sudlanan, ug silang tanan kasagarang nagpadagan sa parehas nga code sa aplikasyon.

Ang Tupperware maoy responsable sa paghatag og mga sudlanan ug pagdumala sa ilang lifecycle. Naglangkob kini sa daghang mga sangkap:

  • Ang frontend sa Tupperware naghatag ug mga API para sa user interface, CLI, ug uban pang mga himan sa automation diin mahimo kang makig-interact sa Tupperware. Gitago nila ang tibuok internal nga istruktura gikan sa mga tag-iya sa trabaho sa Tupperware.
  • Ang Tupperware Scheduler usa ka control panel nga responsable sa pagdumala sa sudlanan ug siklo sa kinabuhi sa trabaho. Gi-deploy kini sa rehiyonal ug global nga lebel, diin ang regional scheduler nagdumala sa mga server sa usa ka rehiyon ug ang global scheduler nagdumala sa mga server gikan sa lain-laing mga rehiyon. Ang scheduler gibahin ngadto sa mga shards, ug ang matag shard nagdumala sa usa ka hugpong sa mga trabaho.
  • Ang Tupperware's Scheduler Proxy nagtago sa internal sharding ug naghatag ug usa ka kombenyente nga single pane sa bildo para sa Tupperware users.
  • Ang Tupperware allocator nag-assign sa mga sudlanan sa mga server. Ang scheduler nagdumala sa paghunong, pagsugod, pag-update, ug pagkapakyas sa mga sudlanan. Sa pagkakaron, ang usa ka allocator makadumala sa tibuok rehiyon nga dili mabahin ngadto sa mga shards. (Tan-awa ang kalainan sa terminolohiya. Pananglitan, ang scheduler sa Tupperware katumbas sa control panel sa Kubernetes, ug ang Tupperware allocator gitawag nga scheduler sa Kubernetes.)
  • Ang resource broker nagtipig sa tinubdan sa kamatuoran alang sa server ug mga panghitabo sa serbisyo. Gipadagan namo ang usa ka resource broker alang sa matag data center, ug gitipigan niini ang tanang impormasyon mahitungod sa mga server sa maong data center. Ang resource broker ug ang capacity management system, o resource provisioning system, dinamikong modesisyon kung unsang scheduler delivery ang nagkontrol sa server. Ang serbisyo sa pagsusi sa kahimsog nagmonitor sa mga server ug nagtipig mga datos bahin sa ilang kahimsog sa tigpamaligya sa kapanguhaan. Kung ang usa ka server adunay mga problema o nanginahanglan pagmentinar, ang resource broker nagsulti sa allocator ug scheduler nga ihunong ang mga sudlanan o ibalhin kini sa ubang mga server.
  • Ang Tupperware Agent usa ka daemon nga nagdagan sa matag server nga nagdumala sa paghatag ug pagtangtang sa mga sudlanan. Ang mga aplikasyon nagdagan sulod sa usa ka sudlanan, nga naghatag kanila og dugang nga pagkahimulag ug pag-reproducibility. Sa sa miaging tuig Systems @Scale komperensya Gihulagway na namo kung giunsa paghimo ang indibidwal nga mga sudlanan sa Tupperware gamit ang mga imahe, btrfs, cgroupv2 ug systemd.

Lahi nga bahin sa Tupperware

Ang Tupperware susama sa daghang paagi sa ubang mga sistema sa pagdumala sa cluster sama sa Kubernetes ug Mesos, apan adunay mga kalainan usab:

  • Gitukod-sa suporta alang sa stateful nga mga serbisyo.
  • Usa ka control panel alang sa mga server sa lainlaing mga sentro sa datos aron awtomatiko ang paghatud sa mga sudlanan pinasukad sa katuyoan, pag-decommission sa mga cluster ug pagpadayon.
  • Tin-aw nga dibisyon sa control panel alang sa pag-zoom.
  • Ang pagkamaunat-unat nga computing nagtugot kanimo sa pag-apod-apod sa gahum tali sa mga serbisyo sa tinuud nga oras.

Among gihimo kining mga cool nga feature aron suportahan ang lain-laing stateless ug stateful nga mga aplikasyon sa usa ka dako nga global shared server fleet.

Gitukod-sa suporta alang sa stateful nga mga serbisyo.

Ang Tupperware naglihok sa lain-laing mga kritikal nga stateful nga mga serbisyo nga nagtipig sa padayon nga datos sa produkto alang sa Facebook, Instagram, Messenger ug WhatsApp. Mahimo kini nga dagkong mga tindahan sa mga pares nga kantidad sa yawe (pananglitan. ZippyDB) ug pag-monitor sa mga tipiganan sa datos (pananglitan, ODS Gorilla ΠΈ Scuba). Ang pagpadayon sa stateful nga mga serbisyo dili sayon, tungod kay ang sistema kinahanglan nga masiguro nga ang suplay sa mga sudlanan makasugakod sa dagkong mga pagkabalda, lakip ang network outages o power outages. Ug samtang ang naandan nga mga teknik, sama sa pag-apod-apod sa mga sudlanan sa tibuuk nga mga domain sa sayup, maayo alang sa mga serbisyo nga wala’y estado, ang mga serbisyo nga stateful nanginahanglan dugang nga suporta.

Pananglitan, kung ang usa ka kapakyasan sa server naghimo sa usa ka replika sa database nga dili magamit, kinahanglan ba nimo nga himuon ang awtomatikong pagmentinar nga mag-update sa mga core sa 50 nga mga server gikan sa usa ka pool nga 10? Depende sa sitwasyon. Kung ang usa niining 50 nga mga server adunay lain nga replika sa parehas nga database, mas maayo nga maghulat ug dili mawala ang 2 nga mga replika sa usa ka higayon. Aron dinamikong makahimog mga desisyon bahin sa pagmentinar ug pasundayag sa sistema, kinahanglan namo ang impormasyon bahin sa internal nga replikasyon sa datos ug ang lohika sa pagbutang sa matag serbisyo nga stateful.

Ang TaskControl interface nagtugot sa stateful nga mga serbisyo sa pag-impluwensya sa mga desisyon nga makaapekto sa pagkaanaa sa datos. Gigamit kini nga interface, ang scheduler nagpahibalo sa mga eksternal nga aplikasyon bahin sa mga operasyon sa sudlanan (pag-restart, pag-update, paglalin, pagpadayon). Ang usa ka stateful nga serbisyo nagpatuman sa usa ka controller nga nagsulti sa Tupperware kung kini luwas nga himuon ang matag operasyon, ug kini nga mga operasyon mahimong ibaylo o temporaryo nga malangan. Sa pananglitan sa ibabaw, ang database controller makasulti sa Tupperware nga i-update ang 49 sa 50 ka mga server, apan ibilin ang usa ka piho nga server (X) nga mag-inusara sa pagkakaron. Ingon usa ka sangputanan, kung ang panahon sa pag-update sa kernel molabay ug ang database dili gihapon makabalik sa problema nga kopya, ang Tupperware mag-update gihapon sa X server.

Tupperware: Kubernetes killer sa Facebook?

Daghang stateful nga mga serbisyo sa Tupperware ang naggamit sa TaskControl dili direkta, apan pinaagi sa ShardManager, usa ka komon nga plataporma sa paghimo og stateful nga mga serbisyo sa Facebook. Uban sa Tupperware, ang mga nag-develop mahimong magtino sa ilang katuyoan kung giunsa ang pag-apod-apod sa mga sulud sa mga sentro sa datos. Uban sa ShardManager, gitino sa mga developer ang ilang katuyoan kung giunsa ang pag-apod-apod sa mga shard sa datos sa mga sulud. Nahibal-an ni ShardManager ang pagbutang sa datos ug pagkopya sa mga aplikasyon niini ug nakigsulti sa Tupperware pinaagi sa interface sa TaskControl aron ma-iskedyul ang mga operasyon sa sulud nga wala’y direktang pag-apil sa aplikasyon. Kini nga panagsama labi nga nagpasimple sa pagdumala sa stateful nga mga serbisyo, apan ang TaskControl makahimo sa labi pa. Pananglitan, ang among halapad nga lebel sa web walay estado ug naggamit sa TaskControl aron dinamikong i-adjust ang rate sa mga update sa mga sudlanan. Sa kadugayan ang web tier makahimo sa dali nga pagkompleto sa daghang mga pagpagawas sa software kada adlaw nga walay pagkompromiso sa pagkaanaa.

Pagdumala sa mga server sa mga sentro sa datos

Sa una nga paglansad sa Tupperware kaniadtong 2011, ang matag cluster sa server gidumala sa usa ka lahi nga scheduler. Kaniadto, ang usa ka cluster sa Facebook usa ka grupo sa mga racks sa server nga konektado sa usa ka switch sa network, ug ang sentro sa data adunay daghang mga cluster. Ang scheduler makahimo lamang sa pagdumala sa mga server sa usa ka cluster, nagpasabot nga ang trabaho dili mokaylap sa daghang mga cluster. Ang among imprastraktura mitubo, kami nagkadaghan nga nagtangtang sa mga kumpol. Tungod kay ang Tupperware dili makabalhin sa trabaho gikan sa na-decommissioned nga cluster ngadto sa uban nga mga cluster nga walay mga pagbag-o, nagkinahanglan kini og daghang paningkamot ug mabinantayon nga koordinasyon tali sa mga developers sa aplikasyon ug mga operator sa data center. Kini nga proseso miresulta sa nausik nga mga kapanguhaan kung ang mga server wala’y trabaho sulod sa mga bulan tungod sa mga pamaagi sa pag-decommissioning.

Naghimo kami og resource broker aron masulbad ang problema sa cluster decommissioning ug makig-coordinate sa ubang mga matang sa mga buluhaton sa pagmentinar. Ang resource broker nagsubay sa tanang pisikal nga impormasyon nga nalangkit sa usa ka server ug dinamikong modesisyon kon asa nga scheduler ang nagkontrol sa matag server. Ang dinamikong pag-link sa mga server sa mga scheduler nagtugot sa scheduler sa pagdumala sa mga server sa lain-laing mga data center. Tungod kay ang trabaho sa Tupperware dili na limitado sa usa ka cluster, ang mga tiggamit sa Tupperware mahimong magtino kung unsaon pag-apod-apod ang mga sudlanan sa mga fault domain. Pananglitan, ang usa ka developer mahimong mopahayag sa iyang tuyo (ingnon ta: "pagdagan ang akong trabaho sa 2 ka fault domains sa PRN region") nga walay pagpiho sa piho nga available zones. Ang Tupperware mismo ang mangita ug angay nga mga server aron ipatuman kini nga katuyoan, bisan kung ang cluster o serbisyo gi-decommissioned.

Scalable aron suportahan ang tibuok kalibutan nga sistema

Sa kasaysayan, ang among imprastraktura gibahin sa gatusan nga gipahinungod nga mga pool sa server alang sa indibidwal nga mga koponan. Tungod sa pagkabahinbahin ug kakulang sa mga sumbanan, kami adunay taas nga gasto sa operasyon, ug ang mga walay pulos nga mga server mas lisud gamiton pag-usab. Sa miaging tuig nga komperensya Sistema @Scale among gipresentar imprastraktura isip serbisyo (IaaS), nga kinahanglan maghiusa sa among imprastraktura sa usa ka dako nga parke sa server. Apan ang usa ka parke sa server adunay kaugalingon nga mga kalisud. Kini kinahanglan nga matuman ang pipila ka mga kinahanglanon:

  • Scalability. Ang among imprastraktura mitubo samtang nagdugang kami og mga sentro sa datos sa matag rehiyon. Ang mga server nahimong mas gamay ug mas kusog sa enerhiya, mao nga adunay daghan pa niini sa matag rehiyon. Ingon usa ka sangputanan, ang usa ka scheduler matag rehiyon dili makadumala sa gidaghanon sa mga sudlanan nga mahimong ipadagan sa gatusan ka libo nga mga server sa matag rehiyon.
  • Kasaligan Bisan kung ang scheduler mahimong mapadako sa ingon ka daghan, ang dako nga sakup sa scheduler nagpasabut nga adunay mas taas nga peligro sa mga sayup ug ang usa ka tibuuk nga rehiyon sa mga sudlanan mahimong dili madumala.
  • Ang pagtugot sa sayup. Kung adunay usa ka dako nga kapakyasan sa imprastraktura (pananglitan, ang mga server nga nagpadagan sa scheduler napakyas tungod sa pagkapakyas sa network o pagkawala sa kuryente), ang negatibo nga mga sangputanan kinahanglan makaapekto lamang sa usa ka bahin sa mga server sa rehiyon.
  • Dali nga paggamit. Morag kinahanglan nimo nga modagan ang daghang mga independente nga scheduler alang sa usa ka rehiyon. Apan gikan sa usa ka kasayon ​​nga panan-aw, ang usa ka punto sa pagsulod sa gipaambit nga pool sa usa ka rehiyon nagpadali sa pagdumala sa kapasidad ug mga trabaho.

Gibahin namo ang scheduler ngadto sa mga shards aron masulbad ang mga problema sa pagmintinar sa usa ka dako nga shared pool. Ang matag scheduler shard nagdumala sa kaugalingon nga hugpong sa mga trabaho sa rehiyon, ug kini nagpamenos sa risgo nga nalangkit sa scheduler. Samtang nagkadako ang gipaambit nga pool, makadugang kami mga shards sa scheduler. Alang sa mga tiggamit sa Tupperware, ang mga shards ug mga proxy sa scheduler morag usa ka control panel. Dili nila kinahanglan nga magtrabaho sa usa ka hugpong sa mga shards nga nag-orkestrate sa mga buluhaton. Ang mga shards sa scheduler sa sukaranan lahi sa mga cluster scheduler nga among gigamit kaniadto, sa dihang ang control panel gibahin nga walay statically pagbahin sa shared pool sa mga server sumala sa network topology.

Pauswaga ang Episyente sa Paggamit gamit ang Elastic Computing

Kon mas dako ang atong imprastraktura, mas importante nga gamiton ang atong mga server sa episyente aron ma-optimize ang gasto sa imprastraktura ug makunhuran ang load. Adunay duha ka paagi aron madugangan ang kahusayan sa paggamit sa server:

  • Elastic computing - pakunhuran ang mga serbisyo sa online sa panahon sa hilom nga mga oras ug gamita ang libre nga mga server alang sa offline nga mga workload, sama sa pagkat-on sa makina ug mga trabaho sa MapReduce.
  • Overloading - Ibutang ang mga serbisyo sa online ug mga batch nga workload sa parehas nga mga server aron ang mga batch nga workload modagan sa ubos nga prayoridad.

Ang bottleneck sa among mga data center mao paggamit sa kuryente. Busa, gipalabi namo ang gagmay, episyente sa enerhiya nga mga server nga dungan nga naghatag ug dugang gahom sa pagproseso. Ikasubo, sa gagmay nga mga server nga adunay gamay nga CPU ug memorya, ang sobra nga pagkarga dili kaayo epektibo. Siyempre, mahimo natong ibutang ang daghang mga sudlanan sa gagmay nga mga serbisyo sa usa ka gamay nga server nga episyente sa enerhiya nga nagkonsumo og gamay nga mga kapanguhaan sa processor ug memorya, apan ang dagkong mga serbisyo adunay ubos nga performance niini nga sitwasyon. Busa, among gitambagan ang mga nag-develop sa among dagkong mga serbisyo sa pag-optimize niini aron ilang magamit ang tibuok nga mga server.


Sa panguna, gipauswag namon ang kahusayan sa paggamit gamit ang pagkamaunat nga pag-compute. Daghan sa among dagkong mga serbisyo, sama sa News Feed, Messaging feature, ug front-end web tier, lainlain depende sa oras sa adlaw. Gituyo namo nga pakunhoran ang mga serbisyo sa online sa panahon sa hilom nga mga oras ug gamiton ang mga libre nga server para sa offline nga mga workload, sama sa pagkat-on sa makina ug mga trabaho sa MapReduce.

Tupperware: Kubernetes killer sa Facebook?

Nahibal-an namon gikan sa kasinatian nga labing maayo nga mahatagan ang tibuuk nga mga server ingon mga yunit nga adunay pagkamaunat-unat nga kapasidad tungod kay ang mga dagkong serbisyo pareho nga nag-donate ug dagkong mga konsumedor nga adunay pagkamaunat nga kapasidad, ug gi-optimize aron magamit ang tibuuk nga mga server. Kung ang server gipagawas gikan sa online nga serbisyo sa panahon sa hilom nga oras, ang resource broker nag-abang sa server sa scheduler aron magpadagan sa offline nga mga workloads niini. Kung ang serbisyo sa online makasinati usa ka peak load, ang resource broker dali nga mahinumdom sa hinulaman nga server ug, kauban ang scheduler, ibalik kini sa serbisyo sa online.

Mga leksyon nga nakat-unan ug mga plano alang sa umaabot

Sa miaging 8 ka tuig, among gipalambo ang Tupperware aron makasunod sa paspas nga pagtubo sa Facebook. Gipaambit namo ang among nakat-unan ug nanghinaut nga makatabang kini sa uban sa pagdumala sa paspas nga pagtubo sa mga imprastraktura:

  • Paghimo og usa ka flexible nga koneksyon tali sa control panel ug sa mga server nga gidumala niini. Kini nga pagka-flexible nagtugot sa control panel sa pagdumala sa mga server sa lain-laing mga data center, makatabang sa pag-automate sa decommissioning ug pagmentinar sa mga cluster, ug makapahimo sa dinamikong alokasyon sa kapasidad gamit ang elastic computing.
  • Uban sa usa ka control panel sa rehiyon, kini mahimong mas sayon ​​sa pagtrabaho uban sa mga buluhaton ug mas sayon ​​sa pagdumala sa usa ka dako nga shared server fleet. Timan-i nga ang control panel nagmintinar sa usa ka punto sa pagsulod, bisan kung ang internal nga istruktura gibulag tungod sa mga hinungdan sa gidak-on o pagtugot sa sayup.
  • Gamit ang usa ka modelo sa plugin, ang control panel makapahibalo sa mga eksternal nga aplikasyon sa umaabot nga mga operasyon sa sudlanan. Dugang pa, ang mga stateful nga serbisyo mahimong mogamit sa interface sa plugin aron ipasadya ang pagdumala sa sulud. Uban niini nga modelo sa plugin, ang control panel naghatag og kayano samtang episyente nga nagserbisyo sa daghang lain-laing stateful nga mga serbisyo.
  • Kami nagtuo nga ang pagkamaunat-unat nga pag-compute, diin gikuha namo ang tibuok nga mga server gikan sa mga serbisyo sa donor alang sa mga batch nga trabaho, pagkat-on sa makina, ug uban pang dili dinalian nga mga serbisyo, mao ang labing maayo nga paagi aron mapauswag ang kahusayan sa gagmay, episyente sa enerhiya nga mga server.

Nagsugod pa lang mi sa pagpatuman usa ka global shared server fleet. Sa pagkakaron mga 20% sa among mga server naa sa usa ka shared pool. Aron makab-ot ang 100%, daghang mga isyu ang kinahanglan sulbaron, lakip ang pagpadayon sa usa ka gipaambit nga pool sa pagtipig, pag-automate sa pagmentinar, pagdumala sa mga kinahanglanon sa cross-tenant, pagpaayo sa paggamit sa server, ug pagpaayo sa suporta alang sa mga workload sa pagkat-on sa makina. Dili kami makahulat nga atubangon kini nga mga hagit ug ipaambit ang among mga kalampusan.

Source: www.habr.com

Idugang sa usa ka comment