先花些時間嘮叨下我做的《XX行業生產云》的需求,然后結合著這些需求請教各位專家一系列的問題。
功能需求:
生產企業內部有局域網,連接辦公環境和相關的生產設備,并且有連接互聯網的出口。生產程序由辦公環境(B/S架構)向局域網內的設備發送生產指令,生產的運行狀態實時可以回顯給辦公環境。局域網內滿足該需求就需要部署一個常規的Web應用服務站點加關系型資料庫(目前尚不需要實時資料庫)就可以完成。

多租戶需求:
《XX行業生產云》提供“多租戶”的模式,為XX行業各相關生產企業提供SaaS云服務。之所以采用“云”的形式,是因為這個行業內各工廠生產流程和業務邏輯基本類似,從技術角度來說可以用同一套代碼邏輯和相同的資料庫結構。
穩定性和實時性需求:
由于生產企業對資料和操作有一定的實時性要求,并且網路(運營商提供的互聯網服務)短時間的中斷不能影響生產進度,因此各工廠局域網內部需要部署一個服務器,為辦公環境提供Web服務(B/S架構)并連接相關的生產設備。
運維需求:
使用這個服務的工廠有上百家,如果每個工廠都部署一臺服務器并為廠區內提供相關的服務的話,這樣運維這么多臺服務器的難度和作業量很大。更何況系統建設初期服務版本升級(如代碼補丁、資料庫結構變化、安裝軟體等)會比較頻繁,大量的服務器升級也會有很多的問題,如升級期間服務中斷、升級失敗造成版本不一致影響以后的升級、升級期間介面要同時支持兩個版本等。
我的方案:
為了滿足以上需求,我把生產云設計為“云+端”兩部分。“云”提供對實時性要求不是很高的SaaS服務;“端”部署在每個工廠的局域網內提供對實時性要求較高的服務,對“云”進行擴展。形成一個“云”多個“端”的模式(這里的“端”和物聯網中“端”的概念是有區別的)。每個工廠里的“端”都有著相同的邏輯代碼和資料結構,不同的可能就只有IP地址、MAC地址以及資料庫中的資料了。

部署方案如下:
問題來了:
1、 這種類似“云+端”的模式業界都怎么實作的?沒有成熟的方案和案例?如果有的話我們可以考慮購買或合作。
2、 SaaS云的目的是為了抽取共性而集中提供服務、為了整合資源而集中管理,其部署一般是通過集群計算來實作的。而“端”又是分布式的方式,很接近于網格計算。集群計算與網格計算這兩種模式共存是否矛盾?
3、 “端”是否可以使用CDN技術以降低其管理難度?
4、 “云”要對所有的“端”進行管理和控制,通過什么技術方式來實作?用Linux下的集群管理工具Puppet/Chef/Ansible/SaltStack/Cfengine?還是Zookeeper?還是Google的Borg?還是用現在比較流行的CoreOS?(一定要結合上面的需求)
5、 CoreOS既然是精簡版的Linux,那么在其上安裝軟體和服務是否有限制?單個檔案的更新是否高效便捷?
6、 如果“端”上安裝CoreOS的話,其應用和資料庫如何部署?主要考慮資料結構的升級以及不同“端”存盤資料不同的問題。
7、 “云”和“端”之間需要資料同步(異步),有什么比較好的資料同步方案或產品支持?ETL工具,如開源的Kettle?還是MQ產品,如支持MQTT協議的?
請大神賜教!
uj5u.com熱心網友回復:

不懂幫頂
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/80003.html
標籤:Docker
