前天發的文章《基於Kubernetes 構建.NET Core 的技術體系》,有同窗問.NET Core上有Spring Cloud相似的平臺嗎? .NET Core出現這麼久了,這個爲雲原生應用開發而準備的系統須要Spring cloud這樣的全家桶嗎?今天寫下這篇文章的目的就是陳述一下容器化時代還須要Spring Cloud這樣的基礎設施嗎? 你們但願使用Spring Cloud的初衷都是爲了實現應用的微服務化。然而對於微服務而言,有六個基本必須實現的:html
咱們已經進入到容器化時代,Kubernetes成爲了市場上容器編排的事實標準,並且k8S 一樣具有了微服務所須要的服務註冊與發現、負載均衡、配置中心。Spring cloud 的核心是Netflix微服務框架,很是成熟,可是在netflix oss開發初期,那個時候尚未docker,咱們如今全部的服務都是經過虛擬容器承載的。docker
Netflix OSS的許多內容都是在一個已通過去的年代寫出來的,那時全部東西都只能運行在AWS雲上而沒有其它選擇。關於那個年代的許多寶貴遺產和前提假設都已經被封裝到了Netflix的庫裏面,對於如今你運行的環境(好比Linux容器)已經不適用了。在Linux容器、Docker、容器管理系統等等出現以後,咱們愈來愈看到把咱們的微服務運行在Linux容器(公有云、私有云,或者都要等等)裏的巨大價值。另外,由於這些容器都是直接把這些服務打包起來,因此咱們傾向於不要過多關心在容器裏面運行的究竟是什麼技術(是Java?仍是Node.js?或者Go?或者.NET Core?)服務器
Kubernetes是多語言的,不單單針對Java平臺,而是以通用的方式爲全部語言解決分佈式計算問題。Kubernetes提供了配置管理、服務發現、負載均衡、跟蹤、統計、單實例、平臺級和應用棧以外的調度工做。該應用不須要任何客戶端邏輯的庫或代理程序,能夠用任何語言編寫。這意味着一個平臺能夠被多個團隊(包括使用Spring
的Java
開發人員)使用,並提供多種用途:應用程序開發、測試環境、構建環境(源碼運行、構建服務、依賴倉庫)等。Kubernetes
解決了更廣的微服務架構問題。除了提供運行時服務,Kubernetes
也可讓你制定環境、設置資源限制、RBAC、管理應用程序生命週期、容許自動擴容和自我修復(幾乎表現得像一個抗脆弱平臺)。微信
.NET Core 就是爲雲原生應用的開發而準備的平臺,.NET Core相較於他的哥哥.NET的優點也正是咱們很容易的使用C# 語言去構建高內聚低耦合的雲原生系統。藉助於K8S,service fabric, 咱們很容易構建一個.NET Core的微服務生態。結合.NET Core和k8s 容器服務在騰訊雲上製做了一個教程 《.NET 微服務實戰 — 微信公衆號開發( https://cloud.tencent.com/developer/edu/major-100017)》,教程裏例子-公衆號開發雖然簡單,我只是使用這個簡單例子來闡述一個簡單的問題,雲時代的.NET 是怎麼樣的,咱們要怎麼樣使用.NET Core。架構