
58
| 第四章
持續交付服務
許多 PaaS 平台供應商都提供完整的解決方案,可將程式碼從本地開發環境一路送到
生產環境。例如,Cloud Foundry 整合了
cf
CLI 工具與 Concourse CD 平台,而 Red
Hat 的 OpenShift 提供整合的 Jenkins 解決方案。
PaaS 的挑戰
與 PaaS 有關的挑戰大多與學習曲線和使用模型有關。一般來說,大部分的 PaaS 對於開
發者工作流程與部署模型都相當主觀。有些專案無法與 PaaS 提供的模型搭配,這就是
調整 PaaS 讓它與你的 app 合作時的難處。話雖如此,如果你建構的是比較典型的 web
app,應該就沒有這種問題。
不要自動假設
PaaS
過度主觀
很多開發者都假設 Cloud Foundry 之類的 PaaS 對於工作流程太過主觀,
或他們的專案很“特殊”或獨特,所以無法部署到 PaaS。一般來說,如
果你建構的是電子商務的 web app,它就不需要定制的開發者工作流程。
事實上,我們知道有許多大型的銀行與資料處理組織非常成功地使用(舉
例)Cloud Foundry。
PaaS 帶來的另一個挑戰是 Java JDK 或執行期環境的潛在限制。如果你不知道本地 JDK
與開發環境之間的這些差異,或你比較不熟悉 Java 開發,這會是個陡峭的學習曲線!修
改 PaaS JDK 的例子包括只列舉可訪問 JDK 的對象(即,標準 OpenJDK 的一些 API 不
能使用)、使用 Java 安全管理器來限制可用的操作、使用沙箱來限制 ...