2011-07-01 94 views
1

目前我正在爲一家新公司制定業務計劃,我正在研究這個新公司的領導程序員,因此我一直在爲項目。Web應用程序的動態更新

曾經有過的想法讓我對處理它的最好方式感到困惑,所以我的想法是有一個專用於控制客戶端應用程序的中央管理服務器。

基本上我們有~1K客戶端在我們的服務器上運行我們的客戶端應用程序,當我們爲系統發佈補丁時,主服務器將連接到每個客戶端並獲取它的基本信息,如版本,磁盤空間等,然後我們相應地推送新的更新。

現在我知道我可以簡單地有覆蓋文件,但那樣太非專業的腳本,它是不夠的,所以基本上我所問的是:

是用什麼方法對我有更新〜1K客戶端應用程序考慮到服務器負載,版本控制,更新歷史等重要事實?

我認爲有一個想法是使用類似GitHub來管理修訂版本,但我不知道如何去做。

任何意見表示讚賞,親切的問候。

回答

1

我猜想處理這種情況的最好方法是將更新機制構建到客戶端應用程序本身中。然後,當更新準備就緒後,您可以讓主mgmt服務器連接到客戶端,並通知他們更新可用。

與此同時,不考慮客戶端可能在當時正在做什麼而覆蓋服務器上的文件,這樣每個客戶端都可以在最好的情況下獲得更新並進行安裝。

然後順序是這樣的:

  1. 服務器通知客戶端更新可用
  2. 客戶端完成它做什麼任務
  3. 客戶端檢索並安裝更新
  4. 客戶端通知服務器的安裝狀態(成功/失敗)以及安裝過程中發生的任何錯誤
  5. 服務器將安裝信息記錄在某種歷史記錄中年。

雖然只有少數客戶(少於20人),但我們在其中一個項目中使用了這種機制,並且工作得非常好。