最后讓我們看一下云開(kāi)發(fā)人員。盡管我十分想解釋清楚,但是該角色十分模糊。在當(dāng)前的場(chǎng)景下,云開(kāi)發(fā)人員指的是那些精通網(wǎng)絡(luò)、存儲(chǔ)和集成的傳統(tǒng)開(kāi)發(fā)人員。如果這些工程師認(rèn)為系統(tǒng)是穩(wěn)定的,那么電器工程師會(huì)對(duì)此不屑一顧冷嘲熱諷。盡管該角色稱為云開(kāi)發(fā),但我認(rèn)為,只要關(guān)注了諸如Node.js、Java或.Net等高級(jí)編程平臺(tái),就應(yīng)將設(shè)備開(kāi)發(fā)人員也包括在其中。如果項(xiàng)目考慮使用嵌入式系統(tǒng)和C編程實(shí)現(xiàn)微控制器,那么設(shè)備開(kāi)發(fā)人員可能與電氣工程師更密切相關(guān)。
與其它任何項(xiàng)目一樣,規(guī)劃整個(gè)項(xiàng)目的發(fā)布和任務(wù)同樣需要具有很好的領(lǐng)導(dǎo)和管理。但是考慮到各個(gè)群組具有完全不同的想法,我們需要做得更多。每個(gè)群組都必須主動(dòng)去了解其它的群組。對(duì)于云開(kāi)發(fā)人員來(lái)說(shuō),尤其應(yīng)該這樣做,因?yàn)樗麄兣c其它群組間交流存在一些不順。云開(kāi)發(fā)人員必須協(xié)調(diào)從業(yè)務(wù)/數(shù)據(jù)分析人員到電氣工程師的需求,反之亦然。
第三個(gè)挑戰(zhàn):板載
在首次Sprint時(shí),Trello面板上可能不會(huì)出現(xiàn)“如何配置設(shè)備”這一問(wèn)題。當(dāng)你意識(shí)到推出成百數(shù)千種設(shè)備的挑戰(zhàn)時(shí),我可以保證你會(huì)在同一塊面板上碰壁。為滿足你的需求,你可以也應(yīng)該預(yù)先安裝并配置設(shè)備,但是每個(gè)設(shè)備都或多或少地與其它設(shè)備類似,區(qū)分它們的是自動(dòng)注冊(cè)設(shè)備時(shí)所需要使用的信息。這些信息可以是MAC地址、IMEI id、SIM卡ID(ICCID)、證書(shū),或是你所希望的任何組合。雖然你可以訂購(gòu)預(yù)先配置了密鑰或證書(shū)的設(shè)備,但這往往是非常昂貴的。
但是在某些情況下,我們不需要大量板載設(shè)備,只需要在使用WiFi的地點(diǎn)一次部署一個(gè)設(shè)備。物聯(lián)網(wǎng)設(shè)備可以由技術(shù)人員安裝在建筑物中,甚至可以由其中居住的居民安裝。在這種情況下,我們可以考慮讓設(shè)備提供一個(gè)WiFi熱點(diǎn),任何人都可以使用智能手機(jī)現(xiàn)場(chǎng)配置設(shè)備。
無(wú)論使用哪種方式,板載是設(shè)備管理的一個(gè)重要組成部分,出于多種目的考慮應(yīng)做分開(kāi)部署,并以此作為整體解決方案的一個(gè)重要組成部分。除了管理配置過(guò)程的需求,我們可能還應(yīng)考慮支持在某個(gè)時(shí)間點(diǎn)更換云服務(wù)提供商,或者支持從跨數(shù)據(jù)中心的災(zāi)難恢復(fù)。
在Axians,我們使用了microServiceBus.com。它支持Azure、AWS和IBM 的物聯(lián)網(wǎng)、跨數(shù)據(jù)中心的災(zāi)難恢復(fù),并與Cisco Jasper集成,為我們提供了使用SIM卡的開(kāi)箱即用的板載功能。它還支持使用MAC地址及其他一些方式的白名單。
第四個(gè)挑戰(zhàn):規(guī)劃更改
對(duì)于一個(gè)企業(yè)而言,部署Web應(yīng)用卻不監(jiān)視其運(yùn)行狀況,或者不修補(bǔ)其操作系統(tǒng),這是不可以接受的。企業(yè)也不會(huì)漠不關(guān)心每臺(tái)工作站和筆記本是否安裝了更新的防病毒軟件和防火墻。
不過(guò)出于某些原因,這看上去似乎與物聯(lián)網(wǎng)解決方案毫不相關(guān)。人們似乎認(rèn)為物聯(lián)網(wǎng)設(shè)備能夠抵御各種威脅,是運(yùn)行在經(jīng)得起時(shí)間考驗(yàn)的神奇操作系統(tǒng)之上的。事實(shí)并非如此!

無(wú)論大小和形狀如何,設(shè)備和網(wǎng)關(guān)在本質(zhì)上都是小型的計(jì)算機(jī),它們的操作系統(tǒng)需要修補(bǔ),還需要不斷地更新的平臺(tái)和自定義代碼,以及我們所能想象到的更多依賴性。所有這些都是可以更改的。如果有人不承認(rèn)這一點(diǎn),那么我們大可以禮貌地點(diǎn)點(diǎn)頭,然后就離開(kāi)房間不再回來(lái)。
但是,設(shè)備管理不僅是遠(yuǎn)程更新和配置新設(shè)備。現(xiàn)有的IT操作可能會(huì)使用System Center或同類工具管理服務(wù)器和工作站。服務(wù)臺(tái)和NOC可能會(huì)使用像ServiceNow或JIRA這樣的工具來(lái)升級(jí)問(wèn)題、發(fā)現(xiàn)問(wèn)題并計(jì)劃發(fā)布。無(wú)論我們選擇了哪種設(shè)備管理系統(tǒng),都必須保持與現(xiàn)有流程的一致。一旦解決方案投入生產(chǎn),沒(méi)有人不希望面對(duì)的是一個(gè)沒(méi)有人可以也不想管理的混亂系統(tǒng)。
除了板載之外,microServiceBus.com還支持我們控制設(shè)備并配置更新,甚至是管理代碼。它集成了ServiceNow,該工具是我們用于管理狀況、問(wèn)題和發(fā)布的工具。
第五個(gè)挑戰(zhàn):測(cè)試
對(duì)于從事各種類型應(yīng)用開(kāi)發(fā)的組織,測(cè)試驅(qū)動(dòng)設(shè)計(jì)(TDD)和持續(xù)集成(CI)都得到了廣泛的應(yīng)用。但是,物聯(lián)網(wǎng)解決方案的性質(zhì)和體系結(jié)構(gòu),決定了這些測(cè)試方法是難以接受的。測(cè)試的目標(biāo)是快速失敗,為適應(yīng)物聯(lián)網(wǎng)的需求,我們需要跳出其中考慮問(wèn)題。
為了更好地解釋這些挑戰(zhàn),我將它們分成三類: