container-as-a-service-0x00 -- 基於Docker的私有云&混合雲搭建需求php
使用docker對node以及php等程序進行打包以實現快速分發部署上線後,隨之而來的需求是:前端
統一更大規模的服務器集羣爲資源池,即再也不區分具體的服務器,而是將全部的服務器資源歸爲一個資源池,根據須要,隨時建立移除資源,以應對更大數量的資源請求以及,減小資源浪費。故而,咱們使用n(>=1)的負載均衡器來統一資源的入口。node
請求資源web
GET: http://domain.name/get/images/png/{imageId}docker
PROXY:後端
http://192.168.1.80:80/static/images/png/{imageId}服務器
http://192.168.1.80:90/static/images/png/{imageId}負載均衡
http://192.168.1.81:80/static/images/png/{imageId}dom
更新記錄測試
POST: http://domain.name/put/record/{recordId}
PROXY:
http://192.168.1.80:80/dynamic/record/{recordId}
http://192.168.1.80:90/dynamic/record/{recordId}
http://192.168.1.81:80/dynamic/record/{recordId}
這裏有幾個也許沒看清的內容:
資源入口:http://domain.name/
前端代理:轉發請求到不一樣的內網服務器如:http://192.168.1.80:80
後端服務:同一服務器可能包含靜態或者動態資源
由此帶來的便利:
資源的上線僅須要更新代理地址便可
能夠使用同一環境進行開發、測試、生產
能夠根據請求資源的數量,動態擴容(如視頻請求資源壓力過大,可迅速增長靜態資源服務數量)
可是咱們須要實現一個key-value的存儲,來更新資源的狀態,簡單示例以下:
{ "web_node_cn_0x00" :{ "ip":"192.168.1.80", "port":"80", "status":"living", "ext":{ "store_db_refer":"store_mongo_cn_0x00", "store_fs_refer":"store_oss_cn_0x00", ... } } }
(未完待續。)