過去幾個星期,我的高中一年級的兒子一直很緊張。要完成多位老師布置的,上交時間為同一天的作業,這樣的壓力讓他很沮喪。當我看著他應對大量數學作業時,我想到了在物聯網開發中發生的類似困難。在我看來,阻礙物聯網前進的流程,可以總結為一個簡單的數學方程式:IoT = DevOps²。
物聯網等于DevOps的平方?
讓我解釋一下。為了成功實現物聯網應用的實施,你需要了解物聯網場景中的完整物理環境。與此同時,你需要認識到你要面對分散在整個企業中的多個團隊:OT開發,OT運營,IT開發和IT運營。
這四個不同團隊中的每個,就如同不同學科的老師,都有特定的目標和關注點。團隊之間的協調和計劃是必需的。否則,就會效率低下,甚至產生分歧。要讓事情順利進行,你需要一個包含任務分配和流程的協調計劃,并不斷交換信息。
當然,重要的是要記住為什么每個團隊都是獨特的實體。必須考慮到他們的目標差異。正如數學和歷史在教導的內容上,有著非常不同的目標一樣,一個企業內的每個團隊都有不同的目標和指標。雖然運營和開發是相似的,但是開發人員的目標是創建新的,更好的軟件,并盡可能快速和高效地完成。IT運營人員更關心保持環境的穩定和運營。無論他們決定實施什么,都必須能夠安全地融入當前的環境。
與教育機構的目標一樣,實施物聯網項目的企業的目標是確保每個人都共同,按時完成流程。如果OT開發團隊完成任務,卻沒有其他團隊繼續,或者如果IT開發團隊準時完成工作,而其他團隊卻沒有完成,那么物聯網項目就失敗了。那么,在物聯網的新氛圍中如何避免開發困難呢?
X不能等同于舊的瀑布技術首先,讓我們承認,過去的軟件開發方法阻礙了支持物聯網所需的協作過程。我指的是花費數月的時間來開發軟件,記錄軟件,然后對軟件進行測試,結果發現(已經太晚了)軟件問題太多,或者不再滿足客戶的期望。這個時間框架和方法論在四個不同的,重要的團隊需求都需要滿足的物聯網環境下,是行不通的。物聯網需要真正的實時。
為了使物聯網工作,需要所有四個團隊之間有力的整合和溝通。通過將這四個團隊合并成一個能夠共同工作的團隊,你可以提前輸入需求,并確保盡早在過程中提供支持。然后,團隊可以更輕松地理解概念,并通過不同的任務加強這些概念。為了更大的目標,要明確什么才是重要的,并找到在每個領域需要支持的部分。在下圖中,你可以看到開發(Dev)和運營(Ops)之間確實存在共同的需求。專注于這些需求來創建DevOps平臺,為更高的效率和創新鋪平道路。
注重敏捷通過DevOps和CI/CD(持續集成和持續交付)實現的敏捷軟件開發改善了協作,從而改進了創新。當每個人都負責質量管理,人員都在一起工作,而不是孤立地工作時,就可以避免在其他領域中斷功能。當你不斷地發布小的增量變化的產品,并隨時進行測試,你會立即知道是否有問題,并能明確需要修復的問題。通過快速捕捉和解決問題,整個團隊生產出更穩定,質量更好的軟件。
容器通常用在敏捷開發過程中。能夠對代碼的“層”進行修改而不會影響其他代碼,因此可以在保持代碼穩定的情況下快速進行更改。Scrum是另一個重要的敏捷項目管理工具。與傳統的瀑布式項目管理不同,Scrum處理實時的,面對面交互,確保與所有相關人員進行清晰的溝通。
敏捷開發環境的擴展性非常好,這在當今快速變化的市場,比如物聯網中至關重要。這些環境的效率要高得多,并且可以在不影響底層的情況下快速更新。
使用正確的工具對成功至關重要你可以將敏捷集成和開發流程的整體思想融入到物聯網的其他方面,包括你的架構方法。我的同事Ishu Verma在他的博客文章“將敏捷集成應用于物聯網”中詳細討論了這個問題。正如他指出的那樣,真正的關鍵是從定制的技術轉變到基于標準的技術,并關注協作能力。這就是為什么客戶使用容器平臺和其他開發工具來更新IT基礎設施,并采用敏捷的DevOps方法來開發應用的原因。
將敏捷集成與專門用于構建和管理機器對機器或物聯網應用的設備應用框架(如Eurotech的Everyware Software Framework和Everyware Cloud)中的工具相結合,為物聯網開發人員提供了按需,自助服務功能,同時更容易一起工作。
如果高一的課程有這么容易就好了。