盡管AWS擁有豐富的數據庫服務組合,但未必適合每一家企業。我們將告訴你去哪里找管理數據庫服務的替代方案。
AWS率先推出了將管理數據庫以計量的共享服務來交付的概念。早在數據庫即服務這個流行語被創造出來之前,AWS就先后提供了SimpleDB,以及Relational Database Service,也就是他們在2009年推出的分布式關系數據庫服務。此后,AWS又推出了DynamoDB、ElastiCache和Redshift等來增強其數據庫產品組合。
但是,由于企業數據庫往往是高度定制化和特質化的,以至于標準的AWS數據庫服務必須經過一些再加工才能滿足所有的需求。對于這些情況,其他數據庫即服務(DBaaS)選項則可以填補空白。
差不多三年以前,451 Research的一項研究預測,DBaaS將是增長最快的數據庫市場之一,將在2016年達到近20億美金的收入。該報告將DBaaS列為作為企業采用類似于NoSQL的替代數據庫技術背后的主要推動力。但是,Oracle仍然在企業數據庫市場占主導地位,鑒于其在大多數IT組織中遺留的足跡,很可能會成為那些希望發展獨立DBaaS平臺的關鍵需求。
不過這對AWS的競爭對手來說會造成一個問題,因為該服務已經擁有了豐富的Oracle功能集。例如,亞馬遜關系數據庫服務(RDS)同時支持Oracle 12C和11g,并有提供每數據庫實例高達30000 IOPS的能力。 RDS也有典型的AWS功能,如自動備份、數據庫快照、快速縮放和多區域冗余。
AWS數據庫服務的替代品
Amazon RDS使用一個通用的管理控制臺,通過API和標準協議訪問,根據使用的多少和容量計費,并提供一系列規格,以適應不同程度的CPU負載,系統內存和網絡性能。但RDS也有兩個問題。
因為它是一個亞馬遜的服務,RDS僅能作為一個共享的云服務——而不是一個專有的、獨立的實例。此外,它對數據庫大小,I/O吞吐量和低級別的管理控制具有硬性的限制。盡管AWS已在去年提高了容量限制,但標準的RDS實例仍然必須小于6兆兆字節(TB),而那些使用預分配好的(保證的)IOPS則最高只能到4TB——一個頗高的限制,但有可能對大企業依舊會有問題。
此外,RDS不允許root或SYSDBA的訪問或對Oracle Real Application Clusters的支持。
其他DBaaS供應商有更高的容量限制,并允許稍大程度的定制,但是,如果你想要的是對數據庫的完整控制權,DBaaS并不是最好的選擇。相反,AWS用戶可以從AWS Marketplace中提供的鏡像獲取自我管理的彈性計算云(EC2)實例,然后在上面運行Oracle可能是更好的選擇。
目前市場上有若干DBaaS可供選擇,包括了微軟Azure和谷歌的管理關系型、NoSQL和數據倉庫服務。下面是一些DBaaS替代品的清單。
IBM Cloudant:集成了來自IBM的全文和地理空間索引和查詢的一個JSON NoSQL數據庫。它定位給需要一個數據庫來處理大規模并行混合的低延遲I/O的應用。
Heroku的Postgres:為應用開發者設計一個SQL數據庫,提供類似于源代碼控制系統的功能,如能夠輕松創建分支并復制一個數據庫來測試新代碼,重復和關注,以及現有的數據庫和回滾變更的能力。
mLab:此開發人員友好的數據庫在AWS,Azure和谷歌云上提供了托管的MongoDB。它包括各種數據庫基礎架構的自動化配置,通過自動故障切換和自動縮放來提供高可用性。
OpenStack Trove:OpenStack的DBaaS模塊可從幾個供應商處取得;它已經被Tesora和其它公司商業化了。作為OpenStack的一部分,它可以在私有云上,或作為Rackspace,AgileCLOUD或City Cloud所提供的OpenStack管理服務中的一部分進行部署。Trove只提供服務的接口,但不提供底層的數據庫;它有一個抽象層允許它支持13個不同的數據庫技術,包括Cassandra,Couchbase,MariaDB,MongoDB,MySQL,Oracle,PostgreSQL和Redis。
Oracle Cloud:提供托管的Oracle(11g或12C),以及多種部署選項,其中包括專用的私有虛擬機或多租戶公有云。
Orchestrate DBaaS:現在是CenturyLink Cloud的一部分,這個JSON NoSQL的數據庫有類似于IBM Cloudant的功能。
Rackspace Cloud Database:此托管的MySQL支持原始的MySQL和變種的Percona Server以及MariaDB。它支持高可用性的故障轉移到最多2臺從機,支持托管備份和恢復,基于角色的訪問控制和容器隔離,對此Rackspace公司聲稱能夠使“數據庫以接近裸機的速度運行,同時將CPU,內存,網絡和I/O資源同吵鬧的鄰居們隔離開來。
SAP HANA云平臺:完整的平臺即服務(PaaS)應用,同時包括了SAP HANA(內存)和Adaptive Server Enterprise(ASE,也即是之前的Sybase RDBMS)。
Salesforce App Cloud Database:所有Salesforce產品背后的數據庫;它為Force.com提供持久層。
解析AWS和第三方數據庫
AWS客戶一般使用一個或多個AWS數據庫服務。是否使用第三方DBaaS的決定取決于AWS是否滿足企業需求,包括服務的限制或該服務缺少必要的功能。高級的Oracle用戶可能想要比RDS所提供的更多的控制,容量或性能,這使得Oracle的云服務成為一個合理的選擇。
一家正在其他PaaS平臺,如微軟Azure,谷歌,SAP HANA,Salesforce或OpenStack-CloudFoundry上開發應用的企業,可能比較適合使用非AWS 的DBaaS選項。對于這些公司來說,圍繞著在你平臺的本地數據庫服務以外做任何設計都是沒有意義的。請記住,你可能需要與AWS數據庫服務或企業數據庫交換數據;然而,所有的DBaaS選項都提供豐富的API,并支持標準的訪問協議(ODBC/JDBC)來幫你完成數據交換。例如,從外部MySQL或MariaDB的數據庫將數據導入RDS需要管理員創建外部源數據的副本,將其移動到一個EC2實例中,然后再從EC2導入到RDS。AWS的文檔將引導你完成整個過程。