Ambayo ni bora - Oracle au Redis au Jinsi ya kuhalalisha uchaguzi wa jukwaa

"Hii ni muhimu," alisema kwa sauti kubwa, bila kumwambia mtu yeyote. - Hii ni lazima! Hivi ndivyo inavyosema: kazi kuu ya kampuni ni kupata faida kwa maslahi ya wanahisa. Naam, fikiria juu yake! Hawaogopi chochote!

Yuliy Dubov, "Uovu Mdogo"

Baada ya kuona kichwa kama hicho, labda tayari umeamua kuwa nakala hiyo ni ya ujinga au ya uchochezi. Lakini usikimbilie kuhitimisha: wafanyikazi wa mashirika makubwa, haswa mashirika na ushiriki wa serikali, mara nyingi wanapaswa kulinganisha majukwaa tofauti, pamoja na tofauti kabisa - kwa mfano, yale yaliyo kwenye kichwa.

Ambayo ni bora - Oracle au Redis au Jinsi ya kuhalalisha uchaguzi wa jukwaa

Bila shaka, hakuna mtu anayelinganisha DBMS kwa njia hii, kwa sababu nguvu zao na udhaifu wao hujulikana. Kama sheria, majukwaa ambayo yanasuluhisha shida fulani ya programu yanaweza kulinganishwa. Katika kifungu hicho nitaonyesha mbinu ambayo inatumika katika kesi hii, kwa kutumia mfano wa hifadhidata kama somo ambalo linajulikana kwa wasomaji wa Habr moja kwa moja. Kwa hiyo,

Motisha

Unapoanzisha mradi wa kielimu au mradi wa hobby, motisha ya kuchagua jukwaa inaweza kuwa tofauti sana: "hili ndilo jukwaa ninalojua zaidi", "Nina nia ya kuelewa hili", "hapa kuna nyaraka bora" ... Katika kesi ya kampuni ya kibiashara, kigezo cha uteuzi ni sawa: ni kiasi gani nitalazimika kulipa na nitapata nini kwa pesa hii.

Kwa kawaida, unataka kulipa kidogo na kupata zaidi. Walakini, unahitaji kuamua ni nini muhimu zaidi - kulipa kidogo au kupata zaidi, na upe uzito kwa kila nodi. Hebu tuchukue kwamba suluhisho la ubora wa juu ni muhimu zaidi kwetu kuliko bei nafuu, na tunatoa uzito wa 40% kwa node ya "Gharama", na 60% kwa node ya "Fursa".

Ambayo ni bora - Oracle au Redis au Jinsi ya kuhalalisha uchaguzi wa jukwaa

Katika makampuni makubwa, kinyume chake ni kawaida - uzito wa gharama hauanguka chini ya 50%, na labda zaidi ya 60%. Katika mfano wa mfano, yote ambayo ni muhimu ni kwamba uzito wa jumla wa nodi za mtoto wa nodi yoyote ya mzazi lazima iwe 100%.

Masharti ya kukata

Tovuti db-engines.com Kuna takriban mifumo 500 ya usimamizi wa hifadhidata inayojulikana. Kwa kawaida, ukichagua jukwaa la lengo kutoka kwa chaguo nyingi, unaweza kuishia na makala ya ukaguzi, lakini sio mradi wa kibiashara. Ili kupunguza nafasi ya uchaguzi, vigezo vya kukatwa vinatengenezwa, na ikiwa jukwaa halikidhi vigezo hivi, basi halizingatiwi.

Vigezo vya kukatwa vinaweza kuhusiana na vipengele vya teknolojia, kwa mfano:

  • dhamana ya ACID;
  • mfano wa data ya uhusiano;
  • Usaidizi wa lugha ya SQL (kumbuka, hii si sawa na "mfano wa uhusiano");
  • uwezekano wa kuongeza usawa.

Kunaweza kuwa na vigezo vya jumla:

  • upatikanaji wa msaada wa kibiashara nchini Urusi;
  • chanzo wazi;
  • upatikanaji wa jukwaa katika Daftari la Wizara ya Mawasiliano ya Simu na Mawasiliano ya Misa;
  • uwepo wa jukwaa katika ukadiriaji fulani (kwa mfano, katika mia ya kwanza ya ukadiriaji wa db-engines.com);
  • uwepo wa wataalam kwenye soko (kwa mfano, kulingana na matokeo ya kutafuta jina la jukwaa katika resume kwenye tovuti hh.ru).

Baada ya yote, kunaweza kuwa na vigezo maalum vya biashara:

  • uwepo wa wataalamu juu ya wafanyikazi;
  • utangamano na mfumo wa ufuatiliaji X au mfumo wa chelezo Y, ambao usaidizi wote unategemea...

Jambo muhimu zaidi ni kwamba kuna orodha ya vigezo vya kukatwa. Vinginevyo, bila shaka kutakuwa na mtaalam (au "mtaalam") ambaye anafurahia uaminifu maalum kutoka kwa wasimamizi ambaye atasema "kwa nini hukuchagua jukwaa Z, najua ndilo bora zaidi."

Makadirio ya gharama

Gharama ya suluhisho ni wazi ina gharama ya leseni, gharama ya usaidizi na gharama ya vifaa.

Ikiwa mifumo ni takriban darasa moja (kwa mfano, Microsoft SQL Server na PostgreSQL), basi kwa unyenyekevu tunaweza kudhani kwamba kiasi cha vifaa kwa ajili ya ufumbuzi wote itakuwa takriban sawa. Hii itawawezesha si kutathmini vifaa, na hivyo kuokoa muda mwingi na jitihada. Ikiwa unapaswa kulinganisha mifumo tofauti kabisa (sema, Oracle dhidi ya Redis), basi ni dhahiri kwamba kwa tathmini sahihi ni muhimu kufanya ukubwa (hesabu ya kiasi cha vifaa). Kuweka ukubwa wa mfumo usiopo ni kazi isiyo na shukrani sana, kwa hiyo bado wanajaribu kuepuka kulinganisha vile. Hii ni rahisi kufanya: katika hali ya kukatwa, upotezaji wa data ya sifuri na mfano wa uhusiano umeandikwa, au kinyume chake - mzigo wa shughuli elfu 50 kwa sekunde.

Ili kutathmini leseni, inatosha kuuliza muuzaji au washirika wake kwa gharama ya leseni kwa idadi maalum ya cores na usaidizi kwa muda uliowekwa. Kama sheria, makampuni tayari yana uhusiano mkubwa na wachuuzi wa programu, na ikiwa idara ya uendeshaji wa database haiwezi kujibu swali la gharama peke yake, basi barua moja inatosha kupata habari hii.

Wachuuzi tofauti wanaweza kuwa na vipimo tofauti vya leseni: kwa idadi ya core, kiasi cha data au idadi ya nodi. Msingi wa kusubiri unaweza kuwa huru, au unaweza kupewa leseni kwa njia sawa na kuu. Ikiwa tofauti zozote za vipimo zitagunduliwa, itabidi ueleze msimamo wa modeli kwa undani na uhesabu gharama ya leseni za stendi.

Jambo muhimu kwa kulinganisha sahihi ni hali sawa za usaidizi. Kwa mfano, usaidizi wa Oracle hugharimu 22% ya bei ya leseni kwa mwaka, lakini si lazima ulipie usaidizi wa PostgreSQL. Je, ni sahihi kulinganisha kama hii? Hapana, kwa sababu kosa ambalo haliwezi kusuluhishwa peke yako lina matokeo tofauti kabisa: katika kesi ya kwanza, wataalam wa usaidizi watakusaidia kurekebisha haraka, lakini katika kesi ya pili, kuna hatari ya kuchelewesha mradi au wakati wa kumaliza. mfumo kwa muda usiojulikana.

Unaweza kusawazisha hali ya hesabu kwa njia tatu:

  1. Tumia Oracle bila usaidizi (kwa kweli hii haifanyiki).
  2. Nunua usaidizi wa PostgreSQL - kwa mfano, kutoka kwa Postgres Professional.
  3. Zingatia hatari zinazohusiana na ukosefu wa msaada.

Kwa mfano, hesabu ya hatari inaweza kuonekana kama hii: katika tukio la hitilafu mbaya ya hifadhidata, muda wa kukomesha mfumo utakuwa siku 1 ya kazi. Faida inayotarajiwa kutokana na kutumia mfumo huo ni MNT bilioni 40 kwa mwaka, kiwango cha ajali kinakadiriwa kuwa 1/400, hivyo hatari ya kukosa msaada inakadiriwa kuwa takriban MNT milioni 100 kwa mwaka. Kwa wazi, "faida iliyopangwa" na "kadirio la mzunguko wa ajali" ni maadili ya kawaida, lakini ni bora zaidi kuwa na mfano huo kuliko kutokuwa na yoyote.

Kwa kweli, mfumo unaweza kuwa muhimu sana kwa gharama ya sifa ya muda wa kupumzika kwa muda mrefu kuwa haikubaliki, kwa hivyo usaidizi utahitajika. Ikiwa muda wa kupumzika unaruhusiwa, basi kukataa msaada wakati mwingine inaweza kuwa njia nzuri ya kuokoa pesa.

Hebu tufikiri kwamba baada ya mahesabu yote, gharama ya jukwaa la uendeshaji A kwa miaka 5 inageuka kuwa milioni 800 MNT, gharama ya jukwaa la uendeshaji B ni milioni 650 MNT, na gharama ya jukwaa la uendeshaji C ni milioni 600 MNT. Mfumo C, kama mshindi, hupokea pointi kamili kwa bei, huku mifumo ya A na B ikipokea punguzo kidogo, kulingana na ni mara ngapi inagharimu zaidi. Katika kesi hii - 0.75 na 0.92 pointi, kwa mtiririko huo.

Tathmini ya Fursa

Tathmini ya fursa imegawanywa katika vikundi vingi, idadi ambayo ni mdogo tu na mawazo ya mtu anayefanya tathmini. Chaguo mojawapo inaonekana kuwa kugawanya uwezo katika timu zitakazotumia uwezo huu; kwa mfano wetu, hawa ni watengenezaji, wasimamizi na maafisa wa usalama wa habari. Wacha tuchukue kuwa uzani wa kazi hizi unasambazwa kama 40:40:20.

Kazi za maendeleo ni pamoja na:

  • urahisi wa udanganyifu wa data;
  • kuongeza;
  • uwepo wa fahirisi za sekondari.

Orodha ya vigezo, pamoja na uzani wao, ni ya kibinafsi sana. Hata wakati wa kutatua tatizo sawa, orodha hizi, uzito wa bidhaa, na majibu yatatofautiana kwa kiasi kikubwa kulingana na muundo wa timu yako. Kwa mfano, Facebook hutumia MySQL kuhifadhi data, na Instagram imejengwa kwenye Cassandra. Haiwezekani kwamba watengenezaji wa programu hizi walijaza meza kama hizo. Mtu anaweza tu nadhani kwamba Mark Zuckerberg alichagua mtindo kamili wa uhusiano, akilipa kwa haja ya sharding iliyotumiwa, wakati Kevin Systrom alijenga kuongeza kwa kutumia jukwaa, akitoa dhabihu urahisi wa kufikia data.

Kazi za utawala ni pamoja na:

  • uwezo wa mfumo wa chelezo;
  • urahisi wa ufuatiliaji;
  • urahisi wa usimamizi wa uwezo - diski na nodi;
  • uwezo wa kurudia data.

Tafadhali kumbuka kuwa maswali lazima yaandikwe kwa njia ya kiasi. Unaweza hata kukubaliana juu ya jinsi ya kutathmini kazi fulani. Wacha, kwa mfano, tujaribu kukadiria zana za chelezo kwa kutumia mfano wa zana zinazotolewa na Oracle DBMS:

Chombo
Maoni
Tathmini

imp/exp
Inapakia na kupakia data
0.1

anza/malizia kuhifadhi
Kunakili faili
0.3

RMAN
Uwezo wa nakala unaoongezeka
0.7

ZDLRA
Kunakili kwa nyongeza pekee, uokoaji wa haraka zaidi kwa uhakika
1.0

Ikiwa hakuna vigezo wazi vya tathmini, ni jambo la busara kuuliza wataalam kadhaa kutoa ratings na kisha wastani wao.

Hatimaye, tunaorodhesha tu kazi za usalama wa habari:

  • upatikanaji wa sera za usimamizi wa nenosiri;
  • uwezo wa kuunganisha zana za uthibitishaji wa nje (LDAP, Kerberos);
  • mfano wa kuigwa wa upatikanaji;
  • uwezo wa ukaguzi;
  • encryption ya data kwenye diski;
  • usimbaji fiche wakati wa maambukizi kwenye mtandao (TLS);
  • ulinzi wa data kutoka kwa msimamizi.

Upimaji wa Utendaji

Kando, ningependa kuonya dhidi ya kutumia matokeo ya majaribio yoyote ya mzigo ambayo hayakutolewa na wewe kama hoja.

Kwanza, muundo wa data na wasifu wa upakiaji wa programu zinazojaribiwa unaweza kutofautiana sana na shida utakayosuluhisha. Karibu miaka 10-15 iliyopita, wachuuzi wa hifadhidata walipenda kuonyesha matokeo yaliyopatikana katika vipimo vya TPC, lakini sasa, inaonekana, hakuna mtu anayechukua matokeo haya kwa uzito.

Pili, utendaji wa mfumo unategemea sana juu ya jukwaa gani nambari iliandikwa hapo awali na kwa vifaa gani mtihani ulifanyika. Nimeona majaribio mengi ambapo Oracle ililinganishwa na PostgreSQL. Matokeo huanzia ubora usio na masharti wa mfumo mmoja hadi ubora usio na masharti wa mfumo mwingine.

Na hatimaye, tatu, hujui chochote kuhusu nani alifanya mtihani. Sifa zote mbili ni muhimu, zinazoathiri ubora wa kuanzisha OS na jukwaa, pamoja na motisha, ambayo huathiri matokeo ya mtihani zaidi kuliko mambo mengine yote pamoja.

Ikiwa utendaji ni jambo muhimu, fanya mtihani mwenyewe, ikiwezekana kwa msaada wa watu ambao watasanidi na kudumisha mfumo wa uzalishaji.

Matokeo

Hatimaye, matokeo ya kazi yote iliyofanywa yanapaswa kuwa lahajedwali ambapo makadirio yote yameunganishwa, yanazidishwa na kujumlishwa:

Ambayo ni bora - Oracle au Redis au Jinsi ya kuhalalisha uchaguzi wa jukwaa

Kama unavyoelewa, kwa kubadilisha mizani na kurekebisha ukadiriaji unaweza kufikia matokeo yoyote unayotaka, lakini hiyo ni hadithi tofauti kabisa...

Chanzo: mapenzi.com

Kuongeza maoni