Nima uchun MegaFon kabi korporatsiya hisob-kitob qilish uchun Tarantoolga muhtoj? Tashqi tomondan qaraganda, odatda sotuvchi kirib, katta quti olib kelib, uni ulab qo'yadi va bu hisob-kitob! Ilgari shunday edi, lekin hozir u eskirgan va bunday dinozavrlar yo yo'q bo'lib ketgan yoki yo'q bo'lib ketmoqda. Dastlab, hisob-kitob hisob-kitob qilish tizimi edi - hisoblash qofiyasi yoki kalkulyator. Zamonaviy telekommunikatsiyalarda bu... shartnoma tuzishdan tortib bekor qilinishigacha bo'lgan abonent bilan o'zaro aloqaning butun hayot aylanishini avtomatlashtirish tizimi, jumladan, real vaqt rejimida hisob-kitob qilish, to'lovlarni qabul qilish va boshqa ko'p narsalar. Telekommunikatsiya kompaniyalarida hisob-kitob qilish jangovar robotga o'xshaydi — katta, kuchli va qurol bilan qurollangan.

Tarantoolning bunga qanday aloqasi bor? Bu tushuntiriladi. Oleg Ivlev и Andrey KnyazevOleg kompaniyaning bosh me'mori. Xalqaro kompaniyalarda katta tajribaga ega bo'lgan Andrey Biznes tizimlari direktori. Ularning taqdimoti transkriptidan Siz korporatsiyalarda nima uchun ilmiy-tadqiqot va ishlanmalar zarurligini, Tarantool nima ekanligini, vertikal masshtablash va globalizatsiyaning boshi berk ko'chaga kirishi kompaniyada ushbu ma'lumotlar bazasining paydo bo'lishi uchun qanday shart-sharoitlarga aylanganini, texnologik qiyinchiliklar, me'moriy o'zgarishlar va MegaFonning texnologik to'plami Netflix, Google va Amazonga qanday o'xshashligini bilib olasiz.

Birlashtirilgan to'lov loyihasi
Biz muhokama qiladigan loyiha "Yagona hisob-kitob" deb nomlanadi. Aynan shu yerda Tarantool chinakamiga porlaydi.

Yuqori darajadagi uskunalarning ishlashi abonent bazasining o'sishi va xizmatlar soniga mos kelmadi. M2M va IoT tufayli abonentlar va xizmatlarning yanada o'sishi kutilgan edi va tizimning filialga asoslanganligi bozorga chiqish vaqtining yomonlashishiga olib keldi. Kompaniya sakkiz xil mavjud billing tizimlarini almashtirish uchun noyob, jahon darajasidagi modulli arxitekturaga ega yagona biznes tizimini yaratishga qaror qildi.
MegaFon - bu bitta kompaniyada sakkizta kompaniya2009-yilda qayta tashkil etish yakunlandi: Rossiya bo'ylab filiallar yagona kompaniya - MegaFon OAJ (hozirgi PJSC) ga birlashtirildi. Shunday qilib, kompaniya o'zining maxsus yechimlari, filialga xos xususiyatlari va o'ziga xos tashkiliy tuzilmalari, IT va marketing guruhlariga ega sakkizta billing tizimini sotib oldi.
Yagona, birlashtirilgan federal mahsulotni ishga tushirishga majbur bo'lgunimizcha hamma narsa yaxshi edi. Bu ko'plab asoratlarni keltirib chiqardi: ba'zilarida tariflar yuqoriga, ba'zilarida pastga, boshqalarida esa arifmetik o'rtacha qiymatga asoslangan edi. Bunday muammolar minglab.
Bizda bir xil billing tizimi versiyasi va bir xil sotuvchi bo'lishiga qaramay, sozlamalar shu qadar nomuvofiq ediki, ularni moslashtirish uchun ko'p vaqt ketdi. Biz sozlamalar sonini kamaytirishga harakat qildik va ko'plab korporatsiyalarga tanish bo'lgan ikkinchi muammoga duch keldik.
Vertikal masshtablashO'sha paytda mavjud bo'lgan eng ilg'or apparat vositalari ham kompaniyaning ehtiyojlarini qondirmasdi. Ular Superdome Hi-End liniyasidan Hewlett-Packard uskunalaridan foydalanishgan, ammo u hatto ikkita filialning ehtiyojlarini qondira olmasdi. Ular katta operatsion xarajatlar va kapital qo'yilmalarga duch kelmasdan gorizontal ravishda masshtablashni xohlashdi.
Abonentlar va xizmatlar sonining kutilayotgan o'sishiKonsultantlar uzoq vaqtdan beri telekommunikatsiya olamiga IoT va M2M haqidagi hikoyalarni olib kelishmoqda: har bir telefon va dazmolda SIM-karta, har bir muzlatgichda esa ikkitadan SIM-karta bo'ladigan vaqt keladi. Bugungi kunda bizda bir xil miqdordagi abonentlar bor, ammo yaqin kelajakda bu ko'rsatkich ancha yuqori bo'ladi.
Texnologik qiyinchiliklar
Bu to'rtta omil bizni sezilarli o'zgarishlar qilishga undadi. Biz tizimni modernizatsiya qilish va uni noldan loyihalash o'rtasida tanlov qilishimiz kerak edi. Biz uzoq va qattiq o'yladik, jiddiy qarorlar qabul qildik va tenderlarda qatnashdik. Oxir-oqibat, biz uni noldan loyihalashga qaror qildik va qiziqarli muammolarni - texnologik muammolarni hal qildik.
Miqyosi
Agar ilgari shunday bo'lgan bo'lsa, aytaylik, Har biri 15 million abonentga ega 8 ta billing tizimi, va endi u ishlashi kerak edi 100 million va undan ko'p obunachilar — yuk kattalik tartibida yuqori.
Biz Mail.ru yoki Netflix kabi yirik internet o'yinchilari bilan miqyosi jihatidan taqqoslanadigan darajaga yetdik.
Ammo yuklama va abonent bazasini ko'paytirishga qaratilgan keyingi harakatlar bizni jiddiy qiyinchiliklarga duch keldi.
Keng mamlakatimizning geografiyasi
Kaliningrad va Vladivostok o'rtasida 7500 km va 10 ta vaqt mintaqasiYorug'lik tezligi cheklangan va bunday masofalarda kechikishlar sezilarli darajada bo'ladi. Eng tezkor zamonaviy optik aloqalarda 150 ms real vaqt rejimida narxlash uchun juda ko'p, ayniqsa hozirda Rossiya telekommunikatsiyalarida qo'llaniladigan turdagi. Bundan tashqari, yangilanishlar bir ish kuni ichida bajarilishi kerak, bu esa turli vaqt mintaqalari uchun qiyinchilik tug'diradi.
Biz shunchaki obuna to'lovi evaziga xizmatlar ko'rsatmaymiz; bizda murakkab rejalar, paketlar va turli xil modifikatorlar mavjud. Biz nafaqat obunachilarga gaplashishga ruxsat berishimiz yoki bloklashimiz, balki ularga ma'lum bir kvotani belgilashimiz kerak — qo'ng'iroqlar va harakatlarni ular sezmagan holda real vaqt rejimida hisoblashimiz kerak.
xatolarga chidamlilik
Bu markazlashtirishning salbiy tomoni.
Agar biz barcha abonentlarni yagona tizimga birlashtirsak, har qanday favqulodda vaziyat yoki ofat biznes uchun halokatli bo'ladi. Shuning uchun biz tizimni favqulodda vaziyatlarning butun abonent bazasiga ta'sirini bartaraf etish uchun ishlab chiqamiz.
Bu yana vertikal masshtablashdan voz kechishning natijasidir. Gorizontal masshtablashga o'tganimizda, serverlar sonini yuzlab serverlardan minglab serverlarga ko'paytirdik. Ularni boshqarish, ularning almashinuvchanligini o'rnatish, IT infratuzilmasini avtomatik ravishda zaxiralash va taqsimlangan tizimni tiklash kerak.
Biz shunday qiziqarli qiyinchiliklarga duch keldik. Biz tizimni ishlab chiqdik va shu vaqt ichida biz qanchalik trendda ekanligimizni, ilg'or texnologiyalarga qanchalik yaqin ekanligimizni sinab ko'rish uchun eng yaxshi global amaliyotlarni topishga harakat qildik.
Jahon tajribasi
Ajablanarlisi shundaki, biz global telekommunikatsiya sanoatida bitta ham ma'lumotnoma topmadik.
Yevropa abonentlar soni va miqyosi tufayli, AQSh esa tariflarining arzonligi tufayli bu haqda gap bo'lishi mumkin emas edi. Ular Xitoydagi ba'zi narsalarni ko'rib chiqdilar, boshqalarini esa Hindistonda topdilar, bu esa ularni Vodafone India mutaxassislarini yollashga undadi.
Arxitekturani tahlil qilish uchun biz IBM boshchiligidagi Dream Team guruhini tuzdik - turli sohalardagi me'morlar. Bu odamlar biz qilayotgan ishlarni yetarlicha baholay oldilar va arxitekturamizga aniq bilimlar qo'sha oldilar.
Kattalashtirish
Tasvirlash uchun bir nechta raqamlar.
Biz tizimni loyihalashtiramiz 80 million obunachi, bir milliard zaxiraga egaKelajakdagi to'siqlarni shunday olib tashlaymiz. Bu biz Xitoyni zabt etishni rejalashtirganimiz uchun emas, balki IoT va M2M hujumi tufayli.
300 million hujjat real vaqt rejimida qayta ishlanadiBizda 80 million obunachi bo'lsa-da, biz potentsial mijozlar va debitorlik qarzlarini undirish kerak bo'lganda bizni tark etganlar bilan ham ishlaymiz. Shuning uchun, haqiqiy hajm ancha yuqori.
2 milliard tranzaksiya Balans har kuni o'zgarib turadi - bu to'lovlar, hisob-kitoblar, qo'ng'iroqlar va boshqa tadbirlar. 200 TB ma'lumotlar faol ravishda o'zgarmoqda, biroz sekinroq o'zgartiring 8 PB ma'lumot, va bu arxiv emas, balki yagona billing tizimidagi jonli ma'lumotlar. Ma'lumotlar markazlari bo'ylab miqyos quyidagicha 14 ta saytda 5 ta server.
Texnologiyalar to'plami
Biz arxitekturani rejalashtirib, tizimni qurishni boshlaganimizda, eng qiziqarli va ilg'or texnologiyalarni import qildik. Natijada har qanday internet-pleyer va yuqori yuklamali tizimlarni yaratadigan korporatsiyalarga tanish bo'lgan texnologiyalar to'plami paydo bo'ldi.

Stek boshqa yirik o'yinchilar: Netflix, Twitter, Vibernikiga o'xshaydi. U oltita komponentdan iborat, ammo biz uni qisqartirishni va standartlashtirishni xohlaymiz.
Moslashuvchanlik yaxshi, lekin yirik korporatsiyada birlashishsiz hech qanday yo'l yo'q.
Biz Oracle’ni Tarantool bilan almashtirishni rejalashtirmayapmiz. Yirik kompaniyalar uchun bu utopiya yoki natijasi noaniq bo‘lgan 5-10 yillik salib yurishi. Lekin Cassandra va Couchbase’ni, albatta, Tarantool bilan almashtirish mumkin va biz aynan shu yo‘nalishda ishlayapmiz.
Nima uchun Tarantool?
Ushbu ma'lumotlar bazasini tanlashimizning 4 ta oddiy mezoni mavjud.
tezlikBiz MegaFon sanoat tizimlarida yuk sinovlarini o'tkazdik. Tarantool yuqori ko'rsatkichlarni namoyish etib, g'olib chiqdi.
Gap boshqa tizimlar MegaFon ehtiyojlarini qondirmasligida emas. Hozirgi xotira yechimlari shunchalik kuchliki, kompaniya yetarli darajada yetarli darajada tajribaga ega. Lekin biz yuklama sinovlarini o'z ichiga olgan holda, orqada qolayotgan odam bilan emas, balki yetakchi bilan ishlashdan manfaatdormiz.
Tarantool hatto uzoq muddatda ham kompaniyaning ehtiyojlarini qondiradi.
TCO narxiMegaFon hajmlarida Couchbase-ni qo'llab-quvvatlash juda qimmat, Tarantool esa ancha qulayroq va ularning funksiyalari o'xshash.
Tanlovimizga ozgina ta'sir ko'rsatgan yana bir yaxshi xususiyat shundaki, Tarantool xotirani boshqa ma'lumotlar bazalariga qaraganda yaxshiroq boshqaradi. Bu shuni ko'rsatadiki maksimal samaradorlik.
IshonchlilikMegaFon ishonchlilikka, ehtimol, boshqalarga qaraganda ko'proq mablag' sarflaydi. Shuning uchun biz Tarantoolga qaraganimizda, uni bizning talablarimizga javob berishi kerakligini bilardik.
Biz vaqtimiz va pulimizni sarfladik va Mail.ru bilan birgalikda korporativ versiyasini yaratdik, u hozirda boshqa bir qancha kompaniyalar tomonidan qo'llaniladi.
Tarantool-enterprise bizni xavfsizlik, ishonchlilik va jurnal yuritish nuqtai nazaridan to'liq qoniqtirdi.
Hamkorlik
Men uchun eng muhim narsa bu dasturchi bilan to'g'ridan-to'g'ri aloqaTarantoollik yigitlar bizga aynan shuni pora berishdi.
Agar siz biror o'yinchiga, ayniqsa, langar mijoz bilan ishlaydigan o'yinchiga murojaat qilsangiz va ma'lumotlar bazasi buni, buni va buni qila olishi kerakligini aytsangiz, ular odatda quyidagicha javob berishadi:
- Xo'p, talablarni o'sha uyumning tagiga qo'ying - ehtimol, biz ularga bir kun kelib yetib boramiz.
Ko'pgina kompaniyalarning keyingi ikki-uch yil uchun yo'l xaritasi bor va unga integratsiya qilish deyarli imkonsiz. Ammo Tarantool ishlab chiquvchilari bizni nafaqat MegaFon bilan, balki o'zlarining ochiqligi bilan ham o'ziga jalb qilmoqdalar va ular o'z tizimlarini mijozga moslashtirmoqdalar. Bu ajoyib va bizga bu juda yoqadi.
Tarantooldan qayerda foydalanganmiz
Biz Tarantoolni bir nechta elementlarda ishlatamiz. Birinchisi pilot versiyada, biz uni manzillar katalogi tizimi asosida yaratdik. O'sha paytda biz uni Yandex.Maps va Google Mapsga o'xshash tizim bo'lishini xohlardik, ammo natija biroz boshqacha bo'lib chiqdi.
Masalan, savdo interfeysidagi manzil katalogini olaylik. Oracle'da kerakli manzilni topish 12-13 soniya vaqtni oladi — bu noqulay ko'rsatkich. Tarantool'ga o'tganimizda, konsolda Oracle'ni boshqa ma'lumotlar bazasi bilan almashtirganimizda va xuddi shu qidiruvni amalga oshirganimizda, biz 200 baravar tezlikni olamiz! Shahar uchinchi harfdan keyin paydo bo'ladi. Hozirda biz interfeysni birinchi harfdan keyin paydo bo'ladigan qilib moslashtirmoqdamiz. Biroq, javob vaqti ancha tez — endi soniyalar o'rniga millisekundlar.
Ikkinchi dastur ikki tezlikli IT deb nomlangan zamonaviy mavzu.Buning sababi, dunyoning turli burchaklaridan kelgan maslahatchilar korporatsiyalarga u yerga borishlari kerakligini aytmoqdalar.

Infratuzilma qatlami mavjud va undan yuqorida telekommunikatsiya kabi billing tizimi, korporativ tizimlar va korporativ hisobot kabi sohalar mavjud. Bu asosiy narsa, unga tegmaslik kerak. Bu, albatta, mumkin, ammo sifatni ta'minlash borasida paranoyaklik, chunki bu korporatsiyani pulga aylantiradi.
Keyin mikroservislar qatlami keladi — bu operatorni yoki boshqa o'yinchini ajratib turadigan narsa. Mikroservislar turli domenlardan ma'lumotlarni birlashtirgan holda ma'lum keshlar asosida tezda yaratilishi mumkin. tajribalar uchun maydon Agar biror narsa ishlamasa, men bitta mikroservisni o'chirib, boshqasini ishga tushiraman. Bu bozorga chiqish vaqtini chinakamiga oshiradi va kompaniyaning ishonchliligi va tezligini oshiradi.
Mikroservislar, ehtimol, Tarantoolning MegaFondagi asosiy roli hisoblanadi.
Tarantooldan qayerda foydalanishni rejalashtirmoqdamiz
Deutsche Telekom, Svyazkom va Vodafone India kompaniyalaridagi transformatsiya dasturlari bilan taqqoslaganda, bizning muvaffaqiyatli billing loyihamiz nihoyatda dinamik va ijodiydir. Ushbu loyiha nafaqat MegaFon va uning tuzilmasini o'zgartirdi, balki Mail.ru’da Tarantool Enterprise’ning rivojlanishiga va bizning yetkazib beruvchimiz Nexign (sobiq Peter-Service) da BSS Box (to'liq paketlangan billing yechimi) ning ishga tushirilishiga olib keldi.
Bu, ma'lum ma'noda, Rossiya bozori uchun tarixiy loyihadir. Buni Frederik Bruksning "Afsonaviy odam oyi" kitobida tasvirlangan narsalar bilan taqqoslash mumkin. O'sha paytda, 1960-yillarda, IBM asosiy kompyuterlar uchun yangi OS/360 operatsion tizimini ishlab chiqish uchun 5000 kishini ish bilan ta'minlagan. Bizda kamroq — 1800 — lekin biz chiziqli ko'ylak kiyamiz va ochiq kodli va yangi yondashuvlardan foydalanishimizni hisobga olsak, biz samaraliroqmiz.
Quyida billing yoki kengroq ma'noda biznes tizimlari uchun domenlar keltirilgan. Korxona foydalanuvchilari CRMni yaxshi bilishadi. Boshqa tizimlar allaqachon hamma tomonidan foydalanilishi kerak: Open API, API Gateway.

API oching
Keling, raqamlarga yana bir bor nazar tashlaylik va Open API hozirda qanday ishlayotganini ko'rib chiqamiz. Uning yuklanishi Sekundiga 10 000 ta tranzaksiyaBiz mikroservislar qatlamini faol ravishda rivojlantirishni va MegaFonning ommaviy API-sini yaratishni rejalashtirganimiz sababli, kelajakda bu sohada yanada katta o'sishni kutmoqdamiz. Albatta 100 000 ta tranzaksiya bo'ladi.
Mail.ru’ning SSO ko‘rsatkichlariga tenglasha olamizmi yoki yo‘qmi, bilmayman — ular sekundiga 1 000 0000 ta tranzaksiyani amalga oshirayotgan ko‘rinadi. Biz ularning yechimiga juda qiziqamiz va ularning tajribasini qo‘llashni rejalashtirmoqdamiz — masalan, Tarantool yordamida SSO uchun funktsional zaxira nusxasini yaratish orqali. Mail.ru dasturchilari hozirda biz uchun bu ustida ishlamoqda.
CRM
CRM - bu biz milliardga yetishni istagan 80 million obunachi, chunki bizda uch yillik tarixni qamrab oluvchi 300 million hujjat mavjud. Biz yangi xizmatlarni juda intiqlik bilan kutmoqdamiz va bu yerda o'sish nuqtasi ulangan xizmatlardirBu soha tobora ko'proq xizmatlar qo'shilishi bilan o'sib boradi. Natijada, tarix kerak bo'ladi va biz bu borada xato qilishni xohlamaymiz.
Hisob-faktura va mijozlarning debitorlik qarzlari bilan ishlash nuqtai nazaridan hisob-kitobning o'zi alohida domenga aylantirildiHosildorlikni oshirish uchun, domen arxitekturasi naqshlari qo'llanildi.
Tizim domenlarga bo'lingan, yuk taqsimlangan va xatolarga chidamlilik ta'minlangan. Bundan tashqari, taqsimlangan arxitektura ustida ishlar olib borildi.
Qolganlarning barchasi korporativ darajadagi yechimlardir. Qo'ng'iroqlar xotirasida - Kuniga 2 milliard, Oyiga 60 milliard. Ba'zan ularni har oy qayta hisoblashingiz kerak bo'ladi va buni tezda qilish yaxshiroqdir. Moliyaviy monitoring — aynan shu 300 million doimiy ravishda o'sib bormoqda: abonentlar ko'pincha operatorlar o'rtasida almashinib, bu ulushni oshiradilar.
Mobil aloqaning eng telekommunikatsiya komponenti bu onlayn narxlarBu tizimlar sizga qo'ng'iroq qilish yoki qo'ng'iroq qilmaslik, real vaqt rejimida qaror qabul qilish imkonini beradi. Bu yerdagi yuklama sekundiga 30 000 ta tranzaksiyani tashkil etadi, ammo ma'lumotlar uzatishning o'sishini hisobga olgan holda, biz... 250 000 ta tranzaksiya, va shuning uchun biz Tarantoolga juda qiziqamiz.
Oldingi rasmda biz Tarantool dan foydalanishni rejalashtirgan domenlar ko'rsatilgan. Albatta, CRM ning o'zi kengroq va biz uni yadroda ishlatishni rejalashtirmoqdamiz.
Yiliga 100 million obunachining taxminiy ko'rsatkichi meni me'mor sifatida hayratda qoldiradi - agar u 101 million bo'lsa-chi? Hamma narsani qaytadan bajarishimiz kerakmi? Buning oldini olish uchun biz keshlardan foydalanamiz va shu bilan birga mavjudlikni oshiramiz.

Tarantooldan foydalanishning odatda ikkita yondashuvi mavjud. Birinchisi mikroservis darajasida barcha keshlarni yaratishMen tushunganimcha, VimpelCom mijozlar keshini yaratish orqali shu yo'ldan bormoqda.
Biz sotuvchilarga kamroq bog'liqmiz va BSS yadrosini o'zgartirmoqdamiz, shuning uchun bizda allaqachon yagona mijozlar bazasi mavjud. Lekin biz uni kengaytirishni xohlaymiz. Shunday qilib, biz biroz boshqacha yondashuvni qo'llayapmiz— Biz tizimlar ichida keshlarni yaratamiz.
Bu desinxronizatsiyani kamaytiradi — bitta tizim kesh va asosiy asosiy manba uchun javobgardir.
Bu usul Tarantoolning tranzaksiyaviy skelet yondashuviga juda mos keladi, bu yerda faqat yangilanishlar, ya'ni ma'lumotlar o'zgarishi bilan bog'liq qismlar yangilanadi. Qolgan barcha narsalar boshqa joyda saqlanishi mumkin. Katta ma'lumotlar ko'li yoki boshqarilmaydigan global kesh yo'q. Keshlar tizim, mahsulotlar, mijozlar yoki xizmat ko'rsatuvchi provayderlarning hayotini osonlashtirish uchun mo'ljallangan. Qo'ng'iroq qiluvchi umidsizlik bilan qo'ng'iroq qilganda, siz ularga sifatli xizmat ko'rsatishni xohlaysiz.
RTO va RPO
IT sohasida ikkita atama mavjud - OTR и RPO.
Qayta tiklash vaqtining maqsadi — bu xizmatning nosozlikdan keyin tiklanishi uchun zarur bo'lgan vaqt. RTO = 0 shuni anglatadiki, agar biror narsa noto'g'ri bo'lsa ham, xizmat ishlashda davom etadi.
Qayta tiklash nuqtasining maqsadi — bu ma'lumotlarni tiklash vaqti, ya'ni ma'lum bir vaqt oralig'ida qancha ma'lumot yo'qotishimiz mumkinligi. RPO = 0 biz hech qanday ma'lumotni yo'qotmasligimizni anglatadi.
Tarantool vazifasi
Keling, Tarantool uchun muammoni hal qilishga harakat qilaylik.
BerilganAmazon yoki boshqa joylardagi kabi aniq xarid qilish savati. Majburiy Savatchaning 24/7 yoki vaqtning 99,99% ishlashini ta'minlash uchun. Biz qabul qiladigan buyurtmalar tartibli bo'lishi kerak, chunki biz obunachilarning ulanishlarini tasodifiy ravishda yoqolmaymiz yoki o'chira olmaymiz — hamma narsa qat'iy ketma-ketlikda bo'lishi kerak. Oldingi obuna keyingisiga ta'sir qiladi, shuning uchun ma'lumotlar muhim — hech narsa yo'qolmasligi kerak.
qarorSiz buni bevosita hal qilishga urinib ko'rishingiz va ma'lumotlar bazasini ishlab chiquvchilardan so'rashingiz mumkin, ammo muammo matematik jihatdan hal qilib bo'lmaydigan darajada. Siz teoremalarni, saqlanish qonunlarini va kvant fizikasini eslashingiz mumkin, ammo buning nima keragi bor? Buni ma'lumotlar bazasi darajasida hal qilishning iloji yo'q.
Bu yerda eski yaxshi me'moriy yondashuv o'rin oladi: siz mavzu sohasini yaxshi tushunishingiz va undan foydalanib, ushbu jumboqni yechishingiz kerak.

Bizning yechimimiz: Tarantool’da ilovalarning taqsimlangan reyestrini yaratish – geografik taqsimlangan klasterDiagrammada uchta turli ma'lumotlarni qayta ishlash markazi mavjud — ikkitasi Ural ichida, bittasi Uraldan tashqarida — va biz barcha so'rovlarni ushbu markazlar bo'ylab taqsimlaymiz.
Hozirda IT sohasida yetakchi hisoblangan Netflixning 2012-yilgacha faqat bitta ma'lumot markazi bor edi. Rojdestvo arafasida, 24-dekabrda, ushbu ma'lumotlar markazi ishdan chiqdi. Kanada va AQShdagi foydalanuvchilar sevimli filmlaridan mahrum bo'lishdi, chuqur xafa bo'lishdi va o'z fikrlarini ijtimoiy tarmoqlarda baham ko'rishdi. Netflix endi G'arbiy va Sharqiy sohilda uchta va G'arbiy Yevropada bitta ma'lumot markaziga ega.
Biz boshidanoq geografik jihatdan taqsimlangan yechimni yaratmoqdamiz — xatolarga chidamlilik biz uchun muhim.
Demak, bizda klaster bor, lekin RPO = 0 va RTO = 0 haqida nima deyish mumkin? Yechim oddiy va u mavzuga bog'liq.
Ilovalarda nima muhim? Ikki qism: savatni yig'ish TO sotib olish to'g'risida qaror qabul qilish va KeyinTelekomdagi DO qismi odatda shunday nomlanadi buyurtmani yozib olish yoki buyurtma bo'yicha muzokaralarTelekommunikatsiyalarda bu onlayn-do'konga qaraganda ancha qiyin bo'lishi mumkin, chunki u yerda siz mijozga xizmat ko'rsatishingiz, beshta variantni taklif qilishingiz kerak va bularning barchasi biroz vaqt talab etadi, ammo savat to'lgan. Bu vaqtda nosozlik yuzaga kelishi mumkin, ammo bu katta muammo emas, chunki bu inson nazorati ostida interaktiv ravishda sodir bo'ladi.
Agar Moskva ma'lumotlar markazi to'satdan ishlamay qolsa, biz avtomatik ravishda boshqa ma'lumotlar markaziga o'tamiz va ishlashni davom ettiramiz. Nazariy jihatdan, bitta mahsulot sizning savatingizda yo'qolishi mumkin, ammo siz buni sezasiz, savatingizni to'ldirasiz va ishlashni davom ettirasiz. Bu holda, RTO = 0.
Shu bilan birga, ikkinchi variant ham bor: "yuborish" tugmasini bosganimizda, ma'lumotlar yo'qolmasligiga ishonch hosil qilishni xohlaymiz. Shu paytdan boshlab avtomatlashtirish ishga tushadi — bu RPO = 0. Bu ikki xil naqshning qo'llanilishi: bir holatda, bu shunchaki bitta ishdan bo'shatish ustasi bo'lgan geografik taqsimlangan klaster bo'lishi mumkin, ikkinchi holatda esa qandaydir kvorum yozuvi. Naqshlar farq qilishi mumkin, ammo biz muammoni hal qilmoqdamiz.
Bundan tashqari, taqsimlangan so'rovlar reyestriga ega bo'lgan holda, biz bularning barchasini miqyoslashimiz mumkin - ko'plab dispetcherlar va ijrochilar ushbu reyestrga kirishlari mumkin.

Kassandra va Tarantool birga
Yana bitta holat bor - balans ko'rgazmasiBu Cassandra va Tarantoolni birgalikda ishlatishning qiziqarli holati.
Biz Cassandra’dan foydalanamiz, chunki kuniga 2 milliard qo‘ng‘iroq chegara emas va bundan ham ko‘proq bo‘ladi. Marketing mutaxassislari trafikni manbaga qarab ranglashni yaxshi ko‘radilar va, masalan, ijtimoiy tarmoqlardan tobora ko‘proq tafsilotlar kelmoqda. Bularning barchasi boyroq hikoyaga aylanadi.
Cassandra sizga istalgan hajmga gorizontal ravishda masshtablash imkonini beradi.
Biz Cassandra bilan o'zimizni qulay his qilamiz, lekin uning bitta muammosi bor: u o'qishda unchalik yaxshi emas. Yozish yaxshi; soniyasiga 30 000 ta yozuv muammo emas. o'qish bilan bog'liq muammo.
Shunday qilib, kesh muammosi paydo bo'ldi va biz quyidagi muammoni ham hal qildik: onlayn to'lovlar tufayli kommutatordan olingan uskunalar Cassandra-ga yuklagan fayllarimizga tushib qolishi mumkin bo'lgan uzoq vaqtdan beri mavjud bo'lgan holat mavjud. Biz ushbu fayllarni ishonchli tarzda yuklash masalasini hal qildik, hatto IBM tavsiyasiga amal qilib, fayl uzatish menejeridan foydalandik — masalan, TCP o'rniga UDP dan foydalanib, fayllarni uzatishni samarali boshqaradigan yechimlar mavjud. Bu yaxshi, lekin baribir bir necha daqiqa vaqt oladi va biz hamma narsani yuklamagunimizcha, qo'ng'iroq markazi operatori mijozga uning balansiga nima bo'lganini ayta olmaydi — ular kutishlari kerak.
Buning oldini olish uchun biz biz parallel funktsional zaxiradan foydalanamizMasalan, bugungi kun uchun real vaqt rejimida agregatlarni qayta hisoblab, Kafka orqali Tarantoolga hodisa yuborganimizda, biz quyidagilarni olamiz naqd pul qoldiqlari, bu istalgan tezlikda balanslarni berishi mumkin, masalan, soniyasiga 100 ming tranzaksiya va o'sha 2 soniya.
Maqsad, qo'ng'iroq qilingandan keyin 2 soniya ichida shaxsiy hisobingizda nafaqat o'zgargan balans, balki uning nima uchun o'zgarganligi haqida ma'lumot ham ko'rsatilishini ta'minlashdir.
xulosa
Bular Tarantool foydalanish holatlariga misollar edi. Biz Mail.ru ning ochiqligi va turli foydalanish holatlarini ko'rib chiqishga tayyorligidan juda ta'sirlandik.
BCG, McKinsey, Accenture yoki IBM maslahatchilari endi bizni biron bir yangilik bilan hayratda qoldirishga qiynalmoqdalar — biz ular taklif qilayotgan narsalarning ko'pini allaqachon amalga oshirganmiz, amalga oshirganmiz yoki rejalashtirmoqdamiz. Ishonamanki, Tarantool bizning texnologiyalar to'plamimizdagi munosib o'rinni egallaydi va ko'plab mavjud texnologiyalarni almashtiradi. Biz ushbu loyihani faol ravishda rivojlantirmoqdamiz.
Oleg va Andreyning taqdimoti o'tgan yili Tarantool konferensiyasida eng yaxshilaridan biri bo'lgan va 17-iyun kuni Oleg Ivlev nutq so'zlaydi. hisobot bilan Aleksandr Deulin shuningdek, MegaFon kompaniyasidan reportaj taqdim etadi. Keling, nimalar o'zgarganini va qanday rejalar amalga oshirilganini bilib olaylik. Bizga qo'shiling — konferensiya bepul, siz shunchaki qilishingiz kerak . Hammasi va konferensiya dasturi yakunlandi: yangi holatlar, Tarantooldan foydalanishning yangi tajribalari, arxitektura, korxona, qo'llanmalar va mikroservislar.
Manba: www.habr.com
