你想知道的2018年軟體開發“10件事”

codebay發表於2018-03-07

  區塊鏈、NLP、AI驅動的工具、機器學習、無伺服器計算和devops創新將在2018年改變開發者的生活。

  開發人員應該對2018年的機遇感到興奮,產品和工具圍繞著諸如區塊鏈、聊天機器人、無伺服器功能和機器學習等技術在現實世界的專案中變得足夠成熟。與此同時,許多開發人員會擔心,在不影響安全性和效能的前提下,他們將無法更快地交付程式碼和功能。但這方面也有好訊息。

  對於開發人員來說,2018年的定義是,在抓住轉型新機遇的同時,在應對壓力的同時,要做得更多,質量更高。以下是有關這些力量將在未來一年如何發揮作用的10個預測。

  1. 利用區塊鏈的B2B交易進入生產階段

  企業已經開始瞭解從區塊鏈啟動的交易中獲得的安全性、可靠性和效率。在未來的一年,開發人員將在整個金融服務和製造供應鏈中實施許多區塊鏈用例。區塊鏈是一種技術,它可以使組織之間的高效、安全、不可變、可信的交易成為可能,而這些交易可能不會完全相互信任,從而消除中介。

  考慮一家公司從一家離岸製造商訂購產品。這些產品通過船運公司發貨,通過海關,通過另一家船運公司,最後到達買方。今天,每個步驟的驗證和調節主要通過電子郵件和電子表格進行,其中涉及很多人和過程。區塊鏈通過不可撤銷的對區塊鏈分類賬的更新,消除了手工流及和解,當最少數量的參與者說,“是的,這部分交易發生了。”

  區塊鏈雲服務將帶來可伸縮性、彈性、安全性以及與企業系統的預構建整合,使開發人員更容易將重點放在業務用例上,而不是底層的hyperledger fabric實現。

  2. 聊天機器人經常與顧客和員工進行真正的對話

  人們已經厭倦了需要多個移動應用程式來做同樣的工作,就像三種不同的航空公司應用程式一樣,通過不同的方式辦理登機手續並獲得登機牌。一種更好的方法是提供同樣的功能,但是通過手機訊息上最流行的應用程式。訊息傳遞有三個具有吸引力的元素:即時、表達性和會話性,不需要培訓。由於人工智慧和自然語言處理技術的進步,人們將會使用Facebook Messenger、谷歌Home這樣的語音助手,來問問題,並從智慧機器人那裡得到答案。

  開發人員使用新的智慧的bot構建雲服務,可以快速地製造能夠理解客戶意圖、維護會話狀態的機器人,並在與後端系統整合的過程中智慧地響應。想象一下你在電影中看到的一件連衣裙的圖片,然後把照片傳給你最喜歡的服裝店的機器人,它使用影象識別和人工智慧來推薦相似的服裝。員工也可能是機器人的巨大受益者,比如詢問他們已經離開了多少個假期,提交了一張幫助辦公桌的票,或者訂購了一臺替換的膝上型電腦,在那裡,系統甚至知道員工有哪些膝上型電腦符合資格,並且可以根據他們的訂單提供狀態更新。考慮到對你自己的員工基礎的試驗更寬容,開發人員可能會首先利用他們的“造人”能力來建立和測試員工面對的機器人。

  3. 按鈕消失了:AI變成了app介面

  人工智慧成為UI,意味著使用應用和服務的同步、請求-響應模型逐漸消失。智慧手機仍然是“低智商”,因為你必須去接他們,啟動一個應用程式,要求做一些事情,最終得到迴應。在新一代智慧應用程式中,該應用將通過推送通知啟動互動。讓我們更進一步,使用人工智慧的應用程式、機器人或虛擬個人助手將知道該做什麼、何時、何地以及如何做。就這樣做。兩個例子:

  費用審批程式會注意你的報銷模式,開始自動審批費用報告的99%,只會讓你注意到需要你注意的罕見報告。

  分析應用程式瞭解底層資料,業務使用者提出的問題,以及公司其他使用者對相同資料集的問題,並且每一天都提供了一個新的見解,分析人員可能沒有想到。當組織收集更多的資料時,人工智慧可以幫助我們瞭解需要問哪些問題的資料。

  開發人員需要弄清楚哪些資料對他們的業務應用程式非常重要,如何從事務中觀察和學習,哪些業務決策將從這種主動的人工智慧中獲益最多,並開始進行試驗。嵌入式人工智慧可以預測你需要什麼,在合適的時間通過合適的媒體釋出資訊和功能,包括在你需要它之前,並自動完成你今天手動完成的許多工。

  4. 機器學習採用實際的、特定領域的用途

  機器學習正從晦澀的資料科學領域轉移到主流應用程式開發領域,這都是因為在流行的平臺上可以預先構建模組的可用性,而且在處理大型的歷史資料集時,它非常有用。通過機器學習,最有價值的洞察力來自於背景,你以前做過什麼,你問過什麼問題,別人在做什麼,正常的和反常的活動是什麼。

  但是要想有效,機器學習必須在一個領域特定的環境中進行調整和訓練,該環境包括它將分析的資料集和它將回答的問題。例如,設計用於識別安全分析師異常使用者行為的機器學習應用程式將與設計用於優化工廠機器人操作的機器學習應用程式非常不同,這可能與基於微服務的應用程式的依賴對映的設計非常不同。

  開發人員需要更加了解領域特定的用例,瞭解要收集什麼資料,應用什麼樣的機器學習演算法,以及要問什麼問題。開發人員還需要評估特定領域的SaaS或打包應用程式是否適合給定的專案,因為需要大量的培訓資料。

  使用機器學習,開發人員可以構建智慧應用程式來生成建議、預測結果或做出自動化的決策。

  5. DevOps走向無操作

  我們都同意devops對於幫助開發人員快速構建新的應用程式和特性非常重要,同時保持高質量和效能。devops的問題是開發人員需要花費他們60%的時間在方程的操作一邊,從而縮短開發的時間。開發人員必須整合各種持續整合和持續交付(CICD)工具,維護這些整合,並隨著新技術的釋出不斷更新CI / CD工具鏈。每個人都有CI,但沒有太多的人做CD。開發人員會堅持使用雲服務來幫助鐘擺在2018年迴歸開發。這將需要更大的自動化。

  Docker提供了打包、可移植性以及進行敏捷部署的能力。您需要CD作為Docker生命週期的一部分。例如,如果您正在使用容器,一旦您將程式碼更改提交給Git,那麼構建的預設構件應該是具有新版本程式碼的Docker映像。此外,映像應該被自動推送到Docker登錄檔中,並將一個容器從映像部署到devtest環境中。在QA測試和部署到生產之後,應該為您處理容器的編排、安全性和擴充套件。商業領袖正在向開發者施壓,要求他們更快地提供新的創新;devops模型必須為開發人員騰出更多的時間使其成為可能。

  6. 開源作為一種服務,加速了開源創新的消費

  開源模式仍然是創新的最佳引擎之一,但實現和維護創新往往過於複雜。例如:

  您想要一個流資料/事件管理平臺,所以您可以轉向Kafka。當您開始在規模上使用Kafka時,您必須設定額外的Kafka節點和負載平衡大型Kafka叢集,隨著Kafka的新版本的釋出更新這些叢集,然後將此服務與您的其他環境整合起來。

  您需要容器編排的Kubernetes。平臺應該為您的Kubernetes叢集服務,而不是為您的Kubernetes叢集處理升級、備份、恢復和補丁。Kubernetes每六個星期航行一次,所以這個平臺應該有滾動部署和自我修復。

  您需要為NoSQL資料庫提供Cassandra。您應該希望備份(在計劃中是增量的或完整的)、補丁、叢集、擴充套件和高可用的Cassandra叢集,由平臺來管理。

  開發人員將越來越多地尋找雲服務,以便在處理這些技術的操作和管理方面的同時,從開放原始碼中提供所有的高速創新。

  7. 無伺服器計算的架構在生產中會變得很大

  無伺服器架構的吸引力是顯而易見的:當需要基於某個事件執行我的程式碼時,基礎架構被例項化,我的程式碼被部署和執行,而我只在程式碼執行的時候被收取費用。假設你想建立一個旅行預訂功能來預訂/取消航班、酒店和租車。每個操作都可以構建為一個以不同語言編寫的無伺服器函式,如Java、Ruby、JavaScript和Python。沒有應用程式伺服器在執行我的程式碼;相反,只有在需要時,函式才被例項化並在基礎結構上執行。

  對於開發人員來說,將無伺服器的函式串在一起執行復雜的事務會帶來新的挑戰:描述如何將這些函式連結在一起,除錯分散式事務,並決定如何在一個函式的鏈上失敗,從而建立補償事務來取消不適當的更改。尋找雲服務和開放原始碼工具,比如FN專案,通過幫助開發人員輕鬆地管理伺服器功能的程式設計、組成、除錯和生命週期管理,並在膝上型電腦或on – prem伺服器或任何雲上部署和測試它們,從而繁榮發展。關鍵是要選擇一個提供最大可移植性的無伺服器平臺。

  8. 關於容器的唯一問題是“為什麼不呢?”

  容器將成為開發/測試工作的預設值,併成為生產應用程式的常見內容。在開源創新和行業標準的驅動下,希望在安全性、可管理性、編制、監控和除錯方面持續改進。容器為驅動現代開發的許多趨勢提供了構建塊,包括微服務體系結構、雲本地應用程式、無伺服器函式和devops。

  容器在任何地方都是沒有意義的——例如,當您需要一個更規定性的雲平臺時,例如整合PaaS或移動PaaS,但是這些更高階別的雲服務將自己執行在容器上,並且將是證明規則的異常。

  此外,軟體許可模型用於高價值、商業、現場的軟體,將不得不接受容器採用的傳播。軟體的定價模型必須支援“開啟”和“關閉”許可,因為容器被例項化、放大和縮小。

  9. 軟體和系統可以自我修復、自我調節和自我管理

  開發人員和生產操作團隊正在從日誌、web /應用程式/資料庫效能監視和使用者體驗監視和配置中淹沒資料。此外,這些不同型別的資料都是豎向的,所以您必須將許多人帶入一個房間來除錯問題。然後就是知識轉移的問題:開發人員花了大量的時間來講述他們的應用程式的輸入和輸出、設定的閾值、用於監視事務的伺服器拓撲,等等。

  通過聚合大量的資料到一個儲存庫(在日誌、效能指標、使用者體驗,和配置,例如),並應用大量的計算能力,機器學習,和專用演算法,基於雲端計算的系統管理服務將大大緩解效能/日誌/配置監視。這些雲服務將通過觀察事務來建立基線,通過觀察事務(從必須管理閾值來節省ops團隊),並瞭解與事務自動關聯的伺服器拓撲。使用針對這些基線的異常檢測,系統管理服務將自動能夠告訴開發人員,當事情偏離正常的行為時,並能夠顯示特定事務的問題的根源。

  開發人員需要考慮如何在編寫應用程式時利用這種自動化,以便能夠在雲中這些智慧管理系統之上建立自管理應用程式。

  10. 高度自動化的安全性和遵從性努力成為開發人員的新同盟

  儘管開發人員通常認為安全性和遵從性是“其他人的工作”或“交付程式碼的瓶頸”,但基於機器學習和交付的綜合安全性和遵從性機制的出現,將有助於使這些努力與快速的開發步調一致。具體地說,高度自動化的網路防禦將被部署到“上游”,以識別和糾正開發和“下游”的潛在安全風險,從而自動調整公司的安全配置檔案,以適應正在進行的應用程式和環境變化(識別攻擊、修復漏洞和評估持續的遵從性)。

  在某些情況下,這種保護是必要的,持續的合規評估是GDPR和類似任務的標誌。開發人員、安全專業人員和終端使用者都將受益於在devops生命週期中更加嚴格的、自動化的安全方法。

相關文章