哈囉,我們又見面了,昨天我們走過一次 從開發到雲端部署的一條龍,可是我們用的資料庫是 SQLite
,不用架伺服器(Serverless)的輕量關聯式資料庫,如果遇到規模稍大一點的專案,SQLite
肯定是扛不住,所以我們就來看看,怎麼把資料庫放到雲端,讓我們 看下去。
Cloud Database
) ?根據 The Best Database-as-a-Service Solutions for 2020 | PCMag 提到六間廠商,有 Microsoft
、MongoDB
、Amazon
、Google
、IBM
、SAP
,都是大廠商佔據了前面,剛開始可以從其中最有名的三家: Microsoft
、Amazon
、Google
比較它們的服務方案,可以參考 雲端平台大比拼:GOOGLE VS. AMAZON VS. MICROSOFT | CloudMile,這篇針對三家大廠商的收費、運算力、整合性進行比較。
Photo by Manuel Geissinger from Pexels
以下評估的基準,是根據我在學習後端所觀察到的現象 和 跟朋友聊到的一些結果,之後隨著我對後端理解加深,再進一步完整這篇,或者是各位有些不一樣的想法,也可以提出來一起討論,提供給大家更完整的資訊。
Google 提供的雲端平台叫作 Google Cloud Platform,簡稱
GCP
Amazon 提供的雲端平台叫作 Amazon Web Service,簡稱AWS
Microsoft 提供的雲端平台叫作 Microsoft Azure,簡稱Azure
先評估專案的需求和規模可能會到哪一個層級,可參考的指標有
每小時/日/月平均流量
可以從 平均流量
來預估長期的支出
同時使用人數 (最大同時連線)
不同的方案,會有 最大同時連線
的數量限制
專案讀、寫資料的比例
依此決定要用 關聯式(Relational
) 或 非關聯式(NoSQL
) 的資料庫,各家廠商對於 NoSQL
的支援不一,像 MongoDB Atlas
就只有 NoSQL
就 我 和 工作室大神 聊天所得出的結論:
- 如果讀寫各半(e.g. 即時對戰遊戲、聊天室、直播),可考慮用
NoSQL
- 如果讀 >> 寫(e.g. 電商網站),可考慮用
Relational
- 也有一種是混合式,
Relational
和NoSQL
都使用,根據不同的資料讀寫特性來決定資料要放的資料庫類型
總資料量
可以從 預估的總資料量
來決定你要選的方案,如果你用超過當下方案的儲存量,像 GCP
(Google Cloud Platform) 會貼心地幫你升級到下一個級距
資料的成長性、變動性
可以從 資料變動性
來決定所使用的資料庫類型,如果你預期資料的欄位可能很常變動,那麼 NoSQL 可能更適合這種資料,因為 Relational 變更欄位是很麻煩的事,可以參考我在 Day15 比較 Relational vs. NoSQL 時的舉例
Relational
和 NoSQL
的支持GCP
服務間的整合就很不錯網路速度 (這最基本的條件,各大廠商應該差不多)
硬碟速度
通常可以選擇 SSD
、HDD
兩種,但既然都選擇雲端方案了,不用考慮 HDD
可以資料救援的優點,因為雲端方案的資料保證,做得比我們自己架的還要更好,所以就直接選存取速度快的 SSD
吧
存取延遲
也就是上面所提到的,依照資料的 讀寫比例
,來決定要使用 Relational 或 NoSQL,Relational 對頻繁讀取、複雜讀取是比較優秀的,相對地,NoSQL 的頻繁寫入就相對優秀。
各家廠商對於各項服務的計費方式都不太一樣,有些服務是根據 使用時間
來算錢,這種通常會有各個等級的,有些根據 運算力
來算錢,選擇方案之前,需要把眼睛放亮點,還要事先根據專案架構,預算出日後的支出,再來決定要使用哪個平台,這其中的排列組合已經多到無法算清楚了,需要一些踩雷的經驗,才會慢慢知道各方案的好壞吧,歡迎各位留言分享踩雷的經驗 XD
其實,今天原本要寫的主題是「Django
+ GAE
+ MongoDB Atlas
」,可是,誰知道在我搞了一兩個小時之後,才發現 Atlas
的免費方案,並不支援 GCP
...,所以今天主題就改成比較雲端方案哈哈,也是趁這個機會,才瞭解到怎麼選資料庫方案,但沒有實際踩雷的經驗,還是很難寫出每個平台、服務、方案的優缺點,日後有機會多踩幾次雷再來補充~
在我離職後,對於國定假日就沒有那麼有感覺了,之前還有在上班的時候,會很期待假日的到來,希望在假日好好的休息,但通常什麼事都沒做,也沒感覺到有怎樣休息到,假日就過去了,頂多只是多睡幾個小時;現在反而就覺得持續學習、持續輸出比較好玩,對於 假日 的感覺就沒那麼強烈,但心理還是會想要 休息,這種休息是那種想要今天工作半天,另外半天來看場電影、運動,或者探索另一個有趣的主題,而不是想要什麼都不做的那種休息。
我是 RS,這是我的 不做怎麼知道系列 文章,我們 明天見。