作為一個實際的例子,讓我們考慮Java EAR的部署。通常,我們有幾種方法來實現(xiàn)。
這里有一些例子:
在基本的操作系統(tǒng)上通過可用的機制和渠道,用RPM包的方式部署EAR文件。
Java應(yīng)用服務(wù)器上通過可用的機制部署EAR,例如JBoss、WildFly和Glassfish。
粗看上去,通過特定的機制在Java應(yīng)用服務(wù)器上部署EAR文件更好,因為它基于特定的應(yīng)用服務(wù)器。如果你只部署過Java,這可能是個合情合理的想法。然而,因為無論如何也得管理最底層的操作系統(tǒng),而你也許已經(jīng)有可以重用的部署方法了。
還有,因為你很可能并不只開發(fā)Java,至少還會部署和管理HTML和JavaScript,使用一個通用的部署方法開始變得更有意義。
我經(jīng)歷過的幾乎所有企業(yè)都有包含許多不同技術(shù)的復雜架構(gòu),這個經(jīng)驗法則在大多數(shù)場景里都很管用。
唯一的例外是當Unix服務(wù)器和Windows服務(wù)器并存的7昆合環(huán)境。在這些案例里,Unix服務(wù)器通常使用它們喜歡的包發(fā)布方式,而Windows服務(wù)器不得不使用自制方案蹣跚而行。
這只是一個觀察結(jié)果,并不表示我們會姑息這種情形。