自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DevOps 是什么不是什么

開發(fā) 開發(fā)工具
DevOps 到底是不是一個職位,還是像敏捷、精益一樣是一種思想、最佳實(shí)踐?下面,我們就來分析一下。

一、DevOps 到底是什么不是什么? 

DevOps 到底是不是一個職位,還是像敏捷、精益一樣是一種思想、***實(shí)踐?

如果我們看看最近的招聘信息,職位可謂五花八門:技術(shù)經(jīng)理、架構(gòu)師、布道師、開發(fā)總監(jiān)什么的,當(dāng)然也有比較新的職位名稱,比如數(shù)據(jù)科學(xué)家、運(yùn)維開發(fā)工程師。

不過總體說來主流的分類方式還是分為兩大類:開發(fā)工程師(Development)和運(yùn)維工程師(Operations),即便是所謂的 DevOps 工程師,也更多是偏運(yùn)維的成分更多一些。

不過大叔覺得,運(yùn)維工程師的名字應(yīng)該叫基礎(chǔ)設(shè)施工程師( Infrastructure engineer )更合適一些。

我們這兩年經(jīng)??吹紻evOps這個詞,也有很多專門以 DevOps 為主題的大會。大多數(shù)人可能對這個詞的定義并不明確,其實(shí)即使整天口頭 DevOps 的人,也不一定就完全理解 DevOps 的真正內(nèi)涵,很有可能就是從字面上的簡單理解。

[[186106]]

為了更好地理解 DevOps 奧義,我們不妨先從 DevOps 的起源和背景開始說起。

二、DevOps出現(xiàn)的背景

隨著計算機(jī)技術(shù)的發(fā)展,工作內(nèi)容更細(xì)分化、專業(yè)化,所以工作職責(zé)也逐漸分出開發(fā)( Development )和運(yùn)維( Operations )兩個完全獨(dú)立的角色,更多的也都是處于獨(dú)立的部門。

運(yùn)維人員看重的是保障系統(tǒng)的穩(wěn)定性、可靠性和安全性,而開發(fā)人員則想著如何盡快發(fā)布新的版本,增加新的功能,這兩者本身就是一種矛盾和沖突,盡管他們的共同目標(biāo)都是為用戶提供軟件產(chǎn)品或服務(wù)。

10 幾年前的軟件開發(fā)模式也比較單一,基本上市瀑布模式,也有一些采用了螺旋模型。基本上一個項目基本設(shè)計兩月,詳細(xì)設(shè)計兩個月,開發(fā)三個月,測試二個月,上線,總體下來,6 個月算是比較小的項目了,大的項目花費(fèi)數(shù)年的時間也是屢見不鮮。

同時,隨著云計算技術(shù)和平臺的出現(xiàn)和迅速普及,基礎(chǔ)設(shè)施變得更容易獲得,也變得可編程化,所以開發(fā)者可以更容易的進(jìn)行基礎(chǔ)設(shè)施方面的工作,比如創(chuàng)建服務(wù)器、 RDS 數(shù)據(jù)庫,部署應(yīng)用等。拿 AWS 來說,就提供了非常方便的工具、API 和操作界面,開發(fā)者可以通過拖拖拽拽來部署一套網(wǎng)站系統(tǒng),而不必進(jìn)行任何底層系統(tǒng)工作。

三、從敏捷開始

進(jìn)入互聯(lián)網(wǎng)時代,唯快不破。

這時候軟件開發(fā)的特點(diǎn),就是快速迭代。feature1 開始,一周設(shè)計、一周開發(fā),一周測試,之后上線;在第二周的測試的同時,開發(fā)人員已經(jīng)進(jìn)入第二輪 feautre2 的開發(fā)了。功能的交付間隔變小,交付速度變快;同時,因?yàn)槟芸焖俚膹挠脩臬@得反饋,試錯成本也變低。

正如《大教堂與集市》這本書提到過這么一句話:

Release early. Release often. And listen to your customers.

也就是說,我們盡量提早發(fā)布、頻繁發(fā)布,然后傾聽用戶的聲音。

2008年的時候敏捷開發(fā)已經(jīng)相當(dāng)流行了,而在開發(fā)之外,比如運(yùn)維、IT或者銷售等部門,敏捷的認(rèn)知程度還很低。

DevOps 出現(xiàn)的一年之前,2008 的加拿大多倫多,舉辦了 Agile 2008 conference ,比利時的獨(dú)立咨詢師 Patrick Debois ( http://www.jedi.be/blog/ )發(fā)表了題為 《Agile Infrastructure & Operations》 的演講,可以認(rèn)為,正是從大概這個時間點(diǎn)開始,DevOps 的概念逐漸開始萌芽。

《Agile Infrastructure & Operations》

***份 paper 《Agile Infrastructure & Operations》:

http://www.jedi.be/presentations/agile-infrastructure-agile-2008.pdf

Patrick Debois 本人即做過開發(fā),也做過運(yùn)維,更了解兩種角色的異同。因此,他在本次敏捷大會上,介紹了讓開發(fā)部門做 Product Owner(Scrum用語),在數(shù)據(jù)中心或者基礎(chǔ)設(shè)施工作中實(shí)施敏捷的案例。

四、DevOps概念的萌芽

在加州舉辦的 O’Reilly Velocity 2009 上,F(xiàn)lickr 的工程師 John Allspaw 和 Paul Hammond 發(fā)表了題為《10+ Deploys per Day: Dev and Ops Cooperation at Flickr》的演講,雖然沒有直接提出來 DevOps 這一叫法,但是一般都認(rèn)為這時候 DevOps 的思想已經(jīng)誕生,這次演講也成為 DevOps 這一稱呼出現(xiàn)的契機(jī)。

O’Reilly 主辦的 Velocity 大會知名度非常高,但是其大會內(nèi)容相對于開發(fā)來說,更多的是側(cè)重于運(yùn)維的內(nèi)容。其實(shí)這個大會本身也是我們所說“開發(fā)和運(yùn)維的分離(割裂)”的證明之一。

Flickr 的這個演講,主要介紹了開發(fā)和運(yùn)維圍繞著共同目標(biāo),如何緊密合作,實(shí)現(xiàn) 1 天之內(nèi)完成 10 次以上的軟件發(fā)布,這也和維基百科上對 DevOps 的定義

是一致的。該演講也同時指明了,由于開發(fā)和運(yùn)維在組織上的割裂,會導(dǎo)致互相之間的利益沖突,而沖突則會導(dǎo)致大家偏離組織最初的、統(tǒng)一的、整體的目標(biāo)。其實(shí)銷售和開發(fā)、銷售和運(yùn)維之間也有類似問題存在。銷售要快速滿足客戶需求,開發(fā)偏保守,一般不敢輕易承諾;同樣,運(yùn)維對開發(fā)也像開發(fā)對銷售一樣保守,更看重穩(wěn)定性,不愿輕易改變。

DevOps 概念的萌芽

DevOps 概念的萌芽

利益沖突導(dǎo)致的問題愈演愈重,一定會發(fā)生各種狗血的劇情,完全超出開發(fā)或者運(yùn)維本職工作范圍之內(nèi)。

Patrick Debois 也觀看了這場演講的視頻,并在這之后發(fā)起了 Devopsdays ( http://www.devopsdays.org/ )活動,這也標(biāo)志著 DevOps 的開始普及。DevOps 這一叫法真正出現(xiàn),也是源于 2009/10/30 在比利時舉辦的 DevOpsDays Ghent 2009 活動。

Devopsdays 活動

第二份 paper 《10+ Deploys per Day: Dev and Ops Cooperation at Flickr》: http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

五、DevOps不是什么

先說說 DevOps 不是什么,以此來和大家探討一下之前很多人可能存在的對 DevOps 的誤解。

DevOps 不是一種職位,因此所謂的 DevOps 工程師到底是什么?是不是就是具備很強(qiáng)編碼能力的運(yùn)維(或者叫基礎(chǔ)設(shè)施工程師更合適)。

DevOps 也不是一個部門,不是 DevOps 工程師的集合。

那面對招聘信息或者自稱 DevOps 工程師的事情該怎么看呢?其實(shí)既然大家都有這個“誤解”,也不必矯枉過正,就好比主角或角色的“角”,到底是念 júe ,還是念 jiǎo 一樣,我們按照自己的習(xí)慣念就好了,到了現(xiàn)在,感覺這些字的念法已經(jīng)沒有對錯之分了。

話說 AWS 有一個認(rèn)證 DevOps 工程師( Certified DevOps Engineer ,https://aws.amazon.com/certification/certified-devops-engineer-professional/ ),所以 DevOps 工程師這一職位/角色可能會一直存在下去吧。

DevOps 也不意味這 Dev 和 Ops 要?dú)w屬統(tǒng)一部門,向同一領(lǐng)導(dǎo)報告。只要觀念和認(rèn)識沒有變化,認(rèn)識不到大家的共同目標(biāo),沒有采取積極的溝通方式,即使在同一個團(tuán)隊,不同角色的人也很難做到統(tǒng)一思想、團(tuán)結(jié)一致向前看。

六、DevOps到底是什么

根據(jù)維基百科上的定義,DevOps 強(qiáng)調(diào)開發(fā)人員和運(yùn)維人員(IT人員)的合作,實(shí)現(xiàn)軟件交付和基礎(chǔ)設(shè)施變更的自動化。它旨在建立一種可以快速、頻繁、可靠地構(gòu)建、測試和發(fā)布軟件的文化。

一句話來說, DevOps 其實(shí)是一種思想、一組***實(shí)踐、以及一種文化。說得更冠冕堂皇一點(diǎn),DevOps 是指開發(fā)人員和運(yùn)維人員精誠合作,迅速為用戶提供***的功能,保持系統(tǒng)的穩(wěn)定運(yùn)行,為用戶提供***的商業(yè)價值。

七、DevOps的基礎(chǔ)

大體來說,DevOps 可以認(rèn)為是 一組工具 + 企業(yè)文化。

1. 工具集(toolchain)

由于 DevOps 涉及到各個部門以及軟件開發(fā)的整個生命周期,所以我們需要使用多種軟件來支撐我們的 DevOps 實(shí)踐。比如至少在這些方面,我們已經(jīng)有很多非常好用的工具可以選擇了:

  • 代碼管理:編輯器、Review 工具、版本管理工具等。
  • 打包和構(gòu)建:npm、maven、Docker、Jenkins 等,最近都是很火的工具。
  • CI/CD:各種 CI 工具和服務(wù),比如 DroneIO、Wercker、Travis CI、CircleCI、Codeship等。
  • 配置管理(或 Automated infrastructure ):實(shí)現(xiàn)基礎(chǔ)設(shè)施即代碼(Infrastructure as Code),比如 Ansible、Chef、Puppet 等。
  • 監(jiān)控:各種開源組件,ELK 全家桶、InfluxDB、Grafana、Graphite 等。
  • 發(fā)布系統(tǒng):Codeship、Jenkins 等都可以使用。
  • ChatOps: Slack、HipChat,以及國內(nèi)的 bearychat 等。

其他可能需要的工具需求也很多,比如灰度發(fā)布、A/B 測試、滾動更新等。

除了上面說的這些開源工具、SaaS 服務(wù),也有一些管理平臺服務(wù),比如 AWS ,提供一套服務(wù)、流程來方便我們基于 DevOps 思維開發(fā)云原生的應(yīng)用程序,也有一些像 Docker cloud 這樣的提供基于 Docker 容器的管理平臺,國內(nèi)的靈雀云也是這樣一個基于 DevOps 理念打造的開發(fā)、運(yùn)維一體化的企業(yè)級容器云平臺 。

2. 組織文化

在企業(yè)文化方面,DevOps 推崇尊重(Respect)、信賴(Trust)、正視失敗(Healthy attitude about failure)、不埋怨(Avoiding Blame)等。當(dāng)然,這幾條只是 2009 年 Flickr 的工程師演講中講到的幾點(diǎn),實(shí)際上范疇還要更廣泛的多,每個組織都需要自己定制。

DevOps 企業(yè)文化

其實(shí)這是一門管理學(xué)。DevOps 成功的關(guān)鍵在于文化,沒文化真可怕,即使是開發(fā)、運(yùn)維肩并肩坐著,一塊吃飯、睡覺,開發(fā)也還是原來那個開發(fā),運(yùn)維也還是原來那個運(yùn)維。

[[186110]]

除了上面提到的工具和文化,我們還可以總結(jié)出很多 DevOps 的其他因素,比如人(People)的思想和思考方式、開發(fā)和運(yùn)維的流程(Process)、精益(Lean)、自動化(Automation)、測量(Measurement,請參考 指標(biāo)驅(qū)動開發(fā)(MDD) )、共享(Sharing)、溝通(Communication)、PDCA/OODA 等。

管理學(xué)的理論、工具也是多如牛毛,能利用的都該利用。

那這里可能大叔重點(diǎn)說一下同理心(Empathy),也叫做換位思考,在溝通過程中,主動去了解他人的想法、理解他人的立場和感受,站在他人的角度思考和處理問題。同理心是一個雙方向的對話,是一種解決沖突和滿足雙方需求的途徑。

沒有同理心、沒有互相理解,即使我們強(qiáng)制采取 DevOps 的方法和實(shí)踐,強(qiáng)制一天部署一次,強(qiáng)制自動化,也只能是暫時的,不能獲得組織內(nèi)的認(rèn)同和理解,不能實(shí)現(xiàn)真正的 DevOps 。同理心讓 Ops 認(rèn)識到原來快速、頻繁的發(fā)布并沒什么大驚小怪的,也沒什么好可怕的;讓開發(fā)人員意識到自己寫了多么愚蠢、性能低劣、安全漏洞多的軟件。正是同理心的作用,才能讓 Dev 和 Ops 團(tuán)結(jié)起來為用戶提供***的服務(wù)和產(chǎn)品。

[[186111]]

八、DevOps不只有 Dev 和 Ops

DevOps 只有 Dev 和 Ops 還是不夠的。

其實(shí)在 《Agile Infrastructure & Operations》 中,Patrick Debois 就列舉了三個角色(部門):

  • Developer(開發(fā)、測試)
  • IT(基礎(chǔ)設(shè)施、服務(wù)器、網(wǎng)絡(luò)設(shè)備)
  • Operation( helpdesk、用戶支持)

DevOps 雖然名字來源于開發(fā)和運(yùn)維的縮寫,但是無論從我們前面看到的兩篇演講內(nèi)容,還是維基百科的定義,除了開發(fā)人員之外,還有一個角色是 IT ,當(dāng)然很多傳統(tǒng)的大公司可能會將運(yùn)維算入到 IT 部門。

而現(xiàn)實(shí)中,其實(shí) DevOps 的涵蓋范圍可能會更廣:除了開發(fā)(包括測試)、運(yùn)維和IT,還會涉及到項目經(jīng)理、產(chǎn)品經(jīng)理,甚至和銷售、市場、HR以及財務(wù)等各個部門的人也會產(chǎn)生聯(lián)系,跨職能部門互相合作,完成某一項目或任務(wù)。

【本文為51CTO專欄作者“徐磊”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號devopshub獲取授權(quán)】

戳這里,看該作者更多好文 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2021-01-21 21:24:34

DevOps開發(fā)工具

2021-01-04 08:00:00

開發(fā)Kubernetes人工智能

2009-03-26 15:48:00

2009-07-15 15:47:49

iBATIS是什么

2011-06-07 16:56:40

LDAP

2013-02-21 15:40:02

SDN

2009-07-07 16:50:39

ServletResp

2009-09-16 09:39:50

ccna是什么CCNA

2016-12-26 15:55:08

技術(shù)思維評估

2022-01-17 16:02:32

區(qū)塊鏈私有鏈數(shù)據(jù)庫

2011-06-30 18:23:08

2024-07-11 16:32:13

代碼Java

2009-06-22 13:48:45

JSF是什么

2012-03-09 10:46:35

Adobe AIR是什Adobe AIRAIR

2012-03-15 15:02:27

iUI

2015-11-12 10:03:34

前端H5web

2009-11-06 11:41:06

WCF是什么

2009-07-10 17:00:14

MyEclipse D

2021-08-23 06:22:00

PaaSDevOps平臺即服務(wù)

2018-06-27 16:20:56

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號