Skip to main content

城市

利用進階模擬設定 IoT DevOps 以確保成功

開發運營挑戰

由於預期 DevOps 能縮短產品開發時間,並反覆更新產品,因此已經成為 IoT 專案中最為熱門的方法。不過,並非所有專案都適合使用 DevOps,特別是在處理關鍵任務系統時。

大多數問題都需要測試。DevOps 方法的目標是要加速開發、品質保證 (QA) 與生產團隊之間的意見回饋循環。這個方法要成功,部分是經由以自動化 QA 程序取代傳統開發與品保程序,因為各項變更都部署至生產環境中。

不過仍需要即時偵測可能碰上的任何測試失敗狀況,並加以緩解,例如退出最新變更或最新版本。如果是非關鍵系統,這或許是容易管理的妥協作法,但如果是關鍵任務系統,恐怕這會是無法接受的風險。

使用模擬進行 DevOps QA 程序

另一個辦法是針對關鍵任務系統執行進階模擬,讓 QA 工程師可以在部署生產裝置之前,先在實驗室裡套用變更,並執行迴歸測試。

在很大程度上,這已經達成其目標。網路與 IoT 模擬工具供應商 Gambit Communications 技術長 Uwe Zimmermann 表示:「對於像軟體即服務 (SaaS) 這樣的非關鍵系統來說,免費試用版基本上就是一種實驗室,讓一般使用者可以執行 QA 程序。」不過,關鍵任務系統就需要進行更嚴苛的測試。

因此,目前的挑戰是要將生產系統模擬到一定程度,足以盡快偵測到問題。IoT 系統多半是從許多子系統 (通常是由第三方提供) 建構起來的,造成難以預料的相依性。因此,在一個元件上進行變更,可能會對整個系統造成連鎖反應,於是就必需經常針對整個系統執行自動化迴歸測試。

另一個挑戰是 IoT 系統的動態本質。如果在某個 IoT 網路上新增更多節點,那麼網路上的某些部分可能會更快出現瓶頸。如此一來,就可能導致非線性效能降低,需要仔細規劃能力與監控方法。

模擬不僅只是需要解決這些問題,還必需要快速解決。如果 DevOps 的意見回饋循環越短,那麼測試的時間就會越短。如此一來,問題就會變成:我們可以重新將 IoT 模擬器的速度設定到多快,以便在分配到的時間內執行迴歸測試?

此外,DevOps 將過去各自為政的團隊結合在一起,這也意味著開發與 QA 團隊之間的「高牆」已經打破,他們可以在測試計劃中一起協同合作。不過,雖然這可以加速開發,但也帶來新的壓力。「將這些障礙移除,同時也表示人多手雜,這也會造成問題。」Zimmermann 解釋道。為了讓工作順利進行,模擬器必需符合 DevOps 管道,並提供所有相關人員都可以使用的結果。

為關鍵任務 DevOps 打造更好的模擬器

Zimmermann 表示,為了滿足這些需求,模擬器必需在四個領域中出類拔萃:

  • 完整性:模擬器必需涵蓋生產環境中需要測試的各方各面。這包括能夠大規模模擬複雜的情境,例如高流量、網路中斷或出現安全漏洞等。模擬器也應該能夠重現罕見但可能造成嚴重後果的不受控危機情境。
  • 速度:現實世界情境可能要花個幾天、幾週甚至幾個月的時間才能展現出來。但測試人員必需在幾分鐘或幾小時內就重現這些情境,這表示模擬器必需具備高效能與高可擴充性。模擬器也必需能夠應付裝置數量可能增加,以及需求非預期激增的情況。
  • 靈活性:良好的模擬器必需能夠適應任何自動化工作流程管道。這個工具需要具備靈活的 API,且支援許多種程式語言。此外,IoT 應用程式的技術一向變化快速,因此模擬器也應具備靈活性,才能不斷應付各種變化球。
  • 決斷力:模擬器需要重現問題,讓多個團隊能夠一起調查並解決這些問題。對 DevOps 來說,這是必要的協同合作,讓身懷不同技能與系統知識的人都能存取程式碼。每一項變更都需要進行檢視、驗證與測試。

IoT 模擬器的目的是應付各種挑戰

因此,Gambit Communications 特別針對開發與測試網路應用程式的需求,開發了 MIMIC Simulator。許多大型組織,如 Cisco、IBM、HP 與 Intel,都已經使用這項產品好一段時間,來開發網路應用程式,而現在,為了開發 IoT 應用程式,這項工具的使用率也越來越高。

MIMIC Simulator 的主要目標是在測試中展示系統的實際互動狀況。一般來說,在 MIMIC Simulator 中建立模擬 (「模型」) 涉及記錄實際裝置 (或環境) 在測試中與系統的互動狀況。據此,MIMIC Simulator 工具會從這些記錄中推斷出一個基本模擬。

接著,使用者可以自訂此一基本模擬來達成預期效果,例如全面測試案例、邊界條件、規模、處理等等。每一種情境都會模擬一個特定狀況,而 MIMIC Simulator 可以執行各種數量的情境,例如迴歸測試套件中的各種情境。

「如果系統無法區分模擬與現實環境之間的差異,那模擬就成功了。」Zimmermann 表示。

MIMIC 模擬器最出名之處,就是能以線性方式根據 CPU 電源調整規模。這項工具可以從單一工作站模擬最多 100,000 台裝置,若是在多主機環境中,甚至可以模擬到最多 1 百萬台裝置。其設計是要與實驗室中的設備整合,以便即時控制物理實體與模擬實體。

而 Intel® 處理器就是成就其靈活性的關鍵。根據 Zimmermann 的說法,進行大型模擬需要使用至少 32 核心的 Intel® Xeon® 處理器,以及 256 GB 的 RAM。許多客戶在各種主機 (虛擬主機或實體主機都有) 上執行 MIMIC Simulator,以建立規模更大、更為動態的模擬。

Zimmermann 表示,無論是哪一種模擬,最關鍵的是與測試中系統的連結。為了確保支援 IoT 系統,Gambit Communications 已經新增一系列通用網路通訊協定,如 MQTT、CoAP 與 HTTP/S。從程式設計的角度來看,工程師可以使用 Java、C++、Go、Python、Perl、TCL、JavaScript、PHP 或 OpenAPI 來控制 MIMIC Simulator。這個工具支援經由 Docker 進行規劃,以便搭配工作流程自動化管道使用。

部署模型也同樣靈活。Zimmermann 表示,大約 60% 的使用者是在內部執行模擬,10% 的使用者則是在實體隔離實驗室中執行模擬。其他使用者則會至少在雲端上執行部分模擬,以盡可能節省成本。

針對 DevOps 工作流程進行關鍵任務模擬

正因為這種開放性與靈活性,再加上 MIMIC Simulator 的速度與決斷力,才能為關鍵任務工程團隊打造出真實可行的 DevOps QA 程序與迴歸測試。此外,為了能夠不斷反覆更新,同時縮短開發時間,技術組織也善加利用此一平台來執行各種工作,從技術訓練、銷售展示,到建立 IoT 裝置前置硬體的模型,幾乎無一不包。

現在,由於能夠執行大規模進階模擬,關鍵任務系統,以及建構這些系統的工程師,終於可以享受現代化工作流程所帶來的優勢,並以多年來與消費性裝置一樣的方式來反覆更新 IoT 範例,使其發揮最大效益。

關鍵數位轉型,就從現在開始!
 

本文由 insight.tech 編輯副總監 Christina Cardoza 編輯。

作者簡介

Brandon is a long-time contributor to insight.tech going back to its days as Embedded Innovator, with more than a decade of high-tech journalism and media experience in previous roles as Editor-in-Chief of electronics engineering publication Embedded Computing Design, co-host of the Embedded Insiders podcast, and co-chair of live and virtual events such as Industrial IoT University at Sensors Expo and the IoT Device Security Conference. Brandon currently serves as marketing officer for electronic hardware standards organization, PICMG, where he helps evangelize the use of open standards-based technology. Brandon’s coverage focuses on artificial intelligence and machine learning, the Internet of Things, cybersecurity, embedded processors, edge computing, prototyping kits, and safety-critical systems, but extends to any topic of interest to the electronic design community. Drop him a line at techielew@gmail.com, DM him on Twitter @techielew, or connect with him on LinkedIn.

Profile Photo of Brandon Lewis