下一代軟體工程的思考與點滴實踐
從1968年軟體第一次危機出現算起,軟體工程發展到現在已經50年。伴隨著產業的發展,軟體工程不斷出現新的思維,方法論,原則,實踐。
第一個階段:這個階段是屬於萌芽期,最早的軟體開發都是像手工坊一樣,整個過程經常會出現混亂,無序甚至失控,軟體產品的質量也層次不齊,如《人月神話》中描述的那樣,那時的軟體就像狼人一樣恐怖。 所以當時的主旋律是借鑑硬體製造,管理軟體開發過程中的偏差,重點解決的是軟體開發的質量、可控、有序的問題,包括CMM,物件導向,瀑布開發等。
第二個階段:第一個階段因為強化了過程的管理,雖然一定程度上有序和可控,偏差或許受到了控制,但是也抑制了一定的自由,影響了軟體產品的交付效率,軟體開發變得趨於機械和過度流程化。隨著敏捷宣言的公佈,軟體從一個極端往回拉了一些回來,迴歸到軟體的本質:軟體開發還是一個智力活動。敏捷的理念逐步深入人心,隨著Cloud作為新的IT基礎設施服務形態,容器,CICD,DevOps也相應的應運而生,總體而言這個階段是為了嘗試解決軟體開發的效率和速度問題。
第三個階段:在軟體的質量、軟體的效率和速度得到一定改善的情況下,軟體工程接下來應該解決什麼問題呢?
為了嘗試解讀軟體本身就是為了解決現實世界的問題的,商業和技術的發展驅動著軟體技術、軟體工程的發展,所以首先看看在可見的未來,大機率會發生啥?
當前的一個基本共識:從消費網際網路到產業網際網路,最終會實現如科幻片所描繪的“萬物互聯”。
萬物互聯,很美好,可是如果具體到互聯的是車,飛機,火車這樣和我們的生活,甚至人身安全密切相關的“物”,是不是隱隱還是會有些擔憂。人類就是在不斷的擔憂新事物,又不斷解決問題的過程中成長起來的,除了法規政策外,從技術上也要去解決。
因此,第三階段的軟體工程,應該進入一個新的問題域:軟體產品如何做到可信賴?當前,軟體產品的使用者除了關注軟體產品的質量,軟體產品是否足夠信賴,能讓使用者放心使用會成為一個新的考驗。
可信的軟體到底是什麼?
可信的英文:Trustworthiness。可信的軟體是指:軟體可按照預期執行,並且不會在環境改變時帶來重大安全和隱私風險。按《Software Engineering》10th edition和其他相關標準的基本定義,可信包括5個基本維度,如下圖:
簡單逐一解釋一下:
Safety: 系統對人和系統的環境不會造成危害的可能性
Reliability:系統在給定的時段內能正確提供使用者希望的服務的可能性。
Availability:系統在任何時間都能執行並提供有用服務的可能性。
Security:系統能抵抗的或者蓄意入侵的可能性 。
Resilience:當出現一些干擾性事件時,系統保持其關鍵服務繼續正常執行的可能性。
以上這5個維度,並不是孤立的,對於軟體產品而言,這五個維度往往是相輔相成,甚至有的場景下還是“相生相剋”的 。
華為雲 DevCloud 如何探索?
佈道師講到,可信包括的內容和要求都非常的高,而且我們在思維和理念上會帶來新的衝擊。對於任何一個新的跨越式的轉變,無論是之前華為的IPD,還是敏捷,還是DevOps,都離不開Be 和 Do 的同時並進,如下圖所示的這樣
軟體工程領域任何一個新事物,往往都是:思維理念開始——>形成基本的價值觀(什麼是對的,什麼是需要避免的)——>形成一些基本原理——>形成一些有限的實踐——>根據不同的場景,選擇最適合的實踐,形成一些最佳實踐集合(比如敏捷實踐中的Scrum,XP)。
對於可信,其實也是類似的方法Be trustworthy 同時 Do Trustworthy,很多時候,思維和理念的改變需要落地後的實際效果來影響,反過來,思維和理念的變化會加速實踐的探索。在現有的華為雲DevCloud開源映象倉服務上增加一些可信的能力
現在的軟體通常都會使用一些開源元件或開放使用的第三方元件或框架。新的開源元件數量成倍增長,同時開源元件的使用程度和頻次也越來越高,開源元件的安全、漏洞問題現在也日益成為當前業務最擔憂的問題。
近些年,一些網路犯罪分子利用開源元件的漏洞,對很多巨頭公司造成了巨大的品牌影響、財產損失、乃至使用者流失。華為很早就建立了內部的開源映象倉,並增加漏洞掃描,和官方映象站點直接合作等等。去年把這個服務孵化到華為雲,作為一個獨立的服務面向社會提供,基於華為雲強大的基礎設施和華為內部映象倉的多年實踐,對外部使用者提供可靠來源和高速下載的映象倉服務。若需要詳細瞭解,請參見: 華為開源映象站
2019年,在華為雲DevCloud的開源映象倉上將增加可信的能力規劃:
來源可信,和官方映象站的合作與認證。
傳輸可信,傳輸過程中防篡改。
使用可信,增加多安全性的檢查、攔截,並結合華為自己跟蹤的漏洞和NVD跟蹤釋出的漏洞,持續的跟蹤已發現識別的漏洞並及時預警。
當然開源元件千千萬萬,做好開源映象倉的可信,實際是個很挑戰的事情,華為雲DevCloud與您一起繼續探索……
華為雲 DevCloud 作為一站式雲端DevOps平臺,整合華為近30年研發實踐和前沿理念,面向開發者提供研發工具服務,讓軟體開發簡單高效。現支援5人以下額度範圍內,可以免費使用,並且可以預約免費的產品演示和技術交流,詳情檢視 華為雲官網
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548113/viewspace-2644791/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【軟體工程理論與實踐】Homework(四.1)軟體工程
- 【溫故】前端工程化思考與實踐前端
- 【軟體工程理論與實踐】Homework(一.2,3)軟體工程
- 軟體工程實踐專案學習與執行日誌軟體工程
- 高德演算法工程一體化實踐和思考演算法
- 軟體工程與管理實驗3軟體工程
- 基於 GraphQL 實踐的一點思考
- Bool型SSRF的思考與實踐
- [技術思考] 軟體可測性分析和實踐
- 深入思考軟體工程,開啟 DevOps 之旅軟體工程dev
- 讀《大道至簡:軟體工程實踐者的思想》有感軟體工程
- QCon看點|亞馬遜雲科技可持續軟體工程實踐分享亞馬遜軟體工程
- 軟體工程的實踐專案課程的自我目標軟體工程
- 軟體工程 第一章 軟體與軟體工程軟體工程
- DevOps落地實踐點滴和踩坑記錄-(1)dev
- 前端同構渲染的思考與實踐前端
- WebService安全機制的思考與實踐Web
- 業務資料治理體系化思考與實踐
- 《大道至簡——軟體工程實踐者的思想》讀後感軟體工程
- 全鏈路壓測體系建設方案的思考與實踐
- 前端程式碼質量的思考與實踐前端
- 軟體工程師第一性原理思考 - AddyOsmani軟體工程工程師
- 軟體測試過程中的痛點思考
- 雲原生背景下故障演練體系建設的思考與實踐—雲原生混沌工程系列之指南篇
- Flutter 動態化熱更新的思考與實踐Flutter
- 數字化轉型的思考與新實踐
- 一個工程實踐專案的完整軟體系統設計方案
- 從工具、工具箱到數字化軟體工廠——DevOps 設計理念與工程實踐專場 | CIF 精彩看點dev
- 飛豬基於 Serverless 的雲+端實踐與思考Server
- 貝殼使用者偏好挖掘的思考與實踐
- 幽默:哲學與軟體工程的區別軟體工程
- 新工科教育的實踐與思考——曾勇校長在工程教育高峰論壇上的報告
- 網易雲音樂低程式碼體系建設思考與實踐
- 流批一體架構在快手的實踐和思考架構
- 華為多年實踐:ServiceComb在Service Mesh的探索與思考
- 百度關於互聯互通的思考與實踐
- 雲原生背景下的運維價值思考與實踐運維
- Service Mesh 在『路口』的產品思考與實踐:務實是根本