Hacker News

Ubwumvikane buke: Kwiga murugero rwo gukora neza

Ubwumvikane buke: Kwiga murugero rwo gukora neza Iri sesengura ryuzuye ry’amacakubiri ritanga isuzuma rirambuye ryibice byingenzi hamwe ningaruka nini. Ibice by'ingenzi byibandwaho Ibiganiro byibanda kuri: Uburyo bwibanze na p ...

6 min read Via newsletter.fullstack.zip

Mewayz Team

Editorial Team

Hacker News

Ubwumvikane buke: Inyigo Yakozwe muburyo bwo gukora neza

Urugendo rwogutezimbere imikorere ya Discord ihagaze nkimwe murugero rwigisha cyane mubuhanga bwa software igezweho, yerekana uburyo urubuga rushobora kuva ku bihumbi kugeza kuri miriyoni amagana yabakoresha badatanze umuvuduko cyangwa kwizerwa. Mugusuzuma ibyemezo bya injeniyeri ya Discord - kuva kwimuka ryububiko kugeza igihe cyohererezanya ubutumwa - ubucuruzi bushobora gukuramo ingamba zifatika zo kubaka urubuga rukora igitutu.

Ni ubuhe buryo bukuru bukoreshwa imbaraga za disikuru ku gipimo?

Ibikorwa remezo bya Discord byubatswe kuri filozofiya yubucuruzi nkana. Ubusanzwe yubatswe kuri Python na MongoDB, urubuga rwahise ruhura nimbogamizi mugihe abakoresha bayo baturika. Itsinda ryubwubatsi ryafashe icyemezo gikomeye cyubwubatsi: kuva mumurongo umwe wa monolithic werekeza kubikorwa byubaka serivisi, bituma ibice bimwe byapima kwigenga.

Intandaro yimikorere ya Discord nugukoresha Elixir hamwe na mashini ya Erlang BEAM kumashini yigihe cyohererezanya ubutumwa. BEAM VM yari igamije intego ya sisitemu ihuriweho, yihanganira amakosa - neza nibyo urubuga rukoresha ubutumwa bwa miliyari kumunsi bisaba. Hagati aho, API ya Discord yaje kwandikwa muri Rust, itanga umutekano wo kwibuka hamwe na zero-hejuru-imikorere ya Python idashobora guhura nubunini.

Igisubizo ni sisitemu aho amamiriyoni icyarimwe icyarimwe ya WebSocket ihuza hamwe na sub-50ms yubutumwa bwogutanga, ndetse no mugihe cyo gukoresha. Ntabwo byari impanuka - byari umusaruro wo gutondekanya ibishushanyo mbonera, kumenyekanisha icyuho, hamwe no kwandika inyandiko yibice bigize sisitemu yibanda cyane.

Nigute Discord yakemuye amakuru yububiko buzwi cyane?

Imwe mubibazo bya Discord byanditse kumugaragaro ibibazo byubwubatsi birimo Cassandra, ububiko bwatanzwe bwakoreshejwe mukubika amateka yubutumwa. Mugihe urubuga rwakuze, soma ubukererwe bwangiritse cyane - ntabwo ari ukubera ko Cassandra yari amahitamo mabi, ariko kubera ko imikoreshereze ya Discord yari yarahindutse cyane. Ibice bishyushye, aho umubare utagereranywa wabasomyi wibanze kumibare yihariye, byateje umuvuduko udateganijwe.

Igisubizo cyitsinda ryubwubatsi cyari ikintu cyimukiye muri ScyllaDB, ububiko bwa Cassandra buhujwe bwanditse muri C ++. Kwimuka byagabanije p99 gusoma bitinze kuva kuri 40–125m kugeza kuri milisegonda imwe mumibare myinshi. Icy'ingenzi cyane, byagabanije imikorere igoye yo gucunga cluster, kubohora ibikoresho byubwubatsi kugirango yibande kumajyambere yibikorwa aho kuzimya umuriro.

" - Ihame ryemejwe nububiko bwimuka bwa Discord.

Uru rubanza rwerekana isomo rikomeye kurubuga urwo arirwo rwose rukura: igikoresho cyiza cyicyiciro kimwe cyo gukura gishobora kuba igikoresho kitari cyo. Ibipimo bikomeza hamwe nubushake bwo kwimuka ntabwo ari ibimenyetso byerekana igenamigambi ribi - ni ibimenyetso byubwubatsi bukuze.

Ni ayahe masomo nyayo-yo Gushyira mubikorwa Isi Yashobora Gukoresha?

Urugendo rwogutezimbere Discord ntabwo rwari ruto gusa - rwatanze urutonde rwimikorere isubirwamo ikoreshwa mubucuruzi ubwo aribwo bwose. Ibikorwa bifatika cyane birimo:

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
  • Umwirondoro mbere yo gutezimbere: Ubwumvikane buke bwagaragaje buri gihe inzitizi nyayo binyuze mubipimo aho kubitekerezaho, bikumira imbaraga zapfushije ubusa munzira zidakomeye.

      Nigute Uburyo bwa Discord bugereranya nubundi buryo bwo gukora inganda?

      Moderi yo gutezimbere ya Discord itandukanye cyane nuburyo urubuga nka Slack na Amakipe ya Microsoft yegereye ibibazo bisa. Slack, nkurugero, yegamiye cyane kuri Node.js ishingiye kumurongo hamwe nubuyobozi bwa WebSocket kurwego rwa porogaramu, yemera ububiko bwo hejuru hejuru kugirango habeho kumenyera abitezimbere. Amakipe, ashyigikiwe n’ibikorwa remezo bya Microsoft ya Azure, yafashe inzira-yambere-yambere - gushyira imbere kubahiriza no kwaguka kwagutse kuruta imikorere yubukererwe bubi.

      Itandukaniro rya Discord nubushake bwarwo bwo gukoresha tekinoroji idasanzwe - Elixir, Rust, ScyllaDB - mugihe ubwo buryo bwikoranabuhanga bwari buhuye nibibazo byihariye. Ubu buryo bufatika aho kuba ingengabitekerezo yo guhitamo ikoranabuhanga byatanze umusaruro ushimishije udakeneye urubuga rwinshi rwo kwandika igihe icyo ari cyo cyose mugihe.

      Kubucuruzi busuzuma ibirindiro byabo bwite, urugero rwa Discord rurwanya cyane "iterambere rishingiye ku iterambere" - guhitamo ikoranabuhanga mu cyubahiro cy’inganda zabo aho guhura n’ikibazo. Ikibazo ntabwo ari "ikunzwe iki?" ariko "niki gikemura iyi mbogamizi yihariye?"

      Ni ibihe bimenyetso bifatika byerekana ko ingamba zo guhuza ibitekerezo zidahwitse?

      Ibyavuye mubyemezo byubuhanga bwa Discord byanditse kandi birapimwa. Nyuma yo kwimuka kwa ScyllaDB, Discord yatangaje ko igabanuka rya 10x kubara node mugihe icyarimwe itezimbere ubukererwe. Rust API yongeye kwandika yakuyeho ibyiciro byose bijyanye na memoire yibuka mugihe ugabanya igihe cyo gusubiza serivisi. Gutanga ubutumwa ku gipimo gihora gikora munsi ya 50m ntarengwa ndetse no mugihe cyimikino ikomeye - ibihe byabanjirije sisitemu kugera kumipaka yayo.

      Kugeza 2023, Discord yatunganyaga iminota irenga miliyari 4 yo gutumanaho amajwi buri munsi muri seriveri zirenga miliyoni 19. Ibi ntabwo ari ibipimo byubusa - nibimenyetso byerekana ko ibyemezo byubwubatsi byafashwe munsi yigitutu cyubwubatsi byatanze umusaruro urambye, wongeyeho inyungu zikorwa mugihe.

      Ibibazo bikunze kubazwa

      Kuki Discord yimukiye muri Python yerekeza kuri Rust kurwego rwayo rwa API?

      Python's Global Interpreter Lock (GIL) igabanya cyane ubushobozi bwayo bwo gukora code ihuriweho rwose, igakora ibisenge byinjira byarushijeho kuba ikibazo mugihe Discord's API isaba kwiyongera. Rust yatanze umusaruro ugereranije nuwitezimbere kubikorwa bya sisitemu-urwego rwimikorere idafite igihe cyo hejuru, guhagarika imyanda, cyangwa imipaka ihuriweho na Python - itanga urwego rwa API rwihuta kandi rushobora guhanurwa munsi yumutwaro.

      Ni ubuhe buryo bukomeye bwo gukora optimizasiyo yibikorwa bikora ku gipimo?

      Ikosa rikunze kugaragara ni ugutezimbere igihe kitaragera kandi mugari aho kwibasira icyuho cyihariye, gipimye gitera kwangirika. Imikorere yubuhanga ikora neza mugihe itwarwa namakuru yerekana amakuru hamwe ningaruka zabakoresha. Ubwumvikane buke bwagiye bugerwaho muguhitamo imbogamizi imwe rukumbi - gutinda kwububiko, kwinjiza API, guhuza WebSocket - no kubikemura byumwihariko mbere yo kwimukira mubikurikira.

      Nigute urubuga rwubucuruzi rushobora gukoresha amasomo yimikorere ya Discord idafite ibikoresho byubwubatsi?

      Amahame yagabanutse neza. Urubuga urwo arirwo rwose rushobora gushyira mubikorwa ibikoresho byo kureba, umwirondoro wanyuma munsi yumutwaro ufatika, kandi ugafata ibyemezo byiyongera bishingiye kumibare aho gusiba. Byose-muri-imwe yibikorwa byubaka ibikorwa remezo bigoye - gutunganya cashe, itumanaho ryigihe, hamwe nububiko bwamakuru kurwego rwa platifomu - bituma ubucuruzi butera imbere bwunguka mubyubatswe neza bitabaye ngombwa ko biyubaka ubwabo.


      Inyigo yo kunoza imikorere ya disikuru yerekana ko igipimo kirambye kigerwaho hifashishijwe nkana, ibyemezo bishingiye ku myubakire - bitatewe no guta umutungo mubibazo. Waba ukoresha urubuga rwitumanaho cyangwa sisitemu yubucuruzi myinshi-module, amahame ni amwe: gupima ubudasiba, gukuramo ubwenge, no guhitamo ibikoresho bihuye nikibazo nyirizina.

      > Hamwe na modul 207 ihuriweho, abakoresha 138.000+, hamwe na gahunda itangirira $ 19 / ukwezi, Mewayz yubatswe kugirango igere hamwe nubucuruzi bwawe guhera kumunsi wambere.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime