部署和開發一樣,同樣面臨變化。同樣有復雜的細節。
同樣應該代碼化,自動化。把復雜性、思路,操作,都固化下來,顯式表達。
不要“雪花”式配置。
?
把最近看的文章摘抄一下 集句:
1頻繁做讓你感到痛苦的事情:小步快走,分散痛苦與風險 《持續交付的實踐與思考》
?
?
2將復雜的構建流程納入一個簡單的腳本文件,然后用一條命令調用。《流水線即代碼》
(凡是可以被編碼的東西都已經被代碼化了。《流水線即代碼》
? 為軟件發布創建一個可重復且可靠的過程、將幾乎所有的事情自動化,?把所有的東西納入版本控制《持續交付的實踐與思考》
)3?『Done』意味著『已發布』:沒有完成百分之多少這種說法《持續交付的實踐與思考》
?
4工程師文化是自由+效率,在自由的環境下對提高效率的癡迷,就一定會發生創新。《什么是工程師文化?》
?
5 把懂簡化和喜歡自動化的人招進來,然后在績效考核和升職的地方設置上一條硬性指標——你今年簡化了什么?自動化了什么?《什么是工程師文化?》
自己的切身體會:
對于1,其實這是反人類的方式(趨樂避苦)。頻繁做痛苦的事而不是爽的事。
不但不避苦,反而還要頻繁,反復多吃N多苦,然后才能把痛苦分散和化解。(和《反脆弱》里說的釋放金融風險,要多次小崩潰才能避免1次大崩潰,軍事上也是一樣,其實是同樣的道理。)
這幾天用docker部署taiga的過程,回頭看,其實是把痛苦的安裝操作系統,配環境自動化,然后多次重復,1天重裝系統幾十次、上百次的過程。
只不過每次都是用1行命令而已,
體會到了痛苦,才知道什么最有價值。回過頭看之前的自己,確實感覺到了“功力向前進,功效向后看”。
?
2 部署本身也是個軟件工程,也有需求(交互步驟),也是要寫代碼的。
?
3 還有欠缺
?
4 5 我還是做到了,去年到今年在簡化的道路上功力大進了。
1用《軟件方法》和EA簡化了需求到分析到出文檔的大量工作。
? ? ? ?2用版本控制和docker 簡化了開發工作 配環境,拉代碼
? ?
——未來需要研究一下CI/CD,把測試、發布搞起來
—— 繼續簡化產品使用。
?