從1968年軟件第一次危機出現算起,軟件工程發展到如今已經50年。伴隨着產業的發展,軟件工程不斷出現新的思惟,方法論,原則,實踐。
安全
第一個階段:這個階段是屬於萌芽期,最先的軟件開發都是像手工坊同樣,整個過程常常會出現混亂,無序甚至失控,軟件產品的質量也層次不齊,如《人月神話》中描述的那樣,那時的軟件就像狼人同樣恐怖。 因此當時的主旋律是借鑑硬件製造,管理軟件開發過程當中的誤差,重點解決的是軟件開發的質量、可控、有序的問題,包括CMM,面向對象,瀑布開發等。網絡
第二個階段:第一個階段由於強化了過程的管理,雖然必定程度上有序和可控,誤差或許受到了控制,可是也抑制了必定的自由,影響了軟件產品的交付效率,軟件開發變得趨於機械和過分流程化。隨着敏捷宣言的公佈,軟件從一個極端往回拉了一些回來,迴歸到軟件的本質:軟件開發仍是一個智力活動。敏捷的理念逐步深刻人心,隨着Cloud做爲新的IT基礎設施服務形態,容器,CICD,DevOps也相應的應運而生,整體而言這個階段是爲了嘗試解決軟件開發的效率和速度問題。框架
第三個階段:在軟件的質量、軟件的效率和速度獲得必定改善的狀況下,軟件工程接下來應該解決什麼問題呢?工具
爲了嘗試解讀軟件自己就是爲了解決現實世界的問題的,商業和技術的發展驅動着軟件技術、軟件工程的發展,因此首先看看在可見的將來,大機率會發生啥?3d
當前的一個基本共識:從消費互聯網到產業互聯網,最終會實現如科幻片所描繪的「萬物互聯」。cdn
萬物互聯,很美好,但是若是具體到互聯的是車,飛機,火車這樣和咱們的生活,甚至人身安全密切相關的「物」,是否是隱隱仍是會有些擔心。人類就是在不斷的擔心新事物,又不斷解決問題的過程當中成長起來的,除了法規政策外,從技術上也要去解決。對象
所以,第三階段的軟件工程,應該進入一個新的問題域:軟件產品如何作到可信賴?當前,軟件產品的用戶除了關注軟件產品的質量,軟件產品是否足夠信賴,能讓用戶放心使用會成爲一個新的考驗。blog
可信的軟件究竟是什麼?事件
可信的英文: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人如下額度範圍內,能夠無償使用,而且能夠預定免費的產品演示和技術交流,詳情查看華爲雲官網