開(kāi)發(fā)人員
開(kāi)發(fā)人員(上圖的最左邊)工作在自己的工作站上。他們開(kāi)發(fā)代碼并且需要許多工具來(lái)提高效率。
下圖來(lái)自于上面那張持續(xù)交付流水線(xiàn)的大圖,展示了開(kāi)發(fā)團(tuán)隊(duì)。
理想情況下,他們中的每個(gè)人都應(yīng)該在自己的臺(tái)式機(jī)或筆記本電腦上擁有類(lèi)生產(chǎn)環(huán)境。視開(kāi)發(fā)的軟件類(lèi)型而定,也許可以做到,但更可能只是模擬甚至mock生產(chǎn)環(huán)境中很難復(fù)制的部分。例如,可能依賴(lài)于外部支付系統(tǒng)或者電話(huà)硬件。
DevOps -起工作時(shí),你在持續(xù)交付流水線(xiàn)上關(guān)注的部分可能取決于你原來(lái)所屬的
角色背景。如果你有很強(qiáng)的開(kāi)發(fā)背景,你會(huì)喜歡像預(yù)打包開(kāi)發(fā)環(huán)境帶來(lái)的那種便利,并且愿意在這上面花費(fèi)許多時(shí)間。這是一個(gè)合理的實(shí)踐,否則開(kāi)發(fā)人員可能需要花費(fèi)大量時(shí)間來(lái)創(chuàng)建開(kāi)發(fā)環(huán)境。這樣的預(yù)打包環(huán)境可能包含著一個(gè)指定版本的JDK(Java開(kāi)發(fā)工具包)和IDE(集成開(kāi)發(fā)環(huán)境),比如Eclipse。如果用到Python,你也可以創(chuàng)建一個(gè)指定Python版本的包,諸如此類(lèi)。
記住我們本質(zhì)上需要兩個(gè)或兩個(gè)以上的、被維護(hù)著并且相互隔離的環(huán)境。先前的開(kāi)發(fā)環(huán)境包含了所有我們需要的開(kāi)發(fā)工具。而它們并不會(huì)被安裝到測(cè)試或生產(chǎn)系統(tǒng)里。進(jìn)一步說(shuō),開(kāi)發(fā)人員也需要一些像生產(chǎn)環(huán)境那樣發(fā)布代碼的辦法。這可以是開(kāi)發(fā)人員的電腦上運(yùn)行的Vagrant虛擬機(jī)、AWS上的一個(gè)云實(shí)例,或者一個(gè)Docker容器——有很多辦法都能解決這個(gè)問(wèn)題。