Technology Newsfeed
Tech

Блюзкийн барилга: Түгээмэл нийгмийн сүлжээ (Бодит-Дэлхийн инженерийн сорилтууд)

Эхлэхээсээ өмнө: Програм хангамж хөгжүүлэх хиймэл оюун ухааны хэрэгсэл нь үндсэн хэвлэл мэдээллийн хэрэгслээр "оргил шуугиан"-д хүрсэн мэт санагдаж байна. Бид "бодит байдлыг шалгах" хийж, инженерүүд болон багууд эдгээр хэрэгслийг хэрхэн ашиглаж байгааг олж мэдэхийг хүсч байна (мөн ямар хэрэгсэл/ашиглалтын тохиолдлууд үнэхээр үр дүнтэй байдаг). Энэ судалгааг бөглөж бидэнд туслаарай.

Хиймэл оюун ухааны хэрэгслүүдийн судалгааг бөглөнө үү

Нарийвчилсан ойлголттой та бүхэнтэй бид тайланг бүрэн эхээр нь хуваалцах болно. Тусалсанд баярлалаа!


"Бодит ертөнцийн инженерийн сорилтууд" байна цуврал Үүнд бид технологийн компаниудын сонирхолтой програм хангамжийн инженерчлэл эсвэл инженерийн менежментийн кейс судалгааг тайлбарладаг.

Блюзки Твиттерийн хувилбар гэж нэрлэгддэг. Энэ нь хоёр жилийн өмнө эхэлсэн бөгөөд зөвхөн урилгаар бета хувилбараар өнгөрсөн жил худалдаанд гарсан. Энэ нь аль хэдийн гайхалтай 5.5 сая бүртгэлтэй хэрэглэгч болж өссөн. Програм хангамжийн инженерүүдийн хувьд сонирхолтой нь Bluesky нь бусад нийгмийн сүлжээнээс ялгаатай нь гайхалтай инженерийн төсөл юм. Өгөгдөл эрчимтэй хэрэглээний номыг зохион бүтээх номын зохиогч Мартин Клеппман техникийн зөвлөхөөр ажилладаг бөгөөд нийтлэл хэвлүүлсэн Блюзкийн авсан романы арга барилыг тоймлон харуулав.

Bluesky болон бусад томоохон нийгмийн сүлжээнүүдийн хоорондох хамгийн том ялгаа:

  • Төвлөрсөн бус . Bluesky бол "төвлөрсөн бус нийгмийн сүлжээ" бөгөөд хэн ч өөрийн серверээ ажиллуулах боломжтой гэсэн үг юм. Хэрэв Bluesky-ийн үндсэн баг өнөөдөр бүх үйлчилгээг унтраавал сүлжээ үргэлжлүүлэн ажиллах болно. Иймээс Bluesky нь хэрэглэгчдэд өөрсдийн өгөгдөл, үйлчилгээгээ жинхэнэ утгаар нь эзэмших боломжийг санал болгож байна.

  • Нээлттэй эх сурвалж. Bluesky builds-ийн бараг бүх зүйл нээлттэй эх сурвалжтай бөгөөд GitHub дээр зохион байгуулсан.

  • Хурдан өсөлт. Зөвхөн урилгаар бета хувилбарыг зарласнаас хойш 12 сарын дотор бүтээгдэхүүн тэгээс 5 сая хэрэглэгч болж өөрчлөгдсөн.

  • Жижиг баг. Bluesky нь эхний жилдээ 3 инженерээс бүрдсэн жижиг багтай, хэвлэгдэх үед 12 программ хангамжийн инженертэй хамт баригдсан.

Бусад нийгмийн сүлжээнүүд эдгээр зүйлсийн заримыг олж авсан; Мастодон нь хэрэглэгчдэд өөрсдийн өгөгдөл, таних тэмдгийг эзэмших боломжийг олгодог, Мета нь олж авснаар анхаарал татахуйц өсөлтөд хүрдэг гэх мэт. Долоо хоногийн дотор 100 сая хэрэглэгч . Гэсэн хэдий ч зөвхөн Блюзки л бүгдийг нь татсан.

Өнөөдөр бид Блюзкийг үүсгэн байгуулагч хоёр инженертэйгээ суугаад хэрхэн бүтээгдсэн талаар судалж байна. Даниел Холмгрен болон Пол Фрейзи . Тэд биднийг дамжуулдаг:

  1. Хөгжлийн цагийн хуваарь. Блюзки хэрхэн тодорхой бус нарийн ширийн зүйлтэй тодорхой бус санаанаас сая сая хэрэглэгчтэй төвлөрсөн бус нийгмийн сүлжээнд шилжсэн бэ?

  2. Туршилтын үе шат. 2-3 инженерээс бүрдсэн баг 9 сарын турш прототип хийж, хөгжлийн зарчмуудыг тогтоож, протокол, програмын суурийг тавьсан.

  3. v1 архитектур. Блюзкийн олон нийтэд зориулсан бета хувилбарын нээлтийн үеийн архитектурын тойм. Энэ бол AWS дээр бүтээгдсэн Postgres мэдээллийн сан байсан бөгөөд Pulumi-г ашигласан.

  4. v2 архитектур. Bluesky-г "холбоо"-г дэмжихийн тулд өргөтгөж, хэрэглэгчдэд өөрсдийн Bluesky тохиолдлуудыг ажиллуулах боломжийг олгоно.

  5. Мэдээллийн сангийн давхаргыг өргөжүүлэх. PostgreSQL нь сайтын өсөлтийг дагаагүй тул шилжих цаг болжээ. Баг нь ScyllaDB болон SQLite-г сонгосон.

  6. Infra stack: AWS-ээс on-prem хүртэл. AWS хэтэрхий үнэтэй болж байсан тул Блюзки зориулалтын дата төвүүд болон нүцгэн металл машинууд руу шилжсэн.

  7. Нийгмийн сүлжээг бий болгох бодит байдал. Гал түймэртэй тэмцэх ердийн асуудал, Илон Маск, тасалдал нь "амьдрал эсвэл үхэл" хямрал биш юм.

1. Хөгжлийн цагийн хуваарь

Блюзки хөгжиж байгаад ердөө 2 жил гаруй болж байгаа бөгөөд 12 сар орчим хугацаанд олон нийтэд нээлттэй болсон. Энд цагийн хуваарь байна:

Блюзкийн хөгжлийн цаг хугацаа, гол үе шатууд

Гурван үе шатанд бид доор хэлэлцэх болно:

Блюзкийн хөгжил, гурван үе шатанд хуваагдана

1-р шат: Туршилт

Төслийн 2022 оны 1-р сараас 10-р сарын хооронд эхний 10 сар нь хайгуулын ажил байсан бөгөөд баг 4 сарын дараа ил задгай ажиллаж эхэлсэн. Багийн нээлттэй эх үүсвэртэй анхны төсөл Баталгаажсан мэдээллийн туршилт (ADX), туршилтын хувийн мэдээллийн сервер ба командын шугамын үйлчлүүлэгч, сүлжээний архитектурын тоймыг дагалддаг.

2022 оны 4-р сард Твиттерийн хүнд хэрэглэгч Илон Маск зах зээлд тэргүүлэгч нийгмийн сүлжээнд гарсан томоохон өөрчлөлтүүдийн нэгэн адил шувууны програмын өөр хувилбаруудыг сонирхож буй сайтыг олж авах боломжийг нэмэгдүүлсэн.

The анхны амлалт Bluesky гар утасны аппликейшнийг 2022 оны 6-р сард хийсэн бөгөөд Пол Фрейзи үүн дээр ажилласан. Энэ нь протокол зөв ажиллаж байгааг батлах, бодит хэрэглээгээр дамжуулан протокол боловсруулахад туслах үзэл баримтлалын нотолгоо болж эхэлсэн. Уламжлалт мэргэн ухаан нь прототипүүдийг зорилгодоо хүрсний дараа хаядаг гэж хэлдэг.

Гэсэн хэдий ч энэ тохиолдолд нэг хүний бүтээсэн гар утасны програм болсон нь Твиттер дэх худалдан авалтын мэдээнээс үүдэлтэй гэнэтийн сонирхлын дагуу үйлдвэрлэлийн програм. Энэ нь бодит ертөнцийн үйл явдлууд уламжлалт мэргэн ухааныг цонхоор түлхэж чадна гэдгийг сайн сануулж байна!

2022 оны 10-р сард баг нь Элон Маск Twitter-ийг авах гэж байгаа тухай мэдээлснээс хойш хэдхэн хоногийн дараа Баталгаажсан шилжүүлгийн протокол (AT протокол) болон програмын хүлээлгийн жагсаалтыг зарлав. Энэ нь олон жиргээчдийг өөр нийгмийн сүлжээ хайхад хүргэсэн бөгөөд Bluesky-ийн хувийн бета хувилбарт бүртгүүлэх томоохон өсөлтийг бий болгосон. Энэхүү хөгжил нь Bluesky-ийн багт протокол болон програмыг бета хэрэглэгчдэд бэлтгэх замаар гэнэтийн боломжийг ашиглахад дарамт учруулсан. Харах AT протоколын талаарх дэлгэрэнгүй мэдээлэл.

2-р үе шат: зөвхөн урьж хөөргөх ба эхний 1M хэрэглэгчид

2022 оны 10-р сард Bluesky нь зөвхөн Jay Graber-ийн гүйцэтгэх захирал, хоёр програм хангамжийн инженерээс бүрдсэн; Даниел, Пол. Инженер No3, Девин нар нэг сард нэгдсэн. AT протокол болон хүлээлгийн жагсаалтыг зарлах нь хэвлэл мэдээллийн хэрэгслээр шуугиан тарьж, Блюзки энэ хугацаанд илүү их сонирхлыг татав.

2023 оны 3-р сард тус компани протокол болон гар утасны програм нь урилга илгээснээр илүү олон хэрэглэгчдийг урих хангалттай тогтвортой гэдэгт итгэлтэй байсан.

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

Хамгийн анхны гурван хөгжүүлэгч болох Пол, Девин, Даниел нар дуудлагаар үсэрч, дараа нь ажилдаа оров. Нийгэмд хөгжүүлэгчид энэ функц дээрх татах хүсэлт (PRs) GitHub дээр гарч ирэхийг хараад алдаануудыг зааж, хурдан хэрэгжүүлэхийг дэмжиж эхлэв. Тэд үүнийг боож, тухайн өдрийн эцэс гэхэд функцийг эхлүүлсэн. Өнөөдрийг хүртэл энэ нь хамгийн хурдан бүтээгдсэн функц бөгөөд протокол болон програмын хэмжээнд ашиглагдаж байна!

2023 оны 6-р сард Блюзки өнгөрөв 100,000 хэрэглэгчийн хувьд баг нь захиалгат тэжээл, хаах, мутаци, зохицуулалтын удирдлага, захиалгат домэйн зэрэг функцуудыг илгээсэн 6 хөгжүүлэгчийг дугаарласан үе шат. React Native дээр бүтээгдсэн вэб програм мөн үйлдвэрлэгдэж байсан.

2023 оны 9-р сард Bluesky 1 сая хэрэглэгчийг давсан нь ердөө 3 сарын дотор 900,000-аар өссөн байна!

3-р үе шат: Олон нийтэд нээлттэй болгоход бэлтгэж байна

1 сая хэрэглэгчийн чухал үйл явдлаас хойшхи 6 сарын хугацаанд Блюзкийг хүлээлгийн жагсаалт, урилгыг хязгаарлахгүйгээр олон нийтэд нээлттэй болгоход бэлтгэхэд анхаарлаа хандуулсан.

Холбоо (дотоод.) "Зохистой" холбоонд бэлтгэхийн тулд баг Bluesky серверүүдийн дотоод холбоог идэвхжүүлэхийн тулд архитектурын өөрчлөлтийг хийсэн.

Холбоо нь тархсан сүлжээнүүдийн гол ойлголт юм. Энэ нь бүлэг зангилаа бие бие рүүгээ мессеж илгээх боломжтой гэсэн үг юм. Bluesky-ийн хувьд энэ нь эцэст нь хэрэглэгчид өөрсдийн хэрэглэгчийн мэдээллийг (мөн тухайн сервер дээрх хэрэглэгчдийн хэрэглэгчийн мэдээллийг) байршуулсан PDS тохиолдлуудыг ажиллуулах боломжтой байх ёстой гэсэн үг юм. Bluesky сүлжээ нь энэхүү хуваарилагдсан нөөцтэй саадгүй ажилладаг.

Шинэ лого болон Twitter-ийн лавлагаа. Багийнхан хөөргөх шинэ логог бэлтгэж, 2023 оны 12-р сард зарлав.

Хуучин болон шинэ лого

Эрвээхэйний лого нь эрх чөлөө, өөрчлөлтийн бэлгэдэл юм. X (хуучнаар Twitter,) Instagram, TikTok, Youtube зэрэг одоо байгаа төвлөрсөн сошиал медиа платформууд нь хэрэглэгчдийг вэбсайт болон аппликейшндээ түгжихийг хүсдэг платформууд юм. Харин Bluesky протоколоо санал болгодог боловч хүмүүс ямар програм, вэб сайт ашиглахыг заадаггүй. Энэ нь контентын байршуулалтыг зааж өгөхийг ч хүсэхгүй байна:

Блюзкийн алсын харааны талаар Жей Граберын Твиттерт тавьсан илтгэлийн эцсийн слайд. Блюзкид 2021 онд анхны 13 сая долларын санхүүжилт олгосон нь энэ алсын хараанд хэсэгчлэн үндэслэсэн юм. Зураг нь Блюзкийн нээлттэй экосистемд хаалттай платформоос чөлөөлөгдсөн цэнхэр шувууг дүрсэлсэн байна. Эх сурвалж: Блюзки

Барилгын үйл явцын үе шат бүрийг авч үзье.

2. Туршилтын үе шат

Bluesky-ийн эхний 9 сарын хугацаанд (2022 оны 1-р сараас 9-р сар) хоёр програм хангамжийн инженер протокол болон программуудыг бүтээсэн - Даниел Холмгрен, Пол Фрейзи - Жэй гүйцэтгэх захирал дизайны шийдвэрт гарын үсэг зурсан. Эхний хоёр сар туршилт, технологийн "өсөлт"-ийн тухай байсан бөгөөд энэ нь цаг хугацаа, зарцуулсан цаг хугацаа, санаа бодлыг бий болгож, туршиж үзэх гэсэн үг юм. Энд Пол байна:

"Бид хэсэг хугацаанд ногоон талбайтай байж, дараа нь саяхан бүтээсэн зүйлээ тэсвэрлэх эсэхийг мэдэхийн тулд довтлох болно. Бид одоо байгаа технологиудыг үнэхээр анхааралтай ажиглав; Хэрэв бид одоо байгаа протоколуудаас мэдэгдэхүйц сайжруулалтыг олж харахгүй бол бид тэнд байсан зүйлийг ашиглахаар шийдсэн."

Чиглэл тодорхойгүй байхад баг шинэ арга барилыг туршиж үзсэн гэж Даниел хэлэв.

"Бид одоо байгаа техникийн үзүүлэлтүүдийг аль болох олон ашиглахаар зорьсон. Бид Activity Pub гэх мэт зүйлсийг судлахад маш их цаг зарцуулж, үүнийг хэрхэн ажиллуулах талаар нухацтай бодож, энэ нь бидний хэрэглээний хэрэгт үнэхээр тохирохгүй байгааг ойлгосон."

Хөгжлийн зарчим

Жижигхэн хэвээр байгаа баг тасралтгүй ахиц дэвшлийг хангахын тулд зарчмуудыг бий болгосон:

  1. Хоцрогдсон алхам байхгүй. Ашиглахад хялбар, цар хүрээ, хөгжүүлэгчийн туршлага нь одоо байгаа нийгмийн сүлжээнүүдээс муу байж болохгүй.

  2. Програм хөгжүүлэлтийг протокол боловсруулахтай нэгтгэ. Практик хэрэглээний тохиолдлуудаас тусад нь технологийн шийдвэрийг хэзээ ч бүү гарга.

  3. Битгий үнэ цэнэтэй бай! Хэрэв санаа эсвэл дизайн ажиллахгүй бол зүгээр л хая!

Төвлөрсөн бус шинэ, шинэ протокол бий болгох хандлага

Багийнхан яг юу барьж байгаагаа мэдэх хүртлээ технологид түгжигдэхгүйн тулд уян хатан дизайны сонголтыг нэн тэргүүнд тавьжээ. Өгөгдлийн давхаргыг Postgres-тэй хэт нягт холбохгүй байгаа нь үүний нэг жишээ юм. Доор үзнэ үү.

Уян хатан байдлыг бий болгох, үгүй өргөтгөх чадвар нь санаатай байсан. Хүн бүр яг юу барихаа мэдсэний дараа цар хүрээг эрэмбэлэхийн тулд энэ аргыг солих санаа байв. Шийдвэрийг буцаахад хэцүү гэдгийг мэдсэнээр багийн шийдвэр гаргалтыг илүү нарийвчлалтай болгосон гэж Даниел дараахь зүйлийг тусгасан.

“Блюзкийг барихад хамгийн хэцүү зүйл бол таны гаргасан жижиг шийдвэрүүд олон жилийн турш түгжигдэж, долгионы нөлөө үзүүлдэг гэдгийг байнга ухамсарлаж байсан. Төвлөрсөн бус орчинд эдгээрийг тайлахад хэцүү байдаг. Энэ нь шийдвэр болгонд маш их ач холбогдол өгдөг бөгөөд бид харамсах хэрэггүй гэж найдаж байгаа сонголтоо хоёр, гурав дахин шалгах ёстой."

Шинэ арга барилыг бий болгох нь хэзээ ч зорилго байгаагүй. Анхны санаа нь протокол эсвэл технологийг тавиур дээрээс авч, түүнд тохирохгүй шаардлагыг илчлэхийн тулд аль болох түлхэх явдал байв. Жишээлбэл, Толь бичиг - алсын зайнаас дуудлага хийх арга (RPC) болон бичлэгийн төрлийг тодорхойлоход ашигладаг схем нь JSON схемээс эхэлсэн. Баг нь үүнийг хөнгөн байлгахыг хичээж, JSON схемийг баримталсан. Гэвч тэд үүнийг ажиллуулахын тулд хойшоо бөхийж дуусав. Эцэст нь баг нь JSON схемээс салахаар шийдэж, түүнд онцлог шинж чанаруудыг нэмсэн нь Лексикон төрсөн юм.

Блюзки төвлөрсөн бус сүлжээн дэх стандарт бус шинэ арга барилыг зохион бүтээсэн нь шүүмжлэлд өртдөг. Паул үүнийг дараах байдлаар тайлбарлав.

""Бид хэзээ ч ""энд зохион бүтээгээгүй"" (NIH) синдромоор амьдрахыг зорьж байгаагүй. Шинэ зүйл бүтээх хэн ч ийм зорилготой гэж би бодохгүй байна. Эцсийн эцэст энэ чиглэлд аяндаа хөгжсөн.

Хэн ч хийгээгүй өндөр хэмжээний Үүнээс өмнө төвлөрсөн бус нийгмийн сүлжээ! Хэрэв хэн нэгэн байсан бол бид ийм олон зүйлийг зохион бүтээх шаардлагагүй байсан байх."

Bluesky одоо байгаа вэб технологиос санаа авдаг. Даниелийн хэлснээр:

"AT Protocol бол HTTP дээрх JSON API-ийн ердийн цуглуулга юм. Bluesky-ийн архитектур нь уламжлалт сошиал медиа мэдээллийн төвтэй маш төстэй харагдаж байна. Галын хоолой API нь Кафкатай маш төстэй бөгөөд бид үүнийг үүнтэй төстэй байдлаар задлах болно."

3. v1 архитектур: үнэхээр өргөтгөх боломжгүй, холбоогүй - хараахан

Дэд бүтцийн сонголтууд

PostgreSQL хөгжүүлэлтийг эхлүүлэх үед багийн сонгосон мэдээллийн сан байсан. Postgres-ийг ихэвчлэн "Швейцарийн армийн мэдээллийн сангийн хутга" гэж нэрлэдэг, учир нь энэ нь хөгжүүлэлтэд хурдан, прототип хийхэд маш сайн, асар олон тооны өргөтгөлүүдтэй. Нэг сул тал нь Postgres нь системийн нэг гацаа бөгөөд ихэнх төслүүдэд хэзээ ч бүтдэггүй асар их ачааллыг даван туулахад асуудал үүсгэдэг.

Багийн хувьд Postgres-ийг ашиглах нь яг юу барьж байгаа, эсвэл ямар нэг зүйлийг хэрхэн асуухаа мэдэхгүй байхад үнэхээр сайн ажилласан. Постгресийг ашиглах сонголтын Паулын хураангуй:

"Та аварга том Postgres мэдээллийн сангаас эхэлж, энэ нь таныг хэр хол авч явахыг хараарай, ингэснээр та хурдан хөдөлж чадна."

AWS дэд бүтэц Энэ нь хурдан тохируулагдсан, ашиглахад хялбар учраас багийн эхлүүлсэн зүйл байсан гэж Даниел хэлэв.

"Бид AWS-ээс бүх зүйлийг дуусгаж байсан бөгөөд энэ нь маш сайн, учир нь та шинэ VM-г маш амархан эргүүлж, шинэ стек, үйлчилгээг хялбархан эргүүлж чадна."

Bluesky-д анхны инфра хөлсөлсөн Жейк Гоулд AWS тохиргоонд давтагдсан:

"Бидэнд яг одоо байгаа үндсэн санаа бол бид AWS ашиглаж байна, бид автомат масштабын бүлгүүдтэй, мөн эдгээр автомат масштабын бүлгүүд нь зүгээр л юм. EC2 Docker Community Edition (CE)-ийг ажиллах цаг болон чингэлэгт зориулж ажиллуулж буй тохиолдлууд. Дараа нь бидний урд ачааллын тэнцвэржүүлэгч, арын хэсэгт Postgres олон хүртээмжтэй бүсийн жишээ байна. Харилцааны мэдээллийн сангийн үйлчилгээ (RDS). Энэ бол үнэхээр энгийн тохиргоо юм."

AWS дээр байршуулалтыг хөнгөвчлөхийн тулд баг дэд бүтцийн үйлчилгээг ашигласан. Пулуми .

Нээлттэй сүлжээний архитектурыг модульчлах баг эрт эхлүүлсэн хүчин чармайлт байлаа. Модульчлалын зорилго нь сүлжээний хэрэглэгчид өөрсдөө байршуулах боломжтой хэсгүүдийг эргүүлэх явдал байв. Даниел хэлэхдээ:

“Бидний анхны ойлголт бол Bluesky дээр тулгуурлан бүтээн байгуулалт хийж буй хөгжүүлэгчдэд сүлжээний анхаарлаа төвлөрүүлэхийг хүсч буй хэсгүүдэд анхаарлаа төвлөрүүлэх боломжийг олгох ёстой. Энэ бол бичил үйлчилгээний хэсэг юм.

Сүлжээнд байгаа "дуртай" бүрийг гадны хөгжүүлэгч индексжүүлэх шаардлагагүй. Өөрийнхөө дансыг өөрөө байршуулдаг хүн цагийн хуваарь үүсгэхийн тулд олон мянган нийтлэл ашиглах шаардлагагүй. Та сүлжээг тодорхой үүрэг болгон хувааж, концертод ажиллуулах боломжтой."

Хувийн мэдээллийн сервер

Эхлээд Bluesky-ийн архитектур нь нэг төвлөрсөн сервер болох PDS (Хувийн мэдээллийн сервер)-ээс бүрддэг байв.

Блюзки 2023 оны 3-р сард тоглосон

Энэхүү төвлөрсөн үйлчилгээг жижиг хэсгүүдэд хувааж, эцэст нь холбоо байгуулах боломжийг олгох стратеги байв.

Bluesky нь холбооны сүлжээ учраас хувь хэрэглэгчид өөрсдийн "Цэнхэр жишээ"-ээ ажиллуулж, өөрсдийн сүлжээг удирдах боломжтой гэсэн үг юм.

Тэжээл үүсгэгч

2023 оны 5-р сард тэжээлийн генераторыг өөрийн бүрэлдэхүүн хэсэг рүү шилжүүлсний дараа арын хэсэг

2023 оны 5-р сард Bluesky баг тэжээл үүсгэгчийг өөрийн үүрэгт шилжүүлсэн. Энэхүү үйлчилгээ нь аливаа хөгжүүлэгчид захиалгат алгоритмыг үүсгэж, ашиглах алгоритмыг сонгох боломжийг олгодог. Хөгжүүлэгчид боломжтой шинэ Feed Generator үйлчилгээг эргүүлэх мөн шинэ алгоритм нэмэхийн тулд үүнийг Bluesky сүлжээнд нээх боломжтой болгоно. Bluesky нь хэрэглэгчдэд урьдчилан тодорхойлсон хэд хэдэн алгоритмаас сонгох боломжийг олгодог.

Feed Generator интерфейс нь төвлөрсөн бус сүлжээний хувьд Bluesky-ийн анхны тохиолдол байв. Тэр цагаас хойш Bluesky сүлжээ нь зөвхөн Bluesky багийн ажиллуулдаг үйлчилгээ биш, мөн Bluesky сүлжээнд холбогдсон Feed Generator гэх мэт гуравдагч талын үйлчилгээнүүд байсан.

Зориулалтын "Appview" үйлчилгээ

Дараагийн алхамд харах логикийг PDS-ээс "Appview" үйлчилгээ рүү шилжүүлсэн. Энэ нь арын системд зориулсан нэлээд стандарт арга бөгөөд харахтай холбоотой бүх зүйлийг өөрийн үйлчилгээтэй холбож, бусад системд вэб болон гар утасны програмуудад өгөгдөл үзүүлэхэд хүндрэл учруулахгүй байх явдал юм.

Аппликешн харах логикийг өөрийн үйлчилгээнд хуваах

Сүлжээг мөлхөх реле

Ирээдүйд Bluesky сүлжээнд хэдэн зуу, мянган PDS байж болно. Тэгэхээр бүх өгөгдлийг тэдэнтэй хэрхэн синхрончлох вэ? Хариулт нь "мөлхөгч" энэ бүх PDS-ээр дамжин өнгөрөх болно. Энэхүү мөлхөх бэлтгэлд багийнхан буухиа үйлчилгээг нэвтрүүлсэн:

Дараа нь "мөлхөх"-д буухиа үйлчилгээг нэмж холбоо болон олон PDS-д бэлтгэх

4. v2 архитектур: масштабтай, нэгдсэн

v1 архитектурыг бүрэн холбоог дэмжихийн тулд хөгжүүлэх шаардлагатай байсан бөгөөд баг нь үүнээс цааш явахаар үргэлж төлөвлөж байсан. Гэвч тэд v1-ийг ердөө 6 сараас илүү хугацаанд үргэлжилнэ гэж найдаж байсан.

Холбоо

Холбооны хамгаалагдсан хязгаарлагдмал орчин. Холбооны анхны хувилбарыг тээвэрлэхээс өмнө баг нь а Холбооны Sandbox модуляц, курацийн хэрэгсэл гэх мэт шинэ функцуудыг туршиж үзэх аюулгүй орон зай болгон архитектурыг турших.

Дотоод холбоо . Холбоонд зохих ёсоор бэлтгэхийн тулд дараагийн засвар нь дэмжлэг нэмэх явдал байв олон Хувийн мэдээллийн серверүүд. Эхний алхам болгон Bluesky баг үүнийг дотооддоо хийсэн. Хэрэглэгчид энэ шилжилтийн талаар юу ч анзаараагүй бөгөөд энэ нь санаатай байсан бөгөөд дараа нь Блюзки нэгдсэн! Холбоо ажиллаж байсныг нотлох нь маш том үйл явдал байв.

Сануулахад, холбоо нь сүлжээг жинхэнэ тархалттай болгосон учраас Bluesky-д маш чухал байсан. Холбооны тусламжтайгаар ямар ч хэрэглэгч өөрийн Bluesky серверийг ажиллуулах боломжтой.

Холбооноос өмнө Bluesky 10 PDS үйлчилгээг бий болгож, Entryway интерфейс рүү ороосон

"Дотоодын нэгдсэн" PDS серверүүд яг л өөрөө байршуулсан PDS шиг ажилладаг байсан. Bluesky дотоод PDS серверүүдийг PDS-д "bsky.social" таних тэмдгийг өгдөг "Entryway" нэртэй шинэ үйлчилгээ болгон боохын тулд нэг нэмэлт хийсэн. Entryway нь bsky.social серверийг сонгосон хэрэглэгчдэд зориулсан "албан ёсны" Bluesky OAuth зөвшөөрлийн сервер болох бөгөөд нэг нь өөрөө байршуулсан серверээр ажилладаг.

Хожим нь Bluesky хүчин чадлын шалтгаанаар дотоод PDS серверүүдийн тоог 10-аас 20 болгон нэмэгдүүлж, PDS сервер нэмэх нь хүлээгдэж буй үр дүнтэй болохыг туршиж үзсэн.

Гадаад холбоо. Өөрсдөө байршуулсан Хувийн өгөгдлийн серверүүдийг дэмжихэд бүх зүйл бэлэн болсон тул Bluesky шилжихийн тулд эргүүлж, 2024 оны 2-р сард эдгээр серверүүдийг "мөлхөж" эхлэв.

"Зохистой" холбоонд дэмжлэг нэмж байна. PDS хэлбэрээр "Цэнхэр жишээ"-г хэн ч өөрөө зохион байгуулж болно

Өнөөдрийг хүртэл Bluesky 300 гаруй бие даасан PDS-тэй. Энэхүү өөрчлөлт нь сүлжээг зохих ёсоор хуваарилсан бөгөөд Bluesky дээрх мэдээллээ эзэмшихийг хүссэн хэн бүхэн өөрөө жишээ авах боломжтой. Цаг хугацаа өнгөрөхөд бид ямар тохиолдлуудыг өөрөө зохион байгуулж, төлбөрийн оронд бүрэн өгөгдөл эзэмших боломжийг олгодог үйлчилгээг эхлүүлэхийг харж болно.

Үзэгдэл: цаашид дахин засварлах

Саяхан Bluesky Appview үйлчилгээгээ дахин засварлаж, модерацийн функцийг өөрийн үйлчилгээнд татан оруулсан. Озон :

Appview-ээс Озон руу шилжих зохицуулалт болон шошгоны дараах функцууд

Хэрэглэгчид өөрсдийн Озоны үйлчилгээг ажиллуулах боломжтой бөгөөд энэ нь Bluesky системд зохицуулагч байх гэсэн үг юм. Энд байна энэ үйлчилгээг хэрхэн өөрөө зохион байгуулах талаар дэлгэрэнгүй , мөн Озоны тухай дэлгэрэнгүй .

Мартин Клеппмантай хийсэн архитектурын тойм

Мартин бол алдартай програм хангамжийн инженерийн ном болох Өгөгдөл эрчимтэй програмуудыг зохион бүтээх номын зохиогч бөгөөд тэрээр Блюзкийн багт долоо хоног бүрийн дуудлагаар зөвлөгөө өгдөг.

Мартин болон Блюзкийн баг Блюзкийн системийг тодорхойлсон нийтлэл нийтлэв. Bluesky ба AT протокол: Төвлөрсөн бус сошиал медиа ашиглах боломжтой . Үүнд тэд архитектурын нарийвчилсан тоймыг санал болгодог:

Блюзкийн архитектур. Зургийн эх сурвалж: Bluesky болон AT протокол

Дээрх диаграмм нь програмын өгөгдлийн урсгал хэрхэн явагддагийг харуулж байна:

  1. Хувийн мэдээллийн сервер (PDS) : эдгээрийг Bluesky-д байршуулсан (өнөөдөр 20 орчим) эсвэл өөрөө зохион байгуулсан (ойролцоогоор 300) байж болно.

  2. Реле: Эдгээр нь PDS-ээс үйл явдлуудыг цуглуулдаг. Bluesky нь өөрийн дэд бүтцэд "албан ёсны" релетэй боловч бусад хөгжүүлэгчид бүх PDS-ийг сонсох өөр реле тохируулах боломжтой.

  3. Галын хоолой : релений гаралт.

  4. Шошго ба тэжээлийн генераторууд: эдгээр шингэцтэй галын хоолойн үйл явдлууд. Тэдгээрийг Bluesky-д байршуулах эсвэл Bluesky-ээс хамааралгүйгээр зохион байгуулж болно.

  5. Апп харах: Bluesky-ийн байршуулсан "албан ёсны" програмын харагдац эсвэл өөр програмын харагдац

  6. Өгөгдөл PDS руу буцаж байна : Bluesky эсвэл гаднаас байршуулсан тэжээлийн генераторууд нь үйл явдлын өгөгдлийг PDS-д буцааж өгдөг.

5. Мэдээллийн сангийн давхаргыг өргөжүүлэх

Postgres-тэй холбоотой асуудлуудыг өргөжүүлэх

Өргөтгөх асуудал 2023 оны дундуур олон нийтэд бета хувилбар гарснаас хойш 2-3 сарын дараа гарч ирэв.

  • Холболтын сангийн асуудал, цоожны маргаан . Postgres холболтын сангийн нөөц болон Node-ийн үйл явдлын гогцоо нь муу санал хүсэлтийн гогцоонд орсон. Баг Postgres түгжээний маргааны асуудлыг ажиглав. Энэ нь ижил өгөгдөлд нэгэн зэрэг нэвтрэхийг оролдсон олон процессыг хэлдэг боловч өгөгдөл нь нэг процессоос бусад бүх үйл явцад түгжигдсэн байдаг. Жишээлбэл, олон процесс нэг мөрийг шинэчлэхийг оролдох үед.

  • Жижиг Postgres тасалдал. Postgres нь хөгжүүлэгчид аль нь дээр нэг их хяналт тавьдаггүй асуулгын төлөвлөгөө Энэ нь авах болно. Блюзки санамсаргүй байдлаар 1000 дахин удаан үргэлжилсэн асуултын төлөвлөгөөний улмаас хэд хэдэн жижиг тасалдалтай байсан.

  • Хэвтээ масштабтай байх хэрэгцээ. Хэвтээ масштаб нь үйлчилгээнд илүү олон машин нэмж байгаа бөгөөд ингэснээр энэ системийн нэвтрүүлэх чадвар шинэ машин бүрт шугаман байдлаар сайжирдаг. Гэхдээ Postgres нь гүйлгээний баталгаатай нэг мэдээллийн сан хэлбэрээр ажилладаг тул хэвтээ масштабыг дэмждэггүй бөгөөд энэ нь шаардлагатай бол бүхэл бүтэн сүлжээнд саад тотгор учруулдаг гэсэн үг юм.

Сануулахад, энэ бүх масштабын сорилтууд гарч ирэхэд баг өчүүхэн хэвээр байсан. Зөвхөн 6 хөгжүүлэгч байсан ( Даниел , Девин , Брайан болон Жэйк арын хэсэгт, мөн Паул болон Анш урд талд). Дараа нь 2023 оны зун Даниел зүүд зүүдлэв:

"Нэг л стресстэй өдрийн дараа би Жэй [Блюзкийн гүйцэтгэх захирал], Девин хоёр миний арын хашаанд байна гэж зүүдэлсэн. Хаа сайгүй могойнууд байсан. Бид могойнуудыг сандран бужигнуулж, цуглуулах гэж байсан. Гэвч тэр үед Девин зогсоод бид бүгдэд хандан: "Хүлээгээрэй, хүлээгээрэй, залуусаа, би үүний тулд Postgres өргөтгөл байгаа гэж бодож байна!"

Postgres-ийг орлох ScyllaDB

Баг нь өгөгдлийг хэрхэн индексжүүлж, асууж байгааг нарийн хянадаг хэвтээ өргөтгөх боломжтой өгөгдөл хадгалах шийдэл хэрэгтэйг мэдэж байсан.

ScyllaDB Энэ нь өргөн баганын мэдээллийн сан (NoSQL төрөл) учраас хэвтээ өргөтгөх чадварыг дэмждэг тул тодорхой сонголт байсан. Өргөн баганын мэдээллийн сан нь олон сервер эсвэл мэдээллийн сангийн мөрөнд тархах боломжтой уян хатан баганад өгөгдлийг хадгалдаг. Тэд мөн өөр өөр баганатай хоёр мөрийг дэмжих боломжтой бөгөөд энэ нь өгөгдөл хадгалахад илүү уян хатан байдлыг өгдөг!

Өргөн баганын мэдээллийн сан нь өгөгдлийг баганад хадгалдаг тул маш өргөтгөх боломжтой, уян хатан байдаг. Нэг хүснэгтийн хоёр мөр нь өөр өөр төрөл эсвэл тооны баганатай байж болно. Эх сурвалж: AWS

Хамгийн том солилцоо:

  • Өгөгдлийг хэвийн бус болгох ёстой, Энэ нь харилцааны мэдээллийн сан шиг үр дүнтэй хадгалагдаагүй гэсэн үг юм. Үндсэндээ та илүү их өгөгдөл хадгалах бөгөөд илүү их хадгалах зай шаардах болно.

  • Өгөгдлийг бичихэд индексжүүлэх шаардлагатай. Өргөн баганын мэдээллийн санд бичих нь харилцааны мэдээллийн сангаас илүү үнэтэй байдаг. Мөр болон баганыг өөрчилсөн тохиолдолд холбогдох индексүүдийг шинэчлэх шаардлагатай байдаг бөгөөд энэ нь ихэвчлэн эдгээр мэдээллийн санг харилцааны мэдээллийн сангаас илүү бичихэд илүү эрчимтэй болгодог.

Багийнхан Postgres-ийг анх сонгосондоо сэтгэл хангалуун байсан гэж Даниел хэлэв.

"Постгрес эрт дээр үеэс маш сайн байсан, учир нь бид өгөгдлөөс яг ямар асуулт асуухаа сайн мэдэхгүй байсан. Энэ нь бидэнд өгөгдлийг мэдээллийн сан руу шидэж, тэндээс олж мэдэх боломжийг олгодог. Одоо бид ажиллуулах шаардлагатай өгөгдөл, асуулгын төрлийг ойлгож байгаа тул үүнийг Скиллад яг хэрэгтэй байдлаар индексжүүлж, асуух асуултынхаа API-г өгөх боломжийг бидэнд олгож байна."

SQLite

ScyllaDB нь Bluesky-ийн хамгийн их уншдаг үйлчилгээ болох Appview-д ашиглагддаг. Гэсэн хэдий ч Хувийн мэдээллийн серверүүд бүхэлдээ өөр зүйлийг ашигладаг: SQLite. Энэ бол мэдээллийн санг бүхэлд нь а-д хадгалдаг C хэл дээр бичигдсэн мэдээллийн сан юм. ганц файл хост машин дээр. SQLite нь эхлүүлэх скрипт гэх мэт үйлчилгээний удирдлага эсвэл хандалтын хяналтын менежментийг шаарддаг бусад ихэнх мэдээллийн сангаас ялгаатай нь "тэг тохиргоо" гэж тооцогддог. SQLite нь эдгээрийн алийг нь ч шаарддаггүй бөгөөд системийн захиргааны давуу эрхгүй нэг процессоос эхлүүлэх боломжтой. Энэ нь "зүгээр л ажилладаг".

Даниел SQLite яагаад PDS-д тохиромжтой байсныг тайлбарлав.

"Бид хэрэглэгч бүрт өгөх шинэ арга барилыг баримталсан тэдний өөрийнх SQLite мэдээллийн сан. Postgres-ийн хараат байдлыг арилгаснаар бид мэдээллийн санг удирдах талаар санаа зовохгүйгээр 'PDS in the box' ажиллуулах боломжтой болсон. Бид хуулбар эсвэл бүтэлгүйтэл гэх мэт зүйлд санаа зовох шаардлагагүй болсон. Үүнийг хариуцлагагүй гэж бодож байгаа хүмүүсийн хувьд: санаа зовох хэрэггүй, бид PDS дээрх бүх өгөгдлийг нөөцөлж байна!"

SQLite үнэхээр сайн ажилласан, учир нь PDS нь хамгийн тохиромжтой хэлбэрээрээ нэг түрээслэгчийн систем юм. Бид эдгээр ганц түрээслэгчийн SQLite мэдээллийн сантай болсноор үүнийг эзэмшсэн.

Бид мөн холбооны сүлжээг бий болгож байна гэж үзсэн. Бид өгөгдөл байршуулахдаа Цэнхэр бус PDS-д ажилладагтай яг адилхан байдлаар нэгтгэсэн."

PDS-ийг Postgre-ээс SQLite руу шилжүүлснээр үйл ажиллагаанд гайхалтай ахиц гарсан гэж Даниел нэмж хэлэв.

"Энэ рефактороос хойш PDS-ийг ажиллуулах мөрөөдөл байсан. Тэдгээрийг ажиллуулахад хямд (Postgres үйлчилгээ байхгүй!) бөгөөд үйл ажиллагааны нэмэлт зардал бараг шаарддаггүй!"

6. Infra стек: AWS-ээс Ерөнхий сайд хүртэл

Bluesky-ийн дэд бүтцийг анх Amazon Web Services (AWS) дээр байрлуулсан бөгөөд баг нь дэд бүтцийн үйлчилгээг код болгон ашигласан. Пулуми . Энэ арга нь тэднийг эртнээс хурдан хөдөлгөх, мөн сүлжээ хөгжихийн хэрээр хэт томруулах боломжийг олгодог. Мэдээжийн хэрэг, сүлжээ өсөхийн хэрээр дэд бүтцийн төлбөр нэмэгдсэн.

Ерөнхий сайд руу шилжинэ

Зардал, гүйцэтгэл нь ерөнхий бэлтгэл дээр шилжих гол хөдөлгөгч хүч байсан. Баг нь өмнөхөөсөө 10 дахин илүү хүчирхэг техник хангамжийг үнийн багахан үнээр авсан. Энэ шийдвэр хэрхэн гарсан бэ? Түлхүүр хөлсөлсөн хүн том үүрэг гүйцэтгэсэн.

Блюзкийн томоохон туршлагатай анхны ажилд авсан хүн бол 2023 оны 1-р сард элссэн Жэйк Гоулд бөгөөд AWS-ийн зардлын шинжилгээг өмнөх үеийнхтэй харьцуулж эхэлсэн. Эцэст нь тэр багаа энэ том өөрчлөлтийг хийхийг ятгасан.

Гэхдээ баг ирээдүйн ачааллыг хэрхэн урьдчилан таамаглаж, тэдэнд хэрэгтэй техник хангамжийн ул мөрийг хэрхэн тооцоолсон бэ? Даниел дурсав:

"Бид чиг хандлагыг харж, найдвартай бооцоо тавихыг хичээсэн. Бид "За, өнөөдөр бид хэт их хүлээгдэж байна" гэж бодож байсан. Бид хэт их алсын хараатай байхыг хүсч байгаа тул техник хангамжийг сайжруулахгүйгээр өсөх орон зайтай, гэхдээ дэлхий дээр ямар нэг зүйл тохиолдвол тогтвортой байхын тулд хүн бүр энэ тухай нийтлэхээр шийдсэн."

Бид архитектураа хэвтээ байдлаар өргөтгөх боломжтой байхаар бүтээсэн бөгөөд ингэснээр илүү олон машин шидэхэд л илүү их хүчин чадал нэмэх боломжтой. Байдаг зарим нь шинэ машин худалдаж авахад цаг хугацаа шаардагддаг, гэхдээ бидэнд тавиур дээр зай бий. Бид сүлжээний холболтуудад зайтай. Шилжүүлэгч нь үүнд тохиромжтой.

Хэрэв бид масштаблах шаардлагатай бол энэ нь үнэхээр "дахин сервер аваад холбоно!" Бид дата төвд ажиллаж байгаа машинуудаа хоёр дахин нэмэгдүүлсний дараа хүчин чадлаа хоёр дахин нэмэгдүүлэх боломжтой. Энэ чихэрлэг юм!"

Үүл-агонист болох нь AWS-ээс гарах эхний алхам байв. Жэйкийг элссэнээс хойш зургаан сарын дараа буюу 2023 оны 6-р сар гэхэд Блюзкийн дэд бүтэц үүлний зовлонтой байв.

Bluesky-д шаардлагатай бол AWS-ийг ашиглах сонголт үргэлж байдаг. Хэрэв одоо байгаа дэд бүтцэд хүчин чадал, цар хүрээний асуудал байгаа бол AWS дээр нэмэлт виртуал машинуудыг босгоход тийм ч хэцүү биш байхаар бүтээгдсэн.

Өнөөдөр Хувийн өгөгдлийн серверүүд нь үүлэн дэд бүтцийн борлуулагчийн байршуулсан нүцгэн металл серверүүд юм. Vultr . Bluesky одоогоор 20 үйл ажиллагаа явуулж байгаа бөгөөд PDS бүр 300,000 орчим хэрэглэгчийг дэмждэг.

Блюзкийн ачаалал тоогоор

Одоогоор Bluesky-ийн систем ийм төрлийн ачааллыг харж байна:

  • 60-100 үйл явдал / секунд сүлжээгээр бодит цаг хугацаанд илгээсэн мессежийг ялгаруулдаг "үндсэн" үйлчилгээ болох галын хоолойн үйлчилгээ хүлээн авсан. Хоёрдугаар сард Bluesky-г олон нийтэд танилцуулах үеэр оргил үе нь 400 үйл явдал/секунд байв.

  • 400 цагийн хуваарийн ачаалал/секунд. Хугацааны ачаалал гэдэг нь хэрэглэгч (эсвэл үйлчлүүлэгч) одоогийн цагийн хуваариа авах хүсэлт гаргах явдал юм.

  • 3500 хүсэлт / секунд сүлжээгээр.

7. Нийгмийн сүлжээг бий болгох бодит байдал

Хаахын тулд бид (Гергели, Элин нар) багуудаас өндөр өсөлттэй нийгмийн сүлжээг бий болгох ямар байдаг талаар хэдэн асуулт асуув.

Таны байнга тулгардаг гал унтраах ердийн асуудал юу вэ?

"Хэрэглэгчдийн шилжилт хөдөлгөөн бүр шинэ асуудлуудыг авчирч, бид бага зэрэг гал унтраах ажлыг хийж байгааг олж мэдэв. Нэг өдөр онцгой анхаарал татахуйц үйл явдлын дараа өсөлт зогсох шинж тэмдэг илрээгүй тул бид үйлчилгээгээ үргэлжлүүлэхийн тулд бүртгүүлэхээ түр зогсоох шаардлагатай болсон." - Даниел

"Элон Маск" гэж юу гэж нэрлэгддэг байсан бэ?

"Хэрэглэгчийн овойлт хэзээ ирэхийг бид хэзээ ч сайн мэдэхгүй байсан бөгөөд урилга ашиглахыг хүлээж зэрлэг байгальд байсан. Дараа нь ямар нэг зүйл тохиолдож, олон мянган хэрэглэгчид гэнэт нэгдэв. Бид эдгээр өдрүүдийг EMEs (Elon Musk Events) гэж нэрлэж эхэлсэн, учир нь тэд ихэвчлэн Twitter дээр ямар нэгэн өөрчлөлтөөр өдөөн хатгасан." - Даниел

"Чамайг сандал тавиад хөргөгчнөөс ундаа ав гэж хэлж байхад үдэшлэг зохион байгуулж, бүгд 2 цагийн өмнө ирсэнтэй адил байсан." - Пол

Нийгмийн сүлжээний тасалдал юугаараа ялгаатай вэ?

"Үйлчилгээг идэвхгүй болгох эсвэл түр зогсоох нь хэзээ ч хөгжилтэй байдаггүй, гэхдээ энэ нь үнэхээр олон тооны сэтгэл хөдлөл, хэрэглэгчийн баазаар бахархах хачирхалтай мэдрэмжийг бий болгосон." - Даниел

"Гадагшаа гарах нь хөгжилтэй биш, гэхдээ тэдгээр нь ерөнхийдөө амьдрал, үхэл биш юм. Хэрэв та замын хөдөлгөөнийг харвал ихэвчлэн тасалдсаны дараа замын хөдөлгөөн нэмэгдэх хандлагатай байдаг. Мөн элссэн олон хүмүүс сүлжээнд байхгүй байсан тул алдсан хөгжилтэй тасалдлын тухай л ярьж байна." - Жэйк

Хөгжүүлэгчийн баг бүхэлдээ Bluesky дээр байгаа бөгөөд хэрэглэгчийн санал хүсэлтэд идэвхтэй хариу үйлдэл үзүүлдэг. Та үүнийг яаж, яагаад хийдэг вэ?

"Хүмүүс зүгээр л бидэн рүү залгаж, асуудлаа тайлбарлаж байгаа нь маш сайн хэрэг. Бид зүгээр л "Хөөе, чи надад дэлгэцийн агшинг өгч чадах уу? Та ямар платформ дээр байгаа вэ?" Энэ бол маш хурдан дэмжлэг үзүүлэх эргэлт юм. Нийгмийн аппликейшн байгуулахын том давуу тал нь таны үйлчлүүлэгчид яг тэнд байгаа бөгөөд ямар нэг зүйл болохгүй байвал танд хэлэх болно.

Бодит цагийн хэрэглэгчдийн санал хүсэлт нь сүүлийн үед хэлгүй үгсийг хэрхэн эрэмбэлсэн тухай байв. Ямар нэг зүйл ямар чухал болохыг илтгэх дохионы хувьд, та энэ функцийг нэмэхийн тулд PR авч эхлэхэд олон тонн хүмүүс гарч ирэх бөгөөд энэ нь програмаас асууж буй хүмүүсийг дурдахгүй байхын тулд танд маш их зүйлийг хэлж өгдөг." - Пол

Авах арга замууд

Энд Гергели . маш их баярлалаа Даниел болон Паул Блюзки хэрхэн ажилладаг талаар энэ гүн гүнзгий шумбалтын нэг хэсэг! Та чадна Bluesky-г туршиж үзээрэй өөртөө зориулж, илүү ихийг мэдэж аваарай Bluesky-ийн AT протокол , эсвэл түүний архитектурын тухай . Бас би ч гэсэн Bluesky дээр .

Төвлөрсөн бус архитектур нь өөр сэтгэлгээг шаарддаг. Үнэнийг хэлэхэд, би "төвлөрсөн" архитектурыг барьж, зохион бүтээхэд маш их дассан тул серверүүдийг ажиллуулж байна гэсэн бодол төрж байна. компаниас гадуур их харь юм. Миний шууд бодол:

  • Энэ нь хангалттай аюулгүй юу? Хортой жүжигчид гүйж чадна юу ч эдгээр серверүүд дээр сүлжээг хэт ачаалах эсвэл систем дэх эмзэг байдлыг ашиглахыг оролдоорой. Bluesky-ийн баг мөн ийм системд зориулсан API-г зохион бүтээхдээ аюулгүй байдлын загвар нь хэрхэн анхаарч үзэх хэрэгтэйг онцлон тэмдэглэв.

  • Програм хангамжийн хувилбарыг хэзээ ч шинэчилдэггүй гадаад зангилааны талаар юу хэлэх вэ? Тэд хэрхэн алдаа засах вэ? Мөн хувилбарын талаар юу хэлэх вэ? Сүлжээнээс "хоцрогдсон үйлчлүүлэгчид"-ийг хэрхэн таслах вэ?

  • Эцэст нь би бодлоо; “Хөөх, ийм зүйл надад анх мэдэрч байсан төөрөгдлийг санагдуулдаг Skype-ийн үе тэнгийн сүлжээ

Энэ нь намайг илүү өргөн хүрээнд бодоход хүргэсэн учраас бид Bluesky-ийн талаар гүнзгий шумбаж чадсандаа баяртай байна. Диаграм дээр зурсан сервер нь зөвхөн "манай серверүүдийн бүлэг" гэсэн утгатай байхаа больсон бөгөөд энэ нь "нэмэх, бүлэг гадаад серверүүд" гэсэн утгатай байж болно. Үүнийг ойлгосны дараа энэ нь амархан болно. Тархсан архитектурын тухай ойлголт улам бүр түгээмэл болно гэж найдаж байгаа тул тархсан болон нэгдсэн системийг зохион бүтээх энэхүү ур чадвар нь ирээдүйд ашигтай байж магадгүй юм.

Туршлагатай инженерүүдийн өчүүхэн баг юу бүтээж чадах нь үнэхээр гайхалтай. Би Блюзкийн үндсэн баг мөн эсэхийг гурав дахин шалгах хэрэгтэй болсон зөвхөн Бараг есөн сарын турш хоёр инженер байсан бөгөөд энэ хугацаанд тэд протоколын үндсийг бүтээж, iOS болон Android програмуудад ахиц дэвшил гаргасан. Одоо ч гэсэн Bluesky бол 12 орчим инженерээс бүрдсэн маш туранхай баг бөгөөд тэдний барьж буй нарийн төвөгтэй байдал, компанийн өсөлтийн төлөө ажилладаг.

Блюзки рүү гүн гүнзгий шумбах дараагийн хэсэгт бид баг хэрхэн ажилладаг талаар илүү ихийг авч үзэх болно.

Үүл ашиглахын оронд өөрийн дэд бүтцийг эзэмших нь оновчтой сонголт юм шиг санагддаг. Блюзки шаардлагатай ачааллын төрлийг урьдчилан таамаглах боломжтой болсны дараа AWS-ийг орхисноор их хэмжээний хэмнэлт олсон. Энэхүү шилжилтийг удирдаж буй инженер Жэйк Голд үүл үйлчилгээ үзүүлэгчид олон хүний бодож байгаагаас илүү үнэтэй болсон талаар дуугарч байсан. AWS-д өнгөрсөн долоо хоногт подкаст дээр ярихдаа, гэж тэр хэлэв :

"Би AWS-ийн анхны алсын хараагаар 2006 онд анх хэрэглэж эхэлсэн эсвэл эхлүүлэх болгондоо Мурын хууль тэдний тооцоог бууруулж байгаа тул тэд таны тооцоог байнга бууруулна гэж хэлсэн. Ийм зүйл энд тэнд бага зэрэг тохиолдсон боловч бидний бодож байсан шиг тийм зүйл болоогүй."

Үр ашгийн төлөө үүл үйлчилгээ үзүүлэгчдээс татгалздаг нь зөвхөн Блюзки биш гэдгийг битгий мартаарай. Бид өмнө нь аялал жуулчлалын захиалгын платформ Agoda руу гүнзгий шумбаж байсан. мөн яагаад үүлэн дээр байдаггүй вэ? .

Би төвлөрсөн бус, нэгдсэн нийгмийн сүлжээний талаарх бодлоо аажмаар өөрчилж байна. Би бас нэг холбооны нийгмийн сүлжээ болох Mastodon-г нээх үед туршиж үзсэн. Тухайн үед Мастодон онгоцонд суухдаа Bluesky-ээс хамаагүй илүү төвөгтэй санагдаж байсан. Та ашиглахын тулд сервер сонгох хэрэгтэй байсан ч өөр өөр серверүүд өөр өөр дүрэмтэй байдаг бол Bluesky илүү зөөлөн байсан. Гэсэн хэдий ч хэрэглэгчийн хувьд би эдгээр нийгмийн сүлжээнүүд давамгайлсан платформуудаас ямар ялгаатай болохыг мэдэхгүй байсан.

Блюзкийн архитектурын талаар олж мэдсэнээр л би төвлөрсөн бус нийгмийн сүлжээний дизайны зорилгыг үнэлдэг болсон. Одоогийн байдлаар нийгмийн сүлжээг зөвхөн тэдгээрийг эзэмшдэг компани ажиллуулдаг. Гэхдээ төвлөрсөн бус сүлжээ нь серверүүдийг бусад баг/байгууллага/хувь хүмүүс ажиллуулах боломжийг олгодог. Энэ нь тийм ч том асуудал биш мэт санагдаж болох ч энэ нь нийгмийн сүлжээ нь толгой компанийн зохицуулалтын бодлогоос хамааралтай байхаа больсон гэсэн үг юм.

Төвлөрсөн бус нийгмийн сүлжээнүүд нь хэрэглэгчдэд захиалгат алгоритм, вэб сайт, гар утасны програмуудыг ашиглах боломжийг олгодог бөгөөд энэ нь хөгжүүлэгчдэд шинэлэг туршлага бий болгох боломжийг бий болгодог. Үүний эсрэгээр та X, Threads эсвэл LinkedIn-д зориулсан гуравдагч талын үйлчлүүлэгчийг бий болгож чадахгүй.

Төвлөрсөн бус нийгмийн сүлжээнүүд техникийн бус хүмүүст хэр их таалагддагийг би одоог хүртэл мэдэхгүй байгаа ч би Bluesky, Mastodon болон бусад төвлөрсөн бус нийгмийн програмуудыг сонирхож байна. Магадгүй тэд Big Tech-ийн олон нийтийн мэдээллийн хэрэгсэлд ноёрхохыг эсэргүүцэж, эсвэл ядаж нийгмийн сүлжээ гэж юу болох талаар хүмүүсийн ойлголтыг өөрчилж чадна.

Дараагийн дугаарт бид Bluesky-ийн инженерийн соёлыг илүү гүнзгий судлах болно: компанийн соёл, технологийн стекийг илүү гүнзгий судлах, тэд гайхалтай жижиг баг, компанитай хэрхэн ийм их зүйлийг бүтээж байгааг харах болно. Арав гаруй инженерүүд 5 сая гаруй хэрэглэгчдэд гарааны бизнест хэрхэн тусалдаг талаар бид бүгд маш их зүйлийг сурч чадна гэж би бодож байна.

Энэ дугаар таалагдсан уу? Долоо хоног бүр энэ мэдээллийн товхимолыг авахын тулд бүртгүүлнэ үү?

Одоо бүртгүүлнэ үү