Како се упоређују АВС релационе базе података

Relacione baze podataka dugo su bile standardno rešenje za raznolike (gotovo sve) softverske zahteve, kako velikih, tako i malih preduzeća.

Danas je varijabilnost znatno veća, s obzirom na širu dostupnost NoSQL baza podataka, in-memory baza podataka i data lake-ova. Ipak, kad se donosi odluka o premeštanju lokalnih baza podataka u oblak, relacione baze podataka i dalje predstavljaju najjednostavniji put za ovu tranziciju.

Detaljnije ćemo razmotriti sledeće baze podataka koje se mogu naći u ovakvim inicijativama:

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL i PostgreSQL
  • MariaDB

Razjasnićemo po čemu se one razlikuju, šta ih izdvaja, uključujući i njihove mane. Zatim ćemo ih kontekstualizovati kroz tipičan primer iz realnog sveta. Na kraju, izneću svoje mišljenje o tome kako izabrati najbolju bazu podataka za vaš konkretan slučaj.

AWS Oracle DB

Izvor: aws.amazon.com

Oracle DB je bez sumnje bila najrasprostranjenija komercijalna baza podataka tokom poslednjih nekoliko decenija. Kada god je kompaniji bilo potrebno robusno rešenje za bazu podataka visokih performansi, Oracle DB je bio prvi izbor. A za to je bilo mnogo dobrih razloga.

Kako se razlikuje

Oracle je robusna i funkcionalno bogata platforma koja može da posluži velikom broju raznovrsnih zahteva i podešavanja. Vremenom je ovaj DB postao vrhunsko rešenje kada su potrebni najviši nivoi pouzdanosti, skalabilnosti i održavanja koji funkcionišu na lokalnoj hardverskoj infrastrukturi.

Glavne prednosti

Evo nekoliko ključnih prednosti koje dobijate kada izaberete zreo sistem baza podataka kao što je Oracle:

✅ Odlična podrška i opcije za efikasno pravljenje rezervnih kopija i vraćanje podataka.

✅ Širok spektar mogućnosti za podešavanje performansi DB rešenja unutar sistema. Čak i dugo nakon što je rešenje već u proizvodnji. Aktivnosti podrške i održavanja u okviru ove platforme su vrlo jednostavne za implementaciju i veoma su efikasne.

✅ Visoka prilagodljivost DB rešenja. S obzirom da Oracle DB podržava širok spektar funkcija koje možete da odaberete, vi kao sistemski integrator imate mnogo opcija za izgradnju robusnog sistema koji se sastoji od tačno onih funkcija koje su potrebne vašoj platformi (npr. okidači, particije, podparticije, automatizovane sekvence primarnih ključeva, pogledi, snimci, ograničenja podataka, jedinstveni ključevi, kombinovani ključevi, strani ključevi, kompozitni indeksi, itd.). Podržava sve.

✅ Jednostavna administracija aktivnosti i procesa baze podataka. Namenske administrativne konzole i kontrolne table, kao i mnogi alati koje je kreirao Oracle i koji su odmah dostupni administratorima.

✅ Podrška za više korisničkih okruženja. Ako je zahtev da se istovremeno podrži hiljade različitih aktivnih korisnika, Oracle je rešenje.

Glavni nedostaci

Oracle DB je vrlo fleksibilan u pogledu vertikalnog skaliranja performansi. Ali manje kada vam je potrebno snažno horizontalno skaliranje. To znači da je lako nadograditi na jači CPU, više memorije i prostora za skladištenje na DB klasteru.

Ali ako vaši podaci značajno porastu u kratkom roku – što je uobičajena pojava sa podacima u oblaku, uska grla u performansama će postati vidljivija i teže ih je rešiti. Širenje podataka na više klastera i očekivanje njihovog dinamičkog rasta postaće ključni zahtev u budućnosti. U tom slučaju, možda ćete primetiti da Oracle DB počinje više da ograničava nego da zadovoljava vaše buduće potrebe.

Još jedan potencijalni nedostatak je cena. Oracle DB podržava mnoge funkcije, ali mnoge od njih imaju svoju cenu. Pogotovo ako postoji više klastera i ako su neophodna poboljšanja fizičkih performansi. To znači da softversko podešavanje modela podataka više nije dovoljno. Da bi više administrativnih alata i funkcija postalo dostupno, moraćete da kupite enterprise licencu. Ovo će dodatno povećati već ionako visoke troškove.

Na kraju, Oracle DB nije izvorna AWS DB usluga, što znači da ne možete očekivati punu podršku od AWS-a. Više se oslanjate na podršku Oracle-a. Ali onda se paralelno suočavate sa problemima Oracle-a i AWS-a i sa dva različita tima podrške.

Kada izabrati

Odabir cloud-a za Oracle DB je najprirodnija odluka koju treba doneti ako vaše trenutno lokalno rešenje već koristi Oracle DB. Takođe će olakšati migraciju i prelazak na rešenje zasnovano na oblaku.

Dakle, izaberite AWS Oracle DB u sledećim slučajevima:

  • Očekujete da će baza podataka u oblaku u doglednoj budućnosti podržavati iste procese i funkcionalnosti kao lokalna varijanta.
  • Ne planirate brzu integraciju DB sa previše AWS izvornih usluga.
  • Ne očekujete da će trenutni obim podataka značajno porasti u kratkom vremenskom periodu.
  • Potrebna vam je podrška ogromnog broja funkcija. Odnosno, bilo bi teško izgubiti neke od njih koje su trenutno na raspolaganju pri prelasku u oblak.
  • Vaš sistem mora da podrži stotine aktivnih korisnika istovremeno (ili više).

Primer upotrebe

  • Veliki telekomunikacioni sistemi za naplatu, CRM i podatke softvera među različitim odeljenjima.
  • Prilagođene DB implementacije za automobilske baze podataka, integrisane sa nekoliko različitih prilagođenih alata ili alata nezavisnih proizvođača.
  • Pakovana sistemska rešenja za bankarsku industriju, gde je Oracle već fiksni deo pakovanog rešenja dobavljača i na kraju integriše dodatne prilagođene DB komponente u jednu složenu implementaciju.

AWS Aurora DB

Izvor: aws.amazon.com

Na mnogo načina, Aurora je direktna suprotnost Oracle-u, čak i ako je i dalje relacionalna baza podataka.

Kako se razlikuje

Aurora DB je izvorna usluga baze podataka u AWS-u. AWS pruža punu podršku, stalan razvoj i duboku integraciju sa ostatkom ekosistema AWS usluga.

Aurora DB ne dostiže onaj nivo raznolikosti funkcija koji je Oracle već postigao. Ali, ona je rođena u oblaku (za razliku od Oracle-a). Kako AWS nastavlja da razvija Auroru, jaz u funkcijama bi u budućnosti mogao da bude manji nego što je danas.

U mnogim aspektima, Aurora već prednjači u odnosu na Oracle, posebno kada je reč o integraciji sa drugim AWS cloud uslugama. A s obzirom na to da je Amazon kreirao Auroru imajući u vidu ekosistem u oblaku, Aurora je spremna za ogroman priliv podataka i njihovo povećanje tokom vremena, tako da je horizontalno skaliranje njena jača strana.

Glavne prednosti

Rekao bih da su glavne prednosti Aurora DB sledeće:

✅ Veoma fleksibilna proširivost instanci DB kopija samo za čitanje. Možete ih kreirati za samo nekoliko sekundi. Instance samo za čitanje dele iste DB zapise glavne baze podataka iz koje su nastale. To znači da kreiranje nove baze podataka samo za čitanje ne zahteva sinhronizaciju svih podataka; to se radi automatski tako što se dele postojeći podaci.

✅ Spremnost za veliki rast podataka – horizontalno skaliranje je glavna karakteristika Aurora DB. Dodavanje novih klastera i proširenje skalabilnosti u različitim zonama dostupnosti je jednostavno. Aurora je veoma efikasna u brzom preuzimanju velike količine podataka.

✅ Možete birati da li ćete koristiti serverski ili serverless režim Aurora DB. Neke funkcije će nedostajati u serverless režimu. Ali, dobijate mnogo fleksibilnosti i optimizacije troškova kada izaberete serverless režim.

✅ Automatizovane rezervne kopije i jednostavno vraćanje u određenom trenutku. Još jedna prednost je što Aurora DB lako može da pravi dnevne rezervne kopije, a vraćanje pune baze podataka u bilo kom trenutku je mnogo jednostavnije. Ovde možete da kombinujete sve prednosti okruženja u oblaku, kao i uvek dostupan slobodan prostor, brze AWS interne operacije i namensku Aurora DB funkciju koja cilja na brzo vreme oporavka i kratko vreme zastoja.

✅ Podrška za MySQL ili PostgreSQL DB engine, tako da možete odabrati ono što vam odgovara.

Glavni nedostaci

  • Iako je Aurora verovatno najbogatija izvorna relacionalna baza podataka koju možete odabrati u AWS-u, ona još uvek zaostaje za Oracle-om u tom pogledu. To je razumljivo, Oracle je imao mnogo više vremena da razvije te funkcije u prošlosti. Ostaje činjenica da je Aurora DB, sa svakim novim izdanjem, jača i bliža Oracle-u.
  • Ne postoji ekvivalent za Aurora DB u lokalnom okruženju. Možete tvrditi da su stare baze podataka izgrađene u MySQL ili PostgreSQL bliske po karakteristikama, a iz ugla kompatibilnosti, one to i jesu. Ali, one nisu doslovno ekvivalentne. To znači da migracija neće biti tako jednostavna. Moraćete da prilagodite i primenite procese migracije kako biste bili sigurni da će oni preneti podatke sa lokalne lokacije i smestiti ih u Aurora DB u ispravnom formatu modela podataka.
  • Različita AWS ograničenja, posebno ona stroga, su faktor koji u nekim slučajevima može odvratiti od odabira ovog DB-a kao cilja za prelazak. Vrlo je verovatno da ćete moći da ih sve zaobiđete, ali za neke će biti potrebno ozbiljnije ulaganje u refaktorisanje, što na kraju može povećati ukupne troškove migracije u poređenju sa drugim ciljem baze podataka.

Kada izabrati

Ukratko, izbor Aurora DB kao cloud relacione baze podataka na AWS platformi nikada nije loša odluka, ali to učinite posebno ako:

  • Izgrađujete sistem u oblaku od nule oko relacione baze podataka.
  • Očekujete najviši nivo kompatibilnosti i integrisanosti sa što više različitih izvornih AWS usluga.
  • Očekujete da će obim podataka značajno porasti u kratkom vremenskom periodu.
  • Planirate da pokrenete nekoliko spin-off projekata proof of concept (POC) gde možete iskoristiti sve prednosti serverless verzije relacione baze podataka.

Primer upotrebe

  • Serverless platforma za analizu velike količine podataka o infrastrukturi.
  • Korišćenje modela mašinskog učenja za obradu informacija vašeg data lake-a i generisanje poslovnih predviđanja za vaše poslovanje.
  • Netflix koristi Aurora DB za brzo paralelno izvršavanje upita nad njihovim kataloškim podacima.

AWS Microsoft SQL DB

Izvor: aws.amazon.com

Ova baza podataka je, na neki način, uporediva sa Oracle-om. Takođe je kreirana mnogo pre nego što je oblak postao popularan, a postoji mnogo trenutnih lokalnih korisnika koji planiraju da pređu u oblak, koristeći MS SQL DB kao polaznu tačku.

Kako se razlikuje

Uprkos tim sličnostima, MS SQL DB je ipak imala mnogo manje korišćenja u prošlosti u poređenju sa Oracle DB.

Barem sudeći iz mog ličnog iskustva. Bio sam uključen u više Oracle projekata u poslednje dve decenije, ali samo u nekoliko slučajeva u kojima je bio uključen MS SQL DB. I iskreno, nije mi se sviđalo da radim s njim ni približno koliko sam radio sa Oracle DB.

U svakom slučaju, i dalje prepoznajem veliki broj kompanija koje koriste MS SQL DB kao svoju glavnu bazu podataka koja je jedini izvor istine za sve podatke.

Glavne prednosti

Glavne prednosti koje MS SQL DB ima su sledeće:

✅ Dobra integracija sa drugim Microsoft uslugama i softverom, u slučaju da je to karakteristika koju smatrate vrednom za svoj slučaj.

✅ Lako prilagođavanje uz prilagođena proširenja koda, uglavnom u obliku JavaScript kodnih modula. Ovo može biti korisno kada se bavite složenijim poslovnim procesima i zadacima koji se planiraju preko baze podataka.

✅ Prilično jednostavno sa administrativne tačke gledišta (barem u poređenju sa Oracle DB).

✅ Verovatno ima mnogo više smisla u ekosistemu Azure cloud-a, jer se tamo smatra izvornim sistemom relacionalnih baza podataka, koji je mnogo kompatibilniji sa drugim cloud uslugama.

Glavni nedostaci

  • Slično kao u slučaju Oracle DB, kao non-native baze podataka u AWS cloud okruženju, sva podrška i rešavanje problema moraju biti vođeni preko odvojenih timova za MS SQL podršku.
  • Manja raznolikost podrške za funkcionalnost u poređenju sa Oracle DB ili Aurora DB.
  • Nije pogodno za veliki broj aktivnih korisnika.
  • Horizontalna skalabilnost je još veći problem nego u slučaju Oracle DB.

Kada izabrati

MS SQL DB je najpogodniji ako želite da migrirate postojeću MS SQL DB lokalno u oblak sa što manje prekida. Takođe, ne očekujete da će se integracija sa drugim AWS cloud uslugama desiti u velikoj meri.

Tada će MS SQL DB živeti unutar AWS oblaka kao potpuno upravljana baza podataka sa neograničenim prostorom za skladištenje i proširenim opcijama za horizontalnu skalabilnost i visoku dostupnost u poređenju sa on-premise alternativom.

Primer upotrebe

  • Deluje kao srednja platforma za prilagođenu integraciju različitih sistema baza podataka (može biti čak i drugog tipa, na primer, Oracle DB).
  • Različiti projekti manjeg obima gde je cena rešenja za bazu podataka bitna stavka i budžet je ograničen (i ne dozvoljava punopravno rešenje Oracle DB).

AWS MySQL i PostgreSQL DB

Izvor: aws.amazon.com

Ove baze podataka su obe otvorenog koda po poreklu (iako ih već kupuju veće kompanije), što im na kraju donosi i prednosti i mane.

One takođe nisu toliko bogate karakteristikama kao druge alternative, posebno u svom izvornom obliku. I dok ih još uvek možete koristiti u AWS infrastrukturi u ovom obliku, sumnjam da to još uvek ima previše praktičnog smisla.

Kako se razlikuje

Kada migrirate lokalnu DB (bilo da je u pitanju MySQL ili PostgreSQL) u AWS oblak, možete direktno koristiti Aurora sa MySQL ili PostgreSQL engine-om kao cilj i tako dobiti sve dodatne prednosti koje Aurora DB može ponuditi.

Naravno, to će značiti dodatni napor u fazi migracije u odnosu na slučaj kada bi se odabrala izvorna alternativa. Ali taj dodatni napor će biti samo marginalan.

Njihova glavna prednost leži u troškovima i najpogodniji su za male projektne inicijative, gde robusnost nije ključna.

Glavni nedostaci

  • Obe su prilično ograničene u podržanoj funkcionalnosti i morate biti spremni na ograničene mogućnosti održavanja i administracije.
  • Nije pogodno za velike projekte sa mnogo aktivnih korisnika.
  • Nije najbolje za rešenja visokih performansi i gde je stalno podešavanje performansi bitan zahtev.

Kada izabrati

  • Ako su troškovi glavni faktor i budžet je vrlo ograničen.
  • Ako je projektna inicijativa prilično mala.
  • Ako je obim podataka prilično mali i nema planova za značajan rast.

Primer upotrebe

  • Inicijative za lične projekte gde će troškovi infrastrukture biti minimalni.
  • Mali POC projekti koji bi dokazali da se predloženi koncept može realizovati.
  • Projekti malih preduzeća sa malom količinom podataka.
  • Za male SaaS projekte, kojima nije potrebna velika količina učitavanja baze podataka, samo skladištenje podataka u obliku relacionalnog modela podataka je sve što je zaista potrebno.

AWS MariaDB

Izvor: aws.amazon.com

MariaDB je i dalje potpuno open-source baza podataka koju su kreirali bivši MySQL programeri (nakon što je MySQL kupio Oracle).

Što se tiče kompatibilnosti, bilo koja MySQL DB će raditi sasvim dobro u MariaDB.

Kako se razlikuje

Funkcionalno, ne treba očekivati velike razlike u odnosu na MySQL, ali open-source karakteristika je ključna.

Tehnički, postoji značajan broj korisnih funkcija koje su dostupne u MariaDB, ali ne i u MySQL.

Glavni nedostaci

Prilično slično MySQL slučaju.

Kada izabrati

  • Ako ste apsolutno zadovoljni trenutnom implementacijom MariaDB on-premise i ne želite da migrirate na Aurora DB, iz bilo kog razloga.
  • Ako želite da ostanete verni open-source rešenju baze podataka unutar AWS cloud ekosistema.

Primer upotrebe

Prilično sličan MySQL slučaju.

Završne reči

Slično tome, kako je Oracle DB bio vodeće rešenje u on-premise svetu, čini se da Aurora DB zauzima to mesto u svetu AWS oblaka. Barem iz ugla skupa funkcija, ovo je najbliže što možete dobiti.

Čak i ako niste baš za najveće igrače, dobro je znati da još uvek postoje prilično jednostavne opcije za migraciju postojeće baze podataka u AWS oblak.

Još bolje, sa ovom promenom, automatski ćete dobiti funkcije koje su vam verovatno nedostajale do tada. Najvažnije, bolja proširivost skladišta, visoka dostupnost i horizontalna skalabilnost su glavne karakteristike okruženja u oblaku.