Bloomberg-ийн хадгалах үйлчилгээний баг нь нээлттэй эх сурвалж болон SDS дээр тулгуурладаг

Bloomberg-ийн хадгалах үйлчилгээний баг нь нээлттэй эх сурвалж болон SDS дээр тулгуурладаг

TL, DR: Bloomberg Storage Engineering баг нь дэд бүтцэд саад учруулахгүй, тахлын үед арилжааны тогтворгүй байдлын хүнд ачааллыг тэсвэрлэх чадвартай дотоод хэрэглээнд зориулсан үүлэн хадгалах санг бий болгосон.

Мэттью Леонард Bloomberg Storage Engineering багт техникийн менежерээр ажиллаж байсан ажлынхаа талаар ярихдаа ихэвчлэн "сорилттой", "хөгжилтэй" гэсэн үгсийг ашигладаг. Хамгийн сүүлийн үеийн NVMe-д суурилсан SAN массивуудаас эхлээд DevOps дахь нээлттэй эхийн програм хангамжаар тодорхойлогдсон хадгалах сан хүртэлх өргөн хүрээний багтаамжаас үүдэлтэй бэрхшээлүүд бий. Эндээс л "хөгжил" эхэлдэг (Хабре дээрх миний аватарыг үзнэ үү, ойролцоогоор. орчуулагч).

Леонард болон түүний 25 мэргэжил нэгт багийнхан Майкл Блүүмбэргийг тэрбумтан болгосон технологи болох Bloomberg Terminal-д зориулсан программуудыг боловсруулж буй 100 инженерийн 6000 петабайт багтаамж, дотоод үүлэн сүлжээг хянадаг. Тус баг нь Bloomberg Engineering-ийн хадгалах системийг зохион бүтээж, барьж, засвар үйлчилгээ хийдэг.

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

Гайхалтай нь энэ нь байдлыг улам дордуулсангүй гэж хэлмээр байна. Дасан зохицох богино хугацаа байсан - хүн бүр гэрээсээ ажиллахад бэлэн биш байсан. Нэг, хоёр долоо хоногийн дараа бүгд үүнийг ойлгосон. Бид өөрсдийгөө завгүй байлгах, тоног төхөөрөмж худалдан авах, шинэчлэх, компанийг дэмжих зардлыг нэмэгдүүлэх арга замыг хайж чадсан. Бид бүтээлч байх ёстой байсан ч бид хохироогүй

Хамгийн том сорилт нь COVID-19-ийн оргил үе болохоос өмнө байсан байж магадгүй. Энэ нь тахлын дэлхийн эдийн засагт үзүүлэх нөлөөллийн талаар санаа зовсны улмаас зах зээлийн арилжаа тогтворгүй байсантай холбоотой юм. Дэлхийн хөрөнгийн зах зээлээс Bloomberg терминал руу урсаж буй мэдээллийн хэмжээ бараг хоёр дахин нэмэгдэж, гуравдугаар сарын сүүлчээр зарим өдөр 240 тэрбум мэдээлэлд хүрчээ. Энэ бол хадгалах системийн ноцтой туршилт юм.

Хадгалах хэрэгцээгээ нэг өдрийн дотор хоёр дахин нэмэгдүүлбэл энэ нь сонирхолтой асуудал үүсгэдэг. Бид үүнийг даван туулж, програм боловсруулах багуудад шаардлагатай орон зай, гүйцэтгэлийг хангаж чадсан. Үүний ихэнх нь бид хадгалах системийн талаар хэрхэн боддогтой холбоотой. Өнөөдөр бид юу ч бүтээхгүй байна. Бид "ABC ашигладаг, тиймээс бид ABC-ийн дэд бүтцийг бий болгоно" гэж хэлдэггүй. Бид "өгөгдлийн төсөв" гэж нэрлэдэг зүйлээ багуудтайгаа хамт хэрэглээг урьдчилан таамаглах, ашиглалт, гүйцэтгэлийн чиг хандлагыг шинжлэх, мөн аюулгүй байдлын талаар хардаг. Энэ төрлийн төлөвлөлт, сэтгэлгээ, арга зүйн шалгалт нь бидэнд хөлсөө урсгахгүйгээр үсрэлт дээр эрс арга хэмжээ авах боломжийг олгодог. Мэдээжийн хэрэг, би сандарч байсан ч өөрийнхөө оронд байхдаа тухтай байсан.

Леонард саяхан SearchStorage-тэй өгөгдөлд суурилсан бизнесүүдэд зориулсан хадгалах санг удирдах талаар дэлгэрэнгүй ярьсан. Тэрээр Bloomberg мэдээллийн төвд аливаа өгөгдлийг хадгалахын зэрэгцээ хэрэглэгчдэдээ AWS функцээр хангах чадвартай, хувийн үүл хадгалах шийдлийг санал болгоход юу хэрэгтэй болох талаар ярилцав.

Хэрэв тахал байхгүй бол Bloomberg-ийн инженерүүд хадгалалтын менежментэд ямар бэрхшээл тулгардаг вэ?

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

Үүний тулд та ямар стратеги баримталж байна вэ?

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

Таны хадгалах дэд бүтэц ямар харагдаж байна вэ?

Бид маш олон янзын экосистемтэй, олон янзын хөгжүүлэгчидтэй учраас ганц бүтээгдэхүүн санал болгож чадахгүй. Бидэнд объект, файл, блок хадгалах сан байна. Эдгээр нь өөр өөр бүтээгдэхүүн бөгөөд бид тэдгээрийг хүргэх өөр өөр төрлийн технологийг санал болгодог. Блоклохын тулд бид SAN ашигладаг. Бидэнд мөн SDS байгаа бөгөөд энэ нь гүйцэтгэлийн өөр өөр шаардлага бүхий блок хадгалах өөр сонголтыг санал болгодог. Файлуудын хувьд бид NFS ашигладаг. SDS нь мөн объект хадгалахад ашиглагддаг. Блок болон объектын хэсгүүд нь тооцоолох, хадгалах дотоод хувийн үүл үүсгэдэг.

Тэгэхээр та нийтийн үүл хадгалах санг ашигладаггүй юу?

Яг зөв. Зарим хөгжүүлэлтийн багууд нийтийн үүл ашиглах зөвшөөрөлтэй байдаг. Гэхдээ бидний бизнесийн онцлогоос шалтгаалан бид хананаас гарч буй зүйлсийг илүү хянахыг илүүд үздэг. Тийм ээ, бид өөрсдийн мэдэлд байдаг өөрийн гэсэн үүлтэй. Энэ бол манай удирдлагын дор байрлах манай дата төвд байрладаг төхөөрөмж юм.

Манай мэдээллийн төвүүдэд бид олон үйлдвэрлэгчийн стратегийг илүүд үздэг. Тэд том ханган нийлүүлэгчид боловч бид яг хэн гэдгийг хэлэхгүй (ямар ч нийлүүлэгчийг дэмжихгүй байх нь Bloomberg-ийн бодлого юм. ойролцоогоор. орчуулагч).

Та хувийн үүлээ бүтээхийн тулд хэт нэгтгэсэн дэд бүтцийг ашиглаж байна уу?

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

Хувийн үүл байгуулахын тулд ямар саад бэрхшээлийг даван туулах ёстой вэ?

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

Танд AWS болон бусад нийтийн үүлэн дээр байгаа хамгийн сүүлийн үеийн боломжууд хэрэгтэй гэж бодож байна уу?

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

Та ямар хадгалах төхөөрөмж ашигладаг вэ?

Бид хамгийн сүүлийн үеийн тоног төхөөрөмж ашигладаг. Манай дотоод үүл нь NVMe Flash дээр суурилсан бөгөөд эдгээр системийг маш хүчирхэг болгодог. Энэ нь бидний амьдралыг бага зэрэг хөнгөвчлөхөөс гадна манай хөгжүүлэгчдэд хадгалах чадварын талаар санаа зовох хэрэггүй болсон нь бас сайхан боломж юм.

Та объект хадгалах газрыг юунд ашигладаг вэ?

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

Кубернетес болон контейнерууд таны хувьд хэр их үүрэг гүйцэтгэдэг вэ, энэ нь хадгалахад хэрхэн нөлөөлдөг вэ?

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

Редакторын NB: 15 оны 2020 сарын XNUMX бэлэн болно Ceph видео курс. Та алдааг тэсвэрлэх чадварыг сайжруулахын тулд төслүүддээ ашиглах Ceph сүлжээ хадгалах технологийг сурах болно.

Бид гурван багтай, эхнийх нь хадгалах API баг юм. Тэд Bloomberg-ийн апп хөгжүүлэлтийн үйлчлүүлэгчдэд зориулсан программчлагдсан хандалт, төгсгөлийн цэгүүд болон урьдчилан тодорхойлсон ажлын урсгалыг бий болгодог. Энэ бол бүрэн стек вэб хөгжүүлэгчдийн баг бөгөөд тэд node.js, python, Apache Airflow зэрэг нээлттэй эхийн технологийг ашигладаг тул контейнержуулалт, виртуалчлалыг судалдаг.

Бидэнд мөн бит, байтыг хөдөлгөдөг хоёр техникийн баг бий. Тэд тоног төхөөрөмжтэй илүү шууд холбоотой байдаг. Бидэнд маш олон тоног төхөөрөмж байгаа бөгөөд эдгээр багууд виртуалчлал, контейнер ашигладаггүй.

Бид энэ салбарт болж буй үйл явдлуудтай хөл нийлүүлэн алхахыг хичээж, Kubernetes CSI драйверуудыг судалж, мөн Kubernetes хадгалалтыг өөрт байгаа технологид нийцүүлэн ажиллуулж чадах эсэхээ үнэлэхийн тулд Bloomberg дахь Kubernetes-ийг хэрэгжүүлэгч багтай нягт хамтран ажиллаж байна. ажиллаж байна. Бид байнгын санах ойд холбогдсон Kubernetes-ийг дэмжихийн тулд SDS ашигладаг. Бид энэ технологийг амжилттай хөгжүүлсэн бөгөөд Bloomberg дээр үүнийг хэрхэн бусад бүх хүмүүст нээлттэй болгох талаар хоёр багийн хооронд хэлэлцүүлэг үргэлжилж байна. Энэ нь бүрэн боломжтой гэдгийг бид харуулсан.

Та өөр ямар нээлттэй эхийн програм хангамж, ялангуяа хадгалахад ашигладаг вэ?

Бид програмын урсгалыг хязгаарлахын тулд Apache Airflow, HAProxy ашигладаг. Бид мөн SDS платформ болох Ceph ашигладаг. Үүний тусламжтайгаар та командын нэг системтэй байж болох ч үйлчлүүлэгчдэд олон интерфейсээр хангах боломжтой. Виртуалчлалын платформуудын нэг нь OpenStack дээр ажилладаг - бид энэ багтай нягт хамтран ажилладаг. Бид нээлттэй эхийн SDS платформыг хадгалахад ашигладаг нээлттэй эхийн виртуалчлалын платформтой. Хөгжилтэй юмаа.

Та ойрын XNUMX-XNUMX жилийн хугацаанд хадгалах ямар технологийг бодож байна вэ?

Бид хадгалах салбарт болж буй бусад гайхалтай шинэ зүйлсийг үргэлж хайж байдаг. Энэ бол бидний ажлын нэг хэсэг бөгөөд энэ нь "таны SAN энд байна, энд удирд, энд таны NFS энд байна, тэнд удирд" биш юм. Бид үйлчлүүлэгчидтэйгээ харилцахыг хичээдэг, i.e. Манай програм хөгжүүлэгчдийн зүгээс. Тэд ямар асуудлыг шийдэх гэж байгаа болон энэ нь манай Блүүмбэргийн гадаад үйлчлүүлэгч болох банкууд болон манай программ хангамжийг ашигладаг бусад хүмүүст хэрхэн нөлөөлөхийг ойлгохын тулд бид хамтран ажилладаг. Дараа нь бид зорилгодоо хүрэхэд нь туслах боломжийг хайж олохын тулд өгөгдөл хадгалах ертөнцөд буцаж очдог. Тэдний SLA-д тохирсон хадгалах технологийг олоход нь бид хэрхэн туслах вэ? Манайд маш олон инженерүүд гайхалтай зүйл хийдэг учраас энэ нь хэзээ ч уйддаггүй.

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

P.S-д бага зэрэг туслах.

P.S. Болж өгвөл есдүгээр сарын 28-30-ны өдөр гэдгийг сануулмаар байна эрчимтэй Кубернетес бааз, Кубернетесийг мэдэхгүй ч үүнтэй танилцаж, хамтран ажиллахыг хүсдэг хүмүүст зориулав.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх