當前位置:
首頁 > 科技 > 張善友:基於Kubernetes 構建.NET Core 技術中台

張善友:基於Kubernetes 構建.NET Core 技術中台

5月25日,雲 社區技術沙龍-互聯網架構成功舉辦。本期沙龍特邀請騰訊的技術專家分享關於技術架構、落地實踐案例、無伺服器雲函數架構、海量存儲系統架構等話題,從技術角度看架構發展,為開發者們帶來豐富的實踐經驗內容,深度揭秘技術架構。下面是張善友老師關於利用Kubernetes構建.NET Core技術中台的相關分享。

講師介紹:

張善友,騰訊雲最具價值專家(TVP),.NET技術專家。擁有超過十七年IT行業經驗,2018年創立深圳市友浩達科技有限公司,從事.NET 技術顧問工作,工作之餘,他還熱心於進行社區奉獻,運營微信公眾號「dotnet跨平台」,同時積极參与.NET社區開源項目,被尊稱為張隊長。

點擊觀看視頻回顧

今天我跟大家介紹的內容有三個:為什麼需要中台?二是基於K8S搭建技術中台,我們已經進入了新時代,不能用老的一套,如果用老的一套就沒有什麼優勢了。三是為什麼用.NET Core做應用開發?

為什麼需要中台

這個圖是中國互聯網的發展圖,前面老師也介紹過了互聯網經歷了三個時代,我們現在已經處於第三個時代。2018年—2020年是企業服務時代,在國內不管是阿里還是騰訊都開始向2B轉型。PC、移動怎麼劃分?98—2008年很多都是搞一個網站,搞一個博客,拉了很多的流量發個廣告變現了,之後很多電子商務公司起來了,有了淘寶和微信進入了交易時代,這些交易的網站、流量包括企業內部也有很多的OA、ERP等等各種,要到應用從你的企業擴大到你的合作夥伴,從一個單獨的系統用很長的鏈條串起來,進入到了企業服務時代。

企業應用信息化以前叫信息化,現在都叫數字化轉型,其實說的就是原來的應用信息化都是企業內部的一個系統架一個網站,比如說這個系統就是給這個部門用的,再發展會給整個公司不同的部門用,你的公司如果大的話,這個系統還要給外部的一些合作夥伴用,我原來最早在騰訊的IT待過八年,在騰訊的財富通待過三年,做的都是企業的服務。不過騰訊的IT是騰訊自己的企業服務,那些系統因為沒有對外面的消費者開放出來,一旦要連到外面的消費者,這個量就發生了質的變化。還有你的上下游,都是要把你的產業鏈串起來。中國的消費者市場是和全世界其他國家非常不一樣的,中國的每個省都是其他一個國家的量,特別是中國的市場,像微信、支付寶這些平台和外國對比非常不一樣,他們把我們整個應用的場景非常碎片化,有些API,API對外還要做小程序還有APP等等。

為什麼需要中台?業務中台我們希望業務是從同一個地方發出的。接下來講一下怎麼構建一個技術的中台,其實技術的中台以前叫做技術平台,現在為什麼叫做技術中台呢?一個技術平台構建完以後,平台的技術可能十年都不變,現在和原來最大的變化就是更新非常快,你要快速地去應對。

基於K8s搭建技術中台

當你去構建一個創業公司的時候,需要去構建這些IT系統,這些IT系統還是按老方式構建還是新的方式構建?我的選擇是基於K8s搭建技術中台。

不管是架構還是技術以及研發運營包括業務發展等等各個方面的來說,K8s是我們去構建這些平台的非常好的基礎平台,我公司的架構是以雲原生應用,這幾年也非常火,我的技術用的是.NET Core,這是微軟的技術做的容器化應用,研發運營是用Devops的敏捷研發,由這些推動很多的應用,特別是創業公司肯定要做很多應用都是在試錯,這個試錯要越快越好,而且成本還不能很大,特別是像我這樣的一個公司四個人,如果很多東西沒有快速的話就出問題了。我們看看K8s的容器,容器部署正以每年75%的速率在增長,超過一半以上的容器環境需要編排工具的輔助,77%的公司的編排工具不會選擇。我們從兩個角度來看看為什麼要K8s,開發人員的心聲說,我創建的應用要在我的基礎設施,原來虛擬機這些東西太爛了,K8s就是一個命令,開發也是一樣,你的測試環境還是運營環境幫我們解決了不可變的,就是你開發測試運營是一樣的,不會因為你的運營環境的問題,容器天生幫你解決了這種問題。

做一個東西的話,容器非常容易就去做了,一個想法去實施,包括前面提的無伺服器計算也是基於容器,那是更好的一種實驗方式。從做IT管理伺服器的同學來說,我的伺服器需要保證我服務的網頁以及程序員開發給我的應用,讓我能夠我不需要去了解你具體是幹什麼的,還有服務的穩定有很多的程序合規等等各種問題,這些問題在傳統的虛擬機或者物理伺服器都是非常頭痛的問題,在容器裡頭搭配K8s容易解決一個問題。這是K8s的編排,這些特性大家一看開發服務化的應用,這些都要去關注;其實這些內容在K8s都有,K8s幫我們去解決這些問題。

它有非常好的架構,它成為一個編排引擎界的標準,它的標準在18個月前,2016年底的時候,那時候在編排領域還有非常多的競爭者, 現在已經確定K8s就是容器編排的一個標準,它有公有雲、私有雲、混合雲、模塊化、可插拔等等的特性。谷歌成立了一個基金會,這個基金的第一個開源項目就是K8s,這不是谷歌控制的,是一個基金會控制的,早期包括紅帽就在參與,我也對比了一些國內公有雲的容器服務,騰訊雲的容器服務是非常好用的;現在K8s已經贏了這場戰役,未來的方向是容器化。

K8s開發的時候可以助力整個應用,給大家介紹一下騰訊雲的容器,它的容器服務產品叫做TKE,是騰訊雲基於K8s不依賴與IaaS層的一站式雲原生Paas服務平台,有包括集群調度、Helm應用編排、Docker鏡像管理、Istio服務治理等等的功能。這裡有一個大家要面對的問題,是自建到K8s還是雲自建到K8s,我畫了一個表,自己構建一個K8s集群要面對的問題,這些問題對於一個創業公司來說是不可能完成的任務,如果能夠完成這個任務就可以去搞一個用容器雲的創業公司,2015—2018年非常火熱的領域,有很多人在搞這些,也有很多基於開源的K8s自己搞容器雲的創業。對於我們來說為什麼選擇TKE?這是一個對比圖,如果大家自己沒有一個團隊去運營這個K8s,雲上K8s是一個非常好的選擇。除了K8s之外,還有另外一種,我們公司基於K8s技術平台的幾點,在TKE上面構建,它有一套的系統,還有微服務的架構,包括dotnet,我還是要吐槽一下騰訊雲開發組的服務不太好用,我用了微軟雲的來搭配騰訊雲。我希望後面騰訊雲能夠把這一塊產品做好,我可以把它切回來。基於K8s很多的核心能力可以完成非常多的功能,灰度發布、滾動升級、彈性伸縮、故障自愈這些都不是問題,開發微服務可以用任何雲,但是對一個創業公司來說一定是統一的進入站是最好的,所以我選擇了.NET Core開發微服務和高效能的微服務,下面會介紹一下.NET Core的內容。

基於K8s搭建技術中台,一是業務,二是公共服務,三是PaaS運行平台,在還有網關,騰訊雲也有網關,我用自己開發的網關,這是我參與的開源項目,和K8s非常的配合。

為什麼選擇 .NET Core

為什麼選擇.NET Core?我們可能只會佔到這個裡面的一部分,首先對創業來說,一定是選擇一個平台一種語言是最好的,這個是語言平台給我們提供的,包括系統的整個規範;選擇我們團隊熟悉能掌控的技術來做,也要選擇一個更現代一些的,包括設計活躍度要高,.NET Core社區這幾年也非常活躍,上面有非常多的.NET Core的開源項目,這是我們的選擇的理由。.NET Core是一個跨平台的開發平台,有非常短的名字,www.dot.net,它成立了一個基金會,有非常多的公司參與,生態非常豐富。生態裡面有非常多的項目,可以跑在各種平台,這個圖是雲原生基金會,有兩個軸,一是X軸開源項目的開發速度,整個成長速度,Y軸是提交的PR或者問題的,體現它的活躍度,K8s都是非常活躍的,但是有一個開發平台在裡面非常活躍。

這個圖是微軟的.NET Core的開源之路,微軟在2001年有一個ECMA335協議,就是可以實現.NET Core跨平台的,微軟在20年後才實現這個目標,有這個規範以後,微軟在2002年發布了NET1.0 for Windows,Mono項目啟動。2008年ASP.NET MVC開源,2014年微軟啟動.NET Core項目的開發開源,在啟動的項目之前成立這個基金會,2017年發布.NET Core2.0,現在最新版本是2.2版本在今年的9月份也就是未來的三個月後會發布.NET Core3.0,性能會提高很多。2020年微軟會實現一個大目標,.NET Core5.0。

這是性能的對比,.NET Core是Java的兩倍多,可以做所有的產品,桌面、WEB、雲端開發、手機、GAMING、IOT和AI,中國有一堆培訓公司哪個熱門就生產哪個,我認為.NET Core一樣可以開發。你可以享用你的任何工具,這就是對一個創業公司基於.NET Core可以看的事,我們能做所有的事情。對於很多大公司來說降低成本也是用這個,可以帶來非常大的益處。這是從推特上截的圖,.NET Core3.0還沒有發布,3.0到2.0的性能優化非常恐怖,性能的吞吐提升42%,內存下降90%。如果大家需要用TKE的一些問題也可以找我,下午分享的內容就是這些。

Q:您好,我想問一下開源以後微軟是否會繼續進入手機操作系統的市場?

A:這個圖表明了你很容易把你的技能在移動端實現,比如說你做IOS安卓的開發,.NET Core這個平台也可以做。你想進騰訊做遊戲,IEG的手游,也是可以轉,這些都是客戶端。

Q:您好,我有兩個問題,一是如果是多雲的環境下,如何統一管理基於.NET Core以及K8s的平台?二是目前在測試.NET Core的測試環境中遇到的問題,比如說通用宿主如果出現了問題,需要運維去人工干預的話,有沒有什麼好的工具或者方式來減少人工干預的次數?

A:雲都會提供產品,我記得華為有一個,有很多創業公司也在搞這個,多雲的管理也是一個多集群的管理,跨越的管理,我有一個朋友在創業就是搞容器,後面我可以介紹給你。第二個問題,在虛擬機上跑或者物理機上跑,會發生這種情況你要解決為什麼會發生這種情況,是不是因為你自己服務的不穩定。

-------END-------

關注云加社區,回復3加讀者群

在看,讓更多人看到!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

前端學Serverless系列-性能調優
TCTF 2019圓滿收官!r3kapig戰隊問鼎國際賽冠軍

TAG:雲加社區 |