Table of Contents[Veşartin][Rêdan]
- 1. Mebesta we ji sêwirana pergalê çi ye?
- 2. Taybetmendiyên herî girîng ên sêwirana pergalê çi ne?
- 3. Teorema CAP bi rastî çi ye?
- 4. Hûn ji hevsengkirina barkirinê çi fêm dikin?
- 5. Cûdahiya di navbera bernameya asynchronous û bernameya paralel de çi ye?
- 6. Cûdahiya di navbera pîvana horizontal û vertical de çi ye?
- 7. Mebesta we ji derengbûn, rêgirtin, û hebûna pergalê bi rastî çi ye?
- 8. Taybetmendiyên ACID çi ne?
- 9. Bi rastî şirkirin çi ye?
- 10. CDN çi ye?
- 11. Çima CDN bikar bînin?
- 12. Ferqa di navbera parvekirin û dabeşkirinê de çi ye?
- 13. Bi rastî caching çi ye?
- 14. Pêşkêşkerên qiraxa CDN çi ne?
- 15. Ji bo sêwirana pergalê ji bo sêwirana pergalê şêwazên hevgirtî çi ne?
- 16. Mebesta te ji kilîtkirina xweşbîn çi ye?
- 17. Mebesta te ji “hilbijartina rêber” çi ye?
- 18. Nêzîkatiya we ji bo sêwirana karûbarek kurtkirina URL-ya mîna TinyURL çi ye?
- 19. Nêzîkatiya we ji bo sêwirana twitterê çi ye?
- 20. Ji bo Facebookê pergala nûçeyan biafirînin
- 21. Taybetmendiya BINGEHÊ ya pergalê çi ye?
- 22. Balansa Barkirinê Bi Teknîka Têkiliya Navnîşana IP-yê Çi ye?
- 23. Algorîtmayên Veguheztina Cache (an Siyaseta Derketinê) bi rastî çi ne?
- 24. Mebesta te ji danûstendina belavkirî çi ye?
- 25. Bi rastî birçîbûn çi ye?
- Xelasî
Berî ku hûn dest pê bikin, em pêşniyar dikin ku em bixwînin rêbernameya destpêkê li ser Design System da ku zanîna xwe ya bingehîn nûve bikin.
Dema ku ji bo pozîsyonek ku zanîna sêwirana pergalê hewce dike hevpeyivînê dikin, we şansê ku hûn li ser paşxaneya xwe biaxivin û kapasîteya xwe ya pêşxistina pergalên tevlihev nîşan bidin.
Dema ku hûn bi kardêrek potansiyel re diaxivin, awayê ku hûn pisporiya xwe diyar dikin dibe ku ji we re bibe alîkar ku hûn destnîşan bikin ku hûn ji bo pozîsyonê berendamek jêhatî ne.
Hûn dikarin ji bo hevpeyivîna karê xwe amade bibin bi fêrbûna têgehên sêwiranê yên bingehîn û bifikirin ka hûn ê çawa bersivê bidin lêpirsînên li ser wan. Em ê di vê postê de li ser hin pirs û bersivên hevpeyivîna sêwirana pergalê ya tîpîk bigerin da ku ji we re bibin alîkar ku hûn ji bo hevpeyivîna xweya paşîn amade bibin.
1. Mebesta we ji sêwirana pergalê çi ye?
Pêvajoya damezrandina taybetmendiyên pergalê di nav de modul, mîmarî, pêkhate, û navgînên wan, û daneyên li ser bingeha pîvanên pêşwextkirî wekî sêwirana pergalê tê zanîn.
Ew pêvajoya pênasekirin, afirandin û sêwirana pergalên ku ji bo armanc û mebestên taybetî yên pargîdaniyek an rêxistinek bicîh bîne ye. Sêwirana pergalê bêtir li ser analîzkirina pergalê, qalibên mîmarî, API-yan, qalibên sêwiranê, û zeliqandina wê hemî bi hev re ji kodkirinê zêdetir e.
2. Taybetmendiyên herî girîng ên sêwirana pergalê çi ne?
- Têkiliya bikarhêner
- Banga API-ya derve
- Pêvajoyên negirêdayî
3. Teorema CAP bi rastî çi ye?
Li gorî teorema CAP (Consistency-Availability-Partition Tolerance), pergalek belavbûyî nikare C, A, û P hemî di heman demê de misoger bike. Ew dikare herî zêde du ji sê garantiyan bide. Werin em pergalek databasa belavkirî bikar bînin da ku ji me re bibe alîkar ku em vê fam bikin.
- Tevhevî: Ev diyar dike ku piştî ku danûstendinek databasê qediya divê dane hevdeng bimînin. Mînakî, divê hemî pirs piştî nûvekirina databasê heman bersivê vegerînin.
- Hebûn: Divê databas her gav berdest û bersivdar bin.
- Tolerasyona Parvekirinê: Her çend ragihandin pirsgirêk bibe jî, divê pergala databasê xebata xwe bidomîne.
4. Hûn ji hevsengkirina barkirinê çi fêm dikin?
Loading balansa pêvajoya belavkirina bikêrhatî ya seyrûsefera hatinê di nav komek serverên paşîn de ye. Vana wekî hewzên serverê têne binav kirin. Malperên nûjen têne çêkirin ku bi mîlyonan pirsên xerîdar bi rê ve bibin û zû û pêbawer bersivê bidin wan. Ji bo birêvebirina van daxwazan dê serverek bêtir hewce bike.
Di vê rewşê de, girîng e ku meriv seyrûsefera daxwazê bi bandor di nav her serverê de dabeş bike da ku ji bargiraniya wan dûr nekevin. Balansa barkirinê wekî polîsek seyrûseferê kar dike, daxwazan dişopîne û wan di nav serverên berdest de rêve dike da ku tu serverek zêde neyê barkirin, potansiyel performansa serîlêdanê xirab dike.
5. Cûdahiya di navbera bernameya asynchronous û bernameya paralel de çi ye?
Gava ku hûn tiştek asynkron dimeşînin, ev tê vê wateyê ku hûn ne hewce ne ku li benda qedandina wê bisekinin berî ku hûn biçin tiştek din. Paralelîzm bi pêkanîna hevdemî ya gelek karan vedibêje.
Gava ku hûn dikarin karan li perçeyên cûda yên kedê biqetînin, paralelîzm bi bandor dixebite. Async û Callback navgînek in (alav an mekanîzmayek) ku temsîla hevdengiyê dike, ango komek sazûmanan e ku dikarin danûstandinê bikin û çavkaniyan parve bikin.
6. Cûdahiya di navbera pîvana horizontal û vertical de çi ye?
Zêdekirina amûrên nû yên hesabkirinê li torgilokek ku daxwaziya pêvajo û bîranînê li ser tevnek belavbûyî ya cîhazan belav dike, wekî pîvana horizontî tê binav kirin. Bi tenê tê gotin, mînakên servera nû li hewza heyî têne zêdekirin, û barkirina trafîkê bi bandor di navbera van cîhazan de tê belav kirin.
Pîvana vertîkal têgîna berfirehkirina kapasîteya çavkaniya yek komputerê bi zêdekirina RAM, CPU-yên bikêr, an koçkirina makîneyek nû ya bi kapasîteya bilind ve vedibêje. Fonksiyona serverê bêyî ku hewcedariya guheztina bernamekirinê hebe dikare were zêdekirin.
7. Mebesta we ji derengbûn, rêgirtin, û hebûna pergalê bi rastî çi ye?
Performansa hêmanek bingehîn a sêwirana pergalê ye ji ber ku ew beşdarî bilez û pêbaweriya karûbarên me dike. Sê tedbîrên performansê yên herî girîng ev in:
- Wextê ku ji bo gihandina peyamek yekane di milî çirkeyan de digire, dereng tê gotin.
- Mîqdara daneya ku bi serfirazî di nav pergalek demkî de bi serfirazî hatî veguheztin wekî rêveçûn tê binav kirin. Ji bo pîvandina wê bits di çirkeyê de têne bikar anîn.
- Rêjeya dema ku pergalek berdest e ku bersivê bide pirsan ji hêla hebûna wê ve tê destnîşan kirin. Serdema Pergalê / (System Uptime+Downtime) formula hesabkirina wê ye.
8. Taybetmendiyên ACID çi ne?
- Atomicity: Ew piştrast dike ku guheztinên databasê hemî an tune ne.
- Hevgirtin: Nirxên daneyê yên di databasê de hevgirtî ne.
- Veqetandin: Tê wateya veqetandina du danûstandinan.
- Dûrbûn: Daneyên ku server têk diçe jî têne parastin.
9. Bi rastî şirkirin çi ye?
Sharding teknîka dabeşkirina danehevek maqûl a mezin li gelek databasan e. Di heman demê de ew behsa dabeşkirina daneya horîzontal jî dike ji ber ku dê data li ser gelek komputeran bêne hilanîn. Wekî encamek, databasek hevpar dikare ji yek komputerek mezin bêtir pirsan bike.
10. CDN çi ye?
Tora radestkirina naverokê torgilokek cîhanî ya komputeran e ku hevkariyê dike da ku agahdariya înternetê bi lez peyda bike. Ew radestkirina bilez a hêmanên mîna rûpelên HTML, pelên JavaScript, şêwaz, wêne, û vîdyoyên ku ji bo barkirina naveroka Înternetê hewce ne dihêle.
11. Çima CDN bikar bînin?
- Ji ber ku çavkaniyên statîk ji sedî 80% malperek pêk tînin, pejirandina CDN-ê giraniya li ser servera bingehîn bi girîngî kêm dike.
- Ji ber ku ji rêwîtiyê kêmtir dûr heye, dê agahdarî ji xwediyên malperê re ku ji gelek deverên erdnîgarî mêvanên wan hene zûtir were peyda kirin.
- Bikarhênerên CDN di heman demê de ji kapasîteya ku bi lez û bez di bersivê de berbi seyrûsefera seyrûseferê ve bihejînin û dakêşin sûd werdigirin.
12. Ferqa di navbera parvekirin û dabeşkirinê de çi ye?
Parvekirina Database - Parvekirina databasê rêbazek dabeşkirina daneya yekane ye di nav gelek databasan de da ku ew li ser stasyonên xebatê yên cihêreng were hilanîn. Daneyên mezin dikarin li perçeyên piçûktir werin dabeş kirin û di gelek girêkên daneyê de werin hilanîn, û kapasîteya hilanîna tevahî ya pergalê zêde dike.
Bi belavkirina daneyan li gelek makîneyan, databasek hevpar dikare ji yek pergalek pirtir pirsan bi rê ve bibe.
Dabeşkirina Database pêvajoya dabeşkirina tiştên databasê yên hilanîn (tablo, index, û dîtin) li perçeyên cihê ye. Ji bo zêdekirina kontrol, performans û hebûna, tiştên databasên mezin têne dabeş kirin.
Di hin rewşan de, dabeşkirin dikare dema ku bigihîje daneyên dabeşkirî leza xwe baştir bike. Dabeşkirin dikare mezinahiya pêvekê kêm bike û şansê peydakirina îndeksên herî hewce yên di bîranînê de zêde bike bi tevlêbûna wekî stûnek pêşeng di navnîşan de.
13. Bi rastî caching çi ye?
Caching teknîka girtina kopiyên pelan li deverek hilanînê ya demkî ye ku wekî cache tê zanîn, ku gihîştina daneyê bileztir dike û derengiya malperê kêm dike. Tenê hejmarek daneyan dikare di cache de were hilanîn.
Wekî encamek, destnîşankirina teknîkên nûvekirina cache-ê ku ji bo armancên karsaziyê herî maqûl in, krîtîk e.
14. Pêşkêşkerên qiraxa CDN çi ne?
Pêşkêşkerên CDN-ê yên ku materyalê ji servera bingehîn an komika hilanînê ya we hatî girtin cache dikin, wekî serverên qerax têne zanîn. Xala hebûnê têgehek e ku bi gelemperî ji bo danasîna pêşkêşkerên devê (POP) tê bikar anîn.
Pêşkêşkerên qiraxa bi fizîkî li POP-ê têne bicîh kirin. Di wê POP-ê de, dibe ku agahdarî ji hêla gelek pêşkêşkerên devê ve were girtin.
Qabiliyeta peydakirina beşên malperek ji çend deveran dûrahiya di navbera mêvan û servera malperê de kêm dike, û di encamê de dereng kêm dibe. Pêşkêşkerên qiraxa CDN vê armanca rastîn pêk tînin.
15. Ji bo sêwirana pergalê ji bo sêwirana pergalê şêwazên hevgirtî çi ne?
Pêdivî ye ku her daxwazek xwendinê, li gorî teorema CAP-ê, daneyên herî dawî yên nivîskî werbigire. Gava ku gelek kopiyên daneyê têne gihîştin, hevdengkirina wan da ku xerîdar daneyên nû li ser bingehek domdar werbigirin, dibe dijwariyek. Li jêr qalibên hevgirtî yên gengaz in:
- Lihevhatina qels: Piştî nivîsandina daneyê, dibe ku daxwaza xwendinê nikaribe daneyên nûvekirî bi dest bixe an jî nekare. Ev asta îstîqrarê ji bo serîlêdanên rast-dem ên wekî VoIP, sohbeta vîdyoyê, û lîstika pirzimanî îdeal e.
- Hevrêziya dawî: Xwendin dê di dawiyê de piştî nivîsandina daneyan daneyên herî dawî di nav millisecond de bibînin. Daneyên di vê rewşê de asynchronously têne dubare kirin. DNS û pergalên e-nameyê nimûneyên vê yekê ne. Ev di pergalên bi hebûna bilind de bi bandor dixebite.
- Hevgirtinek bihêz: Li dû nivîsandina daneyê, xwendevanên pêşerojê dê daneyên herî dawî bibînin. Daneyên di vê rewşê de bi hevdemî têne kopî kirin. Ev dikare di RDBMS û pergalên pelan de, ku ji bo veguheztina daneyan guncan in, were dîtin.
16. Mebesta te ji kilîtkirina xweşbîn çi ye?
Girtina xweşbîn mekanîzmayek e ku hûn tê de tomarek dixwînin, jimareyek guhertoyê bi bîr tînin (rêbazên alternatîf tarîx, îşaretên demê, an hejmarên kontrolê/haşeyan vedigirin), û dûv re dûbare kontrol bikin ku guherto neguheriye berî ku wê paşde binivîsin.
Gava ku hûn tomarê paşde dinivîsin, hûn guhertoyê bikar tînin da ku nûvekirinê fîlter bikin da ku pê ewle bibin ku ew atomî ye. (ango, di navbera dema ku hûn guhertoyê kontrol dikin û dema ku hûn tomarê li ser dîskê dinivîsin de nehatiye guheztin) û wê bi yekcarî nûve bikin.
17. Mebesta te ji “hilbijartina rêber” çi ye?
Di pergalek belavkirî de ku bi gelek serverên ku beşdarî hebûna serîlêdanê dibin, dibe ku carinan hebe ku tenê serverek ji nûvekirina API-yên sêyemîn berpirsiyar e, ji ber ku pir server dibe ku dema karanîna API-yan bibe sedema pirsgirêkan.
Ev server wekî servera bingehîn tê zanîn, û prosedûra hilbijartina wê wekî hilbijartina serok tê zanîn. Dema ku servera rêber di pergalek belavkirî de têk diçe, pêdivî ye ku pêşkêşker têkçûnê bibînin û rêberek nû hilbijêrin. Bi karanîna teknolojiyek lihevhatinê, ev nêzîkatî ji bo berdestbûna bilind û serîlêdanên domdariya bihêz çêtirîn e.
18. Nêzîkatiya we ji bo sêwirana karûbarek kurtkirina URL-ya mîna TinyURL çi ye?
TinyURL URLek dirêj vediguherîne URLek kurt a yekane, yekta. Van teknolojiyên her weha dikarin URLek kurt qebûl bikin û URL-ya tevahî vegerînin.
Hin taybetmendiyên girîng çi ne?
- URLek ku ji orîjînal kurttir e çêbikin.
- URL-ya dirêj bihêlin û wê bi ya kurttir biguhezînin.
- Destûrê bide beralîkirinê di URLên kurt de.
- URLên kurt ên bi navên xwerû têne piştgirî kirin.
- Bi yekcarî gelek lêpirsînan birêve bibin.
Pirsgirêkên herî zêde çi ne?
- Meriv çawa hilanîna databasê dişopîne?
- Ger barkirina bikarhêner ji hêviyan derbas bibe çi diqewime?
- Ger du kes heman URL-ya xwerû bikar bînin?
Pêşniyarên jêrîn bifikirin:
- Hashing têgehek e ku dikare were bikar anîn da ku URL-yên kevn û nû ve girêbide.
- REST API dikare were bikar anîn da ku danûstendina pêş-endê bigire û barê giran hevseng bike.
- Multithreading têgehek e ku dihêle hûn bi yekcarî çend daxwazan bişopînin.
- URLên orjînal di databasên NoSQL de têne hilanîn.
19. Nêzîkatiya we ji bo sêwirana twitterê çi ye?
Pêdiviyên hatine dayîn:
- Tweet dişîne
- Li pey bikarhênerên din
- Tweet feed / newsfeed
- Sîstema mezinbûnê ye
- Bi lez bar dike
- Pergal pêbawer e
Dema ku we pîvanan saz kir hûn dikarin dest bi ramana sêwirana API-ya xwe ya Twitter-ê bikin. Bi vî rengî dê xuya bibe:
Ji bo destpêkê, em ê xalên dawî yên sereke yên API-ê xêz bikin. Li vir çend nimûne hene:
- şandin Tweet(peyam)
- FollowBikarhêner(bikarhêner ID)
- neşopîne Bikarhêner(bikarhêner ID)
- getFeed (rûpel)
Mîmariya ku dê van taybetmendiyan pêk bîne wê hingê dikare were xêz kirin. Em dikarin bi bikarhênerê ku daxwaznameyek serverê dişîne dest pê bikin. Em dikarin serverên API-ê yên din li pişt hevsengek barkirinê saz bikin da ku rê bidin astên seyrûsefera mezintir da ku hewcedariya pîvanbûnê bicîh bîne. Pêdivî ye ku em databasek zêde bikin da ku tweetên xwe nuha hilînin.
Girîng e ku ji bîr mekin ku API-ya ku em pêşkêşî dikin divê pîvan be. Ji bo ku em vê karûbar berbelav bikin, em dikarin yek ji serverên API-ya xwe ji cacheyek veqetandî ji bo nûçeya xwe bixwînin. Dema ku em wiya dikin, divê em di heman demê de peydakerek xwarinê jî bikar bînin da ku cache-ya xweya rojane nûve bikin.
20. Ji bo Facebookê pergala nûçeyan biafirînin
Nûçegihana li ser Facebookê dihêle bikarhêneran bibînin ka di derdorên hevalên wan, rûpelên bijare û rêxistinên ku wan şopandiye de çi diqewime.
Hin taybetmendiyên bingehîn çi ne?
- Li gorî peyamên ji saziyên din ên pergalê ku bikarhêner dişopîne nûçeyek biafirînin.
- Nivîs, wêne, deng û vîdyo hemî dikarin di şandinên Newsfeed de werin bikar anîn.
- Di wextê rast de, naveroka nû li nûçeya bikarhênerê zêde bikin.
Hin pirsgirêkên herî gelemperî çi ne?
- Heke ku posta nû demek dirêj digire ku di nûçeya nûçeyan de xuya bibe?
- Ma algorîtma dikare di çalakiya bikarhêner de piçek rêve bike?
- Divê kîjan mesajan pêşî di nûçeyê de werin xuyang kirin?
Pêşniyarên jêrîn bifikirin:
- Mekanîzmaya fanout ji bo belavkirina postan li şagirtan bikolin.
- Vekolin ka çawa parvekirin dikare were bikar anîn da ku bi karîgerî barkirinên bikarhêner ên bilind bi dest bixe.
- Pêdivî ye ku daneyên xwarinê bikarhênerek di nav gelek serveran de neyê dubare kirin. Parvekirin dikare li ser bingeha nasnameyên bikarhêneran were kirin.
21. Taybetmendiya BINGEHÊ ya pergalê çi ye?
Taybetmendiyên BASE di databasên NoSQL yên ku vê dawiyê derketine de berbelav in. Pergalek BINGEH li gorî teorema CAP-ê hevgirtî peyda nake. Ev kurtenivîsek çêkirî ye ku bi teorema CAP-ê ya jêrîn taybetmendiya pergalê re têkildar e:
- Gotina "bi bingehîn heye" tê vê wateyê ku pergal dê her dem peyda bibe.
- Dewletek nerm tê vê wateyê ku rewşa pergalê dikare bi demê re biguhere, her çend têketinek neyê peyda kirin. Ev bi piranî ji ber domdariya dawî ya modelê ye.
- Ji ber ku pergal di wê heyamê de têketinê wernagire, domdariya dawî tê vê wateyê ku pergal dê bi demê re domdar bibe.
22. Balansa Barkirinê Bi Teknîka Têkiliya Navnîşana IP-yê Çi ye?
Rêbazek din a berbiçav a hevsengkirina barkirinê girêdana navnîşana IP-yê ye. Navnîşana IP-ya xerîdar di vê rêbazê de bi nodek serverê ve girêdayî ye. Yek girê serverê hemî daxwazên ji navnîşana IP-ya xerîdar digire.
Pêkanîna vê rêbazê hêsan e ji ber ku navnîşana IP-ê her gav di sernavê daxwaza HTTP de tê gihîştin û mîhengên din hewce ne. Ger muwekîlên we îhtîmal heye ku çerezên xwe neçalak bikin, ev forma hevsengiya barkirinê dikare sûdmend be.
23. Algorîtmayên Veguheztina Cache (an Siyaseta Derketinê) bi rastî çi ne?
Algorîtmayên cache (herweha wekî algorîtmayên guheztina cache, polîtîkayên veguheztina cache, an polîtîkayên derxistina cache têne zanîn) rêwerzên xweşbîniyê, an algorîtmayên ku bernameyek komputerê an avahiyek-hilweşîner-parastkirî dikare bikar bîne ji bo birêvebirina kaşek daneya ku li ser komputerê hatî hilanîn bikar bîne.
Caching bi hilanîna daneyên ku di demên dawî de hatine bikar anîn an pir caran hatine gihîştin li deverên bîranînê ku ji hilanîna bîra kevneşopî zûtir an kêmtir biha ne, leza xwe zêde dike. Dema ku cache tije ye, divê algorîtma biryar bide ka kîjan tiştan jê bike da ku cîhek ji yên nû re çêbike.
24. Mebesta te ji danûstendina belavkirî çi ye?
Danûstandinek belavkirî her rewşek e ku tê de bûyerek yekane dibe sedema guheztina du an bêtir çavkaniyên cihêreng ên daneyê ku nekarin bi atomî bêne bicîh kirin.
Ew di cîhana mîkroxizmetan de pir tevlihevtir dibe ji ber ku her karûbar yekîneyek xebatê ye, û pir caran gelek karûbar divê hevkariyê bikin da ku karsaziyek serketî bikin.
25. Bi rastî birçîbûn çi ye?
Dema ku mijarek nikaribe bi rêkûpêk bigihîje çavkaniyên hevpar, tê gotin ku ew birçî ye. Ev diqewime dema ku mijarên "xemgîn" an mijarên bi "pêşîn" bilindtir çavkaniyên hevpar ji bo demên dirêj negihêjin hev.
Tiştek bihesibînin ku rêbazek hevdemkirî peyda dike ku pir caran dereng vedigere. Ger mijarek dubare gazî vê rêbazê bike, mijarên din ên ku hewcedariya wan bi gihandina hevdemkirî ya pir caran ji heman tiştan re heye dê bi gelemperî werin asteng kirin.
Xelasî
Danişîna mêjî hemî tiştê ku hevpeyivîna sêwirana pergalê vedihewîne ye. Me di vê postê de pirsên hevpeyivîna Sêwirana Pergalê ya herî gelemperî destnîşan kir.
Têgihîştina berfireh a rêbazê ku hûn di dema afirandina pergalek taybetî de digirin ji bo derbaskirina hevpeyivînek Sêwirana Pergalê krîtîk e.
Leave a Reply