高級亞馬遜Web服務用戶更喜歡自我管理運行在亞馬遜彈性計算云上的數據庫,而不是數據庫即服務產品,至少現在看是這樣的。
上周,AWS超級用戶在線活動群組創立會議的演示中,關注超級用戶如何在AWS上運行數據庫。大多數演講者表示他們在彈性計算云(EC2)上運行類似Cassandra和MySQL這樣的自我管理數據庫,而不是使用亞馬遜的數據庫即服務(DBaaS)平臺,比如關系型數據庫服務(RDS)以及DynamoDB。
然而,一些IT專家在此次活動中也表示有過DBaaS體驗,而且一些仍舊在自我管理和DBaaS選擇中保持中立態度。
美國加州一家提供在線社交學習平臺的公司Edmodo,在將其MySQL操作從EC2上自我管理實例轉移到RDS時,收獲頗多。該公司的運營總監Jack Murgia表示:“在我們決定從RDS退出時,我們學到了更多。”
2011年春天,Edmodo為兩百萬用戶服務,而且得到了風投公司的重大投資,他們將這筆資金用來雇傭Murgia,從而同擁有十個開發者的團隊共同工作。Murgia介紹:“基本上我走過一扇門,就有一個數據庫,一個熟練員工和一個苦工。”這些都運行在EC2上。Murgia進來后,人員配置上并沒有一個數據庫管理員。
跟著亞馬遜RDS一路走來,其提供了一次使用MySQL管理繁忙的初創企業的機會。2011年秋天,該公司完成了到RDS的遷移。Murgia談到RDS時說:“我們能夠通過點擊一些按鈕,創建開發和質量保證環境,隨著那年秋天負載的不斷增加,用鼠標點幾下就可以讀取副本,改變域名系統記錄。”
但是在多有效區域故障恢復的時候,RDS部署遇到了障礙。
“我們發現多AZ故障恢復在絕大部分時間都是失敗的,”Murgia說,“有時候即便是計劃中的故障恢復我們發現復制都是失敗的,而且那個時候唯一的選擇就是提出新的副本。”
主數據庫有八個副本,每一個新的副本用時大約一小時,這也意味著Edmodo再一次服務于用戶之前,要有一整天的宕機時間。因此公司重組了,準備轉到RDS上一個單獨的熟練員工,如果有什么失敗了就要計劃新的副本。RDS在2013年六月開始提供服務水平協議(SLA),這也讓Edmodo尋求一種繼續使用服務的方式。
但是隨著Edmodo不斷發展,該公司從外包公司引入了DBA,在2011年到2013年雇傭了更多的系統管理員。那時候,該公司擁有了內部運行EC2上自服務數據庫的技能,逐漸離開RDS,轉向自服務MySQL環境。
Murgia說:“我們的雙手被RDS“黑盒”綁架。”如果Edmodo管理自己的MySQL和副本,IT團隊可以促進副本到一個精通的員工,將所有的副本指向這個精通的員工并且重新啟動并運行。相反,該公司致力于恢復數據庫時,沒有基礎設施的控制就會出現失敗。
“這是一種不得不做的妥協,”Murgia說道,“可能你不具備技能,可能你只是一個小的初創公司,但是隨著你開始獲得這些技能,并且開始提升性能和可用性標準,這就會成為問題。”
超級用戶活動會議上的另一個演講來自Stackdriver的IT專家,這是一家位于美國波士頓的公司,提供AWS監控即服務。這家公司通過Cassandra集群迎來了一個轉折點,而且考慮了兩種替代方案:擴展現有的集群或者部署亞馬遜DynamoDB DBaaS。
“我們有非常繁重的工作負載,涉及數以億計的數據點,而且Cassandra對于各種寫操作過多的工作負載有很好的支持,”Joey Imbasciano說道,他是Stackdriver的云平臺工程師,“Cassandra中的建模時間系列數據設計模式也是眾所周知的,因此我們知道我們不會有任何問題。”
Cassandra另一個吸引人的特性就是能夠以編程的方式刪除數據,這樣就可以讓數據庫保持一種可管理的規模,而且無需人工介入。Stackdriver也考慮了MySQL和RDS,但是感覺NoSQL更適合自身的數據集。該公司也在部署Cassandra的18個月前就關注DynamoDB。
“那時候,廠商鎖定是我們盡力去避免的,”Imbasciano說道,“此外,我們做了一點成本估算,并且發現那時候使用Dynamo的成本要稍高一點。”
Stackdriver開始是三節點的Cassandra閉環,現在已經增長為36節點,隨著其繼續增長,該公司會再一次關注DynamoDB。“優勢很明顯,”Patrick Eaton說道,他是Stackdriver的架構師,“焦點就是自動化。升級是自動化的。亞馬遜的全天候支持人員處理浙西額事情,他們可以在你需要時進行擴展。”
Eaton補充:“此外,我們看到AWS一直在削減價格,因此從常量的角度來看,我們的價格實際上會隨著時間的推移而變得更加便宜。”然而,該公司的Dynamo部署時間序列數據第一次部署還是要比繼續使用Cassandra更貴。
“成本模型相當復雜,基于這些抽象的工作量,他們稱之為‘寫單元’和‘讀單元’,這是一種請求率和數據規模以及一致性模型的結合,”Eaton說,“原型階段很難評估這種模型的持續成本。”根據Stackdriver的計算,Cassandra持續管理價格為每月大約3000美元。主要集群成本為每月12500美元。在目前的Cassandra部署中,更小的集群預警成本大約為1300美元。
使用Dynamo作為主要集群,Stackdriver的預估成本大約為存儲和寫單獨計算22000美元。另一方面預警集群DynamoDB成本約為600美元。Eaton表示:“成本節省或者成本實際取決于工作負載類型,不能在一種綜合的狀態中對比這些替代選擇。”
截至新聞發布亞馬遜未發表任何評論。