
36
| 第三章
• 可以自動驗證 API 合約,或許可使用顧客合約與使用方驅動合約(例如 Pact-JVM)
等技術。
• 可以高效地mock(例如WireMock)、 stub(例如stubby4j)或虛擬化(例如
Hoverfly)透過 API 來公開的相關服務。
• 更容易透過內部資源端點(例如 Codahale Metrics 或 Spring Boot Actuator)讀取數
據與監視資料。
最近 API 的流行程度已經呈指數級成長了,但是要輕鬆地實現持續交付,你要在有充分
的理由時才使用它們,在使用它們時,也要製作優良的架構。
部署平台與架構
在 2003 年,企業級 Java app 的部署選項相對有限,大部分都是重量級的 app 伺服器,
試著提供 app 生命週期管理、組態、log 與交易管理等功能。隨著 Amazon Web Services
(AWS)、 Google Cloud Platform(GCP)與 Microsoft Azure 提供的雲端計算,平台即
服務(PaaS)產品(例如 Heroku、Google App Engine 與 Cloud Foundry),以及容器即
服務(CaaS)產品(例如 Kubernetes、Mesos 與 Docker Swarm)等服務的出現,現代
的 Java 開發者有更多選項了。架構的最佳做法也隨著底層的部署結構與平台的變化而有
所不同。
設計雲端原生的“Twelve-Factor”app
在 2012 年初,PaaS 先驅