"See on vajalik," ĂŒtles ta valjult, pöördumata kellegi poole. - See on vajalik! TĂ€pselt nii on kirjas: ettevĂ”tte pĂ”hiĂŒlesanne on aktsionĂ€ride huvides kasumi teenimine. No mĂ”elge sellele! Nad ei karda midagi!
Yuliy Dubov, "VĂ€hem kurjus"
Sellist pealkirja nĂ€hes oled ilmselt juba otsustanud, et artikkel on kas rumalus vĂ”i provokatsioon. Kuid Ă€rge kiirustage jĂ€reldustega: suurettevĂ”tete, eriti riigi osalusega ettevĂ”tete töötajad peavad ĂŒsna sageli vĂ”rdlema erinevaid platvorme, sealhulgas tĂ€iesti erinevaid - nĂ€iteks pealkirjas olevaid.

Loomulikult ei vĂ”rdle keegi DBMS-e sel viisil, sest nende tugevad ja nĂ”rgad kĂŒljed on hĂ€sti teada. Reeglina tuleb vĂ”rrelda platvorme, mis lahendavad mĂ”ne rakenduse probleemi. Artiklis nĂ€itan antud juhul kasutatavat metoodikat andmebaaside kui Habri lugejatele tuttava teema nĂ€itel. Niisiis,
Motivatsioon
Haridusprojekti vĂ”i hobiprojektiga alustamisel vĂ”ib platvormi valimise motivatsioon olla vĂ€ga mitmekesine: âsee on platvorm, mida ma kĂ”ige paremini tunnenâ, âOlen huvitatud sellest aru saamaâ, âsiin on parim dokumentatsioonâ ... KaubandusettevĂ”tte puhul on valikukriteerium sama: kui palju ma pean maksma ja mida ma selle raha eest saan.
Loomulikult soovite maksta vĂ€hem ja saada rohkem. Siiski peate otsustama, mis on olulisem â maksta vĂ€hem vĂ”i saada rohkem, ja mÀÀrata igale sĂ”lmele kaal. Oletame, et kvaliteetne lahendus on meie jaoks odavast olulisem ja sĂ”lmele âKuluâ omistame kaaluks 40% ja sĂ”lmele âVĂ”imalusedâ 60%.

Suurkorporatsioonides on tavaliselt vastupidi â kulukaal ei lange alla 50% ja vĂ”ib-olla ka ĂŒle 60%. Mudeli nĂ€ites on oluline vaid see, et mis tahes vanemsĂ”lme alamsĂ”lmede kogukaal peab olema 100%.
Katkestustingimused
Veebisait Teada on umbes 500 andmebaasihaldussĂŒsteemi. Kui valite sihtplatvormi nii paljude valikute hulgast, vĂ”ite loomulikult jĂ”uda ĂŒlevaateartiklini, kuid mitte kommertsprojektini. Valikuruumi vĂ€hendamiseks sĂ”nastatakse lĂ”ikekriteeriumid ja kui platvorm nendele kriteeriumidele ei vasta, siis seda ei arvestata.
Piirkriteeriumid vÔivad olla seotud tehnoloogiliste omadustega, nÀiteks:
- ACID garantiid;
- relatsiooniline andmemudel;
- SQL keele tugi (pange tÀhele, see ei ole sama mis "relatsioonimudel");
- horisontaalse skaleerimise vÔimalus.
VĂ”ib olla ĂŒldised kriteeriumid:
- kaubandusliku toe kÀttesaadavus Venemaal;
- avatud lÀhtekoodiga;
- platvormi kÀttesaadavus Telekomi- ja Massikommunikatsiooniministeeriumi registris;
- platvormi olemasolu mÔnes reitingus (nÀiteks db-engines.com reitingu esimeses sajas);
- ekspertide olemasolu turul (nÀiteks veebisaidi hh.ru CV-st platvormi nime otsimise tulemuste pÔhjal).
LÔppude lÔpuks vÔivad olla ettevÔttepÔhised kriteeriumid:
- spetsialistide olemasolu personalis;
- ĂŒhilduvus jĂ€lgimissĂŒsteemiga X vĂ”i varusĂŒsteemiga Y, millel kogu tugi pĂ”hineb...
KĂ”ige tĂ€htsam on see, et on olemas piirkriteeriumide loend. Vastasel juhul leidub kindlasti mĂ”ni ekspert (vĂ”i "ekspert"), kes naudib juhtkonna erilist usaldust ja kes ĂŒtleb: "Miks te ei valinud platvormi Z, ma tean, et see on parim."
Kulude prognoos
Lahenduse maksumus koosneb ilmselgelt litsentside maksumusest, toe maksumusest ja seadmete maksumusest.
Kui sĂŒsteemid on ligikaudu samast klassist (nĂ€iteks Microsoft SQL Server ja PostgreSQL), siis lihtsuse mĂ”ttes vĂ”ib eeldada, et mĂ”lema lahenduse seadmete hulk on ligikaudu sama. See vĂ”imaldab teil seadmeid mitte hinnata, sÀÀstes sellega palju aega ja vaeva. Kui peab vĂ”rdlema tĂ€iesti erinevaid sĂŒsteeme (ĂŒtleme Oracle vs Redis), siis on ilmselge, et Ă”igeks hindamiseks on vaja teha suuruse mÀÀramine (seadmete hulga arvutamine). Olematu sĂŒsteemi suuruse mÀÀramine on vĂ€ga tĂ€namatu töö, mistĂ”ttu pĂŒĂŒtakse selliseid vĂ”rdlusi siiski vĂ€ltida. Seda on lihtne teha: katkestustingimustes kirjutatakse null andmekadu ja relatsioonimudel vĂ”i vastupidi - koormus 50 tuhat tehingut sekundis.
Litsentside hindamiseks piisab, kui kĂŒsida mĂŒĂŒjalt vĂ”i tema partneritelt litsentsi maksumust kindla arvu tuumade ja kindla perioodi tugiteenuste eest. Reeglina on ettevĂ”tetel juba praegu tugevad suhted tarkvaramĂŒĂŒjatega ja kui andmebaasi haldamise osakond ei suuda ise kulukĂŒsimusele vastata, siis piisab selle info saamiseks ĂŒhest kirjast.
Erinevatel tarnijatel vĂ”ivad olla erinevad litsentsimismÔÔdikud: tuumade arvu, andmemahu vĂ”i sĂ”lmede arvu jĂ€rgi. Ootebaas vĂ”ib olla tasuta vĂ”i litsentsitud samamoodi nagu pĂ”hibaas. Kui mÔÔdikutes avastatakse erinevusi, peate nĂ€idisstendi ĂŒksikasjalikult kirjeldama ja arvutama stendi litsentside maksumuse.
Ăige vĂ”rdluse oluline punkt on samad tugitingimused. NĂ€iteks Oracle'i tugi maksab 22% litsentsihinnast aastas, kuid te ei pea PostgreSQL-i toe eest maksma. Kas niimoodi vĂ”rrelda on Ă”ige? Ei, sest veal, mida ei saa ise parandada, on hoopis teistsugused tagajĂ€rjed: esimesel juhul aitavad tugispetsialistid selle kiiresti parandada, teisel juhul aga on oht projektiga viivitada vĂ”i valminud töö seisak. sĂŒsteemi mÀÀramata ajaks.
Arvutustingimusi saate vÔrdsustada kolmel viisil:
- Kasutage Oracle'i ilma toetuseta (tegelikkuses seda ei juhtu).
- Ostke PostgreSQL-i tugi â nĂ€iteks Postgres Professionalilt.
- VÔtke arvesse toetuse puudumisega seotud riske.
NĂ€iteks vĂ”ib riskiarvutus vĂ€lja nĂ€ha selline: fataalse andmebaasi tĂ”rke korral on sĂŒsteemi seisak 1 tööpĂ€ev. Prognoositav kasum sĂŒsteemi kasutamisest on 40 miljardit MNT aastas, Ă”nnetusjuhtumite mÀÀr on hinnanguliselt 1/400, seega on toetuse puudumise riskiks hinnanguliselt ligikaudu 100 miljonit MNT aastas. Ilmselgelt on "planeeritud kasum" ja "Ă”nnetuste hinnanguline sagedus" virtuaalsed vÀÀrtused, kuid palju parem on selline mudel omada, kui mitte.
Tegelikkuses vĂ”ib sĂŒsteem olla liiga oluline, et pikaajalise seisaku maine maksumus oleks vastuvĂ”etamatu, mistĂ”ttu on vaja tuge. Kui seisakuid on lubatud, vĂ”ib toest keeldumine mĂ”nikord olla hea viis raha sÀÀsta.
Oletame, et pĂ€rast kĂ”iki arvutusi kujuneb platvormi A maksumuseks 5 aastaks 800 miljonit MNT, operatsiooniplatvormi B maksumuseks 650 miljonit MNT ja operatsiooniplatvormi C maksumuseks 600 miljonit MNT. Platvorm C saab vĂ”itjana hinna eest tĂ€ispunkti, platvormid A ja B saavad aga veidi vĂ€hem, proportsionaalselt sellega, mitu korda nad on kallimad. Sel juhul â vastavalt 0.75 ja 0.92 punkti.
VÔimaluste hindamine
VĂ”imaluste hindamine jaguneb paljudesse rĂŒhmadesse, mille arvu piirab vaid hinnangu andja kujutlusvĂ”ime. Optimaalne variant nĂ€ib olevat vĂ”imete jagamine meeskondadeks, kes neid vĂ”imalusi kasutama hakkavad; meie nĂ€ites on need arendajad, administraatorid ja infoturbeametnikud. Oletame, et nende funktsioonide kaalud jagunevad 40:40:20.
Arendusfunktsioonid hÔlmavad jÀrgmist:
- andmetega manipuleerimise lihtsus;
- skaleerimine;
- sekundaarsete indeksite olemasolu.
Kriteeriumide loetelu ja ka nende kaalud on vĂ€ga subjektiivsed. Isegi sama probleemi lahendamisel varieeruvad need loendid, ĂŒksuste kaalud ja vastused oluliselt sĂ”ltuvalt teie meeskonna koosseisust. NĂ€iteks Facebook kasutab andmete salvestamiseks MySQL-i ja Instagram on ĂŒles ehitatud Cassandrale. On ebatĂ”enĂ€oline, et nende rakenduste arendajad selliseid tabeleid tĂ€itsid. VĂ”ib vaid oletada, et Mark Zuckerberg valis tĂ€ieĂ”igusliku relatsioonimudeli, makstes selle eest rakendusliku killustamise vajadusega, samas kui Kevin Systrom ehitas skaleerimise platvormi abil, ohverdades andmetele juurdepÀÀsu lihtsuse.
Haldusfunktsioonide hulka kuuluvad:
- varusĂŒsteemi vĂ”imalused;
- jÀlgimise lihtsus;
- mahuhalduse lihtsus - kettad ja sÔlmed;
- andmete replikatsiooni vÔimalused.
Pange tĂ€hele, et kĂŒsimused tuleb sĂ”nastada kvantitatiivselt. VĂ”ite isegi kokku leppida, kuidas konkreetset funktsiooni hinnata. Proovime nĂ€iteks hinnata varundustööriistu, kasutades Oracle DBMS-iga kaasas olevate tööriistade nĂ€idet:
Vahend
Kommentaar
Hindamine
imp/exp
Andmete ĂŒles- ja laadimine
0.1
varundamise algus/lÔpetamine
Failide kopeerimine
0.3
RMAN
TÀiendava kopeerimise vÔimalus
0.7
ZDLRA
Ainult jÀrkjÀrguline kopeerimine, kiireim taastamine punktini
1.0
Kui puuduvad selged hindamiskriteeriumid, on mÔttekas paluda hinnanguid anda mitmel eksperdil ja seejÀrel nende keskmine arvutada.
LÔpuks loetleme lihtsalt teabeturbe funktsioonid:
- paroolihalduspoliitikate kÀttesaadavus;
- vĂ”imalus ĂŒhendada vĂ€liseid autentimistööriistu (LDAP, Kerberos);
- juurdepÀÀsu eeskuju;
- auditeerimisvÔimalused;
- kettal olevate andmete krĂŒpteerimine;
- krĂŒpteerimine vĂ”rgu kaudu edastamise ajal (TLS);
- andmekaitse haldurilt.
JÔudluskontroll
Eraldi tahaksin hoiatada, et ei kasuta argumentidena koormustestide tulemusi, mis pole teie poolt tehtud.
Esiteks vĂ”ivad testitavate rakenduste andmestruktuur ja koormusprofiil oluliselt erineda probleemist, mida kavatsete lahendada. Umbes 10-15 aastat tagasi armastasid andmebaasimĂŒĂŒjad TPC testides saavutatud tulemustega uhkeldada, kuid nĂŒĂŒd tundub, et keegi ei vĂ”ta neid tulemusi tĂ”siselt.
Teiseks sĂ”ltub sĂŒsteemi jĂ”udlus ĂŒsna tugevalt sellest, millisele platvormile kood algselt kirjutati ja mis seadmetest testiti. Olen nĂ€inud palju teste, kus Oracle'i vĂ”rreldi PostgreSQL-iga. Tulemused ulatuvad ĂŒhe sĂŒsteemi tingimusteta paremusest teise samavĂ”rra tingimusteta paremuseni.
Ja lÔpuks, kolmandaks, sa ei tea midagi sellest, kes testi tegi. MÔlemad kvalifikatsioonid on olulised, mÔjutades nii OS-i ja platvormi seadistamise kvaliteeti kui ka motivatsiooni, mis mÔjutab testi tulemusi rohkem kui kÔik muud tegurid kokku.
Kui jĂ”udlus on kriitiline tegur, viige test lĂ€bi ise, eelistatavalt tootmissĂŒsteemi konfigureerivate ja hooldavate inimeste abiga.
Tulemus
LĂ”puks peaks kogu tehtud töö tulemuseks olema arvutustabel, kus kĂ”ik hinnangud on ĂŒhendatud, korrutatud ja summeeritud:

Nagu te mĂ”istate, saate skaalasid muutes ja reitinguid kohandades saavutada mis tahes soovitud tulemuse, kuid see on tĂ€iesti teine ââââlugu...
Allikas: www.habr.com
