官术网_书友最值得收藏!

1.2.12 Admin Processes(管理進程)

將管理任務作為一次性流程運行。

云原生應用運行中可能會需要執行一些管理任務,比如生成報表或者執行一次性的數據查詢等,這些任務通常并不屬于業務流程的一部分,更多的是為了管理和運維的需要。這些任務在執行中會使用到云原生應用所依賴的支撐服務,對于這些任務,應該創建獨立的應用,并在同樣的云平臺上運行。對于定期執行的任務,可以充分利用云平臺的支持,比如,Kubernetes提供了對定時任務(CronJob)的支持。

以上是對云原生應用設計的十二原則的詳述,十二原則的總結如下。

1.單一代碼:每個微服務都有單個代碼庫,存儲在其自身的存儲庫中。它通過版本控制進行跟蹤,可以部署到多個環境(QA、暫存、生產)。

2.依賴管理:每個微服務都隔離并打包其自身的依賴項,以在不影響整個系統的情況下進行更改。

3.配置:配置信息通過代碼之外的配置管理工具移出微服務之外,并實現外部化。在應用了正確配置的情況下,相同部署可以在環境間傳播。

4.支撐服務:輔助資源(數據存儲、緩存、消息中間件等)應通過可尋址的URL進行公開。這樣做可使資源與應用程序分離,使其可以動態替換。

5.構建、發布、運行:每個版本都必須在構建、發布和運行階段執行嚴格的分離。各自都應使用唯一ID進行標記,并支持回滾功能。新式的持續集成和持續部署CI/CD系統有助于實現此原則。

6.進程:每個微服務應在其自身的進程中執行,與正在運行的服務隔離。將所需狀態外部化到支持服務,如分布式緩存或數據存儲。

7.端口綁定:每個微服務都應是獨立的,其接口和功能在自己的端口上公開。這樣做可與微服務隔離。

8.并發:當需要增加服務能力的時候,通過擴展多個相同進程(副本)橫向擴展服務,而不是在功能強大的計算機上縱向擴展單個大型實例。將應用程序開發為并發應用程序,從而順滑地在云環境中橫向擴展。

9.易回收:服務實例應是易回收的。支持快速啟動以增加可伸縮性機會,以及支持正常關閉以使系統保持正確狀態。Docker容器以及業務流程協調程序本質上滿足此要求。

10.環境對等:使整個應用程序生命周期中的各個環境盡可能相似,避免使用成本高昂的方式。在這里,通過促進使用相同的執行環境,容器技術可以提供重要幫助。

11.日志流:將微服務生成的日志視為事件流。使用事件聚合器處理它們。將日志數據傳播到數據挖掘/日志管理工具(如Azure Monitor或Splunk)并最終長期存檔。

12.管理進程:以一次性進程形式運行管理性/管理任務,例如數據清理或計算分析。使用獨立工具從生產環境調用這些任務,但獨立于應用程序。

主站蜘蛛池模板: 南安市| 灯塔市| 景洪市| 大宁县| 汝南县| 濮阳市| 郯城县| 双辽市| 札达县| 盘山县| 广水市| 武冈市| 庆城县| 德兴市| 灵川县| 色达县| 苍梧县| 钟祥市| 化德县| 剑河县| 全南县| 牡丹江市| 临泉县| 昌黎县| 库车县| 陇西县| 漳州市| 河东区| 宁津县| 昌吉市| 绥芬河市| 连州市| 和田市| 靖江市| 称多县| 蓝田县| 郴州市| 长春市| 北宁市| 嘉善县| 康定县|