Hyper.ag 為室內和垂直農場提供可擴展的感測器分析和自動化基礎設施。透過他們的產品,農民可以持續優化作物品質,並在無需專門的工程團隊的情況下,獲取可操作的生長洞察和氣候控制設定檔,從而降低營運成本。
挑戰
自公司成立以來,Hyper 在產品方面有非常獨特的要求,需要支援管理數千個低功耗網路裝置的部署,並在分散式伺服器基礎架構上計算即時指標。
- 可靠的實作 - 客戶期望系統能正常運作,不會出現故障,因為服務的任何中斷都可能對他們的業務運作產生直接影響。
- 可控制的資源使用 - 在資源受限的裝置上部署軟體,在這些裝置上,低記憶體配置和計算效率對於支援更先進的功能非常重要。
- 離線優先部署 - 分散式分析和自動化系統的架構需要精確的狀態複製,以支援位於偏遠地區農場的客戶進行離線部署。此軟體在沒有任何外部服務的情況下可靠地運作至關重要。
- 開發人員生產力 - 最重要的是,Hyper 是一家新創公司,需要不斷快速迭代產品功能,並對他們的工作保持高度信心。
解決方案
雖然 OCaml 並不普遍被認為是物聯網和嵌入式程式設計的語言或平台,但它以強型別函數式範例特有的方式幫助滿足了 Hyper 的需求,因為它提供了具有宣告式介面的強抽象邊界和眾多的優化機會。
Hyper 利用 OCaml 設計出一款既高度適應性又提供高度安全性的產品。在迭代他們的系統設計時,他們能夠以驚人的速度多次重寫幾個關鍵組件,而不會損害可靠性。
成果
OCaml 的型別系統被證明是表達每個感測器和致動器(屬於其物聯網平台)的不變性和特性的絕佳工具。這使他們能夠為資源受限的裝置執行程式碼生成,以實現最大的效能、低網路開銷以及在對系統進行變更時的高度靈活性。
除了強大的語言和不斷成長的高品質函式庫生態系統之外,Hyper 還非常重視 OCaml 在他們建立持久且有影響力的產品之旅中所承諾的向後相容性和長期支援。