Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Artem Denisov bo0rsh201, Badoo)

Badoo ndiye tsamba lalikulu kwambiri padziko lonse lapansi la zibwenzi. Panopa tili ndi anthu pafupifupi 330 miliyoni olembetsa padziko lonse lapansi. Koma chomwe chili chofunikira kwambiri pazokambirana zathu lero ndikuti timasunga pafupifupi ma petabytes atatu azithunzi za ogwiritsa ntchito. Tsiku lililonse ogwiritsa ntchito amatsitsa zithunzi zatsopano za 3 miliyoni, ndipo kuchuluka kwa kuwerenga kuli pafupi Zopempha 80 zikwi pamphindi. Izi ndizochuluka kwa backend yathu, ndipo nthawi zina pamakhala zovuta ndi izi.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndidzakambirana za mapangidwe a dongosolo lino, lomwe limasungira ndi kutumiza zithunzi zambiri, ndipo ndiziyang'ana kuchokera ku malingaliro a wopanga. Padzakhala kufotokozera mwachidule momwe zinakhalira, komwe ndikufotokozera zochitika zazikuluzikulu, koma ndingoyankhula mwatsatanetsatane za zothetsera zomwe tikugwiritsa ntchito panopa.

Tsopano tiyeni tiyambe.


Monga ndanenera, izi zidzakhala zobwerezabwereza, ndipo kuti tiyambe kwinakwake, tiyeni titenge chitsanzo chofala kwambiri.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tili ndi ntchito yofanana, tiyenera kuvomereza, kusunga ndi kutumiza zithunzi za ogwiritsa ntchito. Mu mawonekedwe awa, ntchitoyo ndi yamba, titha kugwiritsa ntchito chilichonse:

  • kusungirako mitambo yamakono,
  • yankho la bokosi, lomwe liliponso zambiri tsopano;
  • Titha kukhazikitsa makina angapo pamalo athu a data ndikuyika ma hard drive akulu ndikusunga zithunzi pamenepo.

Badoo m'mbiri - zonse nthawi ndi nthawi (panthawi yomwe anali atangoyamba kumene) - amakhala pa ma seva ake, mkati mwa ma DC athu. Choncho, njira imeneyi inali yabwino kwa ife.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tinangotenga makina angapo, kuwatcha "zithunzi", ndipo tili ndi gulu lomwe limasungira zithunzi. Koma zikuwoneka ngati chinachake chikusowa. Kuti zonsezi zitheke, tifunika kudziwa mwanjira yomwe tidzasungira zithunzi. Ndipo apanso, palibe chifukwa chotsegula America.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Timawonjezera gawo posungira kwathu ndi zambiri za ogwiritsa ntchito. Ichi chidzakhala kiyi yogawana. Kwa ife, tidayitcha place_id, ndipo id yamalo ino imaloza komwe zithunzi za ogwiritsa ntchito zimasungidwa. Timapanga mamapu.

На первом этапе это можно даже делать руками — мы говорим, что фотография этого пользователя с таким плэйсом будет приземляться на такой сервер. Благодаря этой карте мы всегда знаем, когда пользователь загружает фотографию, где ее сохранить, и знаем, откуда ее отдать.

Ichi ndi chiwembu chochepa kwambiri, koma chili ndi ubwino wake. Choyamba ndi chakuti ndizosavuta, monga ndinanena, ndipo chachiwiri ndi chakuti ndi njira iyi tikhoza kuwongolera molunjika mwa kungopereka magalimoto atsopano ndikuwawonjezera pamapu. Simufunikanso kuchita china chilichonse.

Umu ndi mmene zinalili kwa ife kwa nthawi ndithu.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Izi zinali chakumapeto kwa 2009. Adabweretsa magalimoto, adabweretsa ...

Ndipo panthawi ina tinayamba kuona kuti chiwembuchi chili ndi zovuta zina. Kodi kuipa kwake ndi kotani?

Choyamba, pali mphamvu zochepa. Sitingathe kuyika ma hard drive ambiri pa seva imodzi yakuthupi momwe tingafune. Ndipo izi zakhala vuto linalake pakapita nthawi komanso kukula kwa dataset.

Ndipo kachiwiri. Uku ndikusintha kosasinthika kwamakina, chifukwa makina oterowo ndi ovuta kuwagwiritsanso ntchito m'magulu ena; ali achindunji, i.e. ayenera kukhala ofooka mu ntchito, koma nthawi yomweyo ndi lalikulu chosungira.

Zonsezi zinali za 2009, koma, kwenikweni, zofunikirazi zidakali zofunika lero. Tili ndi zowonera zakale, kotero mu 2009 zonse zinali zoyipa ndi izi.

Ndipo mfundo yomaliza ndi mtengo.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Mtengo wake unali wokwera kwambiri panthawiyo, ndipo tinkafunika kufufuza njira zina. Iwo. tidayenera kugwiritsa ntchito bwino malo omwe ali m'malo osungiramo data komanso ma seva enieni omwe zonsezi zili. Ndipo mainjiniya athu amachitidwe adayamba kafukufuku wamkulu momwe adawunikiranso zosankha zingapo. Adayang'ananso mafayilo ophatikizika monga PolyCeph ndi Luster. Panali zovuta zogwirira ntchito komanso ntchito yovuta kwambiri. Iwo anakana. Tidayesa kuyika deta yonse kudzera pa NFS pagalimoto iliyonse kuti tikweze. Kuwerenga kunayendanso bwino, tinayesa njira zosiyanasiyana kuchokera kwa ogulitsa osiyanasiyana.

И в итоге мы остановились на том, что мы стали использовать так называемое Storage Area Network.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Awa ndi ma SHD akuluakulu omwe amapangidwa makamaka kuti asunge zambiri. Ndi mashelufu okhala ndi ma disks omwe amayikidwa pamakina omaliza otulutsa. Kuti. tili ndi makina amtundu wina, ang'onoang'ono, ndi ma SHD awa, omwe amawonekera potumiza malingaliro athu, i.e. kwa nginx yathu kapena wina aliyense kuti atitumizire zopempha za zithunzizi.

Chosankha chimenechi chinali ndi ubwino woonekeratu. Izi ndi SHD. Cholinga chake ndi kusunga zithunzi. Izi zimagwira ntchito zotsika mtengo kuposa kungoyika makina okhala ndi ma hard drive.

Chachiwiri kuphatikiza.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Izi ndizoti mphamvu zakhala zazikulu kwambiri, i.e. titha kusungirako zosungirako zambiri mu voliyumu yaying'ono kwambiri.

Koma panalinso zovuta zomwe zidawonekera mwachangu. Pamene chiwerengero cha ogwiritsa ntchito ndi katundu pa dongosololi chikukula, mavuto a machitidwe anayamba kuwuka. Ndipo vuto apa ndi lodziwikiratu - SHD iliyonse yopangidwa kuti isunge zithunzi zambiri m'mabuku ang'onoang'ono, monga lamulo, imakhala ndi kuwerenga kwambiri. Izi ndizowona pakusungidwa kwamtambo kulikonse kapena china chilichonse. Tsopano tilibe malo osungira abwino omwe angakhale owopsa kwambiri, mutha kuyika chilichonse mmenemo, ndipo amalekerera kuwerenga bwino. Makamaka kuwerenga wamba.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Monga momwe zilili ndi zithunzi zathu, chifukwa zithunzi zimafunsidwa mosagwirizana, ndipo izi zidzakhudza kwambiri ntchito yawo.

Ngakhale malinga ndi ziwerengero zamasiku ano, ngati tifika kwinakwake kuposa 500 RPS pazithunzi pamakina omwe kusungirako kumalumikizidwa, mavuto amayamba kale. Ndipo zinali zoipa mokwanira kwa ife, chifukwa chiwerengero cha ogwiritsa ntchito chikukula, zinthu zidzangoipiraipira. Izi ziyenera kukonzedwa mwanjira ina.

Kuti tikwaniritse, tinaganiza panthawiyo, mwachiwonekere, kuyang'ana mbiri ya katundu - zomwe, makamaka, zikuchitika, zomwe ziyenera kukonzedwa.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo apa zonse zimasewera m'manja mwathu.

Ndanena kale mu slide yoyamba: tili ndi zopempha zowerengera zikwi 80 pa sekondi imodzi yokha ndikuyika 3,5 miliyoni patsiku. Ndiko kuti, uku ndi kusiyana kwa maulamuliro atatu a ukulu. Ndizodziwikiratu kuti kuwerenga kuyenera kukulitsidwa bwino ndipo zikuwonekeratu bwino.

Palinso mfundo ina yaing'ono. Zomwe zimagwiritsidwa ntchito ndizoti munthu amalembetsa, amaika chithunzi, ndiye amayamba kuyang'ana anthu ena, monga iwo, ndikuwonetseratu anthu ena. Kenako amapeza wokwatirana naye kapena sapeza wokwatirana naye, zimatengera momwe zimakhalira, ndipo amasiya kugwiritsa ntchito ntchitoyo kwakanthawi. Panthawiyi, akamagwiritsa ntchito, zithunzi zake zimakhala zotentha kwambiri - zimafunidwa, anthu ambiri amaziwona. Akangosiya kuchita izi, mwachangu kwambiri amasiya kucheza ndi anthu ena monga momwe amachitira poyamba, ndipo zithunzi zake sizimafunsidwa konse.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Iwo. Tili ndi deta yaying'ono yotentha kwambiri. Koma pa nthawi yomweyo pali zambiri zopempha kwa iye. Ndipo yankho lodziwikiratu apa ndikuwonjezera posungira.

Cache yokhala ndi LRU idzathetsa mavuto athu onse. Kodi tikuchita chiyani?

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Timawonjezeranso ina yaying'ono kutsogolo kwa gulu lathu lalikulu losungirako, lomwe limatchedwa photocaches. Izi kwenikweni ndi proxy chabe caching.

Zimagwira ntchito bwanji kuchokera mkati? Nayi wogwiritsa ntchito, nayi yosungirako. Chilichonse nchofanana ndi kale. Kodi tiwonjezere chiyani pakati?

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndi makina okha omwe ali ndi diski yam'deralo, yomwe imakhala yachangu. Izi ndi SSD, mwachitsanzo. Ndipo mtundu wina wa cache wakomweko umasungidwa pa disk iyi.

Kodi zikuwoneka bwanji? Wogwiritsa amatumiza pempho la chithunzi. NGINX imayang'ana poyamba mu cache yakomweko. Ngati sichoncho, tangolani proxy_pass kumalo athu osungira, tsitsani chithunzicho ndikuchipereka kwa wogwiritsa ntchito.

Koma iyi ndi yoletsa kwambiri ndipo sizikudziwika zomwe zikuchitika mkatimo. Zimagwira ntchito monga chonchi.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Chosungiracho chimagawidwa m'magulu atatu. Ndikanena kuti "zigawo zitatu", izi sizikutanthauza kuti pali dongosolo lovuta. Ayi, awa ndi maupangiri atatu okha pamafayilo:

  1. Ichi ndi buffer kumene zithunzi dawunilodi kuchokera tidzakulowere kupita.
  2. Ichi ndi kache yotentha yomwe imasunga zithunzi zomwe zafunsidwa.
  3. Ndipo posungira ozizira, pomwe zithunzi zimakankhidwira pang'onopang'ono kuchokera muchitetezo chotentha pamene zopempha zochepa zimabwera kwa iwo.

Kuti izi zigwire ntchito, tiyenera kuwongolera posungira, tiyenera kusinthanso zithunzi zomwe zili mmenemo, ndi zina zotero. Iyinso ndi njira yakale kwambiri.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Nginx amangolembera ku RAMDisk access.log pa pempho lililonse, momwe imasonyezera njira yopita ku chithunzi chomwe chagwiritsidwa ntchito panopa (njira yogwirizana, ndithudi), ndi magawo omwe adatumizidwa. Iwo. Itha kunena kuti "chithunzi 1" ndiyeno ngati buffer, kapena posungira yotentha, kapena chosungira chozizira, kapena choyimira.

Kutengera izi, tiyenera kusankha chochita ndi chithunzicho.

Tili ndi daemon yaing'ono yomwe ikuyenda pamakina aliwonse omwe amawerenga chipikachi mosalekeza ndikusunga ziwerengero zakugwiritsa ntchito zithunzi zina m'chikumbukiro chake.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Amangosonkhanitsa pamenepo, amasunga zowerengera ndipo nthawi ndi nthawi amachita zotsatirazi. Iye amasuntha mwachangu anapempha zithunzi, zimene pali zopempha zambiri, kwa otentha posungira, kulikonse kumene iwo ali.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Zithunzi zomwe sizimafunsidwa kawirikawiri komanso zomwe sizimafunsidwa pafupipafupi zimakankhidwa pang'onopang'ono kuchokera m'malo otentha kupita ku ozizira.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo tikatha danga mu cache, timangoyamba kuchotsa chirichonse kuchokera ku cache yozizira mosasamala. Ndipo mwa njira, izi zimagwira ntchito bwino.

Kuti chithunzicho chisungidwe nthawi yomweyo pochiyika ku buffer, timagwiritsa ntchito proxy_store malangizo ndipo buffer ndi RAMDisk, i.e. kwa wogwiritsa ntchito zimagwira ntchito mwachangu kwambiri. Izi zikukhudzana ndi omwe ali mkati mwa seva ya caching yokha.

Funso lotsala ndi momwe mungagawire zopempha pamaseva awa.

Tiyerekeze kuti pali gulu la makina osungira makumi awiri ndi ma seva atatu a caching (umu ndi momwe zidachitikira).

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tiyenera kudziwa kuti ndi zopempha ziti za zithunzi ndi komwe tingazifikire.

Njira yodziwika kwambiri ndi Round Robin. Kapena mwangozi?

Это, очевидно, имеет ряд недостатков, потому что мы будем очень неэффективно использовать кэш в такой ситуации. Запросы будут приземляться на какие-то случайные машины: здесь она закэшировалась, на соседней ее уже нету. И работать все это если и будет, то очень плохо. Даже при небольшом числе машин в кластере.

Tiyenera kudziwa mosabisa kuti ndi seva iti yomwe itipatse pempho.

Pali njira ya banal. Timatenga hashi ku ulalo kapena hashi kuchokera ku kiyi yathu ya sharding, yomwe ili mu ulalo, ndikuigawa ndi kuchuluka kwa ma seva. Zigwira ntchito? Chifuniro.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Iwo. Tili ndi pempho la 2%, mwachitsanzo, pa "example_url" ina imakhazikika pa seva ndi index "XNUMX", ndipo posungirayo nthawi zonse imatayidwa momwe tingathere.

Koma pali vuto ndikugawananso mu chiwembu chotere. Kugawananso - Ndikutanthauza kusintha kuchuluka kwa ma seva.

Tiyerekeze kuti gulu lathu la caching silingathe kupirira ndipo tasankha kuwonjezera makina ena.

Tiyeni tiwonjeze.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tsopano chirichonse chikugawidwa osati ndi atatu, koma ndi anayi. Chifukwa chake, pafupifupi makiyi onse omwe tidakhala nawo, pafupifupi ma URL onse tsopano amakhala pamaseva ena. Chosungira chonsecho chinaletsedwa kwakanthawi kochepa. Zopempha zonse zidagwera pagulu lathu losungira, zidakhala zosamveka, kulephera kwautumiki komanso ogwiritsa ntchito osakhutira. Ine sindikufuna kuchita izo.

Chisankhochi sichiyeneranso ife.

Kuti. kodi tiyenera kuchita chiyani? Tiyenera mwanjira ina kugwiritsa ntchito posungira bwino, kuyika pempho lomwelo pa seva yomweyo mobwerezabwereza, koma kukana kugawananso. Ndipo pali yankho lotere, silovuta. Amatchedwa hashing yosasinthasintha.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Kodi chikuwoneka bwanji?

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Timatenga ntchito ina kuchokera pa kiyi ya sharding ndikufalitsa zonse zomwe zili pabwalo. Iwo. pofika 0, mayendedwe ake ochepera komanso apamwamba amasinthasintha. Kenako, timayika ma seva athu onse pamzere womwewo pafupifupi motere:

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Seva iliyonse imatanthauzidwa ndi mfundo imodzi, ndipo gawo lomwe limapita molunjika kwa izo, motero, limaperekedwa ndi wolandirayo. Zopempha zikafika kwa ife, nthawi yomweyo timawona kuti, mwachitsanzo, pemphani A - ili ndi hashi pamenepo - ndipo imatumizidwa ndi seva 2. Pemphani B - ndi seva 3. Ndi zina zotero.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Kodi chimachitika ndi chiyani pamenepa pakugawananso?

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Sitilepheretsa cache yonse, monga kale, ndipo osasuntha makiyi onse, koma timasuntha gawo lililonse mtunda waufupi kotero kuti, kunena kwake, seva yathu yachisanu ndi chimodzi, yomwe tikufuna kuwonjezera, igwirizane ndi malo aulere, ndipo timawonjezera pamenepo.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Inde, mumkhalidwe woterowo makiyi amatulukanso. Koma amachoka mofooka kwambiri kuposa poyamba. Ndipo tikuwona kuti makiyi athu awiri oyamba adakhalabe pa maseva awo, ndipo seva ya caching idasintha kokha pa kiyi yomaliza. Izi zimagwira ntchito bwino, ndipo ngati muwonjezera makamu atsopano mochulukira, ndiye kuti palibe vuto lalikulu pano. Mumawonjezera ndikuwonjezera pang'ono panthawi, dikirani mpaka cache itadzaza, ndipo zonse zimagwira ntchito bwino.

Funso lokhalo limakhalabe ndi kukana. Tiyerekeze kuti mtundu wina wagalimoto wasokonekera.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo sitingafune kukonzanso mapuwa panthawiyi, kusokoneza gawo la cache, ndi zina zotero, ngati, mwachitsanzo, makinawo adayambikanso, ndipo tifunika pempho la ntchito. Timangosunga chosungira chimodzi chazithunzi patsamba lililonse, chomwe chimakhala m'malo mwa makina aliwonse omwe ali pansi pano. Ndipo ngati mwadzidzidzi imodzi mwa maseva athu sapezeka, magalimoto amapita kumeneko. Mwachilengedwe, tilibe cache pamenepo, i.e. kwazizira, koma zopempha za ogwiritsa ntchito zikukonzedwa. Ngati iyi ndi nthawi yochepa, ndiye kuti timakumana nayo modekha. Pali zambiri zosungira. Ngati nthawiyi ili yayitali, ndiye kuti titha kupanga chisankho - kuchotsa seva iyi pamapu kapena ayi, kapena m'malo mwake ndi ina.

Izi ndi zokhudza caching system. Tiyeni tiwone zotsatira zake.

Zingawoneke ngati palibe chovuta apa. Koma njira iyi yoyendetsera kachesi idatipatsa chinyengo cha 98%. Iwo. mwa zopempha 80 zikwi pa sekondi iliyonse, 1600 okha amafikira kusungirako, ndipo ichi ndi katundu wamba, amapirira modekha, nthawi zonse timakhala ndi malo.

Tinayika ma seva awa m'ma DC athu atatu, ndipo tinalandira mfundo zitatu - Prague, Miami ndi Hong Kong.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Kuti. ali pafupi kapena mocheperako ku msika womwe tikufuna.

Ndipo monga bonasi yabwino, tili ndi projekiti yosungira iyi, yomwe CPU imakhala yopanda pake, chifukwa siyofunika kwambiri kuti ipereke zomwe zili. Ndipo kumeneko, pogwiritsa ntchito NGINX + Lua, tinagwiritsa ntchito malingaliro ambiri othandiza.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Mwachitsanzo, titha kuyesa webp kapena jpeg yopita patsogolo (awa ndi akapangidwe amakono), kuwona momwe zimakhudzira magalimoto, kupanga zisankho, kuloleza mayiko ena, ndi zina zotero; pangani kusintha kosinthika kapena kutsitsa zithunzi pa ntchentche.

Iyi ndi njira yabwino yogwiritsira ntchito, mwachitsanzo, mukakhala ndi foni yam'manja yomwe imawonetsa zithunzi, ndipo pulogalamu yam'manja sikufuna kuwononga CPU ya kasitomala popempha chithunzi chachikulu ndikuchisintha kukula kwake kuti chikankhire mkati. mawonekedwe. Titha kungotchula magawo ena mu URL yokhazikika ya UPort, ndipo posungira zithunzi zisintha kukula kwa chithunzicho. Monga lamulo, idzasankha kukula komwe tili nako pa diski, pafupi ndi momwe tingathere ndi zomwe tafunsidwa, ndikuzigulitsa m'magulu enaake.

Mwa njira, tapanga makanema ojambula pagulu zaka zisanu zapitazi za msonkhano wa opanga makina olemetsa kwambiri. Kuthamanga Kwambiri ++. Onerani, phunzirani, gawani ndikulembetsa Kanema wa YouTube.

Tikhozanso kuwonjezera malingaliro ambiri azinthu kumeneko. Mwachitsanzo, titha kuwonjezera ma watermark osiyanasiyana pogwiritsa ntchito magawo a URL, titha kusokoneza, kusokoneza kapena zithunzi za pixelate. Apa ndi pamene tikufuna kusonyeza chithunzi cha munthu, koma sitikufuna kusonyeza nkhope yake, izi zimagwira ntchito bwino, zonse zikuyendetsedwa pano.

Tinapeza chiyani? Tili ndi mfundo zitatu zokhalapo, chinyengo chabwino, ndipo nthawi yomweyo tilibe ma CPU opanda pake pamakina awa. Iye tsopano wakhala, ndithudi, wofunika kwambiri kuposa kale. Tiyenera kudzipatsa tokha magalimoto amphamvu, koma m'pofunika.

Izi zikukhudza kubwerera kwa zithunzi. Chilichonse apa ndi chomveka bwino komanso chodziwikiratu. Ndikuganiza kuti sindinapeze America, pafupifupi CDN iliyonse imagwira ntchito motere.

Ndipo, mwinamwake, womvetsera wovuta akhoza kukhala ndi funso: bwanji osasintha chirichonse ku CDN? Zingakhale zofanana; ma CDN onse amakono amatha kuchita izi. Ndipo pali zifukwa zingapo.

Choyamba ndi zithunzi.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ichi ndi chimodzi mwa mfundo zofunika kwambiri za zomangamanga zathu, ndipo tifunika kulamulira kwambiri momwe tingathere. Ngati iyi ndi yankho lamtundu wina kuchokera kwa wogulitsa wina, ndipo mulibe mphamvu pa izo, zidzakhala zovuta kuti mukhale nazo mukakhala ndi deta yaikulu, komanso mukakhala ndi kutuluka kwakukulu. za zopempha za ogwiritsa ntchito.

Приведу пример. Сейчас на своей инфраструктуре мы можем, например, в случае каких-то проблем или подземных стуков, зайти на машину, подебажиться там, условно говоря. Мы можем добавить сбор каких-то метрик, которые только нам нужны, можем как-то экспериментировать, смотреть, как это повлияет на графики и так далее. Сейчас собирается очень много статистики по вот этому кэширующему кластеру. И мы периодически смотрим на нее и долго исследуем какие-то аномалии. Если бы это было на стороне СDN, это было бы гораздо тяжелее контролировать. Или, например, если происходит какая-то авария, мы знаем, что случилось, мы знаем, как с этим жить и как это побороть. Это первый вывод.

Chomaliza chachiwiri chimakhalanso chambiri, chifukwa dongosololi lakhala likukula kwa nthawi yayitali, ndipo panali zofunikira zambiri zamabizinesi pamagawo osiyanasiyana, ndipo sizigwirizana nthawi zonse ndi lingaliro la CDN.

Ndipo mfundo yomwe ikutsatiridwa ndi yapitayi ndi

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Izi ndichifukwa choti pamasungidwe azithunzi tili ndi malingaliro ambiri, omwe sangathe kuwonjezedwa nthawi zonse mukapempha. Ndizokayikitsa kuti CDN iliyonse ikuwonjezerani zina mwazokonda mukafuna. Mwachitsanzo, kubisa ma URL ngati simukufuna kuti kasitomala athe kusintha china chake. Kodi mukufuna kusintha ulalo pa seva ndikuyibisa, ndiyeno tumizani magawo ena apa.

Kodi zimenezi zikutanthauza chiyani? Kwa ife, CDN si njira yabwino kwambiri.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo kwa inu, ngati muli ndi zofunikira zilizonse zamabizinesi, ndiye kuti mutha kugwiritsa ntchito zomwe ndidakuwonetsani nokha. Ndipo izi zigwira ntchito bwino ndi mbiri yofananira yonyamula.

Но если у вас какое-то общее решение, и задача не очень частная, вы можете совершенно спокойно брать CDN. Или если для вас гораздо важнее время и ресурсы, чем контроль.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo ma CDN amakono ali ndi pafupifupi chilichonse chomwe ndidakuuzani tsopano. Kupatula kuwonjezera kapena kuchotsera zina.

Это по поводу отдачи фотографий.

Tiyeni tsopano tipite patsogolo pang'ono m'mbuyo mwathu ndikukambirana za kusunga.

2013 idapita.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ma seva osungira adawonjezedwa, zovuta zamachitidwe zidapita. Zonse zili bwino. Dataset ikukula. Pofika m'chaka cha 2013, tinali ndi ma seva pafupifupi 80 olumikizidwa ku yosungirako, ndipo pafupifupi 40 caching mu DC iliyonse. Izi ndi ma 560 terabytes a data pa DC iliyonse, i.e. pafupifupi petabyte yonse.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo ndi kukula kwa deta, ndalama zogwirira ntchito zinayamba kukwera kwambiri. Kodi izi zikutanthauza chiyani?

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

В этой схеме, которая нарисована — с SAN’ом, с подключенными к нему машинами и кэшами — очень много точек отказа. Если с отказом кэширующих серверов мы раньше уже справились, там все более-менее прогнозируемо и понятно, то на стороне именно storage’а все было гораздо хуже.

Choyamba, Storage Area Network (SAN) yokha, yomwe imatha kulephera.

Во-вторых, он подключен по оптике на конечные машины. Могут быть проблемы с оптическими картами, свечами.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Zachidziwikire, palibe ambiri aiwo monga momwe zilili ndi SAN yokha, komabe, awa ndi mfundo zolephera.

Chotsatira ndi makinawo, omwe amagwirizanitsidwa ndi yosungirako. Ikhozanso kulephera.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Pazonse, tili ndi mfundo zitatu zolephera.

Komanso, kuwonjezera pa mfundo zolephera, pali kukonza kwakukulu kosungirako komweko.

Iyi ndi dongosolo lazinthu zambiri, ndipo mainjiniya amachitidwe amatha kukhala ovuta kugwira nawo ntchito.

Ndipo yotsiriza, mfundo yofunika kwambiri. Ngati kulephera kuchitika pazimodzi mwazinthu zitatuzi, tili ndi mwayi wopanda ziro wotaya deta ya ogwiritsa ntchito chifukwa fayilo ya fayilo ikhoza kuwonongeka.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tinene kuti fayilo yathu yawonongeka. Choyamba, kuchira kwake kumatenga nthawi yayitali - kungatenge mlungu umodzi ndi deta yambiri. Ndipo chachiwiri, pamapeto pake titha kukhala ndi mulu wa mafayilo osamvetsetseka omwe adzafunika kuphatikizidwa mwanjira ina kukhala zithunzi za ogwiritsa ntchito. Ndipo ife chiopsezo kutaya deta. Chiwopsezo chake ndi chachikulu. Ndipo nthawi zambiri zinthu zotere zimachitika, ndipo mavuto ambiri akabuka mu unyolo wonse, ndiye kuti chiwopsezochi chimakwera.

Chinachake chinayenera kuchitidwa pa izi. Ndipo tinaganiza kuti tiyenera kungosunga zosunga zobwezeretsera. Ili ndiye yankho lodziwikiratu komanso labwino. Kodi ife tachita chiyani?

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Izi ndi zomwe seva yathu inkawoneka ngati idalumikizidwa ku yosungirako kale. Ichi ndi gawo limodzi lalikulu, ndi chipangizo chotchinga chomwe chimayimira phiri lakutali kudzera pa optics.

Tangowonjezera gawo lachiwiri.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tidayika chosungira chachiwiri pafupi ndi icho (mwamwayi, sizokwera mtengo kwambiri pankhani yandalama), ndikuchitcha kuti gawo losunga zobwezeretsera. Imalumikizidwanso kudzera pa optics ndipo ili pamakina omwewo. Koma tiyenera mwanjira ina synchronize deta pakati pawo.

Apa tikungopanga mzere wosasunthika pafupi.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Sali otanganidwa kwambiri. Tikudziwa kuti tilibe zolemba zokwanira. Mzere ndi tebulo chabe mu MySQL momwe mizere ngati "muyenera kusunga chithunzichi" imalembedwa. Ndi kusintha kulikonse kapena kukweza, timakopera kuchokera kugawo lalikulu kupita ku zosunga zobwezeretsera pogwiritsa ntchito asynchronous kapena mtundu wina wantchito wakumbuyo.

Ndipo kotero ife nthawizonse timakhala ndi zigawo ziwiri zogwirizana. Ngakhale gawo limodzi la dongosololi litalephera, nthawi zonse titha kusintha gawo lalikulu ndi zosunga zobwezeretsera, ndipo zonse zipitilira kugwira ntchito.

Но из-за этого сильно возрастает нагрузка на чтение, т.к. помимо клиентов, которые читают с основного раздела, потому что они сначала смотрят фотографию там (она же там более свежая), а потом уже ищут на backup’е, если не нашли (но это уже NGINX просто делает), еще плюс и наша система backup’а теперь вычитывает с основного раздела. Не то чтобы это было узким местом, но не хотелось увеличивать нагрузку, по сути, просто так.

Ndipo tidawonjezera disk yachitatu, yomwe ndi SSD yaying'ono, ndikuyitcha buffer.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Momwe zimagwirira ntchito tsopano.

Wogwiritsa amatsitsa chithunzi ku buffer, kenako chochitika chimaponyedwa pamzere kusonyeza kuti chikuyenera kukopera magawo awiri. Imakopedwa, ndipo chithunzicho chimakhala pachosungirako kwakanthawi (titi, tsiku), kenako chimatsukidwa pamenepo. Izi zimathandizira kwambiri ogwiritsa ntchito, chifukwa wogwiritsa ntchito amatsitsa chithunzi, monga lamulo, zopempha zimayamba kutsatiridwa, kapena iyeyo adasinthiratu tsambalo ndikulitsitsimutsa. Koma zonse zimatengera pulogalamu yomwe imapanga kukweza.

Или, например, другие люди, которым он начал показываться, сразу же за этой фоткой посылают request ‘ы. В кэше ее еще нет, первый запрос происходит очень быстро. По сути, так же, как с фотокэша. Медленный storage не участвует вообще в этом. А когда через сутки она будет спуржена, она уже либо закэширована на нашем кэширующем слое, либо она уже, скорее всего, никому не нужна. Т.е. user experience здесь очень здорово подрос за счет таких простых манипуляций.

Chabwino, ndipo chofunika kwambiri: tinasiya kutaya deta.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tingoti tinaima motheka kutaya deta, chifukwa sitinataye kwenikweni. Koma panali ngozi. Tikuwona kuti yankho ili, ndithudi, ndi labwino, koma liri ngati kusalaza zizindikiro za vuto, m'malo molithetsa kwathunthu. Ndipo mavuto ena akadali pano.

Choyamba, iyi ndi mfundo yolephera mu mawonekedwe a mwiniwake wakuthupi pomwe makina onsewa amayendera; sizinachoke.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Kachiwiri, padakali mavuto ndi ma SAN, kukonza kwawo kwakukulu, ndi zina zambiri. Sizinali kuti chinali chinthu chofunikira, koma ndinkafuna kuyesa kukhala popanda izo.

Ndipo tinapanga mtundu wachitatu (kwenikweni, wachiwiri) - mtundu wosungitsa. Kodi zinkawoneka bwanji?

Izi ndi zomwe zinali -

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Mavuto athu akuluakulu ali ndi mfundo yakuti uyu ndi wolandira thupi.

Choyamba, tikuchotsa ma SAN chifukwa tikufuna kuyesa, tikufuna kuyesa ma hard drive akumaloko.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Izi zili kale 2014-2015, ndipo panthawiyo zinthu ndi ma disks ndi mphamvu zawo mwa munthu mmodzi zinakhala bwino kwambiri. Tinaganiza kuti bwanji osayesa.

И далее мы просто берем наш backup-раздел и переносим его физически на отдельную машину.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Таким образом, мы получаем вот такую схему. У нас есть две тачки, которые хранят одинаковые dataset’ы. Они резервируют друг друга полностью и синхронизируют данные по сети через асинхронную очередь в том же самом MySQL.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Chifukwa chiyani izi zimagwira ntchito bwino chifukwa tili ndi zolemba zochepa. Iwo. ngati kulemba kungafanane ndi kuwerenga, mwina tikadakhala ndi mtundu wina wa ma network ndi zovuta. Pali zolemba zochepa, kuwerenga kwambiri - njira iyi imagwira ntchito bwino, i.e. Sitimakonda kukopera zithunzi pakati pa maseva awiriwa.

Izi zimagwira ntchito bwanji, ngati muyang'ana mwatsatanetsatane.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Kwezani. The balancer amangosankha makamu mwachisawawa ndi awiri ndi kukweza kwa izo. Panthawi imodzimodziyo, mwachibadwa amafufuza zaumoyo ndikuonetsetsa kuti galimotoyo siigwa. Iwo. amaika zithunzi pa seva yamoyo, ndiyeno kudzera pamzere wosasinthasintha zonse zimakopera kwa mnansi wake. Ndi kukweza chirichonse n'zosavuta kwambiri.

Ntchitoyi ndi yovuta kwambiri.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Здесь нам помог Lua, потому что на ванильном NGINX такую логику сделать трудновато бывает. Мы сначала делаем request на первый сервер, смотрим, есть ли фотография там, потому что потенциально она может быть залита, например, на соседа, а сюда еще не доехала. Если фотография там есть, это хорошо. Мы ее сразу же отдаем клиенту и, возможно, кэшируем.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ngati palibe, timangopempha kwa mnansi wathu ndipo ndi otsimikizika kuti tidzalandira kuchokera kumeneko.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Kuti. kachiwiri tikhoza kunena: pakhoza kukhala mavuto ndi ntchito, chifukwa pali maulendo ozungulira nthawi zonse - chithunzicho chinakwezedwa, sichili pano, tikupanga zopempha ziwiri m'malo mwa chimodzi, izi ziyenera kugwira ntchito pang'onopang'ono.

В нашей ситуации это работает не медленно.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Timasonkhanitsa ma metric ambiri pamakinawa, ndipo kuchuluka kwanzeru kwamakina otere ndi pafupifupi 95%. Iwo. Kutsalira kwa zosunga zobwezeretseraku ndikochepa, ndipo chifukwa cha izi tatsimikizika, chithunzicho chitakwezedwa, tidzachitenga koyamba ndipo sitiyenera kupita kulikonse kawiri.

Таким образом, что мы еще получили, и что очень круто?

M'mbuyomu, tinali ndi gawo lalikulu losunga zobwezeretsera, ndipo timawerenga kuchokera kwa iwo motsatizana. Iwo. Nthawi zonse tinkafufuza chachikulu choyamba, kenako pa zosunga zobwezeretsera. Kunali kusuntha kumodzi.

Tsopano timagwiritsa ntchito kuwerenga kuchokera pamakina awiri nthawi imodzi. Timagawira zopempha pogwiritsa ntchito Round Robin. Pang'onopang'ono timapanga zopempha ziwiri. Koma chonsecho, tsopano tili ndi zowerengera zochulukirapo kuwirikiza kawiri kuposa kale. Ndipo katunduyo adachepetsedwa kwambiri pamakina otumizira komanso mwachindunji pamakina osungira, omwe tinali nawonso panthawiyo.

Что касается отказоустойчивости. Собственно, за это мы и боролись в основном. С отказоустойчивостью здесь все вышло шикарно.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Galimoto imodzi ikuwonongeka.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Palibe vuto! Wopanga makina sangadzuke ngakhale usiku, amadikirira mpaka m'mawa, palibe cholakwika chilichonse.

Ngati ngakhale makinawa alephera, mzerewu uli kunja kwa dongosolo, palibe mavuto, chipikacho chimangoyamba kudziunjikira pa makina amoyo, ndiyeno chidzawonjezedwa pamzere, ndiyeno kupita ku galimoto yomwe idzakhala. iyamba kugwira ntchito pakapita nthawi.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Zomwezo ndi kukonza. Timangoyimitsa imodzi mwa makinawo, ndikuyikoka pamadzi onse, imasiya kulandira magalimoto, timakonza zina, timasintha zina, kenako timazibwezeretsanso, ndipo zosunga zobwezeretsera izi zimachitika mwachangu. Iwo. patsiku, kutsika kwa galimoto imodzi kumagwira mkati mwa mphindi zingapo. Izi ndizochepa kwambiri. Ndi kulolerana zolakwika, ndikunenanso, zonse zili bwino apa.

Ndi mfundo ziti zomwe zingatengedwe kuchokera ku dongosolo la redundancy?

Tili ndi kulekerera zolakwika.

Zosavuta kugwiritsa ntchito. Popeza makinawa ali ndi ma hard drive akumaloko, izi ndizosavuta kwambiri potengera momwe amagwirira ntchito mainjiniya omwe amagwira nawo ntchito.

Tinalandira ndalama zowerengera kawiri.

Это очень хороший бонус в плюс к отказоустойчивости.

Koma palinso mavuto. Tsopano tili ndi chitukuko chovuta kwambiri cha zinthu zina zokhudzana ndi izi, chifukwa dongosololi lakhala 100% potsiriza limagwirizana.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tiyenera, kunena, pantchito ina yakumbuyo, kuganiza mosalekeza: "Kodi tikugwiritsa ntchito seva yanji tsopano?", "Kodi pali chithunzi chapano apa?" ndi zina. Izi, ndithudi, zonse zakutidwa, ndipo kwa wopanga mapulogalamu omwe amalemba malingaliro abizinesi, ndizowonekera. Koma, ngakhale zili choncho, wosanjikiza wovuta kwambiri umenewu waonekera. Koma ndife okonzeka kupirira izi posinthanitsa ndi zabwino zomwe talandira kuchokera kwa izo.

Ndipo apanso mkangano wina umabuka.

Ndidanena koyambirira kuti kusungira chilichonse pa hard drive yakomweko ndikoyipa. Ndipo tsopano ndikunena kuti tinazikonda.

Inde, ndithudi, patapita nthawi zinthu zasintha kwambiri, ndipo tsopano njira iyi ili ndi ubwino wambiri. Choyamba, timapeza ntchito yosavuta kwambiri.

Kachiwiri, ndizopanga zambiri, chifukwa tilibe zowongolera zokha kapena kulumikizana ndi mashelufu a disk.

Pali makina ambiri kumeneko, ndipo awa ndi ma disks ochepa omwe amasonkhanitsidwa pano pamakina kuti awononge.

Koma palinso kuipa.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Izi ndizokwera mtengo pafupifupi 1,5 kuposa kugwiritsa ntchito ma SAN ngakhale pamitengo yamasiku ano. Chifukwa chake, tidaganiza kuti tisasinthe molimba mtima gulu lathu lonse lalikulu kukhala magalimoto okhala ndi ma hard drive amderalo ndipo tinaganiza zosiya njira yosakanizidwa.

Theka la makina athu amagwira ntchito ndi hard drive (chabwino, osati theka - mwina 30 peresenti). Ndipo ena onse ndi magalimoto akale omwe anali ndi dongosolo loyamba losungitsa malo. Tidangowakwezanso, popeza sitinkafuna zatsopano kapena china chilichonse, tidangosuntha zokwera kuchokera pagulu limodzi kupita pawiri.

Ndipo tsopano tili ndi kuwerenga kwakukulu, ndipo tinakulitsa. Ngati m'mbuyomu tidayika chosungira chimodzi pamakina amodzi, tsopano timakwera zinayi, mwachitsanzo, pawiri imodzi. Ndipo zimagwira ntchito bwino.

Tiyeni tikambirane mwachidule zimene tinakwanitsa kuchita, zimene tinamenyera nkhondo komanso ngati tinapambana.

Zotsatira

Tili ndi ogwiritsa ntchito - mpaka 33 miliyoni.

Tili ndi malo atatu opezekapo - Prague, Miami, Hong Kong.

Zili ndi caching layer, yomwe imakhala ndi magalimoto omwe ali ndi ma disks othamanga (SSDs), omwe makina osavuta ochokera ku NGINX, access.log ndi Python daemons amathamanga, omwe amayendetsa zonsezi ndikuyendetsa cache.

Ngati mukufuna, muli mu pulojekiti yanu, ngati zithunzi sizili zofunikira kwa inu monga momwe zilili kwa ife, kapena ngati kusinthana kwa malonda ndi liwiro la chitukuko ndi ndalama zothandizira zili kumbali ina, ndiye kuti mutha kuzisintha bwinobwino. ndi CDN, ma CDN amakono akuchita bwino.

Chotsatira chimabwera chosungirako, chomwe tili ndi magulu awiriawiri a makina omwe amathandizirana, mafayilo amakopera mwachisawawa kuchokera kumtundu wina kupita ku wina akasintha.

Komanso, ena mwa makinawa amagwira ntchito ndi hard drive yakomweko.

Ena mwa makinawa ndi olumikizidwa ndi ma SAN.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndipo, kumbali imodzi, ndiyosavuta kugwiritsa ntchito komanso yopindulitsa pang'ono, komano, ndiyosavuta potengera kuchuluka kwa kuyika komanso mtengo pa gigabyte.

Ichi ndi chidule chachidule cha kamangidwe ka zomwe tapeza komanso momwe zidakhalira.

Malangizo ena ochepa kuchokera kwa woyendetsa, ophweka kwambiri.

Во-первых, если вы вдруг решите, что вам срочно нужно все улучшить в вашей инфраструктуре фоток, сначала померяйте, потому что, возможно, ничего не надо улучшать.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Ndiroleni ndikupatseni chitsanzo. Tili ndi gulu la makina omwe amatumiza zithunzi kuchokera ku zomata pamacheza, ndipo dongosololi lakhala likugwira ntchito kumeneko kuyambira 2009, ndipo palibe amene akuvutika nazo. Aliyense ali bwino, aliyense amakonda chirichonse.

Kuti muyeze, choyamba yesani miyeso yambiri, yang'anani pa izo, ndiyeno ganizirani zomwe simukukondwera nazo ndi zomwe zikuyenera kusintha. Kuti muyese izi, tili ndi chida chozizira chotchedwa Pinba.

Zimakupatsani mwayi wopeza ziwerengero zatsatanetsatane kuchokera ku NGINX pazopempha zilizonse ndi ma code oyankha, komanso kugawa nthawi - chilichonse chomwe mukufuna. Ili ndi zomangira kumitundu yonse yamakina osiyanasiyana, ndiyeno mutha kuyang'ana zonse mokongola.

Poyamba tidayeza, kenako tidawongolera.

Komanso. Timakulitsa kuwerenga ndi cache, kulemba ndi sharding, koma iyi ndi mfundo yodziwikiratu.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Komanso. Ngati mwangoyamba kumene kupanga dongosolo lanu, ndiye kuti ndi bwino kupanga zithunzi ngati mafayilo osasinthika. Chifukwa nthawi yomweyo mumataya gulu lonse lamavuto ndi kulephera kwa cache, ndi momwe malingaliro amayenera kupeza mtundu wolondola wa chithunzi, ndi zina zotero.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Tiyerekeze kuti mudakweza zana, kenako ndikuzungulira, ndikupangitsa kuti ikhale fayilo yosiyana. Iwo. palibe chifukwa choganiza: tsopano ndisunga malo pang'ono, ndilembe ku fayilo yomweyi, sinthani mawonekedwe. Izi nthawi zonse sizigwira ntchito bwino ndipo zimayambitsa mutu wambiri pambuyo pake.

Mfundo yotsatira. Za kusintha kukula pa ntchentche.

M'mbuyomu, ogwiritsa ntchito atakweza chithunzi, nthawi yomweyo tidadula miyeso yambiri nthawi zonse, kwa makasitomala osiyanasiyana, ndipo onse anali pa diski. Tsopano tazisiya izi.

Tinasiya zazikulu zitatu zokha: zazing'ono, zapakati ndi zazikulu. Timangotsitsa china chilichonse kuchokera ku kukula komwe kuli kuseri kwa zomwe tidafunsidwa ku Uport, timangotsitsa ndikuzipereka kwa wogwiritsa ntchito.

CPU ya caching layer pano imakhala yotsika mtengo kwambiri kuposa ngati tidapanganso kukula uku pachosungira chilichonse. Tiyerekeze kuti tikufuna kuwonjezera yatsopano, izi zidzatenga mwezi umodzi - yendetsani zolemba paliponse zomwe zingachite zonsezi mosamala, osawononga gululo. Iwo. Ngati muli ndi mwayi wosankha tsopano, ndi bwino kupanga kukula kwa thupi pang'ono momwe mungathere, koma kuti osachepera kugawa, kunena, atatu. Ndipo china chilichonse chikhoza kusinthidwanso pang'onopang'ono pogwiritsa ntchito ma module okonzeka. Zonse ndi zophweka komanso zofikirika tsopano.

Ndipo zosunga zobwezeretsera za asynchronous ndizabwino.

Monga momwe tawonetsera, chiwembuchi chimagwira ntchito bwino ndikuchedwa kukopera mafayilo osinthidwa.

Zomangamanga zosungira ndikugawana zithunzi ku Badoo

Mfundo yomaliza ndi yowonekeranso. Ngati maziko anu alibe mavuto ngati amenewa tsopano, koma pali chinachake chimene chingathe kusweka, ndithudi chidzasweka pamene chimakhala chochulukirapo. Choncho, ndi bwino kuganizira izi pasadakhale osati kukumana ndi mavuto. Ndizo zonse zomwe ndimafuna kunena.

ojambula

» bo0rsh201
» Badoo Blog

Lipotili ndilolemba limodzi mwa zokamba zabwino kwambiri pamsonkhano wa omanga machitidwe olemetsa kwambiri Kuthamanga Kwambiri ++. Kwatsala mwezi umodzi kuti msonkhano wa HighLoad ++ 2017 uchitike.

Takonzeka kale Pulogalamu ya msonkhano, ndondomeko tsopano ikupangidwa mwakhama.

Chaka chino tikupitiriza kufufuza mutu wa zomangamanga ndi makulitsidwe:

Timagwiritsanso ntchito zina mwazinthu izi pamaphunziro athu a pa intaneti pakupanga makina onyamula katundu wambiri HighLoad.Guide ndi mndandanda wamakalata osankhidwa mwapadera, zolemba, zida, makanema. Buku lathu lophunzirira lili kale ndi zida zopitilira 30. Lumikizani!

Source: www.habr.com

Kuwonjezera ndemanga