High-Availability
雲中(AWS 之外)自動修復伺服器的最佳實踐?
我們正在從 AWS 遷移,在那裡我們使用 EC2 的自動擴展功能擁有高度可用的系統設置。但是,我們並沒有使用它來根據資源使用情況更改池的大小,我們只是在其中一個失敗或無響應時使用它來啟動新實例。
如果其他雲提供商沒有這個自動縮放功能(我們專門研究 DigitalOcean,但它應該適用於任何地方),有哪些選項可以實現此設置?我的第一個想法是創建一個監控其他實例的實例,但隨後該伺服器成為單點故障。是否有任何服務或已建立的模式來實現這一點,無論是自動化的還是將一些腳本寫入 API 而不會產生單點故障?
我們最終編寫了自己的解決方案,以在某種程度上模仿 EC2 中的行為。我們將其命名為healthcare.js 並在https://github.com/goldfire/healthcare.js將其開源。本質上,它使用 DigitalOcean API 和標籤進行發現,然後使用demo.js監控哪些伺服器正在執行。這允許一個完全分佈式的自我修復系統,該系統將根據傳遞的伺服器配置殺死/重新建構伺服器。