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.
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.
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.
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.
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.
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.
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.
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.
Iwo. Tili ndi deta yaying'ono yotentha kwambiri. Koma pa nthawi yomweyo pali zambiri zopempha kwa iye. Ndipo yankho lodziwikiratu apa ndikuwonjezera posungira.
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.
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).
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.
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.
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.
Kodi chikuwoneka bwanji?
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:
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.
Kodi chimachitika ndi chiyani pamenepa pakugawananso?
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.
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.
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.
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
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.
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. Или если для вас гораздо важнее время и ресурсы, чем контроль.
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.
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.
Ndipo ndi kukula kwa deta, ndalama zogwirira ntchito zinayamba kukwera kwambiri. Kodi izi zikutanthauza chiyani?
В этой схеме, которая нарисована — с SAN’ом, с подключенными к нему машинами и кэшами — очень много точек отказа. Если с отказом кэширующих серверов мы раньше уже справились, там все более-менее прогнозируемо и понятно, то на стороне именно storage’а все было гораздо хуже.
Choyamba, Storage Area Network (SAN) yokha, yomwe imatha kulephera.
Во-вторых, он подключен по оптике на конечные машины. Могут быть проблемы с оптическими картами, свечами.
Zachidziwikire, palibe ambiri aiwo monga momwe zilili ndi SAN yokha, komabe, awa ndi mfundo zolephera.
Chotsatira ndi makinawo, omwe amagwirizanitsidwa ndi yosungirako. Ikhozanso kulephera.
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.
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.
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.
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.
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.
Или, например, другие люди, которым он начал показываться, сразу же за этой фоткой посылают request ‘ы. В кэше ее еще нет, первый запрос происходит очень быстро. По сути, так же, как с фотокэша. Медленный storage не участвует вообще в этом. А когда через сутки она будет спуржена, она уже либо закэширована на нашем кэширующем слое, либо она уже, скорее всего, никому не нужна. Т.е. user experience здесь очень здорово подрос за счет таких простых манипуляций.
Mavuto athu akuluakulu ali ndi mfundo yakuti uyu ndi wolandira thupi.
Choyamba, tikuchotsa ma SAN chifukwa tikufuna kuyesa, tikufuna kuyesa ma hard drive akumaloko.
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-раздел и переносим его физически на отдельную машину.
Таким образом, мы получаем вот такую схему. У нас есть две тачки, которые хранят одинаковые dataset’ы. Они резервируют друг друга полностью и синхронизируют данные по сети через асинхронную очередь в том же самом MySQL.
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.
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.
Здесь нам помог Lua, потому что на ванильном NGINX такую логику сделать трудновато бывает. Мы сначала делаем request на первый сервер, смотрим, есть ли фотография там, потому что потенциально она может быть залита, например, на соседа, а сюда еще не доехала. Если фотография там есть, это хорошо. Мы ее сразу же отдаем клиенту и, возможно, кэшируем.
Ngati palibe, timangopempha kwa mnansi wathu ndipo ndi otsimikizika kuti tidzalandira kuchokera kumeneko.
Что касается отказоустойчивости. Собственно, за это мы и боролись в основном. С отказоустойчивостью здесь все вышло шикарно.
Galimoto imodzi ikuwonongeka.
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.
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.
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.
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.
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.
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.
Во-первых, если вы вдруг решите, что вам срочно нужно все улучшить в вашей инфраструктуре фоток, сначала померяйте, потому что, возможно, ничего не надо улучшать.
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.
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.
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.
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!