什么是Devops
Devops是一種軟件開發(fā)方法育八,專注于IT 專業(yè)人員之間的溝通協(xié)作和集成芭梯,以實(shí)現(xiàn)產(chǎn)品的快速部署残邀。
Devops加強(qiáng)開發(fā)和部署團(tuán)隊(duì)之間的協(xié)作,更快速并且自動(dòng)將代碼發(fā)布到生產(chǎn)環(huán)境须床,有力的幫助組織提升應(yīng)用服務(wù)的交付能力。
什么是敏捷
敏捷在SDLC(軟件開發(fā)生命周期)中加入了持續(xù)迭代開發(fā)和測試。這種軟件開發(fā)方法強(qiáng)調(diào)迭代,增量和漸進(jìn)式開發(fā)。
敏捷開發(fā)流程將產(chǎn)品分解成小塊并且在最終的測試中集成起來腮介。它可以有很多種實(shí)現(xiàn)方式肥矢,包括Scrum, Kanban, XP 等等。
敏捷與Devops
我們一般這樣理解干系人和IT之間的溝通流程
敏捷用于連接用戶和開發(fā)人員
Devops用于開發(fā)人員和IT人員之間的溝通
主要的區(qū)別
- Devops是一種將開發(fā)團(tuán)隊(duì)和運(yùn)營團(tuán)隊(duì)結(jié)合起來叠洗,而敏捷用一種迭代的方式關(guān)注合作甘改,用戶反饋和小步快速發(fā)布。
- Devops強(qiáng)調(diào)不斷測試和發(fā)布灭抑,而敏捷過程強(qiáng)調(diào)不斷變化
- Devops需要涉及相對大的團(tuán)隊(duì)十艾,而敏捷只需要一個(gè)小團(tuán)隊(duì)
- Devops利用左移和右移原理,而敏捷只用左移原理腾节。(即敏捷開發(fā)認(rèn)為測試越早進(jìn)行越好)
- 敏捷的目標(biāo)領(lǐng)域是軟件開發(fā)忘嫉,而Devops的目標(biāo)領(lǐng)域是提供端到端的商業(yè)方案以及快速交付。
- Devops更強(qiáng)調(diào)運(yùn)營和商業(yè)可行性案腺,而敏捷更強(qiáng)調(diào)功能性的可行性庆冕。
更詳細(xì)的對比
對比項(xiàng) | 敏捷 | Devops |
---|---|---|
定義 | 敏捷使用迭代的方式,關(guān)注溝通劈榨,用戶反饋访递,以及小步快速的發(fā)布 | Devops被認(rèn)為是將開發(fā)和運(yùn)營團(tuán)隊(duì)整合在一起的一種做法 |
目的 | 敏捷幫助管理很繁雜的項(xiàng)目集 | DevOps的中心思想就是管理端到端的流程 |
任務(wù) | 敏捷過程強(qiáng)調(diào)不斷變化 | DevOps強(qiáng)調(diào)不斷的測試和交付 |
實(shí)施 | 敏捷方法可以用一系列的框架實(shí)施,比如sprint同辣,safe以及scrum | DevOps的主要目標(biāo)是注重協(xié)作拷姿,所以他并沒有統(tǒng)一的框架。 |
團(tuán)隊(duì)技能 | 敏捷開發(fā)強(qiáng)調(diào)通過培訓(xùn)讓所有的團(tuán)隊(duì)成員都有相似的技能 | DevOps在開發(fā)和運(yùn)營團(tuán)隊(duì)之間分配和傳播技能 |
團(tuán)隊(duì)大小 | 小團(tuán)隊(duì)是敏捷的核心旱函。團(tuán)隊(duì)越小响巢,人越少,就意味著可以更快的前進(jìn) | DevOp團(tuán)隊(duì)規(guī)模相對較大棒妨,因?yàn)樗婕八卸说娜藛T |
為期長短 | 敏捷開發(fā)優(yōu)一個(gè)一個(gè)的迭代“sprint”組成抵乓。一個(gè)迭代通常會(huì)比一個(gè)月要小 | DevOps通過主要版本的截止日期進(jìn)行驅(qū)動(dòng)。理想的目標(biāo)是每天甚至每過幾個(gè)小時(shí)就會(huì)發(fā)布到生產(chǎn)靶衍。 |
反饋 | 由用戶給反饋 | 反饋來自團(tuán)隊(duì)內(nèi)部 |
目標(biāo)領(lǐng)域 | 軟件開發(fā) | 端到端的業(yè)務(wù)方案和快速交付 |
左移原理 | 左移 | 同時(shí)用左移和右移 |
著重點(diǎn) | 敏捷開發(fā)前調(diào)在開發(fā)過程中的方法論灾炭,并不關(guān)心發(fā)布出去以后的事情 | Devops永遠(yuǎn)都在準(zhǔn)備發(fā)布,用靠靠且安全的方法進(jìn)行部署軟件 |
跨職能 | 敏捷認(rèn)為所有的團(tuán)隊(duì)成員應(yīng)該為項(xiàng)目的進(jìn)度的所有工作負(fù)責(zé)颅眶,當(dāng)每個(gè)人都能做所有的事情時(shí)蜈出,就可以增進(jìn)他們之間的了解 | Devops將開發(fā)人員和運(yùn)維人員分開,這讓溝通變得復(fù)雜起來 |
溝通 | Scrum是最常用的敏捷開發(fā)方法涛酗,用每日站會(huì)進(jìn)行溝通 | Devops利用產(chǎn)品設(shè)計(jì)文檔铡原。對于運(yùn)營團(tuán)隊(duì)來說偷厦,充分的了解軟件版本及其對硬件/網(wǎng)絡(luò)的影響,是正常運(yùn)行部署至關(guān)重要的環(huán)節(jié)燕刻。 |
文檔 | 敏捷方法認(rèn)為可工作的軟件優(yōu)先于詳盡的文檔只泼,這種理論在理想情況下是會(huì)更加的靈活應(yīng)變。但是卵洗,當(dāng)嘗試將所有的工作轉(zhuǎn)交給另外的團(tuán)隊(duì)是會(huì)發(fā)現(xiàn)困難重重 | 在Devops里请唱,過程文檔很重要,因?yàn)檐浖?huì)交給運(yùn)營團(tuán)隊(duì)去發(fā)布过蹂。即使自動(dòng)化會(huì)彌補(bǔ)一些文檔的不足十绑,但是當(dāng)開發(fā)復(fù)雜的軟件時(shí),轉(zhuǎn)移所有所需的知識(shí)是非常困難的 |
自動(dòng)化 | 敏捷沒有強(qiáng)調(diào)要自動(dòng)化酷勺,盡管它也認(rèn)為自動(dòng)化很有幫助 | 自動(dòng)化是Devops最主要的目標(biāo)本橙。它在發(fā)布軟件的時(shí)候最大程度的提高效率 |
目標(biāo) | 它解決了客戶與開發(fā)測試人員之間的鴻溝 | 它解決了開發(fā)測試與運(yùn)營人員之間的鴻溝 |
關(guān)注點(diǎn) | 它著重于功能性和非功能性的準(zhǔn)備 | 它更多的著重于運(yùn)營和業(yè)務(wù)準(zhǔn)備 |
重要性 | 開發(fā)軟件是敏捷的核心 | 開發(fā),測試和維護(hù)同等重要 |
速度與風(fēng)險(xiǎn) | 敏捷團(tuán)隊(duì)支持快速變化脆诉,有強(qiáng)大的組織架構(gòu) | 在Devops方法里甚亭,團(tuán)隊(duì)必須確保所有的變化不會(huì)對整個(gè)項(xiàng)目帶來開發(fā)上的風(fēng)險(xiǎn) |
質(zhì)量 | 敏捷開發(fā)出滿足需求的更好的應(yīng)用。在項(xiàng)目的生命周期里击胜,可以很容易的根據(jù)變化作出實(shí)時(shí)的調(diào)整 | Devpos, 與自動(dòng)化以及早期錯(cuò)誤清楚功能一起狂鞋,有助于提高質(zhì)量。開發(fā)人員需要遵循編碼和架構(gòu)的最佳實(shí)踐潜的,以滿足質(zhì)量標(biāo)準(zhǔn) |
工具 | Jira, Bugzilla, Kanboard是比較流行的敏捷工具 | Puppet, Chet, TeamCity, AWS是比較流行的Devops工具 |
挑戰(zhàn) | 敏捷方法需要團(tuán)隊(duì)更有效能骚揍,這并不是任何時(shí)候都能達(dá)到的 | Devops過程需要開發(fā),測試和生產(chǎn)環(huán)境來簡化工作 |
優(yōu)點(diǎn) | 敏捷提供更短的開發(fā)周期啰挪,并且改善了缺陷檢測 | Devops對敏捷的發(fā)布周期提供了支持 |