Jak se porovnávají relační databáze AWS

Relační databáze dlouho představovaly standardní volbu pro různé softwarové aplikace, ať už v malých či velkých firmách.

Dnešní situace je mnohem rozmanitější díky rozšířené dostupnosti NoSQL, in-memory a dalších databázových systémů. Nicméně, při rozhodování o přesunu stávajících databází z lokálního prostředí do cloudu, relační databáze stále představuje nejpřímější cestu.

Podívejme se blíže na některé z databází, které mohou být součástí takového procesu:

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

Vysvětlíme si, čím se od sebe liší, jaké jsou jejich specifické výhody a nevýhody. Následně je uvedeme do kontextu typických reálných příkladů použití. Na závěr se podělím o svůj pohled na rozhodování mezi různými databázemi pro vaše specifické potřeby.

AWS Oracle DB

Zdroj: aws.amazon.com

Oracle DB se bezesporu řadí mezi nejrozšířenější komerční databáze posledních desetiletí. Pokud firma potřebovala robustní a vysoce výkonné databázové řešení, Oracle DB byla často první volbou, a to z mnoha dobrých důvodů.

Jak se odlišuje

Oracle je robustní platforma s bohatou sadou funkcí, která dokáže obsloužit široké spektrum různorodých nastavení a požadavků. Postupem času se tato databáze stala synonymem pro spolehlivost, škálovatelnost a udržovatelnost v lokální hardwarové infrastruktuře.

Hlavní výhody

Zde jsou některé z hlavních výhod, které získáte volbou tak pokročilého databázového systému, jakým je Oracle:

✅ Skvělá podpora a možnosti pro efektivní zálohování a obnovu dat.

✅ Rozsáhlé možnosti ladění výkonu databázového řešení i po jeho zavedení do produkce. Údržba a podpora jsou velmi efektivní a snadno konfigurovatelné.

✅ Vysoká míra přizpůsobení. Oracle DB podporuje obrovské množství funkcí, což umožňuje systémovým integrátorům budovat robustní systémy s přesně požadovanými funkcemi (spouštěče, oddíly, pododdíly, automatizované sekvence primárních klíčů, pohledy, snímky, datová omezení, jedinečné klíče, kombinované klíče, cizí klíče, složené indexy atd.). Podporuje prakticky všechno.

✅ Jednoduchá administrace databázových aktivit a procesů díky specializovaným konzolím, řídicím panelům a mnoha nástrojům od společnosti Oracle, určeným pro okamžité použití administrátory.

✅ Podpora víceuživatelských prostředí. Oracle je spolehlivou volbou pro systémy s tisíci aktivních uživatelů současně.

Hlavní Nevýhody

Oracle DB je velmi flexibilní v oblasti vertikálního škálování výkonu, nicméně méně flexibilní, pokud jde o horizontální škálování. To znamená, že je snadné vylepšit databázi na výkonnějším hardwaru v clusteru, avšak při rapidním nárůstu dat, což je častý případ v cloudu, se mohou objevit úzká hrdla. Hlavním požadavkem se stane rozložení dat mezi více clusterů a dynamické navyšování kapacit. V takovém případě se Oracle DB může stát spíše omezující.

Další nevýhodou mohou být náklady. Ačkoli Oracle DB nabízí mnoho funkcí, mnohé z nich jsou zpoplatněny, zvláště pokud provozujete více clusterů a vyžadujete upgrady fyzického výkonu. To znamená, že ladění datového modelu už nemusí stačit a pro zpřístupnění více nástrojů a funkcí správy je nutné zakoupit podnikovou licenci, což dále navýší už tak vysoké náklady.

V neposlední řadě, Oracle DB není nativní službou AWS DB, což znamená, že nemůžete očekávat plnou podporu od AWS, ale spíše od Oracle. To může vést ke komplikacím, kdy je nutné řešit problémy se dvěma různými týmy podpory souběžně.

Kdy si vybrat

Volba cloudové verze Oracle DB je nejpřirozenější, pokud vaše stávající lokální řešení již používá Oracle DB. Usnadní to migraci a přechod do cloudu.

AWS Oracle DB tedy zvolte v případě, že:

  • Očekáváte, že cloudová databáze bude v dohledné budoucnosti podporovat stejné procesy a funkce jako on-premise varianta.
  • Neplánujete rychlou integraci databáze s mnoha nativními službami AWS.
  • Neočekáváte výrazný nárůst objemu dat v krátké době.
  • Požadujete podporu velkého množství funkcí, jejichž ztráta by byla při přechodu do cloudu komplikací.
  • Váš systém musí podporovat stovky (či více) aktivních uživatelů současně.

Příklad použití

  • Velké telekomunikační systémy pro fakturaci, CRM a middleware.
  • Vlastní implementace databází pro automobilové systémy integrované s různými vlastními nástroji nebo nástroji třetích stran.
  • Balíčková systémová řešení pro bankovnictví, kde je Oracle pevnou součástí balíku od dodavatelů a kde je nutná integrace s dalšími vlastními DB komponentami.

AWS Aurora DB

Zdroj: aws.amazon.com

V mnoha ohledech je Aurora přímým opakem Oracle, ačkoli se stále jedná o relační databázi.

Jak se odlišuje

Aurora DB je nativní databázová služba v AWS. Je plně podporována a neustále vyvíjena společností AWS a je hluboce integrována se zbytkem ekosystému služeb AWS.

Aurora DB nedosahuje takové diverzifikace funkcí jako Oracle. Nicméně, byla vytvořena v cloudu, a proto se rozdíl ve funkčnosti může v budoucnu zmenšit.

V mnoha ohledech Aurora již Oracle překonává, zejména v integraci s dalšími cloudovými službami AWS. Vzhledem k tomu, že Aurora byla vyvinuta s ohledem na cloud, je připravena na masivní příjem a nárůst dat v čase, s důrazem na horizontální škálovatelnost.

Hlavní výhody

Mezi hlavní výhody Aurora DB patří:

✅ Flexibilní rozšiřitelnost instancí DB pouze pro čtení, které lze vytvořit během několika sekund. Tyto instance sdílejí stejné protokoly s hlavní databází, takže vytvoření nové instance nevyžaduje synchronizaci všech dat.

✅ Připravenost na velký růst dat – horizontální škálování je silnou stránkou Aurora DB. Přidávání nových clusterů a rozšiřování škálovatelnosti v různých zónách dostupnosti je velmi jednoduché. Aurora je navíc velmi efektivní při rychlém zpracování velkého objemu dat.

✅ Možnost volby mezi serverovým a bezserverovým režimem Aurora DB. V bezserverovém režimu sice některé funkce chybí, ale získáte velkou flexibilitu a optimalizaci nákladů.

✅ Automatické zálohování a snadný návrat k určitému bodu v čase. Aurora DB umožňuje jednoduché denní zálohování a obnovení celé databáze do libovolného bodu v čase je mnohem jednodušší díky kombinaci výhod cloudového prostředí, jako je dostupné volné místo, rychlé vnitřní operace AWS a specializovaná funkce Aurora DB pro rychlou obnovu a minimalizaci prostojů.

✅ Podpora pro MySQL nebo PostgreSQL DB engine.

Hlavní Nevýhody

  • Přestože je Aurora pravděpodobně nejbohatší nativní relační databází v AWS, stále zaostává za Oracle, který měl v minulosti více času na vývoj funkcí. Nicméně Aurora DB se s každým vydáním posiluje a blíží se mu.
  • V lokálním prostředí neexistuje ekvivalent Aurora DB. Lze argumentovat, že staré databáze postavené na MySQL nebo PostgreSQL jsou podobné, nicméně nejde o přesný ekvivalent. Migrace proto nebude tak přímočará. Budete muset implementovat specifické migrační procesy pro přenos dat z lokálního prostředí do Aurora DB ve správném formátu.
  • Různé limity AWS mohou být v některých případech odrazující. I když je lze pravděpodobně obejít, u některých bude nutná investice do refaktoringu, což může navýšit celkové náklady na migraci.

Kdy si vybrat

Volba Aurora DB jako relační databáze v AWS není nikdy špatné rozhodnutí, zvláště pokud:

  • Budujete cloudový systém od nuly kolem relační databáze.
  • Očekáváte vysokou úroveň kompatibility s co největším počtem nativních služeb AWS.
  • Očekáváte výrazný nárůst objemu dat v krátké době.
  • Plánujete spouštět projekty Proof of Concept (POC), kde můžete využít výhod bezserverové verze relační databáze.

Příklad použití

  • Bezserverová platforma pro analýzu velkého množství obrazových dat infrastruktury.
  • Využití modelů strojového učení ke zpracování informací z datového jezera a generování obchodních předpovědí.
  • Netflix používá Aurora DB pro rychlé paralelní provádění dotazů nad svými katalogovými daty.

AWS Microsoft SQL DB

Zdroj: aws.amazon.com

Tato databáze je v některých ohledech srovnatelná s Oracle. Byla také vytvořena dlouho před nástupem cloudu a existuje mnoho lokálních uživatelů, kteří plánují migraci do cloudu s MS SQL DB jako zdrojem.

Jak se odlišuje

I přes tyto podobnosti měla MS SQL DB v minulosti mnohem menší využití ve srovnání s Oracle DB. Z osobní zkušenosti vím, že jsem se v posledních dvou desetiletích podílel na mnoha projektech s Oracle a jen na několika s MS SQL DB.

Nicméně uznávám, že existuje velký segment společností, které používají MS SQL DB jako hlavní databázi pro všechna svá data.

Hlavní výhody

Hlavní výhody MS SQL DB:

✅ Dobrá integrace s dalšími službami a softwarem společnosti Microsoft, což může být výhodné v některých případech.

✅ Snadné přizpůsobení pomocí vlastních rozšíření kódu, většinou ve formě modulů JavaScript. To může být užitečné při řešení komplexních obchodních procesů a úloh, které mají být spouštěny z databáze.

✅ Z pohledu administrace je poměrně jednoduchá (alespoň ve srovnání s Oracle DB).

✅ V cloudovém ekosystému Azure dává větší smysl, protože je považována za nativní relační databázový systém, kompatibilnější s ostatními cloudovými službami.

Hlavní Nevýhody

  • Stejně jako Oracle DB, jako nenativní databáze v AWS, je nutné řešit podporu prostřednictvím specializovaných týmů podpory MS SQL.
  • Menší rozmanitost funkcí ve srovnání s Oracle DB nebo Aurora DB.
  • Nevhodná pro velký počet aktivních uživatelů.
  • Horizontální škálovatelnost je větším problémem než u Oracle DB.

Kdy si vybrat

MS SQL DB je nejvhodnější, pokud chcete migrovat stávající MS SQL DB z lokálního prostředí do cloudu s co nejmenším počtem komplikací a pokud neočekáváte integraci s jinými cloudovými službami AWS.

V cloudu AWS bude MS SQL DB fungovat jako plně spravovaná databáze s neomezeným úložištěm a rozšířenou horizontalní škálovatelností a vysokou dostupností ve srovnání s on-premise alternativou.

Příklad použití

  • Funguje jako střední platforma pro integraci různých databázových systémů (včetně Oracle DB).
  • Menší projekty, kde je nutné zvážit náklady na databázové řešení a rozpočet je omezenější (a neumožňuje nasazení plnohodnotného řešení Oracle DB).

AWS MySQL a PostgreSQL DB

Zdroj: aws.amazon.com

Obě tyto databáze jsou open-source (i když již nyní s podporou větších společností), což jim přináší výhody i nevýhody.

Nejsou tak bohaté na funkce jako jiné alternativy, zvláště v nativní podobě. I když je můžete v této formě používat v infrastruktuře AWS, pochybuji, že to má praktický smysl.

Jak se odlišují

Při migraci lokální databáze (ať už MySQL nebo PostgreSQL) do cloudu AWS můžete jako cíl přímo použít Auroru s motorem MySQL nebo PostgreSQL a získat tak všechny výhody, které Aurora DB nabízí.

Jistě, bude to vyžadovat určité úsilí navíc ve fázi migrace. Nicméně toto úsilí bude spíše okrajové.

Jejich hlavní výhoda spočívá v nákladech a v tom, že jsou nejvhodnější pro malé projekty, kde robustnost není primárním požadavkem.

Hlavní Nevýhody

  • Omezená podpora funkcí a omezené možnosti údržby a správy.
  • Nevhodné pro rozsáhlé projekty s mnoha aktivními uživateli.
  • Nejsou nejlepší pro vysoce výkonná řešení a kde je ladění výkonu klíčovým požadavkem.

Kdy si vybrat

  • Pokud jsou náklady hlavním tématem a rozpočet je velmi omezený.
  • Pro menší projekty.
  • Pokud je objem dat malý a neočekává se výrazný nárůst.

Příklad použití

  • Osobní projekty, kde jsou náklady na infrastrukturu minimální.
  • Malé Proof of Concept, které ověřují koncept řešení.
  • Projekty malých společností s malým objemem dat.
  • Pro malé projekty SaaS, kde je vyžadováno pouze ukládání dat v relačním modelu.

AWS MariaDB

Zdroj: aws.amazon.com

MariaDB je plně open-source databáze vytvořená bývalými vývojáři MySQL (po akvizici MySQL společností Oracle).

Pokud jde o kompatibilitu, jakákoli databáze MySQL poběží v MariaDB bez problémů.

Jak se odlišuje

Z hlediska funkcí se nelze dočkat mnoha rozdílů oproti MySQL. Hlavní výhodou je open-source přístup.

Technicky existuje řada užitečných funkcí, které jsou dostupné v MariaDB, ale ne v MySQL.

Hlavní Nevýhody

Velmi podobné případu MySQL.

Kdy si vybrat

  • Pokud preferujete stávající implementaci MariaDB a z nějakého důvodu nechcete migrovat na Aurora DB.
  • Pokud chcete v cloudovém ekosystému AWS skutečně open-source řešení.

Příklad použití

Velmi podobné případu MySQL.

Závěrečná slova

Podobně jako Oracle DB byla dominantním řešením v lokálním prostředí, zdá se, že Aurora DB zaujímá toto místo v cloudovém světě AWS. Minimálně z hlediska funkčnosti se jí nejvíce blíží.

I když nehledáte klíčové funkce, je dobré vědět, že existují poměrně jednoduché možnosti migrace stávající databáze do cloudu AWS.

A co je ještě lepší – s tímto přesunem automaticky získáte funkce, které jste dříve pravděpodobně postrádali. A co je nejdůležitější, lepší rozšiřitelnost úložiště, vysoká dostupnost a horizontální škálovatelnost jsou nativní funkcí cloudového prostředí.