官术网_书友最值得收藏!

第一部分 基礎(chǔ)篇

1章 軟件交付的問題

1.1 引言

作為軟件從業(yè)人員,我們面臨的最重要問題就是,如果有人想到了一個(gè)好點(diǎn)子,我們?nèi)绾我宰羁斓乃俣葘⑺桓督o用戶?本書將給出這個(gè)問題的答案。

我們將專注于構(gòu)建、部署、測試和發(fā)布過程,因?yàn)橄鄬?duì)于軟件生產(chǎn)全過程的其他環(huán)節(jié)來說,這部分內(nèi)容的論著較為稀少。確切地說,我們并不認(rèn)為軟件開發(fā)方法不重要,如果沒有對(duì)軟件生命周期中其他方面的關(guān)注,只把它們作為全部問題的次要因素草率對(duì)待的話,就不可能實(shí)現(xiàn)可靠、迅速且低風(fēng)險(xiǎn)的軟件發(fā)布,無法以高效的方式將我們的勞動(dòng)成果交到用戶手中。

現(xiàn)在有很多種軟件開發(fā)方法,但它們主要關(guān)注于需求管理及其對(duì)開發(fā)工作的影響。市面上也有很多優(yōu)秀的書,它們?cè)敿?xì)討論了在軟件設(shè)計(jì)、開發(fā)和測試方面各種各樣的方法,但它們都僅僅講述了將軟件交付給作為客戶的人或組織這一完整價(jià)值流的一部分。

一旦完成了需求定義以及方案的設(shè)計(jì)、開發(fā)和測試,我們接下來做什么?我們?nèi)绾螀f(xié)調(diào)這些活動(dòng),盡可能地使交付過程更加可靠有效呢?我們?nèi)绾巫岄_發(fā)人員、測試人員,以及構(gòu)建和運(yùn)維人員在一起高效地工作呢?

本書描述了軟件從開發(fā)到發(fā)布這一過程的有效模式。書中講述了幫助大家實(shí)現(xiàn)這種模式的技術(shù)和最佳實(shí)踐,展示了它與軟件交付中其他活動(dòng)是如何聯(lián)系的。

本書的中心模式是部署流水線。從本質(zhì)上講,部署流水線就是指一個(gè)應(yīng)用程序從構(gòu)建、部署、測試到發(fā)布這整個(gè)過程的自動(dòng)化實(shí)現(xiàn)。部署流水線的實(shí)現(xiàn)對(duì)于每個(gè)組織都將是不同的,這取決于他們對(duì)軟件發(fā)布的價(jià)值流的定義,但其背后的原則是相同的。

部署流水線的示例如圖1-1所示。

圖1-1 一個(gè)簡單的部署流水線

部署流水線大致的工作方式如下。對(duì)于應(yīng)用程序的配置、源代碼、環(huán)境或數(shù)據(jù)的每個(gè)變更都會(huì)觸發(fā)創(chuàng)建一個(gè)新流水線實(shí)例的過程。流水線的首要步驟之一就是創(chuàng)建二進(jìn)制文件和安裝包,而其余部分都是基于第一步的產(chǎn)物所做的一系列測試,用于證明其達(dá)到了發(fā)布質(zhì)量。每通過一步測試,我都會(huì)更加相信這些二進(jìn)制文件、配置信息、環(huán)境和數(shù)據(jù)所構(gòu)成的特殊組合可以正常工作。如果這個(gè)產(chǎn)品通過了所有的測試環(huán)節(jié),那么它就可以發(fā)布了。

部署流水線以持續(xù)集成過程為其理論基石,從本質(zhì)上講,它是采納持續(xù)集成原理后的自然結(jié)果。

部署流水線的目標(biāo)有三個(gè)。首先,它讓軟件構(gòu)建、部署、測試和發(fā)布過程對(duì)所有人可見,促進(jìn)了合作。其次,它改善了反饋,以便在整個(gè)過程中,我們能夠更早地發(fā)現(xiàn)并解決問題。最后,它使團(tuán)隊(duì)能夠通過一個(gè)完全自動(dòng)化的過程在任意環(huán)境上部署和發(fā)布軟件的任意版本。

主站蜘蛛池模板: 绥滨县| 建水县| 衡水市| 黎平县| 从化市| 丹巴县| 理塘县| 德庆县| 桃江县| 汉源县| 正阳县| 东至县| 来安县| 浠水县| 宁都县| 霍林郭勒市| 封丘县| 建瓯市| 手游| 柳河县| 金川县| 连云港市| 静安区| 涿州市| 炉霍县| 视频| 正宁县| 德州市| 桃园市| 紫金县| 澎湖县| 青神县| 昔阳县| 新密市| 周宁县| 韩城市| 尖扎县| 平谷区| 陈巴尔虎旗| 郁南县| 恩平市|