Alin ang mas mahusay - Oracle o Redis o Paano bigyang-katwiran ang pagpili ng platform

"Ito ay kinakailangan," malakas na sabi niya, hindi nakikipag-usap sa sinuman. - Ito ay kinakailangan! Ito mismo ang sinasabi nito: ang pangunahing gawain ng isang kumpanya ay kumita sa interes ng mga shareholder. Well, isipin mo ito! Hindi sila natatakot sa anumang bagay!

Yuliy Dubov, β€œLesser Evil”

Kapag nakakita ka ng ganoong headline, malamang na napagpasyahan mo na ang artikulo ay alinman sa kahangalan o isang provocation. Ngunit huwag magmadali sa mga konklusyon: ang mga empleyado ng malalaking korporasyon, lalo na ang mga korporasyon na may partisipasyon ng estado, ay madalas na kailangang ihambing ang iba't ibang mga platform, kabilang ang ganap na naiiba - halimbawa, ang mga nasa pamagat.

Alin ang mas mahusay - Oracle o Redis o Paano bigyang-katwiran ang pagpili ng platform

Siyempre, walang nagkukumpara sa mga DBMS sa ganitong paraan, dahil kilala ang kanilang mga kalakasan at kahinaan. Bilang isang tuntunin, ang mga platform na lumulutas ng ilang problema sa aplikasyon ay napapailalim sa paghahambing. Sa artikulong ipapakita ko ang pamamaraan na ginamit sa kasong ito, gamit ang halimbawa ng mga database bilang isang paksa na pamilyar sa mga mambabasa ng Habr mismo. Kaya,

Pagganyak

Kapag nagsimula ka ng isang proyektong pang-edukasyon o isang proyekto sa libangan, ang motibasyon para sa pagpili ng isang platform ay maaaring maging lubhang magkakaibang: "ito ang platform na alam kong pinakamahusay", "Interesado akong maunawaan ang isang ito", "narito ang pinakamahusay na dokumentasyon" ... Sa kaso ng isang komersyal na kumpanya, ang pamantayan sa pagpili ay pareho: magkano ang dapat kong bayaran at ano ang makukuha ko para sa perang ito.

Natural, gusto mong magbayad ng mas kaunti at makakuha ng higit pa. Gayunpaman, kailangan mong magpasya kung ano ang mas mahalaga - magbayad ng mas mababa o makakuha ng higit pa, at magtalaga ng timbang sa bawat node. Ipagpalagay natin na mas mahalaga sa amin ang isang de-kalidad na solusyon kaysa sa mura, at magtatalaga kami ng timbang na 40% sa node na "Gastos", at 60% sa node na "Mga Pagkakataon".

Alin ang mas mahusay - Oracle o Redis o Paano bigyang-katwiran ang pagpili ng platform

Sa malalaking korporasyon, ang kabaligtaran ay kadalasang totoo - ang bigat ng gastos ay hindi bababa sa 50%, at maaaring higit sa 60%. Sa halimbawa ng modelo, ang mahalaga lang ay ang kabuuang bigat ng mga child node ng anumang parent node ay dapat na 100%.

Mga kondisyon ng cut-off

Website db-engines.com May mga 500 database management system na kilala. Naturally, kung pipili ka ng isang target na platform mula sa napakaraming mga pagpipilian, maaari kang magkaroon ng isang artikulo sa pagsusuri, ngunit hindi isang komersyal na proyekto. Upang bawasan ang puwang sa pagpili, ang mga pamantayan sa cut-off ay binuo, at kung ang platform ay hindi nakakatugon sa mga pamantayang ito, hindi ito isinasaalang-alang.

Ang cut-off na pamantayan ay maaaring nauugnay sa mga teknolohikal na tampok, halimbawa:

  • Mga garantiya ng ACID;
  • modelo ng data ng relasyon;
  • Suporta sa wikang SQL (tandaan, hindi ito katulad ng "relational model");
  • posibilidad ng pahalang na pag-scale.

Maaaring may pangkalahatang pamantayan:

  • pagkakaroon ng komersyal na suporta sa Russia;
  • open source;
  • pagkakaroon ng platform sa Register ng Ministry of Telecom at Mass Communications;
  • pagkakaroon ng platform sa ilang rating (halimbawa, sa unang daan ng db-engines.com rating);
  • ang pagkakaroon ng mga eksperto sa merkado (halimbawa, batay sa mga resulta ng paghahanap para sa pangalan ng platform sa isang resume sa website hh.ru).

Pagkatapos ng lahat, maaaring mayroong pamantayang partikular sa negosyo:

  • pagkakaroon ng mga espesyalista sa kawani;
  • compatibility sa monitoring system X o backup system Y, kung saan nakabatay ang lahat ng suporta...

Ang pinakamahalagang bagay ay mayroong isang listahan ng mga cut-off na pamantayan. Kung hindi, tiyak na may ilang eksperto (o β€œeksperto”) na may espesyal na tiwala mula sa management na magsasabing β€œbakit hindi mo pinili ang platform Z, alam kong ito ang pinakamahusay.”

pagtatantya ng gastos

Ang halaga ng solusyon ay malinaw na binubuo ng halaga ng mga lisensya, ang halaga ng suporta at ang halaga ng kagamitan.

Kung ang mga system ay humigit-kumulang sa parehong klase (halimbawa, Microsoft SQL Server at PostgreSQL), kung gayon para sa pagiging simple maaari nating ipagpalagay na ang dami ng kagamitan para sa parehong mga solusyon ay magiging halos pareho. Ito ay magpapahintulot sa iyo na huwag suriin ang kagamitan, sa gayon ay makatipid ng maraming oras at pagsisikap. Kung kailangan mong ihambing ang ganap na magkakaibang mga sistema (sabihin, Oracle kumpara sa Redis), kung gayon ay malinaw na para sa isang tamang pagtatasa kinakailangan na gawin ang sizing (pagkalkula ng dami ng kagamitan). Ang pagpapalaki ng isang di-umiiral na sistema ay isang napakawalang pasasalamat na gawain, kaya sinusubukan pa rin nilang iwasan ang gayong mga paghahambing. Madaling gawin ito: sa mga cut-off na kondisyon, walang pagkawala ng data at isang relational na modelo ay nakasulat, o kabaliktaran - isang load ng 50 libong mga transaksyon sa bawat segundo.

Upang suriin ang mga lisensya, sapat na tanungin ang vendor o ang mga kasosyo nito para sa halaga ng isang lisensya para sa isang nakapirming bilang ng mga core at suporta para sa isang nakapirming panahon. Bilang isang patakaran, ang mga kumpanya ay mayroon nang malakas na relasyon sa mga nagtitinda ng software, at kung ang departamento ng pagpapatakbo ng database ay hindi makasagot sa tanong sa gastos sa sarili nitong, kung gayon ang isang liham ay sapat upang makuha ang impormasyong ito.

Maaaring may iba't ibang sukatan ng paglilisensya ang iba't ibang vendor: ayon sa bilang ng mga core, dami ng data o bilang ng mga node. Ang standby base ay maaaring libre, o maaari itong maging lisensyado sa parehong paraan tulad ng pangunahing isa. Kung may natuklasang anumang pagkakaiba sa mga sukatan, kakailanganin mong ilarawan ang modelong stand nang detalyado at kalkulahin ang halaga ng mga lisensya para sa stand.

Ang isang mahalagang punto para sa isang tamang paghahambing ay ang parehong mga kondisyon ng suporta. Halimbawa, ang suporta sa Oracle ay nagkakahalaga ng 22% ng presyo ng lisensya bawat taon, ngunit hindi mo kailangang magbayad para sa suporta sa PostgreSQL. Tama bang magkumpara ng ganito? Hindi, dahil ang isang error na hindi maaayos sa iyong sarili ay may ganap na magkakaibang mga kahihinatnan: sa unang kaso, ang mga espesyalista sa suporta ay mabilis na tutulong sa iyo na ayusin ito, ngunit sa pangalawang kaso, may panganib na maantala ang proyekto o downtime ng tapos na. sistema para sa isang hindi tiyak na panahon.

Maaari mong ipantay ang mga kundisyon sa pagkalkula sa tatlong paraan:

  1. Gumamit ng Oracle nang walang suporta (sa katotohanan ay hindi ito nangyayari).
  2. Bumili ng suporta para sa PostgreSQL - halimbawa, mula sa Postgres Professional.
  3. Isaalang-alang ang mga panganib na nauugnay sa kakulangan ng suporta.

Halimbawa, maaaring ganito ang hitsura ng pagkalkula ng panganib: kung sakaling magkaroon ng nakamamatay na pagkabigo sa database, ang downtime ng system ay magiging 1 araw ng negosyo. Ang inaasahang tubo mula sa paggamit ng sistema ay 40 bilyong MNT bawat taon, ang rate ng aksidente ay tinatantya na 1/400, kaya ang panganib ng kakulangan ng suporta ay tinatantya sa humigit-kumulang 100 milyong MNT bawat taon. Malinaw, ang "pinaplanong tubo" at "tinantyang dalas ng aksidente" ay mga virtual na halaga, ngunit mas mahusay na magkaroon ng gayong modelo kaysa wala.

Sa totoo lang, maaaring masyadong mahalaga ang system para hindi katanggap-tanggap ang reputational cost ng pangmatagalang downtime, kaya kakailanganin ang suporta. Kung pinapayagan ang downtime, kung gayon ang pagtanggi sa suporta ay maaaring minsan ay isang magandang paraan upang makatipid ng pera.

Ipagpalagay natin na pagkatapos ng lahat ng mga kalkulasyon, ang halaga ng operating platform A sa loob ng 5 taon ay naging 800 milyong MNT, ang halaga ng operating platform B ay 650 milyong MNT, at ang gastos ng operating platform C ay 600 milyong MNT. Ang Platform C, bilang panalo, ay tumatanggap ng buong punto para sa presyo, habang ang mga platform A at B ay nakakatanggap ng kaunti mas kaunti, sa proporsyon sa kung gaano karaming beses ang mga ito ay mas mahal. Sa kasong ito - 0.75 at 0.92 puntos, ayon sa pagkakabanggit.

Pagtataya ng pagkakataon

Ang pagtatasa ng mga pagkakataon ay nahahati sa maraming grupo, ang bilang nito ay limitado lamang sa imahinasyon ng taong gumagawa ng pagtatasa. Ang pinakamainam na opsyon ay tila hatiin ang mga kakayahan sa mga pangkat na gagamit ng mga kakayahan na ito; sa aming halimbawa, ito ay mga developer, administrator at opisyal ng seguridad ng impormasyon. Ipagpalagay natin na ang mga timbang ng mga function na ito ay ibinahagi bilang 40:40:20.

Kasama sa mga function ng pag-unlad ang:

  • kadalian ng pagmamanipula ng data;
  • scaling;
  • pagkakaroon ng pangalawang index.

Ang listahan ng mga pamantayan, pati na rin ang kanilang mga timbang, ay napaka-subjective. Kahit na nilutas ang parehong problema, ang mga listahan, timbang ng item, at sagot na ito ay mag-iiba nang malaki depende sa komposisyon ng iyong koponan. Halimbawa, ang Facebook ay gumagamit ng MySQL upang mag-imbak ng data, at ang Instagram ay binuo sa Cassandra. Hindi malamang na pinunan ng mga developer ng mga application na ito ang mga naturang talahanayan. Maaari lamang hulaan ng isa na si Mark Zuckerberg ay pumili ng isang ganap na relational na modelo, na binabayaran ito nang may pangangailangan para sa inilapat na sharding, habang si Kevin Systrom ay nagtayo ng scaling gamit ang platform, na sinasakripisyo ang kadalian ng pag-access sa data.

Kasama sa mga tungkulin ng pangangasiwa ang:

  • backup na mga kakayahan ng system;
  • kadalian ng pagsubaybay;
  • kadalian ng pamamahala ng kapasidad - mga disk at node;
  • mga kakayahan sa pagtitiklop ng data.

Pakitandaan na ang mga tanong ay dapat na mabigkas ng mga salita sa paraang dami. Maaari ka ring sumang-ayon sa kung paano suriin ang isang partikular na function. Halimbawa, subukan nating i-rate ang mga backup na tool gamit ang halimbawa ng mga tool na ibinigay kasama ng Oracle DBMS:

Kasangkapan
Puna
Paghusga

imp/exp
Pag-upload at pag-load ng data
0.1

simulan/tapusin ang backup
Pagkopya ng mga file
0.3

RMAN
Incremental na kakayahan sa pagkopya
0.7

ZDLRA
Tanging incremental na pagkopya, pinakamabilis na pagbawi sa punto
1.0

Kung walang malinaw na pamantayan sa pagsusuri, makatuwirang hilingin sa ilang eksperto na magbigay ng mga rating at pagkatapos ay i-average ang mga ito.

Sa wakas, inilista lang namin ang mga function ng seguridad ng impormasyon:

  • pagkakaroon ng mga patakaran sa pamamahala ng password;
  • ang kakayahang kumonekta sa mga panlabas na tool sa pagpapatunay (LDAP, Kerberos);
  • modelo ng pag-access;
  • mga kakayahan sa pag-audit;
  • pag-encrypt ng data sa disk;
  • pag-encrypt sa panahon ng paghahatid sa network (TLS);
  • proteksyon ng data mula sa administrator.

Subukan ang performance

Hiwalay, gusto kong magbabala laban sa paggamit ng mga resulta ng anumang mga pagsubok sa pag-load na hindi mo ginawa bilang mga argumento.

Una, ang istraktura ng data at profile ng pag-load ng mga application na sinusuri ay maaaring magkaiba nang malaki sa problemang lulutasin mo. Mga 10-15 taon na ang nakalilipas, ang mga vendor ng database ay gustong ipagmalaki ang mga resultang nakamit sa mga pagsubok sa TPC, ngunit ngayon, tila, walang sinuman ang sineseryoso ang mga resultang ito.

Pangalawa, ang pagganap ng system ay lubos na nakadepende sa kung anong platform ang orihinal na isinulat ng code at sa kung anong kagamitan ang isinagawa ng pagsubok. Nakakita ako ng maraming pagsubok kung saan inihambing ang Oracle sa PostgreSQL. Ang mga resulta ay mula sa unconditional superiority ng isang system hanggang sa pantay na unconditional superiority ng isa pa.

At panghuli, pangatlo, wala kang alam tungkol sa kung sino ang gumawa ng pagsusulit. Ang parehong mga kwalipikasyon ay mahalaga, na nakakaimpluwensya sa kalidad ng pag-set up ng OS at platform, pati na rin ang pagganyak, na nakakaimpluwensya sa mga resulta ng pagsubok nang higit sa lahat ng iba pang mga kadahilanan na pinagsama.

Kung ang pagganap ay isang kritikal na kadahilanan, isagawa ang pagsubok sa iyong sarili, mas mabuti sa tulong ng mga taong magko-configure at magpanatili ng sistema ng produksyon.

Resulta

Sa wakas, ang resulta ng lahat ng gawaing ginawa ay dapat na isang spreadsheet kung saan ang lahat ng mga pagtatantya ay pinagsama, pinarami at nabubuod:

Alin ang mas mahusay - Oracle o Redis o Paano bigyang-katwiran ang pagpili ng platform

Tulad ng naiintindihan mo, sa pamamagitan ng pagbabago ng mga timbangan at pagsasaayos ng mga rating maaari mong makamit ang anumang nais na resulta, ngunit iyon ay isang ganap na naiibang kuwento...

Pinagmulan: www.habr.com

Magdagdag ng komento