Qaysi biri yaxshiroq - Oracle yoki Redis yoki platformani tanlashni qanday oqlash kerak

"Bu kerak", dedi u baland ovozda, hech kimga murojaat qilmasdan. - Bu kerak! Aynan shunday deyilgan: kompaniyaning asosiy vazifasi - aktsiyadorlar manfaatlarini ko'zlab foyda olishdir. Xo'sh, o'ylab ko'ring! Ular hech narsadan qo'rqmaydilar!

Yuliy Dubov, "Kichik yovuzlik"

Bunday sarlavhani ko'rib, siz maqolani yo ahmoqlik yoki provokatsiya deb qaror qilgandirsiz. Ammo xulosa chiqarishga shoshilmang: yirik korporatsiyalarning xodimlari, ayniqsa davlat ishtirokidagi korporatsiyalar ko'pincha turli platformalarni, shu jumladan butunlay boshqa platformalarni, masalan, nomdagilarni solishtirishlari kerak.

Qaysi biri yaxshiroq - Oracle yoki Redis yoki platformani tanlashni qanday oqlash kerak

Albatta, hech kim ma'lumotlar bazasini bu tarzda solishtirmaydi, chunki ularning kuchli va zaif tomonlari yaxshi ma'lum. Qoida tariqasida, ba'zi amaliy muammolarni hal qiladigan platformalar taqqoslanadi. Maqolada men Habr o'quvchilariga birinchi tanish bo'lgan mavzu sifatida ma'lumotlar bazalari misolidan foydalanib, bu holatda qo'llaniladigan metodologiyani ko'rsataman. Shunday qilib,

Motivatsiya

Ta'lim loyihasini yoki sevimli mashg'ulot loyihasini boshlaganingizda, platformani tanlash uchun motivatsiya juda xilma-xil bo'lishi mumkin: "bu men eng yaxshi biladigan platforma", "men buni tushunishga qiziqaman", "bu erda eng yaxshi hujjatlar" ...Tijorat kompaniyasida tanlov mezoni bir xil: qancha to‘lashim kerak va bu pulga nima olaman.

Tabiiyki, siz kamroq to'lashni va ko'proq olishni xohlaysiz. Biroq, siz nima muhimroq ekanligini hal qilishingiz kerak - kamroq to'lash yoki ko'proq olish va har bir tugunga vazn belgilash. Faraz qilaylik, yuqori sifatli yechim biz uchun arzondan ko'ra muhimroq va biz "Xarajat" tuguniga 40% va "Imkoniyatlar" tuguniga 60% og'irlikni belgilaymiz.

Qaysi biri yaxshiroq - Oracle yoki Redis yoki platformani tanlashni qanday oqlash kerak

Yirik korporatsiyalarda buning aksi odatda to'g'ri bo'ladi - xarajat og'irligi 50% dan pastga tushmaydi va ehtimol 60% dan oshadi. Namunaviy misolda, muhim narsa shundaki, har qanday ota-ona tugunining bola tugunlarining umumiy og'irligi 100% bo'lishi kerak.

Chiqib ketish shartlari

Veb-sayt db-engines.com 500 ga yaqin ma'lumotlar bazasini boshqarish tizimlari ma'lum. Tabiiyki, agar siz juda ko'p variantlardan maqsadli platformani tanlasangiz, siz ko'rib chiqish maqolasiga ega bo'lishingiz mumkin, ammo tijorat loyihasi emas. Tanlov maydonini qisqartirish uchun chegara mezonlari shakllantiriladi va agar platforma ushbu mezonlarga javob bermasa, u hisobga olinmaydi.

Chiqib ketish mezonlari texnologik xususiyatlar bilan bog'liq bo'lishi mumkin, masalan:

  • ACID kafolatlari;
  • relyatsion ma'lumotlar modeli;
  • SQL tilini qo'llab-quvvatlash (esda tuting, bu "relational model" bilan bir xil emas);
  • gorizontal masshtablash imkoniyati.

Umumiy mezonlar bo'lishi mumkin:

  • Rossiyada tijorat yordamining mavjudligi;
  • ochiq manba;
  • platformaning Telekommunikatsiya va ommaviy kommunikatsiyalar vazirligi reestrida mavjudligi;
  • platformaning ba'zi reytinglarda mavjudligi (masalan, db-engines.com reytingining birinchi yuzligida);
  • bozorda mutaxassislarning mavjudligi (masalan, hh.ru veb-saytida rezyumeda platforma nomini qidirish natijalari asosida).

Axir, korxonaga xos mezonlar bo'lishi mumkin:

  • xodimlarda mutaxassislarning mavjudligi;
  • monitoring tizimi X yoki barcha qo'llab-quvvatlash asoslangan Y zaxira tizimi bilan muvofiqligi...

Eng muhimi, kesish mezonlari ro'yxati mavjud. Aks holda, menejmentning alohida ishonchiga ega bo'lgan ba'zi ekspert (yoki "mutaxassis") bo'ladi, ular "nega Z platformasini tanlamadingiz, men buni eng yaxshisi deb bilaman" deb aytadi.

Xarajatlar smetasi

Yechimning narxi, shubhasiz, litsenziyalar, qo'llab-quvvatlash va uskunalar narxidan iborat.

Agar tizimlar taxminan bir xil sinfga ega bo'lsa (masalan, Microsoft SQL Server va PostgreSQL), soddalik uchun ikkala echim uchun uskunalar miqdori taxminan bir xil bo'ladi deb taxmin qilishimiz mumkin. Bu sizga uskunani baholamaslikka imkon beradi va shu bilan ko'p vaqt va kuchni tejaydi. Agar siz butunlay boshqa tizimlarni (aytaylik, Oracle va Redisni) taqqoslashingiz kerak bo'lsa, unda to'g'ri baholash uchun o'lchamlarni (uskunalar miqdorini hisoblash) qilish kerakligi aniq. Mavjud bo'lmagan tizimni o'lchash juda minnatdor bo'lmagan ish, shuning uchun ular hali ham bunday taqqoslashlardan qochishga harakat qilishadi. Buni qilish oson: kesish sharoitida nol ma'lumotlar yo'qotilishi va relyatsion model yoziladi yoki aksincha - soniyada 50 ming tranzaksiya yuki.

Litsenziyalarni baholash uchun sotuvchidan yoki uning hamkorlaridan belgilangan miqdordagi yadrolar uchun litsenziya narxini va belgilangan muddatga qo'llab-quvvatlashni so'rash kifoya. Qoidaga ko'ra, kompaniyalar allaqachon dasturiy ta'minot sotuvchilari bilan mustahkam aloqalarga ega va agar ma'lumotlar bazasi operatsiyalari bo'limi xarajatlar haqidagi savolga o'zi javob bera olmasa, bu ma'lumotni olish uchun bitta harf kifoya qiladi.

Turli ishlab chiqaruvchilar turli xil litsenziya ko'rsatkichlariga ega bo'lishi mumkin: yadrolar soni, ma'lumotlar hajmi yoki tugunlar soni bo'yicha. Kutish bazasi bepul bo'lishi mumkin yoki u asosiysi bilan bir xil tarzda litsenziyalanishi mumkin. Agar ko'rsatkichlarda biron bir farq aniqlansa, siz model stendini batafsil tavsiflashingiz va stend uchun litsenziyalar narxini hisoblashingiz kerak bo'ladi.

To'g'ri taqqoslash uchun muhim nuqta - bir xil qo'llab-quvvatlash shartlari. Misol uchun, Oracle-ni qo'llab-quvvatlash yiliga litsenziya narxining 22% ni tashkil qiladi, ammo siz PostgreSQL-ni qo'llab-quvvatlash uchun to'lashingiz shart emas. Bunday solishtirish to'g'rimi? Yo'q, chunki o'z-o'zidan tuzatib bo'lmaydigan xato butunlay boshqacha oqibatlarga olib keladi: birinchi holda, qo'llab-quvvatlash mutaxassislari uni tezda tuzatishga yordam berishadi, ammo ikkinchi holda, loyihani kechiktirish yoki tugatilgan ish vaqtini kechiktirish xavfi mavjud. tizim noma'lum muddatga.

Hisoblash shartlarini uchta usulda tenglashtirishingiz mumkin:

  1. Oracle-dan yordamisiz foydalaning (aslida bunday bo'lmaydi).
  2. PostgreSQL-ni qo'llab-quvvatlashni sotib oling - masalan, Postgres Professional-dan.
  3. Qo'llab-quvvatlash etishmasligi bilan bog'liq xavflarni hisobga oling.

Misol uchun, xavfni hisoblash quyidagicha ko'rinishi mumkin: ma'lumotlar bazasi halokatli ishlamay qolsa, tizimning ishlamay qolishi 1 ish kunini tashkil qiladi. Tizimdan foydalanishdan rejalashtirilgan foyda yiliga 40 milliard so'mni tashkil qiladi, avariya darajasi 1/400 deb baholanadi, shuning uchun qo'llab-quvvatlanmaslik xavfi yiliga taxminan 100 million so'mni tashkil qiladi. Shubhasiz, "rejalashtirilgan foyda" va "taxminiy baxtsiz hodisa chastotasi" virtual qiymatlardir, ammo bunday modelga ega bo'lish yo'qligidan ko'ra yaxshiroqdir.

Aslida, tizim juda muhim bo'lishi mumkin, chunki uzoq muddatli ishlamay qolishning obro'li narxi qabul qilinishi mumkin emas, shuning uchun qo'llab-quvvatlash kerak bo'ladi. Agar ishlamay qolishga ruxsat berilsa, qo'llab-quvvatlashni rad etish ba'zan pulni tejashning yaxshi usuli bo'lishi mumkin.

Faraz qilaylik, barcha hisob-kitoblardan so‘ng, A platformasining 5 yil davomidagi ish haqi 800 million so‘m, B operatsion platformasining narxi 650 million so‘m, C operatsion platformasining narxi 600 million so‘m bo‘lib chiqadi. C platformasi g'olib sifatida narx uchun to'liq ball oladi, A va B platformalari esa necha barobar qimmatroq bo'lishiga mutanosib ravishda biroz kamroq oladi. Bu holda - mos ravishda 0.75 va 0.92 ball.

Imkoniyatlarni baholash

Imkoniyatlarni baholash ko'plab guruhlarga bo'linadi, ularning soni faqat baholashni amalga oshiruvchi shaxsning tasavvuriga bog'liq. Optimal variant imkoniyatlarni ushbu imkoniyatlardan foydalanadigan jamoalarga bo'lish kabi ko'rinadi; bizning misolimizda bular ishlab chiquvchilar, ma'murlar va axborot xavfsizligi xodimlari. Faraz qilaylik, bu funksiyalarning og'irliklari 40:40:20 sifatida taqsimlangan.

Rivojlanish funktsiyalariga quyidagilar kiradi:

  • ma'lumotlarni manipulyatsiya qilish qulayligi;
  • masshtablash;
  • ikkilamchi indekslarning mavjudligi.

Mezonlar ro'yxati, shuningdek, ularning vazni juda sub'ektivdir. Xuddi shu muammoni hal qilishda ham, bu ro'yxatlar, elementlarning og'irligi va javoblari sizning jamoangiz tarkibiga qarab sezilarli darajada farqlanadi. Misol uchun, Facebook ma'lumotlarni saqlash uchun MySQL-dan foydalanadi va Instagram Cassandra-da qurilgan. Ushbu ilovalarni ishlab chiquvchilar bunday jadvallarni to'ldirishlari dargumon. Faqatgina taxmin qilish mumkinki, Mark Tsukerberg to'liq relyatsion modelni tanlagan va buning uchun qo'llaniladigan sharding zaruriyati bilan to'lagan, Kevin Systrom esa platforma yordamida masshtablashni yaratgan va ma'lumotlarga kirish qulayligini qurbon qilgan.

Ma'muriy funktsiyalarga quyidagilar kiradi:

  • zaxira tizimi imkoniyatlari;
  • monitoring qulayligi;
  • imkoniyatlarni boshqarish qulayligi - disklar va tugunlar;
  • ma'lumotlarni takrorlash qobiliyati.

E'tibor bering, savollar miqdoriy jihatdan ifodalanishi kerak. Siz hatto ma'lum bir funktsiyani qanday baholash haqida kelishib olishingiz mumkin. Keling, masalan, Oracle DBMS bilan ta'minlangan asboblar misolidan foydalanib, zaxira vositalarini baholashga harakat qilaylik:

asbob
izoh
baholash

imp/exp
Ma'lumotlarni yuklash va yuklash
0.1

zaxiralashni boshlash/tugatish
Fayllarni nusxalash
0.3

RMAN
Qo'shimcha nusxa ko'chirish qobiliyati
0.7

ZDLRA
Faqat bosqichma-bosqich nusxa ko'chirish, nuqtagacha eng tez tiklanish
1.0

Agar aniq baholash mezonlari bo'lmasa, bir nechta ekspertlardan baho berishni so'rash va keyin ularni o'rtacha baholash mantiqan.

Va nihoyat, biz shunchaki axborot xavfsizligi funktsiyalarini sanab o'tamiz:

  • parollarni boshqarish siyosatining mavjudligi;
  • tashqi autentifikatsiya vositalarini (LDAP, Kerberos) ulash imkoniyati;
  • kirish uchun namuna;
  • auditorlik qobiliyati;
  • diskdagi ma'lumotlarni shifrlash;
  • tarmoq orqali uzatish paytida shifrlash (TLS);
  • administrator tomonidan ma'lumotlarni himoya qilish.

Ishlash testi

Alohida-alohida, men siz tomonidan argument sifatida keltirilmagan har qanday yuk sinovlari natijalaridan foydalanishdan ogohlantirmoqchiman.

Birinchidan, sinovdan o'tayotgan ilovalarning ma'lumotlar tuzilishi va yuklanish profili siz hal qilmoqchi bo'lgan muammodan sezilarli darajada farq qilishi mumkin. Taxminan 10-15 yil oldin, ma'lumotlar bazasi sotuvchilari TPC testlarida erishilgan natijalarni ko'rsatishni yaxshi ko'rar edilar, ammo hozir, hech kim bu natijalarni jiddiy qabul qilmaydi.

Ikkinchidan, tizimning ishlashi kod dastlab qaysi platforma uchun yozilganiga va sinov qaysi uskunada o'tkazilganiga juda bog'liq. Men Oracle-ni PostgreSQL bilan taqqoslagan ko'plab testlarni ko'rdim. Natijalar bir tizimning so'zsiz ustunligidan ikkinchisining teng darajada so'zsiz ustunligiga qadar o'zgarib turadi.

Va nihoyat, uchinchidan, siz testni kim o'tkazganligi haqida hech narsa bilmaysiz. Ikkala malaka ham muhim bo'lib, OS va platformani o'rnatish sifatiga ta'sir qiladi, shuningdek, test natijalariga boshqa barcha omillardan ko'ra ko'proq ta'sir ko'rsatadigan motivatsiya.

Agar samaradorlik muhim omil bo'lsa, sinovni o'zingiz o'tkazing, yaxshisi ishlab chiqarish tizimini sozlaydigan va ta'minlaydigan odamlarning yordami bilan.

natija

Va nihoyat, barcha bajarilgan ishlarning natijasi barcha hisob-kitoblar birlashtirilgan, ko'paytiriladigan va umumlashtirilgan jadval bo'lishi kerak:

Qaysi biri yaxshiroq - Oracle yoki Redis yoki platformani tanlashni qanday oqlash kerak

Siz tushunganingizdek, shkalani o'zgartirish va reytinglarni o'zgartirish orqali siz istalgan natijaga erishishingiz mumkin, ammo bu butunlay boshqacha hikoya ...

Manba: www.habr.com

a Izoh qo'shish