Bloomberg сақтауды қолдау тобы ашық бастапқы кодқа және SDS-ке сүйенеді

Bloomberg сақтауды қолдау тобы ашық бастапқы кодқа және SDS-ке сүйенеді

TL; DR: Bloomberg Storage Engineering командасы инфрақұрылымға кедергі жасамайтын және пандемия кезіндегі сауда құбылмалылығының ауыр жүктемесіне төтеп бере алатын ішкі пайдалану үшін бұлттық қойманы жасады.

Мэттью Леонард өзінің Bloomberg Storage Engineering командасының техникалық менеджері ретіндегі жұмысы туралы айтқанда «қиын» және «көңілді» сөздерін жиі қолданады. Қиындықтар ең соңғы NVMe негізіндегі SAN массивтерінен бастап DevOps жүйесіндегі ашық бастапқы бағдарламалық құралмен анықталған жадыға дейінгі сақтаудың кең ауқымынан туындайды. Міне, «қызық» басталады (Хабредегі аватарымды қараңыз, шамамен. аудармашы).

Леонард пен оның 25 әріптесінен тұратын командасы Майкл Блумбергті миллиардер еткен технология Bloomberg Terminal үшін қосымшаларды әзірлеуде 100 петабайттан астам сыйымдылықты және 6000 инженерге арналған ішкі бұлтты бақылайды. Команда Bloomberg Engineering үшін сақтау жүйелерін жобалайды, құрастырады және қызмет көрсетеді.

Қалған IT кәсіптері сияқты, 2020 жыл Сақтау Инженерлік командасының мүшелері үшін ерекше жыл болды, өйткені COVID-19 оларды қашықтан жұмыс істеуге мәжбүр етті. Леонардтың айтуынша, пандемия оның «тұйық командасына» әлеуметтік тұрғыдан әсер етті, өйткені бетпе-бет қарым-қатынас жойылды, бірақ қызметкерлер үйден ноутбукта және бейнеконференцияда жұмыс істеуге тез бейімделді.

Бір қызығы, бұл жағдайды нашарлатпағанын айтқым келеді. Қысқа бейімделу кезеңі болды - барлығы үйден жұмыс істеуге дайын емес. Бір-екі аптадан кейін барлығы мұны түсінді. Осы уақыттарда біз өзімізді бос ұстаудың, жабдықты сатып алудың және жаңартудың және компанияны қолдау үшін шығындарды көбейтудің жолдарын таба алдық. Шығармашылықпен айналысу керек еді, бірақ зардап шеккен жоқпыз

Ең үлкен қиындық COVID-19 шыңына дейін болуы мүмкін. Бұл пандемияның жаһандық экономикаға әсері туралы алаңдаушылыққа байланысты нарықтық сауданың тұрақсыздығына байланысты болды. Дүниежүзілік капитал нарықтарынан Bloomberg терминалдарына түсетін деректер көлемі екі есеге жуық өсіп, наурыз айының соңында кейбір күндерде 240 миллиард ақпаратқа жетті. Бұл сақтау жүйелерінің маңызды сынағы.

Бір күнде сақтау талаптарын бірден екі есе арттырсаңыз, ол қызықты мәселелерді тудырады. Біз мұны еңсере алдық және қолданбаларды әзірлеу топтарына оларға қажетті кеңістік пен өнімділік берілгенін қамтамасыз еттік. Мұның көпшілігі сақтау жүйелері туралы қалай ойлайтынымызға байланысты. Бүгін біз ештеңе жасап жатқан жоқпыз. Біз «ABC пайдаланамыз, сондықтан ABC үшін инфрақұрылымды саламыз» деп айтпаймыз. Біз қолдануды болжау, пайдалану мен өнімділік тенденцияларын талдау үшін өз топтарымызбен «деректерді бюджеттеу» деп аталатын нәрсені жасаймыз, сонымен қатар қауіпсіздікті қарастырамыз. Жоспарлаудың, ойлаудың және әдістемелік тексерудің бұл түрі бізге тер төкпей, асқынуларға қарсы түбегейлі шаралар қабылдауға мүмкіндік береді. Әрине, мен қобалжыдым, бірақ мен өз орнымда болуды жақсы сезіндім.

Леонард жақында SearchStorage-пен деректерге негізделген бизнес үшін сақтауды басқару туралы егжей-тегжейлі сөйлесті. Ол Bloomberg деректер орталықтарында кез келген деректерді сақтай отырып, өз пайдаланушыларына AWS мүмкіндіктерін беру мүмкіндігі бар жеке бұлтты сақтау шешімін ұсыну үшін не қажет болатынын талқылады.

Егер пандемия болмаса, Bloomberg инженерлері сақтауды басқаруда қандай қиындықтарға тап болады?

Бізде көптеген қажеттіліктер бар, біз әртүрлі бағытта жыртылып жатырмыз. Сондықтан біз қолданбаларды әзірлеушілерге жадтың өзі туралы алаңдамай, өз міндеттеріне назар аударуға көмектесу үшін әртүрлі SLA деңгейлерінде көптеген түрлі өнімдерді ұсынуымыз керек.

Ал сіз бұл үшін қандай стратегияны ұстанасыз?

Біз жасауға тырысатын нәрсенің бір бөлігі - сақтау өнімділігін жақсарту. Әзірлеу инженері кіріп, түймені басқан, содан кейін «басу» сиқырлы түрде өз мәселесін шешу үшін дұрыс сақтау түрін алатын AWS моделін ойлап көріңіз.

Сақтау инфрақұрылымыңыз қандай көрінеді?

Бізде өте әртүрлі экожүйе және әртүрлі әзірлеушілер болғандықтан, біз бір өнімді ұсына алмаймыз. Бізде объект, файл және блок қоймасы бар. Бұл әртүрлі өнімдер және біз оларды жеткізу үшін әртүрлі технологияларды ұсынамыз. Блок үшін біз SAN пайдаланамыз. Сондай-ақ бізде өнімділік талаптарының басқа жиынтығы бар басқа блокты сақтау опциясын ұсынатын SDS бар. Файлдар үшін біз NFS пайдаланамыз. SDS объектіні сақтау үшін де қолданылады. Блок пен нысан бөліктері есептеу және сақтау үшін ішкі жеке бұлтты құрайды.

Сонымен, сіз жалпыға қолжетімді бұлттық қойманы пайдаланбайсыз ба?

Барлығы дұрыс. Кейбір әзірлеу топтарында жалпыға қолжетімді бұлттарды пайдалануға рұқсат бар. Бірақ біздің бизнесіміздің сипатына байланысты біз қабырғаларымыздан шығатын нәрселерді көбірек бақылауды қалаймыз. Иә, біздің бақылауымызда болатын өз бұлттарымыз бар. Бұл біздің басқаруымыздағы деректер орталығында орналасқан жабдық.

Біздің деректер орталықтарында біз көп жеткізушілер стратегиясын таңдаймыз. Олар ірі жеткізушілер, бірақ біз нақты кім екенін айтпаймыз (бұл Bloomberg-тің ешқандай жеткізушіге қолдау көрсетпеу саясаты, шамамен. аудармашы).

Жеке бұлтты құру үшін гиперконвергентті инфрақұрылымды пайдаланасыз ба?

Жоқ. Біз Bloomberg-те гиперконвергенцияға көшпейтін бағытты таңдаймыз. Біз есептеуді жадтан ажыратуға тырысып жатырмыз, осылайша оларды дербес масштабтауға болады. Біз қозғалатын бағыт, әсіресе бұлтпен, біз осы екі нысанды ажырата аламыз. Мұның бәрі біздің елдегі кейбір нәрселер қарқынды есептеулерді қажет етеді, ал басқалары сақтауды қажет етеді. Егер сіз оларды біркелкі масштабтасаңыз, ақшаға немесе деректер орталықтарындағы бос орынға қарамастан немесе сізге қажет емес сыйымдылықты сатып алу арқылы ресурстарды жоғалтасыз. Сондықтан біз екі нысан арасында ортақ интерфейс болғанды ​​ұнатамыз, бірақ олар мүлдем басқа жүйелер және әртүрлі командалар басқаратын болуы керек.

Жеке бұлтты құру үшін қандай кедергілерді еңсеру керек?

Масштаб мәселесі. Көптеген нәрселер сияқты, шайтан егжей-тегжейде. Сіз бұл заттардың қалай жұмыс істейтінін, оларды қалай икемді ету керектігін, операциялық жүктемені қалай шешуге болатынын, физикалық активтер топтарымен қалай байланысатыныңызды ойласаңыз, нәрселер аздап қызықты болады. Мәселе – жалпыға қолжетімді бұлт жасап жатқан іс-әрекеттің алдыңғы қатарында бола отырып, мүмкіндіктер жиынтығын байыта отырып, біздің қолданба әзірлеушілеріміз пайдаланғысы келетін барлық нәрсені масштабталатын және қолдау көрсетілетін өнімге айналдыру жолын табу. Сондай-ақ оның жұмысын жалғастыру үшін бәрін біріктіру. Бұл біздің басты мәселеміз – біз бизнестің барлық салаларында жұмыс істейміз, барлық қажеттіліктерді қанағаттандыруға тырысамыз, бірақ басқа қажеттіліктерді елемейміз.

Сізге AWS және басқа жалпыға қолжетімді бұлттарда қолжетімді соңғы мүмкіндіктер қажет деп ойлайсыз ба?

S3 туралы ең қызықты факт - өмір сүру деңгейі үнемі өзгеріп отырады, жаңа мүмкіндіктер үнемі қосылады. Бұл жаңа ойыншық сияқты. Егер біреу жаңа шығарылымда жаңа мүмкіндікті көрсе, оны қалайды. AWS мүмкіндіктерінің барлығы біздің ортамызда қолданыла бермейді, сондықтан әзірлеушілерге не көмектесетінін және оны үйде қалай алуға болатынын білу маңызды және қызықты.

Сіз қандай сақтау құралдарын пайдаланасыз?

Біз соңғы үлгідегі жабдықтарды қолданамыз. Біздің ішкі бұлт толығымен NVMe Flash-ке негізделген, бұл бұл жүйелерді өте қуатты етеді. Бұл біздің өмірімізді біршама жеңілдетеді, сонымен қатар әзірлеушілеріміз үшін жақсы мүмкіндік, өйткені олар сақтау өнімділігі туралы алаңдамайды.

Сіз объектіні сақтауды не үшін пайдаланасыз?

Бізде инфрақұрылымда жұмыс істейтін 6000 әзірлеушілер бар, оларды бірде-бір пайдалану жағдайы біріктірмейді. Сіз ойлай алатын кез келген опция, бізде оны нысан сақтауында болуы мүмкін. Кейбір топтар оны салқын мұрағаттық сақтау үшін, кейбіреулері деректерді тасымалдау үшін, ал басқалары транзакциялық қолданбалар үшін пайдаланады. Осы пайдалану жағдайларының барлығы әртүрлі SLA деңгейлерін талап етеді, сондықтан көріп отырғаныңыздай, бізде трафиктің әртүрлі түрлері, инфрақұрылымымыздың әртүрлі пайдаланушылары үшін барлық қажеттіліктер бар. Бұл біздің кез келген қойманың үстінде жұмыс істейтін біртекті пайдалану жағдайы емес, бұл заттарды күрделірек ететіні анық.

Kubernetes және контейнерлер сіз үшін қаншалықты үлкен рөл атқарады және бұл сақтауға қалай әсер етеді?

Біз бұлт сезімін, қызмет ретінде бірдеңе сезімін жасау үшін сақтау өнімділігін итермелеп жатырмыз, мұнда әзірлеушілер қолөнерді жылдамдатуға және жол бойындағы инфрақұрылымды жоюға арналған түйме бар.

Редактордың n.b.: 15 жылдың 2020 қазаны дайын болады Ceph бейне курсы. Ақауларға төзімділікті жақсарту үшін жобаларыңызда пайдалану үшін Ceph желілік сақтау технологиясын үйренесіз.

Бізде үш команда бар, біріншісі - API сақтау тобы. Олар Bloomberg-те қолданбаларды әзірлеу клиенттері үшін бағдарламалық қатынасты, соңғы нүктелерді және алдын ала анықталған жұмыс процестерін жасайды. Бұл толық стек веб-әзірлеушілер тобы, олар node.js, python, Apache Airflow сияқты ашық бастапқы технологияларды пайдаланады, сондықтан олар контейнерлендіру мен виртуализацияны зерттейді.

Сондай-ақ бізде биттерді және байттарды жылжытатын екі техникалық топ бар. Олар жабдыққа тікелей байланысты. Бізде көптеген жабдықтар бар және бұл командалар виртуализация мен контейнерлерді пайдаланбайды.

Біз өнеркәсіпте болып жатқан оқиғалардан хабардар болуға тырысамыз, Kubernetes CSI драйверлерін зерттейміз, сонымен қатар Kubernetes сақтауды бізде бар технологияларға сәйкес жұмыс істей алатынымызды бағалау үшін Bloomberg-те Kubernetes-ті жүзеге асыратын топпен тығыз жұмыс жасаймыз және бізде бар. ол жұмыс істейді. Біз тұрақты жадқа қосылған Kubernetes қолдау көрсету үшін SDS пайдаланамыз. Біз бұл технологияны сәтті әзірледік және оны Bloomberg-те басқалардың барлығына қалай қол жетімді ету туралы екі команда арасында талқылаулар жалғасуда. Біз мұның әбден мүмкін екенін көрсеттік.

Басқа қандай ашық бастапқы бағдарламалық құралды пайдаланасыз, әсіресе сақтау үшін?

Қолданбалар трафигін шектеу үшін біз Apache Airflow, HAProxy пайдаланамыз. Біз сонымен қатар SDS платформасын Ceph пайдаланамыз. Оның көмегімен сізде пәрмендер үшін бір жүйе болуы мүмкін, бірақ клиенттерге бірнеше интерфейстерді қамтамасыз ете аласыз. Виртуализация платформаларының бірі OpenStack жүйесінде жұмыс істейді - біз осы командамен тығыз жұмыс істейміз. Бізде сақтау үшін ашық бастапқы SDS платформасын пайдаланатын ашық бастапқы виртуалдандыру платформасы бар. Бұл қызық.

Алдағы екі-үш жылда қандай сақтау технологияларын қарастырып жатырсыз?

Біз әрқашан сақтау индустриясында болып жатқан басқа керемет жаңа нәрселерді іздейміз. Бұл біздің жұмысымыздың бір бөлігі, ол «міне, сіздің SAN, осында басқарыңыз, міне, сіздің NFS, сол жерде басқарыңыз» емес. Біз өз клиенттерімізбен байланысуға тырысамыз, яғни. біздің қолданба әзірлеушілеріміз. Біз олардың қандай мәселелерді шешуге тырысып жатқанын және бұл Bloomberg сыртқы клиенттерімізге – банктер мен бағдарламалық жасақтаманы пайдаланатын басқаларға қалай әсер ететінін түсіну үшін бірге жұмыс істейміз. Содан кейін біз олардың мақсатына жетуіне көмектесетін мүмкіндіктерді табу үшін деректерді сақтау әлеміне ораламыз. Біз оларға SLA талаптарына сәйкес келетін дұрыс сақтау технологиясын табуға қалай көмектесе аламыз немесе не істеуге тырысамыз? Бізде керемет нәрселермен айналысатын көптеген инженерлер болғандықтан, бұл ешқашан жалықтырмайды.

Қазіргі уақытта біз жалпы мақсаттағы серверлерде ықтимал жұмыс істей алатын SDS өнімділігін жақсарту жолдарын іздеп жатырмыз. Сондықтан біз TCP арқылы NVMe жұмыс істеп жатырмыз, бұл өте қызықты және керемет бастама, көптің бірі. Біз сондай-ақ саладағы негізгі адамдармен және кейбір жұмыс істеп тұрған жеткізушілермен олардың не ұсынатынын және нақты өнімділік қандай болатынын, оны компанияда өндірісте қолдана бастай алатынымызды білу үшін жұмыс істейміз. Бұл бұрын қол жетімді болмаған жаңа көкжиектерді ашады.

PS-те кішкене көмек

PS Мүмкін болса, 28-30 қыркүйек күндері өтетінін еске салғым келеді қарқынды Кубернетес базасы, Кубернетесті білмейтін, бірақ онымен танысып, онымен жұмыс істегісі келетіндер үшін.

Ақпарат көзі: www.habr.com

пікір қалдыру