DevOps概述
什麼是軟體開發
軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。
軟體開發是一項包括需求捕捉,需求分析,實現和測試的系統工程
軟體開發有哪些困難?
軟體開發的本質困難
複雜性
不可見性
可變性
一致性
The Mythical Man-Month 人月神話Frederick P.Brooks.J:
對本質難題的進一步分析
三個本質難題因專案而異
四大本質難題相互促進
本質難題的變化帶動軟體方法(過程)演變
軟體專案管理和軟體過程管理
軟體發展三大階段
軟硬體一體化階段(50年代~70 年代)
軟體完全依附於硬體
軟體作坊
軟體成為獨立的產品(70年代~90年代)
網路化和服務化(90年代中期迄今)
軟體完全依附於硬體
軟體應用典型特徵
軟體支援硬體完成計算任務
功能單一
複雜度有限
幾乎不需要需求變更
·軟體開發典型特徵
◆硬體太貴
◆團隊以硬體工程師和數學家為主
軟體作坊
·軟體應用典型特徵
功能簡單
規模小
·軟體開發典型特徵
很多非專業領域的人員湧入軟體開發領域
高階程式語言出現
質疑權威文化盛行
典型軟體過程和實踐
“Code and fix”
軟體成為獨立產品
軟體應用特徵
擺脫了硬體束縛(OS)
功能強大
規模和複雜度劇增
個人電腦出現 –> 普通人成為軟體使用者
·需求多變
·相容性要求
來自市場的壓力
典型軟體過程和實踐
·方法之一:形式化方法
·方法之二:結構化程式設計和瀑布模型
網路化和服務化
·軟體應用特徵
◆功能更復雜,規模更大使用者數量急劇增加(這會帶來什麼問題?)
◆快速演化和需求不確定
◆分發方式的變化(SaaS)
典型軟體過程和實踐
迭代式:大型軟體系統的開發過程也是一個逐步學習和交流的過程,軟體系統的交付不是一次完成,|而是透過多個迭代週期,逐步來完成交付。
更深化的網路化和服務化
軟體應用典型特徵
隨處可見(pervasive)
使用者需求多樣性進一步凸顯
軟體產品和服務的地位變化
錯綜複雜的部署環境
近乎苛刻的使用者期望
多:功能豐富
快:快速使用,及時更新
好:穩定,可靠
省:使用者的獲得成本低,最好免費
·軟體開發典型特徵
◆空前強大的開發和部署環境——XaaS
·IaaS
·PaaS
·SaaS,FaaS,etc.
盛行開源和共享文化
盛行敏捷
軟體工程的潛在支撐力量獲得了長足進步(AI, Bigdata,Cloud,etc.)
典型軟體過程和實踐—DevOps
·方法論基礎是敏捷軟體開發、精益思想以及看板 Kanban方法。
·以領域驅動設計為指導的微服務架構方式 大量虛擬化技術的使用
·一切皆服務XaaS(Xas a Service)的理念指導
·構建了強大的工具鏈,支援高水平自動化
The Three Ways-The First Way
·概念
充分理解工作流(開發-運維客戶)
流量最大化(小批次、縮小任務間隔、缺陷控制)
不斷為了整體目標的實現而最佳化工作流
·部分關鍵實踐和方法
持續構建、整合以及交付;
按需建立環境;
限制半成品(WIP);
構建支援順利變更的安全系統;看板(任務視覺化)
The Three Ways-The Second Way
概念
價值流(開發-運維-客戶)的快速持續反饋
避免問題再次發生
(或者快速發現和修復)
從源頭上保證質量
部分關鍵實踐和方法
適時停止生產線
持續改進
構建自動化測試套件,確保程式碼隨時可部署
Dev和Ops共享目標和pain
遠端監測手段(自動化)
The Three Ways-The Third Way
概念
◆建立培育良好的文化(不斷嘗試、重複和練習)
部分關鍵實踐和方法
◆營造勇於創新、敢於冒險以及高度信任的企業文化
確保至少20%資源投入在非功能需求上
不斷鼓勵和強化改進
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976857/viewspace-2702203/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用開源軟體打造企業級 DevOps 工作流(一):概述dev
- DevOps - DevOps隨想雜談dev
- Devops-01-devops 是什麼?dev
- 【Azure DevOps系列】什麼是Azure DevOpsdev
- DevOps與敏捷異同 - DZone DevOpsdev敏捷
- 概述
- EMAS 移動 DevOps 解決方案 —— Mobile DevOpsdev
- 誰動了我的DevOps:DevOps風險測繪dev
- 觸控DevOps,從現在開始DevOps之旅dev
- 初識DevOpsdev
- DevOps實戰dev
- DevOps 和 SREdev
- DevOops?No,DevOps!devOOP
- DevOps悼詞dev
- DEVOPS學習dev
- DevOps實踐dev
- JVM 概述JVM
- Java 概述Java
- mongodb 概述MongoDB
- Java概述Java
- TCP 概述TCP
- CloudHub概述Cloud
- ElasticSearch 概述Elasticsearch
- SparkSQL 概述SparkSQL
- Kafka 概述Kafka
- JDBC概述JDBC
- Promise 概述Promise
- GraphHttpClient概述HTTPclient
- FastDFS概述AST
- html概述HTML
- SurfaceView概述View
- uoj概述
- (1)概述
- bregman-arie/devops-exercises:DevOps練習面試題庫dev面試題
- DevOps是什麼?5分鐘帶你瞭解DevOpsdev
- DevOps 的未來dev
- 什麼是 DevOpsdev
- DevOps 實踐指南dev