實施自動化系統,正由單體架構,轉向微服務架構,目的在於達成更高的靈活性與可擴展性以及可維護性。此轉變並非單純的技術替換,而是涵蓋設計理念、團隊協作以及運維方式的全面演進。微服務借助將復雜系統拆解成獨立部署的小型服務,為樓宇自控亦或是工業生產線等場景提供了應對快速變化需求的理想方案。

微服務如何提升自動化系統的可擴展性

在傳統的單體自動化系統裡,於需要進行擴容之際,常常會遭遇那種“牽一發而動全身”的艱難處境。比如說,有那麼一個集中控制形狀的樓宇管理系統,在當需要增添新的傳感器或者控制點之時,很有可能就得去升級整個軟件,進而導致停機以及服務中斷的情況出現。而微服務架構則是從根本層面把這一狀況給改變了。

每個微服務都專門致力於單一的那塊業務能力,像“溫度控制”或者“照明調度”這樣的。當某個特定功能碰上壓力的時候,比如夏季空調負荷急劇增加這種情況,可以單獨去擴展“製冷優化”服務,而用不著去觸動安防或者電梯管理模塊。這種的粒度控制,不但提升了資源利用率,也讓系統依靠更經濟、更敏捷的方式去回應業務增長。

為什麼自動化系統需要微服務解耦

內部模塊間高度耦合的自動化系統,是致使系統僵化的主要緣由。於一條工業裝配線上,那般機械臂控制、視覺檢測以及物料輸送若緊密捆綁,那麼任一環節的修改,皆有可能引發不可預知的連鎖故障。微服務藉由明確的API 接口以及領域邊界達成解耦。

直接因解耦而所帶來有著的好處是能夠獨立去開發以及進行部署,團隊能夠並行開展工作,專門對“能耗分析”予以負責的團隊能夠每隔兩週發布一回新型算法,然而負責“設備健康預警”的團隊卻是依照自身的節奏去進行迭代,這樣一種獨立性極大程度地加快了創新的速度,並且使得系統更加易於去集成源自不同供應商的最佳解決方案。

構建自動化微服務面臨哪些通信挑戰

身處分佈式的狀況下,服務彼此間實現靠譜通信是一項頗具難度的挑戰。工業現場的網絡環境呈現出複雜態勢,其中或許存在延遲現象,或許出現抖動情形,甚至有可能遭遇臨時中斷狀況。要是運用較為簡單的同步HTTP調用方式,一旦有一個服務響應速度遲緩,便會快速拖累整個調用鏈條,進而有可能致使生產線緊急停止運行。

所以,得採用異步且魯棒的那種通信模式才行。建立在像MQTT、此類消息隊列基礎上的事件驅動架構乃是常見的選擇。舉例來說,傳感器服務會把“溫度超標”當作事件發布至消息總線,空調控制服務以及報警服務作為訂閱者獨自分別進行處理,不會彼此產生阻塞。與此同時,一定要施行完備的超時、重試以及熔斷機制,以此保證局部發生的故障不會擴散開來。

如何保證微服務架構下的系統數據一致性

在存在著的單體系統裡頭,有一個數據庫事務能夠確保多個操作所具備的原子性。然而呢,於微服務當中,數據是被分散開來進行管理的,比如說設備狀態、工單記錄以及能耗數據有可能分屬於各個不同的服務,傳統意義上的ACID事務已然不再適用了。這就需要採用最終一致性模型,還有特定的設計模式。

處理跨服務長事務的典型方案是Saga 模式,拿一個“設備維護流程”作為例子瞧,它有可能涉及到工單服務,還涉及庫存服務以及調度服務,Saga 靠著一系列本地事務以及補償事務去管理整個流程,要是備件庫存不夠,那就觸發補償操作去取消已經創建的工單,另外,構建清晰的數據所有權邊界並且經由事件傳播狀態變更,這是維護整體數據健康的關鍵所在。

自動化微服務的安全和權限如何管理

安全邊界由單一應用的外圍擴展至每一個微服務,致使攻擊面顯著增大,每個服務都需具備獨立的身份認證以及授權機制。在工業物聯網場景裡,一個PLC控制器,一個網關軟件,還有一個雲分析服務,都有可能是一個獨立的微服務,必須要確保它們相互之間的雙向認證。

建議運用零信任安全模型以及服務網格技術,每個服務請求務必要攜帶合法的身份憑證,像JWT令牌這種,服務網格像Istio能夠透明地註入雙向TLS加密,以此保障服務間通信安全,與此同時達成細粒度的訪問控制策略,比如“只有來自特定廠區的數據分析服務才可以訪問歷史能耗API” 。

如何有效監控和運維分佈式自動化系統

服務數量增多,使得運維複雜度急劇上升。凌晨三點時,生產線出現告警情況,此時運維人員要迅速確定,究竟是“視覺識別服務”發生崩潰,還是“機械臂控制服務”網絡延遲過度。傳統監控方式在這種狀況下毫無辦法。

全鏈路可觀測性體係得建立起來,要涵蓋從基礎設施直至業務邏輯的範圍。這就表明,所有服務的日誌、指標以及分佈式追踪數據都得集中去收集。借助關鍵業務指標,像“單位產品平均能耗”出現的異常波動,能夠反過來追踪到具體的服務鏈。另外,自動化部署、彈性伸縮以及混沌工程測試,都是確保這套分佈式系統持續穩定運行所必需的實踐。

當您於規劃自動化系統的微服務轉型之際,或者在著手實施此轉型之時,所遭遇的最為重大的阻力究竟是什麼呢?是技術債務改造所具備的難度嗎?是團隊技能結構的轉變嗎?亦或是對於分佈式系統本身固有的複雜性所抱有的擔憂呢?歡迎於評論區去分享您自身俱體的挑戰或者成功的經驗,要是本文能夠對您產生一定的啟發,那麼也請為其點贊並且分享給更多的同行。

Posted in

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *