雲端架構 v.s. 一般架構
雲端架構主要基於一般架構,雲端架構只是將一般架構搬上雲,並利用雲供應商提供的雲服務取代一部份的服務,例如隊列(SQS、Azure Service Bus)、資料庫(SQL database、RDS)、快取(ElasticCache)、存儲服務(S3、 Google Cloud Storage)
一般架構
示意圖(網站架構)
如果實踐一個可以放在網域上的、可以儲存資料的網站,基本會有上圖那樣的網站架構。
分布式系統設計核心原則之一:拆解,把大系統拆解成互相解耦的幾個相對獨立的小系統
- 拆成最小可用系統
- 可擴展單元系統
- 安全性
- 技術要求
- …
講到分布式系統設計有很多可以講,今天先講到這裡(要不然要跑題了)。 總之,為了高擴展性及安全性可用性還有技術要求等一般分布式架構都會拆分成單元小系統,雲端架構同理,所以會有雲端供應商也會推出一些雲端服務例如Queue、Cache等減少使用者建立及維護的負擔。
一般架構拆解
Web APP
- 基本網站環境
- OS
- 包含網站框架、程式碼
- 瀏覽器服務 ex:Nginx/Apache
- 處理反向代理服務
- 託管各種規模網站與應用程式
- 通用TCP/UDP代理伺服器
- OS
資料庫服務
- 適合情境的資料庫服務
- 關聯式資料庫- MySQL
- 非結構化資料庫 - NoSQL
- 高性能列式存儲資料庫 - Clickhouse
快取服務(Cache)
- 建立適合快取的資料庫,應用高速、高併發量的內存key-value資料庫系統
- Redis
- MemCache