Hacker News

Discord: Ишти оптималдаштыруу боюнча изилдөө

Discord: Ишти оптималдаштыруу боюнча изилдөө Бул карама-каршылыктын ар тараптуу анализи анын негизги компоненттерин жана кеңири кесепеттерин деталдуу изилдөөнү сунуш кылат. Фокустун негизги багыттары Талкуунун борбору: Негизги механизмдер жана б...

1 min read Via newsletter.fullstack.zip

Mewayz Team

Editorial Team

Hacker News

Талаш-тартыш: Ишти оптималдаштыруу боюнча мисал

Дискорддун иштешин оптималдаштыруу саякаты заманбап программалык камсыздоо инженериясындагы эң үйрөтүүчү мисалдардын бири болуп, платформа ылдамдыгын жана ишенимдүүлүгүн жоготпостон, миңдеген колдонуучулардан жүз миллиондогон колдонуучуларга кантип масштабда боло аларын көрсөтүп турат. Discord'тун инженердик чечимдерин изилдөө менен — маалыматтар базасын көчүрүүдөн реалдуу убакыттагы билдирүүлөрдүн архитектурасына чейин — ишканалар басым астында иштеген платформаларды куруу үчүн далилденген стратегияларды чыгара алышат.

Кайсы негизги механизмдер Power Discord'тун масштабда иштеши?

Дискорддун инфраструктурасы атайылап инженердик соодалашуу философиясына негизделген. Башында Python жана MongoDBде курулган платформа, анын колдонуучу базасы жарылып кеткендиктен, бат эле тоскоолдуктарга дуушар болгон. Инженердик топ маанилүү архитектуралык чечимди кабыл алды: монолиттик стектен алыстап, кызмат көрсөтүүгө багытталган архитектурага өтүү, жеке компоненттерди өз алдынча масштабдоо мүмкүнчүлүгүн берүү.

Дискорддун иштешинин өзөгү - анын реалдуу убакыттагы билдирүү катмары үчүн Elixir жана Erlang BEAM виртуалдык машинасын колдонуу. BEAM VM бир эле учурда, каталарга чыдамдуу системалар үчүн атайын курулган — дал ушул платформа күнүнө миллиарддаган билдирүүлөрдү иштетүүнү талап кылат. Ошол эле учурда, Discord'тун API катмары акыры Rust'та кайра жазылып, эстутумдун коопсуздугун жана нөлгө жакын өндүрүмдүүлүктү сунуш кылды, аны Python масштабы боюнча жөн эле дал келтире албайт.

Натыйжада миллиондогон бир эле убакта WebSocket туташуулары 50 мс чейинки билдирүүлөрдү жеткирүү убактысы менен сакталып турган система, ал тургай эң жогорку пайдалануу учурунда. Бул кокусунан болгон жок — бул кайталанма профилдештирүүнүн, тоскоолдуктарды аныктоонун жана эң катуу стресске дуушар болгон тутум компоненттерин максаттуу түрдө кайра жазуунун натыйжасы болгон.

Дисккорд маалымат базасындагы эң чуулгандуу көйгөйдү кантип чечти?

Дискорддун эң ачык документтештирилген инженердик көйгөйлөрүнүн бири Кассандра болгон, ал билдирүү таржымалын сактоо үчүн колдонулган бөлүштүрүлгөн маалымат базасы. Платформа чоңойгон сайын, окуунун кечигүү убактысы кескин начарлап кетти - Кассандранын тандоосу начар болгондуктан эмес, Discord'тун колдонуу схемалары түп тамырынан бери өзгөргөн. Белгилүү маалымат түйүндөрүндө окуулардын пропорционалдуу эмес саны топтолгон ысык бөлүмдөр күтүлбөгөн жайлоолорду жаратты.

Инженердик топтун жообу C++ тилинде жазылган Кассандрага шайкеш келген маалымат базасы болгон ScyllaDBге маанилүү миграция болду. Миграция p99 окуу кечигүүсүн көпчүлүк учурларда 40–125 мстен бир орундуу миллисекундга чейин кыскартты. Андан да маанилүүсү, ал кластерди башкаруунун операциялык татаалдыгын азайтып, инженердик ресурстарды инфраструктураны өрт өчүрүүгө эмес, өзгөчөлүктү өнүктүрүүгө бурууга бошотту.

"Эң мыкты өндүрүмдүүлүктү оптималдаштыруу дайыма эле техникалык жактан эң татаал болуп санала бербейт — бул татаалдыкты азайтат, ошол эле учурда колдонуучунун оорусуна алып келген тар моюнду түз чечет." — Discord'тун маалымат базасын көчүрүү окуясы тарабынан тастыкталган принцип.

Бул окуя ар кандай өсүп жаткан платформа үчүн маанилүү сабакты көрсөтөт: өсүштүн бир баскычы үчүн туура курал кийинки үчүн туура эмес курал болуп калышы мүмкүн. Үзгүлтүксүз бенчмаркинг жана миграцияга даяр болуу начар пландаштыруунун белгилери эмес — алар инженердик жетилгендиктин белгилери.

Ишканалар кандай реалдуу ишке ашыруу сабактарын колдоно алышат?

Дискорддун оптималдаштыруу сапары жалаң теориялык эмес болчу — ал программалык камсыздоого негизделген ар кандай бизнеске колдонулуучу кайталануучу практикалардын топтомун түздү. Эң иш алып баруучу жолдорго төмөнкүлөр кирет:

💡 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 →
  • Профилди оптималдаштыруудан мурун: Дискорд ырааттуу түрдө так тоскоолдуктарды болжолдоо аркылуу эмес, өлчөө аркылуу аныктап, критикалык эмес жолдордо күч-аракетти текке кетирбейт.
  • I/O оор жумуш жүктөмдөрү үчүн биринчи кезектеги тилдерди тандаңыз: Билдирүү багыттоо үчүн Elixir'ке өтүү ар бир туташуу моделдерине салыштырмалуу CPU ашыкча чыгымын кескин кыскартты.
  • Эсептөөдөн сактагычты ажыратыңыз: Билдирүү сактагычын анык убакыттагы жеткирүү катмарынан бөлүү менен, Discord ар бир катмарды өзүнүн жүктөө үлгүсүнө жараша өз алдынча масштабдоону иштетти.
  • Big-bang кайра жазууларынын үстүнөн кошумча миграцияны камтыңыз: Критикалык системалар кызмат көрсөтүү боюнча көчүрүлүп, тобокелдиктерди азайтып, натыйжалуулукту үзгүлтүксүз текшерүүгө мүмкүндүк берди.
  • Байкоо мүмкүнчүлүгүн эртерээк инвестициялаңыз: Discord'тун регрессияларды тез аныктоо жөндөмдүүлүгү бөлүштүрүлгөн байкоого, метрика такталарына жана кризистер башталганга чейин курулган эскертүүчү инфраструктурага терең инвестициядан келип чыккан.

Дикорддун мамилеси өнөр жай альтернативалары менен кандайча салыштырылат?

Discord'тун оптималдаштыруу модели Slack жана Microsoft Teams сыяктуу платформалардын ушуга окшош кыйынчылыктарга кандайча мамиле кылганы менен олуттуу карама-каршы келет. Slack, мисалы, Node.js негизиндеги стекке жана колдонмо катмарында WebSocket башкаруусуна катуу ыктап, иштеп чыгуучунун тааныштыгынын ордуна көбүрөөк эс тутумдун чыгымын кабыл алды. Майкрософттун Azure инфраструктурасы тарабынан колдоого алынган командалар ишкананын биринчи ыкмасын колдонушту — чийки кечигүү көрсөткүчтөрүнө караганда шайкештикти жана интеграциянын кеңдигин биринчи орунга коюшту.

Дискорддун дифференциатору анын азыраак негизги технологияларды кабыл алууга даярдыгы болгон - Elixir, Rust, ScyllaDB - бул технологиялар конкреттүү көйгөйлөргө көбүрөөк ылайыктуу болгондо. Технологияны тандоодо идеологиялык эмес, прагматикалык ыкма бир эле учурда дүң платформаны кайра жазууну талап кылбастан, өлчөнгөн кирешелерди алып келди.

Өзүнүн платформа стектерин баалаган бизнес үчүн, Discord мисалы "резюмеге негизделген өнүгүүгө" каршы - технологияларды көйгөйгө ылайыктуу эмес, алардын тармактык бедели үчүн тандоо. Суроо эч качан "эмне популярдуу?" бирок "бул конкреттүү аткаруу чектөөсүн эмне чечет?"

Кайсы эмпирикалык далилдер Discord'тун оптималдаштыруу стратегияларынын иштешин далилдейт?

Дискорддун инженердик чечимдеринин натыйжалары документтештирилген жана өлчөнгөн. ScyllaDB миграциясынан кийин, Discord түйүндөрдүн саны 10 эсеге азайгандыгын жана ошол эле учурда күтүү убактысын жакшыртканын билдирди. Rust API кайра жазуусу эстутумга байланыштуу мүчүлүштүктөрдүн бүт категорияларын жок кылып, кызматтын жооп берүү убактысын кыскартты. Кабарды масштабда жеткирүү ырааттуу түрдө 50 мс босогодон төмөн иштейт, ал тургай ири оюн окуяларында — мурда системаны өзүнүн чегине чейин чыңдаган учурлар.

2023-жылга чейин, Discord 19 миллиондон ашык активдүү серверлерде күн сайын 4 миллиард мүнөттөн ашык үн байланышын иштетип турган. Булар курулай көрсөткүчтөр эмес — алар инженердик басым астында кабыл алынган архитектуралык чечимдер убакыттын өтүшү менен туруктуу жана эффективдүү артыкчылыктарды бергенинин далили.

Көп берилүүчү суроолор

Эмне үчүн Discord API катмары үчүн Python'дон Rust'ка өттү?

Python'дун глобалдык котормочу кулпусу (GIL) анын чындап эле бир убакта кодду аткаруу мүмкүнчүлүгүн түп-тамырынан бери чектеп, Discord'тун API сурамынын көлөмү өскөн сайын көйгөйлүү болуп калган өткөрүү лимиттерин жаратат. Rust иштөө убактысынын ашыкча чыгымы, таштандыларды чогултуу тыныгуусу же Python'дун параллелдүүлүк чектөөлөрү жок система деңгээлиндеги код үчүн иштеп чыгуучунун салыштырмалуу өндүрүмдүүлүгүн сунуш кылды — жүктөө учурунда тезирээк жана алдын ала боло турган API катмарын чыгарды.

Эң чоң майнаптуулукту оптималдаштырууда платформалар масштабда кандай ката кетирет?

Эң кеңири таралган ката - бул деградацияга алып келген конкреттүү, өлчөнгөн тоскоолдукка эмес, мөөнөтүнөн мурда жана кеңири оптималдаштыруу. Аткаруу инженериясы профилдөө маалыматтары жана колдонуучуга таасир этүүчү көрсөткүчтөр менен шартталганда эң натыйжалуу болот. Дискорд ырааттуу түрдө эң чоң таасир тийгизүүчү жалгыз чектөөнү – маалымат базасынын кечигүү мөөнөтүн, API өткөрүү мүмкүнчүлүгүн, WebSocket конкуренттүүлүгүн аныктоо жана кийинкиге өтүүдөн мурун аны чечүү менен ийгиликтүү болду.

Бизнес деңгээлиндеги платформа Discord'тун аткаруу сабактарын ишкананын инженердик ресурстарысыз кантип колдоно алат?

Принциптер эффективдүү түрдө төмөндөйт. Ар бир платформа байкоо жүргүзүү инструменттерин, профилдин акыркы чекиттерин реалдуу жүктөмдө ишке ашыра алат жана демейкиге караганда маалыматтарга негизделген кошумча стек чечимдерин кабыл алат. Инфраструктуранын татаалдыгын абстракциялаган бардыгы бир жерде платформалар — кэштөө, реалдуу убакыт режиминде байланыш жана платформа деңгээлинде маалыматтарды сактоо — өсүп келе жаткан ишканаларга аны кайра куруунун кереги жок эле оптималдаштырылган архитектурадан пайда алууга мүмкүнчүлүк берет.


Дискорддун аткарууну оптималдаштыруу боюнча изилдөөсү туруктуу масштабга ресурстарды көйгөйлөргө ыргытуу менен эмес, атайылап, маалыматтарга негизделген архитектуралык чечимдер аркылуу жетишилерин далилдейт. Байланыш платформасын же көп модулдуу бизнес операциялык тутумун иштетип жатасызбы, принциптер бирдей: тынымсыз өлчөө, акылдуулук менен ажыратуу жана чыныгы көйгөйгө дал келген куралдарды тандоо.

Эгер сиздин бизнесиңиз ушул принциптерди колдонууга мүмкүн болгон платформаны издеп жатса — майнаптуулукту, масштабдуулукту жана операциялык татаалдыкты башкаруу үчүн, сиз өсүүгө басым жасасаңыз — бүгүн Mewayz менен таанышыңыз. 207 интеграцияланган модулдары, 138 000+ колдонуучулары жана айына болгону $19дан башталчу пландары менен Mewayz биринчи күндөн баштап бизнесиңизди кеңейтүү үчүн курулган.

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