DevOps笔记-01:软件交付面临的问题、软件工程的三个发展阶段、什么是DevOps?
目錄
1、軟件交付面臨的問題
2、軟件工程的三個發展階段
3、什么是DevOps?
4、總結
?
1、目前軟件交付面臨的問題
(1)跨部門溝通成本高:團隊間溝通和協作的重要性一點也不亞于寫代碼、寫文檔、做測試之類的常規工作。
(2)不能快速持續交付高質量軟件
2、軟件工程經歷的三個重要發展階段
階段一:瀑布開發模式
理念:以一種工程管理的方式來定義每個階段(需求、開發、測試、運維),以及相應的交付產物和交付標準,通過一種重流程,重管控,按照計劃一步步推進整個項目的交付。
弊端:軟件開發初期就試圖確定項目的目標、范圍以及實現方式,但是這個時候往往是我們對用戶和市場環境信息了解最少的時候,這個時候做出來的決策往往有很大的不確定性。前期投入大量資源,難以達到預期效果,導致軟件交付延期。
階段二:敏捷開發模式
理念:1)將一個大的目標不斷拆解,把它變成一個個可交付的小目標,然后以不斷迭代,小步快跑的方式持續開發;2)將測試工作從研發末端提前到整個開發活動中,對開發交付的內容進行持續驗證,保證每次可交付的都是一個可用的功能集合。
弊端:不論開發和測試變的都快,軟件交付的最后一道門(運維)決定了軟件上線的時間。運維一句“現在沒到發布窗口”讓多少新開發的功能倒在了上線的門檻上。
?
階段三:DevOps開發模式
DevOps 最開始想要打破的就是開發和運維之間的對立和隔閡;之后發現在整個軟件交付過程中,不僅只有開發和運維,業務也是重要的一環,這樣誕生了BizDevOps;再后來安全也介入整個軟件開發過程,在每個過程中注入安全反饋機制,來幫助團隊在第一時間應對安全風險,這樣誕生了DevSecOps。
3、什么是DevOps?
DevOps(開發 Development 與運維 Operations 的組合詞)是一種文化、一場運動或實踐,強調在自動化軟件交付流程及基礎設施變更過程中,軟件開發人員與其他信息技術(IT)專業人員彼此之間的協作與溝通。它旨在建立一種文化與環境,使構建、測試、軟件發布得以快速、頻繁以及更加穩定地進行。
DevOps 是通過平臺(Platform)、流程(Process)和人(People)的有機整合,以 C(協作)A(自動化)L(精益)M(度量)S(共享)文化為指引,旨在建立一種可以快速交付價值并且具有持續改進能力的現代化 IT 組織。(這個定義來至石雪峰老師)
PS:DevOps 就是大家統一搞一套標準,誰都認識,誰都認可;標準統一了,事情就好辦了,也就是讓大家認同價值交付是共贏的事情。尋找志同道合的一幫人,達成共識,實現目標,研發,測試,運維的所做所為,這很DevOps。
4、總結
軟件研發交付能力和業務需求快速多變之間的矛盾,正是軟件研發過程面臨的問題。要解決這個問題可以通過:
(1)引入全棧工程師
全棧工程師可以避免職能和組織劃分帶來的溝通成本,很多小企業開始推崇全棧工程師(全干工程師)。
(2)通過平臺來解決
全棧工程師不適用職能、組織劃分明確的大公司,一般通過平臺來解決上面問題,而DevOp正式這種理念。平臺和流程的自動化可以保證效率的提高,推動這一反饋閉環形成的還是人,但是建立有效的流程和機制是非常重要的手段,這會潛移默化的影響人的行為,行為建立習慣,習慣構建文化。軟件開發過程的改進,除了依賴于技術進步,還依賴于流程、理念、文化等全方位的改進。
總結
以上是生活随笔為你收集整理的DevOps笔记-01:软件交付面临的问题、软件工程的三个发展阶段、什么是DevOps?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell实例第23讲:每天定时备份ng
- 下一篇: DevOps笔记-02:DevOps与微