雲原生時代如何方便的進行本地除錯
雲原生的四要素:持續交付、DevOps、微服務、容器,雖然極大的解放了生產力,但是不可避免的也帶來了諸多問題,本文不做延伸,感興趣的,可以自行百度。
本文只為解決微服務(本文以Spring Cloud為例)+Kubernetes開發除錯低效問題。
telepresence
如果團隊內成員都有k8s基礎,並且都用win10或者linux,macos,那建議直接用telepresence,簡單直接。詳見 Fast development workflow with Docker and Kubernetes,A development workflow for Kubernetes services
Service對映
如果團隊內k8s基礎弱,或者硬體條件不滿足,可以使用Service對映方案,在k8s叢集裡建立一個Service和Endpoint,然後進行繫結。但是適用於單向的,比如,k8s訪問外部mysql,如果要逆向訪問,不好意思,不支援。
靜態路由
TDD
如果團隊對於單院測試和Mock掌握的比較好,可以直接開啟TDD模式,省事省心
遠端除錯
k8s叢集暴露遠端除錯介面。Remote debugging Spring Boot on Kubernetes
開發機納入叢集
應用發到本地pod裡,省的走cicd那麼費勁了
熱部署
開發機納入叢集后,把target\class掛載到本地卷,並且配置上rebel.xml,idea build後生成class,然後pod裡觸發jrebel的熱部署。 參考 www.telepresence.io/tutorials/j…