在GOTO 2015柏林大會上,Fred George談了組織應該做些什么來實現微服務的成功部署以及他們可以在物聯網領域扮演什么角色。在早些時候的采訪中,InfoQ就應用微服務需要哪些支持采訪了他。在本次采訪中,Fred George解釋了物聯網如何利用微服務及它所帶來的挑戰和我們可以采取的措施。InfoQ還請他就微服務在物聯網領域的應用向軟件行業提出了建議。
InfoQ:您能詳細地描述下物聯網(IoT)如何應用微服務嗎?
George:單體IT架構并不適合其中每個設備都有計算機和無線連接的環境。在我家里,我現在有7個燈泡和10米光條,它們全都有自己的處理器。另外,我還有Apple TV和XBox。在同它們進行交互方面,我所希望的方式可能不同于你所希望的方式。這就需要某種程度的解耦(而不是由IBM或Oracle或Google或Amazon或Apple來告訴你應該采用什么樣的方式)。因此,我希望設備可以自己發布消息,并響應其他設備(或其他人)的操作。我們再次遇到了一個模糊的問題,一個適合微服務的領域。
因此,我設想,有一個微服務可以簡單地指出我是否在家(可以通過我的iPhone及其地理定位服務)。另一個微服務對此作出響應,并根據一天中的時間開燈或關燈(通過Apple HomeKit及我的Philips Hue控制器)。借助微服務,我可以通過其他的服務繼續增加復雜性,而不需要等著其中某個大型供應商構建出一個具備那種功能的應用程序。
InfoQ:您可不可以談一下,根據您的觀察,物聯網所面臨的一些挑戰?
George:對我來說,現在談論這個問題還為時尚早,不過我馬上就想到了兩點。第一個是互操作,即如何讓來自不同供應商的設備相互協作。第二個是安全,即如何防止懷有惡意的陌生人(或者就我的情況來說,我所熟悉的黑客)對我家里的系統的訪問。
InfoQ:關于如何應對這些挑戰,您有什么建議嗎?
George:對于互操作,已經出現了幾個標準,而且,主要的供應商也已經認識到,如果他們的Hub支持多種互操作標準,那么與競爭對手相比,其Hub就更可能被使用。安全問題最好是使用鎖定的無線網絡來解決,并遵循最佳實踐來保證其安全。然后,就只需要保護對外的“外觀(facade)”免受攻擊。Apple TV、Microsoft XBox及Amazon Echo似乎都在爭當那個外觀。
InfoQ:微服務是解決互操作的一個方案嗎?您能舉個例子嗎?
George:供應商們都發布了他們的協議,并向各種Hub暴露了API。一個微服務可以充當不同協議之間的適配器。它是輕量級的,并可以隨意取用,這兩個特性是一個快速發展變化的環境所需要的。正在玩這個的同行經常使用Arduino 處理器板來執行這些任務。最新一代的處理器運行現代化的語言,只需很少的電量,而且可以安裝在任何地方。
InfoQ:關于微服務在物聯網領域的應用,您有什么建議向軟件行業提嗎?
George:在這個領域取得成功的供應商會認識到互操作的必要性,而且不是通過在專利產品中逐步增加特性來解決。他們會開放API,允許同他們的Hub及使用標準協議(如使用HTTP協議的RESTful接口)的設備進行多樣化的通信。我期待出現一個多產的開源模型,就像某些玩具機器人和無人機市場那樣。在開放協議方面占得先機,就會在市場份額上取得回報。
最近,Amazon正在努力成為那樣的集成供應商(參見Amazon將在物聯網領域大展身手)。Philips剛剛撤回了將外部設備排除在其Hub之外的決定;這一排外舉措在社區引發了激烈的負面反應,Philips知道,他們這樣一個舉措會讓他們喪失市場份額(參見Philips Hub重新支持第三方智能燈)。這個行業似乎明白他們需要做什么。