Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Ինչու՞ է MegaFon-ի նման կորպորացիային Tarantool-ի կարիքը բիլինգում: Արտաքինից թվում է, որ վաճառողը սովորաբար գալիս է, բերում ինչ-որ մեծ տուփ, վարդակից միացնում վարդակից, և դա վճարում է: Մի ժամանակ այդպես էր, իսկ հիմա այն արխայիկ է, և նման դինոզավրերը արդեն անհետացել են կամ անհետանում են: Սկզբում բիլլինգը հաշիվ-ապրանքագրերի թողարկման համակարգ է՝ հաշվիչ մեքենա կամ հաշվիչ: Ժամանակակից հեռահաղորդակցության մեջ սա է ավտոմատացման համակարգ բաժանորդի հետ փոխգործակցության ողջ կյանքի ցիկլի համար՝ պայմանագրի կնքումից մինչև դադարեցում, ներառյալ իրական ժամանակի հաշվարկը, վճարումների ընդունումը և շատ ավելին: Հեռահաղորդակցական ընկերություններում վճարումները նման են մարտական ​​ռոբոտի` մեծ, հզոր և բեռնված զենքերով:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Ի՞նչ կապ ունի Tarantool-ը դրա հետ: Նրանք կխոսեն այդ մասին Օլեգ Իվլև и Անդրեյ Կնյազև. Օլեգը ընկերության գլխավոր ճարտարապետն է Մեգաֆոն Արտասահմանյան ընկերություններում աշխատելու մեծ փորձ ունեցող Անդրեյը բիզնես համակարգերի տնօրեն է: վերաբերյալ իրենց զեկույցի սղագրությունից Tarantool կոնֆերանս 2018 դուք կիմանաք, թե ինչու է R&D-ն անհրաժեշտ կորպորացիաներում, ինչ է Tarantool-ը, ինչպես է ուղղահայաց մասշտաբի և գլոբալիզացիայի փակուղին դարձել այս տվյալների բազայի առաջացման նախադրյալը ընկերությունում, տեխնոլոգիական մարտահրավերների, ճարտարապետական ​​վերափոխման և ինչպես է MegaFon-ի տեխնոստաքը նման Netflix-ին։ , Google-ը և Amazon-ը:

«Միասնական հաշվարկ» նախագիծ

Քննարկվող նախագիծը կոչվում է «Unified Billing»: Այստեղ էր, որ Tarantool-ը ցույց տվեց իր լավագույն որակները։

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Hi-End սարքավորումների արտադրողականության աճը չհամապատասխանեց բաժանորդների բազայի աճին և ծառայությունների թվի աճին, սպասվում էր բաժանորդների և ծառայությունների թվի հետագա աճ՝ M2M, IoT և մասնաճյուղային առանձնահատկությունների շնորհիվ: դեպի շուկա դուրս գալու ժամանակի վատթարացում: Ընկերությունը որոշել է ստեղծել համաշխարհային կարգի յուրահատուկ մոդուլային ճարտարապետությամբ միասնական բիզնես համակարգ՝ ներկայիս 8 տարբեր վճարային համակարգերի փոխարեն։

MegaFon-ը ութ ընկերություն է մեկում. 2009 թվականին վերակազմավորումն ավարտվեց. Ռուսաստանի ամբողջ տարածքում մասնաճյուղերը միավորվեցին մեկ ընկերության՝ «ՄեգաՖոն» ԲԲԸ-ի (այժմ՝ ՓԲԸ): Այսպիսով, ընկերությունն ունի 8 բիլինգային համակարգ՝ սեփական «պատվերով» լուծումներով, մասնաճյուղային առանձնահատկություններով և տարբեր կազմակերպչական կառուցվածքներով, ՏՏ և մարքեթինգով:

Ամեն ինչ լավ էր, մինչև մենք ստիպված եղանք գործարկել մեկ ընդհանուր դաշնային արտադրանք: Այստեղ շատ դժվարություններ են առաջացել՝ ոմանց համար սակագները կլորացվում են բարձր, մյուսների համար՝ ներքև, իսկ մյուսների մոտ՝ միջին թվաբանականի հիման վրա։ Նման պահերը հազարավոր են։

Չնայած այն հանգամանքին, որ կար բիլինգային համակարգի միայն մեկ տարբերակ, մեկ մատակարար, պարամետրերն այնքան շեղվեցին, որ երկար ժամանակ պահանջվեց միասին: Մենք փորձեցինք նվազեցնել նրանց թիվը, և հանդիպեցինք երկրորդ խնդրին, որը ծանոթ է շատ կորպորացիաների:

Ուղղահայաց մասշտաբավորում. Նույնիսկ ամենաթեժ սարքավորումն այն ժամանակ չէր բավարարում կարիքները: Մենք օգտագործեցինք Hewlett-Packard սարքավորումներ Superdome Hi-End շարքից, բայց այն չէր բավարարում նույնիսկ երկու մասնաճյուղերի կարիքները։ Ես ուզում էի հորիզոնական մասշտաբում առանց մեծ գործառնական ծախսերի և կապիտալ ներդրումների:

Բաժանորդների և ծառայությունների թվի աճի ակնկալիք. Խորհրդատուները վաղուց IoT-ի և M2M-ի մասին պատմություններ են բերել հեռահաղորդակցության աշխարհ. կգա ժամանակ, երբ յուրաքանչյուր հեռախոս և արդուկ կունենա SIM քարտ, իսկ երկուսը` սառնարանում: Այսօր ունենք մեկ թվով բաժանորդներ, բայց առաջիկայում կլինեն շատ ավելին։

Տեխնոլոգիական մարտահրավերներ

Այս չորս պատճառները մեզ մղեցին լուրջ փոփոխություններ կատարելու։ Ընտրություն կար համակարգը թարմացնելու և զրոյից նախագծելու միջև: Մենք երկար մտածեցինք, լուրջ որոշումներ կայացրինք, տենդերներ խաղացինք։ Արդյունքում մենք հենց սկզբից որոշեցինք նախագծել, և մեր վրա վերցրինք հետաքրքիր մարտահրավերներ՝ տեխնոլոգիական մարտահրավերներ։

Մասշտաբայնություն

Եթե ​​նախկինում էր, ասենք, ասենք 8 հաշիվ 15 միլիոն բաժանորդի համար, և հիմա դա պետք է աշխատեր 100 միլիոն բաժանորդ և ավելին - բեռը մեծության կարգով ավելի բարձր է:

Մենք մասշտաբով համեմատելի ենք դարձել խոշոր ինտերնետ խաղացողների հետ, ինչպիսիք են Mail.ru-ն կամ Netflix-ը:

Բայց բեռի և բաժանորդային բազայի ավելացման հետագա շարժումը լուրջ մարտահրավերներ է առաջացրել մեզ համար։

Մեր հսկայական երկրի աշխարհագրությունը

Կալինինգրադի և Վլադիվոստոկի միջև 7500 կմ և 10 ժամային գոտիներ. Լույսի արագությունը վերջավոր է և նման հեռավորությունների վրա ուշացումներն արդեն զգալի են։ Ամենաթեժ ժամանակակից օպտիկական ալիքների վրա 150 ms-ը չափազանց շատ է իրական ժամանակում վճարումների համար, հատկապես, քանի որ այժմ այն ​​գտնվում է Ռուսաստանում հեռահաղորդակցության ոլորտում: Բացի այդ, դուք պետք է թարմացնեք մեկ աշխատանքային օրվա ընթացքում, և տարբեր ժամային գոտիների դեպքում դա խնդիր է:

Մենք ծառայություններ չենք մատուցում միայն բաժանորդային վճարով, մենք ունենք բարդ սակագներ, փաթեթներ և տարբեր փոփոխիչներ: Մենք պետք է ոչ միայն թույլ տանք կամ մերժենք բաժանորդին խոսել, այլ նրան որոշակի քվոտա տանք՝ իրական ժամանակում հաշվարկեք զանգերն ու գործողությունները, որպեսզի նա չնկատի:

սխալների հանդուրժողականություն

Սա կենտրոնացման մյուս կողմն է։

Եթե ​​մենք հավաքում ենք բոլոր բաժանորդներին մեկ համակարգում, ապա ցանկացած արտակարգ իրադարձություն և աղետ կործանարար է բիզնեսի համար։ Ուստի մենք համակարգն այնպես ենք նախագծում, որ բացառվի վթարների ազդեցությունը ողջ բաժանորդային բազայի վրա:

Սա դարձյալ ուղղահայաց մասշտաբներից հրաժարվելու հետեւանք է։ Հորիզոնական մասշտաբով մենք մեծացրինք սերվերների թիվը հարյուրավորից մինչև հազարավոր: Նրանք պետք է կառավարվեն և փոխանակելի լինեն, ավտոմատ կերպով ապահովեն ՏՏ ենթակառուցվածքը և վերականգնեն բաշխված համակարգը:

Մենք այսպիսի հետաքրքիր մարտահրավերների առաջ կանգնեցինք։ Մենք նախագծել ենք համակարգը, և այդ պահին մենք փորձել ենք գտնել համաշխարհային լավագույն փորձը, որպեսզի ստուգենք, թե որքանով ենք թրենդային, որքանով ենք հետևում առաջադեմ տեխնոլոգիաներին։

Համաշխարհային փորձը

Զարմանալի է, որ համաշխարհային հեռահաղորդակցության մեջ մենք ոչ մի տեղեկանք չգտանք։

Եվրոպան բաժանորդների քանակով և մասշտաբով անկում է ապրել, ԱՄՆ-ն՝ իր սակագների համաչափությամբ։ Մենք նայեցինք որոշներին Չինաստանում, և որոշներին գտանք Հնդկաստանում և մասնագետներ վարձեցինք Vodafone India-ից:

Ճարտարապետությունը վերլուծելու համար մենք հավաքեցինք Dream Team՝ IBM-ի գլխավորությամբ՝ տարբեր ոլորտների ճարտարապետներ: Այս մարդիկ կարող էին համարժեք գնահատել մեր արածը և որոշակի գիտելիքներ բերել մեր ճարտարապետությանը:

Սանդղակ

Պատկերազարդման համար մի քանի թիվ.

Մենք նախագծում ենք համակարգը 80 միլիոն բաժանորդ՝ մեկ միլիարդ պահուստով. Այսպես մենք հանում ենք ապագա շեմերը։ Սա ոչ թե այն պատճառով, որ մենք պատրաստվում ենք գրավել Չինաստանը, այլ IoT-ի և M2M-ի հարձակման պատճառով:

Իրական ժամանակում մշակված 300 միլիոն փաստաթուղթ. Թեև մենք ունենք 80 միլիոն բաժանորդ, մենք աշխատում ենք ինչպես պոտենցիալ հաճախորդների, այնպես էլ մեզանից հեռացածների հետ, եթե մեզ անհրաժեշտ է դեբիտորական պարտքեր հավաքել: Հետեւաբար, փաստացի ծավալները նկատելիորեն ավելի մեծ են։

2 միլիարդ գործարք Հաշվեկշիռը փոխվում է ամեն օր. դրանք վճարումներ են, գանձումներ, զանգեր և այլ իրադարձություններ: 200 ՏԲ տվյալները ակտիվորեն փոխվում են, մի քիչ դանդաղ փոխեք 8 PB տվյալներ, և սա արխիվ չէ, այլ կենդանի տվյալներ մեկ հաշվարկով: Սանդղակ ըստ տվյալների կենտրոնի - 5 հազար սերվեր 14 կայքում.

Տեխնոլոգիաների բուրգ

Երբ մենք նախագծեցինք ճարտարապետությունը և սկսեցինք հավաքել համակարգը, ներմուծեցինք ամենահետաքրքիր և առաջադեմ տեխնոլոգիաները: Արդյունքը տեխնոլոգիական փաթեթ է, որը ծանոթ է ցանկացած ինտերնետ խաղացողի և կորպորացիաների, որոնք արտադրում են բարձր բեռնվածության համակարգեր:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Ստեկը նման է այլ խոշոր խաղացողների՝ Netflix, Twitter, Viber ստեկերին: Այն բաղկացած է 6 բաղադրիչից, բայց մենք ուզում ենք այն կրճատել ու միավորել։

Ճկունությունը լավ է, բայց խոշոր կորպորացիայի մեջ առանց միավորման ճանապարհ չկա:

Մենք չենք պատրաստվում նույն Oracle-ը փոխել Tarantool-ի: Խոշոր ընկերությունների իրականության մեջ սա ուտոպիա է կամ 5-10 տարվա խաչակրաց արշավանք՝ անհասկանալի ելքով։ Բայց Cassandra-ն և Couchbase-ը հեշտությամբ կարելի է փոխարինել Tarantool-ով, և դա այն է, ինչին մենք ձգտում ենք:

Ինչու՞ Tarantool:

Գոյություն ունեն 4 պարզ չափորոշիչներ, թե ինչու մենք ընտրեցինք այս տվյալների բազան:

Բարեմաղթել. Մենք բեռնվածության փորձարկումներ ենք անցկացրել MegaFon արդյունաբերական համակարգերի վրա: Tarantool-ը հաղթեց՝ ցույց տվեց լավագույն կատարումը։

Սա չի նշանակում, որ այլ համակարգեր չեն բավարարում MegaFon-ի կարիքները: Ընթացիկ հիշողության լուծումներն այնքան արդյունավետ են, որ ընկերության պահուստներն ավելի քան բավարար են: Բայց մենք շահագրգռված ենք գործ ունենալ առաջնորդի հետ, այլ ոչ թե հետամնաց մեկի հետ, այդ թվում՝ ծանրաբեռնվածության թեստում։

Tarantool-ը ծածկում է ընկերության կարիքները նույնիսկ երկարաժամկետ հեռանկարում:

TCO արժեքը. Couchbase-ի աջակցությունը MegaFon ծավալների վրա աստղաբաշխական գումարներ է արժենում, սակայն Tarantool-ի դեպքում իրավիճակը շատ ավելի հաճելի է, և դրանք ֆունկցիոնալությամբ նման են:

Մեկ այլ հաճելի առանձնահատկություն, որը փոքր-ինչ ազդեց մեր ընտրության վրա, այն է, որ Tarantool-ն ավելի լավ է աշխատում հիշողության հետ, քան այլ տվյալների շտեմարաններ: Նա ցույց է տալիս առավելագույն արդյունավետություն.

Հուսալիություն. MegaFon-ը ներդրումներ է կատարում հուսալիության մեջ, հավանաբար ավելի շատ, քան որևէ մեկը: Այսպիսով, երբ մենք նայեցինք Tarantool-ին, հասկացանք, որ պետք է այն համապատասխանի մեր պահանջներին:

Մենք ներդրեցինք մեր ժամանակը և ֆինանսները, և Mail.ru-ի հետ միասին ստեղծեցինք ձեռնարկության տարբերակը, որն այժմ օգտագործվում է մի քանի այլ ընկերություններում։

Tarantool-enterprise-ը մեզ լիովին բավարարեց անվտանգության, հուսալիության և անտառահատումների առումով:

Գործընկերություն

Ինձ համար ամենակարեւորն այն է անմիջական կապ մշակողի հետ. Հենց սրանով են կաշառել Տարանտուլի տղաները։

Եթե ​​դուք գալիս եք խաղացողի, հատկապես մեկի, ով աշխատում է խարիսխ հաճախորդի հետ, և ասում եք, որ ձեզ անհրաժեշտ է տվյալների բազան, որպեսզի կարողանաք դա անել, սա և սա, նա սովորաբար պատասխանում է.

- Լավ, դրեք պահանջները այդ կույտի վերջում, մի օր, հավանաբար, կհասնենք դրանց:

Շատերն ունեն առաջիկա 2-3 տարվա ճանապարհային քարտեզ, և այնտեղ ինտեգրվելը գրեթե անհնար է, բայց Tarantool-ի մշակողները գերում են իրենց բացությամբ և ոչ միայն MegaFon-ից, և հարմարեցնում են իրենց համակարգը հաճախորդին։ Հիասքանչ է, և մեզ իսկապես դուր է գալիս:

Որտեղ մենք օգտագործեցինք Tarantool-ը

Մենք օգտագործում ենք Tarantool-ը մի քանի տարրերով: Առաջինը օդաչուի մեջ է, որը մենք արել ենք հասցեների գրացուցակի համակարգում։ Ժամանակին ես ուզում էի, որ դա լինի Yandex.Maps-ի և Google Maps-ի նման համակարգ, բայց մի փոքր այլ կերպ ստացվեց:

Օրինակ, վաճառքի ինտերֆեյսի հասցեների կատալոգը: Oracle-ում ցանկալի հասցեի որոնումը տևում է 12-13 վայրկյան: - անհարմար թվեր. Երբ մենք անցնում ենք Tarantool-ին, փոխարինում ենք Oracle-ին մեկ այլ տվյալների շտեմարան կոնսոլում և կատարում ենք նույն որոնումը, մենք ստանում ենք 200x արագացում: Քաղաքը հայտնվում է երրորդ տառից հետո։ Այժմ մենք հարմարեցնում ենք ինտերֆեյսը, որպեսզի դա տեղի ունենա առաջինից հետո: Այնուամենայնիվ, արձագանքման արագությունը բոլորովին այլ է՝ միլիվայրկյաններ՝ վայրկյանների փոխարեն:

Երկրորդ հավելվածը գերժամանակակից թեմա է, որը կոչվում է երկու արագությամբ ՏՏ. Դա պայմանավորված է նրանով, որ խորհրդատուները ամեն անկյունից ասում են, որ կորպորացիաները պետք է գնան այնտեղ:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Կա ենթակառուցվածքային շերտ, դրա վերևում կան տիրույթներ, օրինակ՝ հեռահաղորդակցության պես բիլինգային համակարգ, կորպորատիվ համակարգեր, կորպորատիվ հաշվետվություններ։ Սա այն միջուկն է, որին դիպչել պետք չէ։ Դա, իհարկե, հնարավոր է, բայց պարանոյիկորեն որակի ապահովում, քանի որ դա գումար է բերում կորպորացիային։

Հաջորդը գալիս է միկրոծառայությունների շերտը՝ ինչն է տարբերում օպերատորին կամ այլ խաղացողին: Միկրոսերվիսները կարող են արագ ստեղծվել որոշակի քեշերի հիման վրա՝ այնտեղ բերելով տվյալներ տարբեր տիրույթներից։ Այստեղ դաշտ փորձերի համար — եթե ինչ-որ բան չստացվեց, ես փակեցի մի միկրոսերվիս և բացեցի մյուսը: Սա իսկապես մեծացնում է շուկա դուրս գալու ժամանակը և մեծացնում է ընկերության հուսալիությունն ու արագությունը:

Microservices-ը, հավանաբար, Tarantool-ի գլխավոր դերն է MegaFon-ում:

Որտեղ մենք նախատեսում ենք օգտագործել Tarantool-ը

Եթե ​​համեմատենք մեր հաջող բիլինգի նախագիծը Deutsche Telekom-ի, Svyazcom-ի, Vodafone India-ի փոխակերպման ծրագրերի հետ, ապա այն զարմանալիորեն դինամիկ և ստեղծագործական է: Այս նախագծի իրականացման ընթացքում փոխակերպվեցին ոչ միայն MegaFon-ը և նրա կառուցվածքը, այլև Mail.ru-ում հայտնվեց Tarantool-enterprise-ը, իսկ մեր վաճառողը Nexign (նախկինում Peter-Service)՝ BSS Box-ը (արկղային վճարային լուծում):

Սա, ինչ-որ իմաստով, պատմական նախագիծ է ռուսական շուկայի համար։ Այն կարելի է համեմատել Ֆրեդերիկ Բրուքսի «Առասպելական մարդ-ամիս» գրքում նկարագրվածի հետ։ Այնուհետև, 60-ականներին, IBM-ը վարձեց 360 մարդ՝ հիմնական OS/5 օպերացիոն համակարգը մշակելու համար: Մենք ունենք ավելի քիչ՝ 000, բայց մերոնք ժիլետներով են, և հաշվի առնելով բաց կոդերի օգտագործումը և նոր մոտեցումները՝ ավելի արդյունավետ ենք աշխատում։

Ստորև ներկայացված են բիլինգի կամ, ավելի լայն ասած, բիզնես համակարգերի տիրույթները: Ձեռնարկությունների մարդիկ շատ լավ գիտեն CRM-ը: Բոլորն արդեն պետք է ունենան այլ համակարգեր՝ Open API, API Gateway:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Բաց API

Եկեք նորից նայենք թվերին և թե ինչպես է ներկայումս աշխատում Open API-ն: Դրա ծանրաբեռնվածությունն է 10 գործարք վայրկյանում. Քանի որ մենք նախատեսում ենք ակտիվորեն զարգացնել միկրոծառայությունների շերտը և կառուցել MegaFon հանրային API, մենք ապագայում ակնկալում ենք ավելի մեծ աճ այս մասում: Անպայման կլինի 100 գործարք.

Ես չգիտեմ, թե արդյոք մենք կարող ենք համեմատվել Mail.ru-ի հետ SSO-ում, տղաները կարծես վայրկյանում ունեն 1 գործարք: Դրանց լուծումը մեզ համար չափազանց հետաքրքիր է, և մենք նախատեսում ենք որդեգրել նրանց փորձը, օրինակ՝ Tarantool-ի միջոցով ֆունկցիոնալ SSO-ի կրկնօրինակի ստեղծում: Այժմ Mail.ru-ի մշակողները դա անում են մեզ համար:

CRM

CRM-ը նույն 80 միլիոն բաժանորդն է, որը մենք ուզում ենք հասցնել միլիարդի, քանի որ արդեն 300 միլիոն փաստաթուղթ կա, որը ներառում է երեք տարվա պատմություն։ Մենք իսկապես անհամբեր սպասում ենք նոր ծառայությունների և այստեղ աճի կետը կապված ծառայություններն է. Սա գնդակ է, որը մեծանալու է, քանի որ ավելի ու ավելի շատ ծառայություններ են լինելու։ Համապատասխանաբար, մեզ պետք կլինի պատմություն, մենք չենք ուզում սայթաքել դրա վրա:

Ինքնին հաշիվ-ապրանքագրեր տրամադրելու, հաճախորդների դեբիտորական պարտքերի հետ աշխատելու առումով վերածվել է առանձին տիրույթի. Կատարումը բարելավելու համար, կիրառական տիրույթի ճարտարապետության ճարտարապետական ​​օրինակ.

Համակարգը բաժանված է տիրույթների, բեռը բաշխված է և ապահովված է սխալների հանդուրժողականություն։ Բացի այդ, մենք աշխատել ենք բաշխված ճարտարապետության հետ:

Մնացած ամեն ինչ ձեռնարկության մակարդակի լուծումներ են: Զանգի պահեստում - օրական 2 մլրդ, ամսական 60 մլրդ. Երբեմն պետք է դրանք հաշվել մեկ ամսվա ընթացքում, և դա ավելի լավ է արագ: Ֆինանսական մոնիտորինգ - Սա հենց նույն 300 միլիոնն է, որն անընդհատ աճում և աճում է. բաժանորդները հաճախ վազում են օպերատորների միջև՝ ավելացնելով այս մասը:

Բջջային կապի առավել հեռահաղորդակցային բաղադրիչն է առցանց վճարում. Սրանք այն համակարգերն են, որոնք թույլ են տալիս զանգահարել կամ չզանգել, որոշումներ կայացնել իրական ժամանակում։ Այստեղ ծանրաբեռնվածությունը կազմում է վայրկյանում 30 գործարք, սակայն հաշվի առնելով տվյալների փոխանցման աճը՝ մենք նախատեսում ենք. 250 գործարք, և, հետևաբար, մենք շատ հետաքրքրված ենք Tarantool-ով:

Նախորդ նկարը այն տիրույթներն են, որտեղ մենք պատրաստվում ենք օգտագործել Tarantool-ը։ CRM-ն ինքնին, իհարկե, ավելի լայն է, և մենք պատրաստվում ենք այն օգտագործել հենց հիմքում:

Մեր գնահատված TTX թիվը՝ 100 միլիոն բաժանորդ, ինձ շփոթեցնում է որպես ճարտարապետ. իսկ եթե 101 միլիոն: Արդյո՞ք դուք պետք է ամեն ինչ նորից անեք: Որպեսզի դա տեղի չունենա, մենք օգտագործում ենք քեշերը՝ միաժամանակ ավելացնելով հասանելիությունը:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Ընդհանուր առմամբ, Tarantool-ի օգտագործման երկու մոտեցում կա. Առաջին - կառուցել բոլոր քեշերը միկրոսպասարկման մակարդակում. Որքան հասկանում եմ, «ՎիմպելԿոմը» գնում է այս ճանապարհով՝ ստեղծելով հաճախորդների քեշ։

Մենք ավելի քիչ կախված ենք վաճառողներից, մենք փոխում ենք BSS միջուկը, ուստի մենք ունենք մեկ հաճախորդի ֆայլ առանց տուփի: Բայց մենք ուզում ենք ընդլայնել այն։ Հետևաբար, մենք մի փոքր այլ մոտեցում ենք ցուցաբերում. քեշեր պատրաստել համակարգերի ներսում.

Այս կերպ ավելի քիչ համաժամացում կա. մեկ համակարգ պատասխանատու է ինչպես քեշի, այնպես էլ հիմնական հիմնական աղբյուրի համար:

Մեթոդը լավ է համապատասխանում Tarantool-ի մոտեցմանը գործարքային կմախքի հետ, երբ թարմացվում են միայն այն մասերը, որոնք վերաբերում են թարմացումներին, այսինքն՝ տվյալների փոփոխություններին: Մնացած ամեն ինչ կարելի է պահել մեկ այլ տեղ: Չկա տվյալների հսկայական լիճ, չկառավարվող գլոբալ քեշ: Քեշերը նախատեսված են համակարգի, կամ ապրանքների, կամ հաճախորդների համար, կամ կյանքը հեշտացնելու համար: Երբ բաժանորդը զանգում է և նեղվում է ձեր ծառայության որակից, դուք ցանկանում եք որակյալ ծառայություն մատուցել:

RTO և RPO

ՏՏ-ում կա երկու տերմին. RTO- ն и RPO.

Վերականգնման ժամանակի նպատակը այն ժամանակն է, որն անհրաժեշտ է ձախողումից հետո ծառայությունը վերականգնելու համար: RTO = 0 նշանակում է, որ նույնիսկ եթե ինչ-որ բան ձախողվի, ծառայությունը շարունակում է աշխատել:

Վերականգնման կետի նպատակը - սա տվյալների վերականգնման ժամանակն է, թե որքան տվյալներ կարող ենք կորցնել որոշակի ժամանակահատվածում: RPO = 0 նշանակում է, որ մենք չենք կորցնում տվյալները:

Tarantool առաջադրանք

Փորձենք Tarantool-ի համար խնդիր լուծել։

Տրված էհավելվածների զամբյուղ, որը բոլորը հասկանում են, օրինակ, Amazon-ում կամ մեկ այլ տեղ: Պահանջվում է որպեսզի զամբյուղը աշխատի շաբաթը 24 օր 7 ժամ, կամ ժամանակի 99,99%-ը: Մեզ հասած պատվերները պետք է մնան կարգին, քանի որ մենք չենք կարող պատահականորեն միացնել կամ անջատել բաժանորդի կապը, ամեն ինչ պետք է լինի խիստ հետևողական: Նախորդ բաժանորդագրությունն ազդում է հաջորդի վրա, ուստի տվյալները կարևոր են. ոչինչ չպետք է կորչի:

որոշում. Դուք կարող եք փորձել լուծել այն գլխի վրա և հարցնել տվյալների բազայի մշակողներին, բայց խնդիրը չի կարող լուծվել մաթեմատիկորեն: Դուք կարող եք հիշել թեորեմները, պահպանման օրենքները, քվանտային ֆիզիկան, բայց ինչու, դա հնարավոր չէ լուծել DB մակարդակում:

Հին լավ ճարտարապետական ​​մոտեցումն այստեղ գործում է՝ դուք պետք է լավ իմանաք թեմայի տարածքը և օգտագործեք այն այս գլուխկոտրուկը լուծելու համար:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Մեր լուծումը՝ ստեղծելով հավելվածների բաշխված ռեեստր Tarantool-ում՝ աշխարհաբաշխված կլաստեր. Դիագրամում սրանք երեք տարբեր տվյալների մշակման կենտրոններ են՝ երկուսը Ուրալից առաջ, մեկը՝ Ուրալից այն կողմ, և մենք բոլոր հարցումները բաշխում ենք այս կենտրոնների միջև:

Netflix-ը, որն այժմ համարվում է ՏՏ ոլորտի առաջատարներից մեկը, մինչև 2012 թվականն ուներ միայն մեկ տվյալների կենտրոն։ Կաթոլիկ Սուրբ Ծննդի նախօրեին՝ դեկտեմբերի 24-ին, տվյալների այս կենտրոնը խափանվեց: Կանադայի և ԱՄՆ-ի օգտատերերը մնացել են առանց իրենց սիրելի ֆիլմերի, խիստ վրդովվել են և այդ մասին գրել սոցիալական ցանցերում։ Netflix-ն այժմ ունի երեք տվյալների կենտրոն արևմտյան-արևելյան ափին և մեկը՝ արևմտյան Եվրոպայում:

Մենք ի սկզբանե կառուցում ենք աշխարհաբաշխված լուծում. սխալների հանդուրժողականությունը մեզ համար կարևոր է:

Այսպիսով, մենք ունենք կլաստեր, բայց ինչ վերաբերում է RPO = 0 և RTO = 0: Լուծումը պարզ է՝ կախված թեմայից։

Ի՞նչն է կարևոր հավելվածներում: Երկու մաս՝ զամբյուղի նետում Է գնման որոշում կայացնելը և Հետո. Հեռահաղորդակցության մեջ DO մասը սովորաբար կոչվում է պատվերի գրավում կամ պատվիրել բանակցություններ. Հեռահաղորդակցության ոլորտում դա կարող է լինել շատ ավելի դժվար, քան առցանց խանութում, քանի որ այնտեղ հաճախորդին պետք է սպասարկել, առաջարկել 5 տարբերակ, և այս ամենը տեղի է ունենում որոշ ժամանակով, բայց զամբյուղը լցված է: Այս պահին հնարավոր է ձախողում, բայց դա սարսափելի չէ, քանի որ դա տեղի է ունենում ինտերակտիվ կերպով՝ մարդու հսկողության ներքո։

Եթե ​​հանկարծ Մոսկվայի տվյալների կենտրոնը խափանվի, ապա ավտոմատ կերպով անցնելով այլ տվյալների կենտրոնի, մենք կշարունակենք աշխատել։ Տեսականորեն մեկ ապրանք կարող է կորել սայլի մեջ, բայց դուք տեսնում եք, նորից ավելացնում եք զամբյուղի մեջ և շարունակում եք աշխատել։ Այս դեպքում RTO = 0:

Միևնույն ժամանակ կա երկրորդ տարբերակը՝ երբ սեղմում ենք «ներկայացնել», ցանկանում ենք, որ տվյալները չկորչեն։ Այս պահից ավտոմատացումը սկսում է աշխատել. սա RPO = 0 է: Օգտագործելով այս երկու տարբեր օրինաչափությունները, մի դեպքում այն ​​կարող է լինել պարզապես աշխարհաբաշխված կլաստեր մեկ փոխարկվող վարպետով, մյուս դեպքում՝ ինչ-որ քվորումի գրառում: Նախշերը կարող են տարբեր լինել, բայց մենք լուծում ենք խնդիրը:

Ավելին, ունենալով հավելվածների բաշխված ռեեստր, մենք կարող ենք նաև մասշտաբավորել այդ ամենը. ունենալ բազմաթիվ դիսպետչերներ և կատարողներ, ովքեր մուտք են գործում այս ռեեստր:

Նոր սերնդի բիլինգի ճարտարապետություն. վերափոխում Tarantool-ին անցումով

Կասանդրան և Տարանտուլը միասին

Կա ևս մեկ դեպք. «մնացորդների ցուցափեղկ». Ահա Cassandra-ի և Tarantool-ի համատեղ օգտագործման հետաքրքիր դեպք.

Մենք օգտագործում ենք Cassandra-ն, քանի որ օրական 2 միլիարդ զանգը սահմանը չէ, և կլինեն ավելին: Մարքեթոլոգները սիրում են գունավորել տրաֆիկը ըստ աղբյուրի, օրինակ՝ սոցիալական ցանցերում ավելի ու ավելի շատ մանրամասներ են հայտնվում: Այս ամենը ավելացնում է պատմությունը:

Cassandra-ն թույլ է տալիս հորիզոնական մասշտաբել ցանկացած չափի:

Կասանդրայի հետ մենք մեզ հարմարավետ ենք զգում, բայց դա մի խնդիր ունի՝ կարդալու մեջ լավ չէ։ Ձայնագրության վրա ամեն ինչ կարգին է, վայրկյանում 30-ը խնդիր չէ. կարդալու խնդիր.

Հետևաբար, հայտնվեց քեշով թեմա, և միևնույն ժամանակ մենք լուծեցինք հետևյալ խնդիրը. կա մի հին ավանդական դեպք, երբ առցանց բիլինգից անջատիչ սարքավորումը մտնում է այն ֆայլերը, որոնք մենք բեռնում ենք Cassandra: Մենք պայքարում էինք այս ֆայլերի հուսալի ներբեռնման խնդրի հետ, նույնիսկ օգտագործելով IBM մենեջերի ֆայլերի փոխանցման խորհուրդը. կան լուծումներ, որոնք արդյունավետ կերպով կառավարում են ֆայլերի փոխանցումը՝ օգտագործելով UDP արձանագրությունը, օրինակ, այլ ոչ թե TCP: Սա լավ է, բայց դեռ րոպեներ կան, և մենք դեռ չենք բեռնել այն, զանգերի կենտրոնում օպերատորը չի կարող պատասխանել հաճախորդին, թե ինչ է պատահել նրա հաշվեկշռին. մենք պետք է սպասենք:

Որպեսզի դա տեղի չունենա, մենք մենք օգտագործում ենք զուգահեռ ֆունկցիոնալ պահուստ. Երբ մենք Կաֆկայի միջոցով իրադարձություն ենք ուղարկում Tarantool՝ իրական ժամանակում վերահաշվարկելով ագրեգատները, օրինակ՝ այսօրվա համար, մենք ստանում ենք. դրամական մնացորդներ, որը կարող է մնացորդներ փոխանցել ցանկացած արագությամբ, օրինակ՝ վայրկյանում 100 հազար գործարք եւ այդ նույն 2 վայրկյանը։

Նպատակն այն է, որ զանգ կատարելուց հետո ձեր անձնական հաշվում 2 վայրկյանի ընթացքում լինի ոչ միայն փոփոխված մնացորդը, այլ տեղեկություն, թե ինչու է այն փոխվել։

Ամփոփում

Սրանք Tarantool-ի օգտագործման օրինակներ էին: Մեզ շատ դուր եկավ Mail.ru-ի բաց լինելը և տարբեր դեպքեր դիտարկելու նրանց պատրաստակամությունը:

BCG-ի կամ McKinsey-ի, Accenture-ի կամ IBM-ի խորհրդատուների համար արդեն դժվար է զարմացնել մեզ ինչ-որ նոր բանով. նրանց առաջարկածի մեծ մասը մենք կամ արդեն անում ենք, արել ենք կամ պատրաստվում ենք անել: Կարծում եմ, որ Tarantool-ը կզբաղեցնի իր արժանի տեղը մեր տեխնոլոգիական փաթեթում և կփոխարինի գոյություն ունեցող բազմաթիվ տեխնոլոգիաների: Մենք այս նախագծի մշակման ակտիվ փուլում ենք։

Օլեգի և Անդրեյի զեկույցը լավագույններից է անցյալ տարի Տարանտուլի կոնֆերանսում, և հունիսի 17-ին Օլեգ Իվլևը ելույթ կունենա ժ. T+ կոնֆերանս 2019 թ հաշվետվությամբ «Ինչու Tarantool-ը ձեռնարկությունում». Ալեքսանդր Դեյլինը նույնպես հանդես կգա MegaFon-ի շնորհանդեսով «Tarantool-ի քեշերը և կրկնօրինակումը Oracle-ից». Եկեք պարզենք, թե ինչ է փոխվել, ինչ ծրագրեր են իրականացվել։ Միացե՛ք՝ համաժողովն անվճար է, մնում է միայն գրանցվել. Բոլորը հաշվետվություններն ընդունվել են և ձևավորվել է կոնֆերանսի ծրագիրը՝ նոր դեպքեր, Tarantool-ի օգտագործման նոր փորձ, ճարտարապետություն, ձեռնարկություն, ձեռնարկներ և միկրոծառայություններ:

Source: www.habr.com

Добавить комментарий