一份關于.NET Core云(yun)原生采用(yong)情況(kuang)調(diao)查(cha)
調查背景
Kubernetes 越來(lai)越多(duo)(duo)地在(zai)生(sheng)(sheng)(sheng)產(chan)環(huan)境中(zhong)使(shi)(shi)用(yong)(yong),圍繞 Kubernetes 的(de)(de)整個(ge)(ge)生(sheng)(sheng)(sheng)態系(xi)統在(zai)不(bu)斷演(yan)進,新(xin)的(de)(de)工具和(he)(he)解決方(fang)案也在(zai)持續(xu)發布(bu)。云原(yuan)生(sheng)(sheng)(sheng)計(ji)算的(de)(de)發展(zhan)驅動(dong)(dong)著各個(ge)(ge)企業轉向(xiang)遵循云原(yuan)生(sheng)(sheng)(sheng)原(yuan)則(ze)(啟(qi)(qi)動(dong)(dong)速度快、內(nei)(nei)存占(zhan)用(yong)(yong)低(di))的(de)(de)平(ping)(ping)(ping)臺, .NET Core正(zheng)是(shi)(shi)在(zai)云原(yuan)生(sheng)(sheng)(sheng)背(bei)景下(xia)發展(zhan)起來(lai)的(de)(de)平(ping)(ping)(ping)臺,.NET Core的(de)(de)啟(qi)(qi)動(dong)(dong)速度快,內(nei)(nei)存占(zhan)用(yong)(yong)很低(di),反而Java平(ping)(ping)(ping)臺在(zai)云原(yuan)生(sheng)(sheng)(sheng)時(shi)代大(da)大(da)的(de)(de)落后了。這(zhe)也是(shi)(shi)可以(yi)給(gei)很多(duo)(duo)人(ren)(ren)解釋為什么.NET Core 平(ping)(ping)(ping)臺下(xia)沒有Spring Cloud這(zhe)樣的(de)(de)框架(jia)。微(wei)軟完全是(shi)(shi)面向(xiang)未(wei)來(lai)的(de)(de)設計(ji)系(xi)統,使(shi)(shi)用(yong)(yong)kubernetes 和(he)(he) service fabric來(lai)協調服(fu)務,在(zai)這(zhe)兩個(ge)(ge)框架(jia)之下(xia)Spring Cloud這(zhe)樣的(de)(de)框架(jia)已經(jing)毫無(wu)意義。由于軟件定義基礎設施方(fang)興未(wei)艾,編排和(he)(he)自動(dong)(dong)化(hua)領域kubernetes占(zhan)據了主體地位,在(zai)平(ping)(ping)(ping)時(shi)的(de)(de)工作中(zhong)和(he)(he)身邊的(de)(de)同學聊天的(de)(de)過程中(zhong)很多(duo)(duo)人(ren)(ren)對kubernetes 有一(yi)種畏懼心理,所以(yi)7月份我在(zai)微(wei)信公眾號(hao)“dotnet跨(kua)平(ping)(ping)(ping)臺” 進行了一(yi)項關于.NET Core云原(yuan)生(sheng)(sheng)(sheng)采用(yong)(yong)情況的(de)(de)調查(cha),參與人(ren)(ren)數741,這(zhe)個(ge)(ge)調查(cha)今天也結束了,所以(yi)這(zhe)里寫(xie)一(yi)篇(pian)文(wen)章(zhang)總結一(yi)下(xia)。
調查結果
1. 是否使用.NET Core開發
我的(de)(de)公(gong)眾號里(li)(li)用戶多(duo)是使(shi)用.NET,使(shi)用.NET core的(de)(de)用戶69%,還有(you)(you)31%的(de)(de)開發者沒有(you)(you)把(ba).NET Core投入(ru)生產(chan),從概率角度還是反映了一個趨勢(shi),記得2017年初我也在公(gong)眾里(li)(li)做過(guo)類似的(de)(de)調查,當時的(de)(de)數據(ju)倒過(guo)來的(de)(de),只(zhi)有(you)(you)20%的(de)(de)用戶在使(shi)用.NET Core, 畢竟那時候.NET Core 才發布(bu)(bu)1.1版本(ben),還缺乏(fa)很多(duo)API,隨著.NET Core 2.1的(de)(de)發布(bu)(bu),.NET Core的(de)(de)可(ke)用API得到極大改善,很多(duo)新項目(mu)開始使(shi)用.NET Core,現在.NET Core 3.0 Preview7 也已經go live,可(ke)以(yi)投入(ru)生產(chan)。
2. 是(shi)否使(shi)用docker 容(rong)器(qi)化.NET Core
使用(yong)docker容器化.NET Core的(de)(de)(de)比(bi)例(li)下降到了(le)(le)53%,這個數(shu)據相(xiang)比(bi).NET Core的(de)(de)(de)使用(yong)人群比(bi)例(li)還是(shi)超過了(le)(le)50%的(de)(de)(de),這是(shi)需要向大家多多推廣的(de)(de)(de)地(di)方了(le)(le),期望更多的(de)(de)(de)同(tong)學能夠把(ba)容器化技(ji)術用(yong)起(qi)來,.NET Core對容器非(fei)常(chang)友好,特(te)別(bie)是(shi).NET Core 3.0在docker 運行環境上有(you)著更好的(de)(de)(de)改進(jin),.NET Core的(de)(de)(de)容器化也是(shi).NET Core有(you)優勢的(de)(de)(de)地(di)方,我經常(chang)在微信群里(li)給大家介紹.NET Core容器化的(de)(de)(de)優勢,特(te)別(bie)是(shi)對于Java來說,如(ru)果公(gong)司里(li)同(tong)時(shi)有(you)Java團隊,大家都跑在docker上,這個優勢領導一定看得見。
3.Kubernetes 采用情況
60%的受(shou)訪者使(shi)用 Kubernetes 進(jin)行(xing)容器編排,基本上(shang)(shang)kubernetes的專業調(diao)查數(shu)據(ju)相驗證,這個數(shu)字是使(shi)用 Docker Swarm 的兩倍,Service Fabric的使(shi)用也有11%,相信到(dao)明年,Kubernetes 將可以全面(mian)用于生產環境中的工作負(fu)載。 在使(shi)用kubernetes的方式上(shang)(shang)更多(duo)人選(xuan)擇了自建k8s集群,略多(duo)于使(shi)用云托(tuo)管(guan)的k8s
4.采用 Kubernetes 的障礙
Kubernetes 這項技術還很(hen)年輕,圍繞(rao)它的(de)生態(tai)系統也還在形成(cheng)過程中(zhong)(zhong)。Kubernetes 的(de)功能(neng)和生態(tai)中(zhong)(zhong)的(de)多種工具正在逐(zhu)步演(yan)化,但步調卻不一致。因此,團(tuan)隊(dui)在評估和運行 Kubernetes 的(de)時候遇到了不同程度的(de)問題(ti)。一些痛(tong)點包(bao)括:內部團(tuan)隊(dui)對通用(yong)技術的(de)統一認識(22%), 內部缺少專(zhuan)家資源(42%),在關(guan)鍵任務中(zhong)(zhong)保(bao)證可(ke)靠性(xing)(14%),復雜(za)策略的(de)管理(21%)。
5.采用(yong) Kubernetes 時需要哪些幫助(zhu)
對(dui)于(yu)這個問題,45% 的(de)(de)(de)受訪者(zhe)的(de)(de)(de)回(hui)答是(shi)“架構設(she)(she)計(ji)(ji)”。架構設(she)(she)計(ji)(ji)確實對(dui)很(hen)多(duo)團(tuan)隊都造(zao)成(cheng)了困(kun)擾,因(yin)為對(dui)于(yu)架構設(she)(she)計(ji)(ji)有很(hen)多(duo)要考慮(lv)的(de)(de)(de)地(di)方(fang):評估(gu)物理和軟件基礎設(she)(she)施,如何集(ji)成(cheng)新技術,如何以新的(de)(de)(de)方(fang)式運維等(deng)。31% 的(de)(de)(de)受訪者(zhe)表示在 Kubernetes 的(de)(de)(de)日常管理上需要幫助(zhu)。排名第三(san)的(de)(de)(de)回(hui)答是(shi)“部署” ,僅占(zhan) 24%
6.遇到問題時向誰求助
團(tuan)隊(dui)尋求建議的(de)信息源差(cha)不多(duo),主要(yao)包括(kuo)編排工具供(gong)應商(11%),獨(du)立咨詢(xun)公(gong)(gong)司(6%),業內同行(28%)和相關論壇(50%)。僅(jin)有 6% 的(de)受訪者在(zai)部署 Kubernetes 的(de)時候不需要(yao)幫(bang)助(zhu)。這個結果表明,組織在(zai)尋求所需幫(bang)助(zhu)時存在(zai)一(yi)定的(de)問(wen)題。我(wo)已經(jing)在(zai)使用.NET Core + kubernetes這條道路上探(tan)索了大半年時間,積累了很多(duo)經(jing)驗,你們需要(yao)幫(bang)助(zhu)時歡迎找我(wo),我(wo)公(gong)(gong)司可以(yi)提(ti)供(gong)相關各方面(mian)的(de)咨詢(xun)服務。
如果你正在考(kao)慮 Kubernetes 或在評估(gu)/部署(shu)過程中,可(ke)以從已經在使用(yong) Kubernetes 的(de)(de)(de)人(ren)那里得到有(you)用(yong)的(de)(de)(de)建議(yi)。使用(yong)云原生技(ji)術(shu)(包括 Kubernetes)很難,但對于那些優(you)先考(kao)慮軟件開發并希望縮短開發周(zhou)期,更好(hao)地利用(yong)資源(yuan)以及(ji)獲得最(zui)佳(jia)開源(yuan)技(ji)術(shu)的(de)(de)(de)團隊來說,顯然是值得的(de)(de)(de)。特別是使用(yong).NET技(ji)術(shu)的(de)(de)(de)團隊,轉向.NET Core這艘大船時,kubernetes 一定是最(zui)好(hao)的(de)(de)(de)舵手, .NET Core 針對云原生開發的(de)(de)(de)重新定義,免費開源(yuan)跨(kua)平臺,性能接近(jin)C++。
歡迎(ying)大(da)家(jia)掃描下面(mian)二維碼(ma)成(cheng)為我(wo)的客(ke)戶,扶你上云






