何时该用无服务器,何时该用Kubernetes?
什么時候該用無服務(wù)器,什么時候該用Kubernetes構(gòu)建云原生應(yīng)用程序?
一個好的無服務(wù)器應(yīng)用場景應(yīng)該是在夜間沒有太多或者完全沒有流量。由于無服務(wù)器平臺僅在代碼運行期間收費,因此可以顯著降低成本。較大的應(yīng)用程序不執(zhí)行任何操作,無服務(wù)器便宜的可能性越大。
但是,這并不意味著無服務(wù)器就可以降低成本,如果應(yīng)用程序全天候運行,可能存在一些隱性成本,比如管理API造成的額外成本和測試函數(shù)的調(diào)用成本。
沒經(jīng)驗,怎么選?
就聽而言,無服務(wù)器和Kubernetes好像已經(jīng)非常成熟;但就實踐而言,二者還有很多成長空間,研發(fā)人員也并未達到人人普及的程度。如果既沒有無服務(wù)器也沒有Kubernetes經(jīng)驗,那么,在無服務(wù)器平臺運行Hello World應(yīng)用程序應(yīng)該更容易。
因為無服務(wù)器只需將精力集中在代碼上即可,使用Kubernetes則通常需要等待一段時間來創(chuàng)建集群,配置Kubernetes以獲取公共IP地址,然后再部署容器。使用無服務(wù)器平臺,只需使用云提供商的Web工具即可在幾分鐘內(nèi)上手。
有經(jīng)驗,怎么看?
這種難易程度也是變化的,無服務(wù)器并不總比Kubernetes更容易。使用一堆函數(shù)構(gòu)建和管理無服務(wù)器應(yīng)用程序比只有一個容器的簡單Kubernetes應(yīng)用程序更難。實際上,將Kubernetes用于更復(fù)雜的應(yīng)用程序可能更容易,因為該平臺更成熟。
無服務(wù)器計算最強大的功能之一是自動可擴展性,開發(fā)人員無需采取任何措施就可利用此功能。使用Kubernetes,研發(fā)人員還可使用pod甚至節(jié)點自動可擴展性,但需要一些配置并且速度稍慢,因為只有在某些規(guī)則適用時才會觸發(fā)此過程。
但是,Kubernetes可能提供比某些無服務(wù)器平臺更好的可擴展性,因為Kubernetes更加成熟,并且在不同區(qū)域之間提供HA(高可用性),這并非所有無服務(wù)器平臺都提供。
A/B測試可能是構(gòu)建云原生應(yīng)用程序的關(guān)鍵功能,但無服務(wù)器平臺并不具備這一點,Kubernetes則可以。此外,Kubernetes應(yīng)用程序的監(jiān)控功能更加成熟。例如,使用Istio可以看到微服務(wù)的執(zhí)行時間,服務(wù)調(diào)用情況以及是否存在問題。無服務(wù)器平臺因其自身的最大優(yōu)勢就是不需要操心基礎(chǔ)設(shè)施,所以研發(fā)人員可做的操作也十分有限。
如果應(yīng)用程序相當(dāng)簡單,只有一個函數(shù)提供API,則無服務(wù)器可能是更好的選擇,因為部署會更容易,并且各種無服務(wù)器平臺都可提供對單個函數(shù)的監(jiān)控。
響應(yīng)延遲對比
使用無服務(wù)器平臺時,由于需要初始化代碼,因此第一次調(diào)用函數(shù)需要花費一些時間。比如,在OpenWhisk中使用Docker容器,容器需要時間才能啟動Java應(yīng)用程序。如果需要快速可靠的響應(yīng)時間,則可以使用Kubernetes。
通過應(yīng)用緩存,無服務(wù)器平臺對響應(yīng)時間做了改善。第一次冷啟動后,不必再花費較長響應(yīng)時間啟動第二次,這可能足以滿足應(yīng)用需求。
高性能計算對比
無服務(wù)器平臺通常具有某些資源限制,比如,功能不能超過512 MB的RAM,不能超過5分鐘。如果這些限制對應(yīng)用程序來說過于嚴格,則需要使用Kubernetes。有時也會在較小的功能中分解應(yīng)用程序,比如,將現(xiàn)有單片應(yīng)用程序移到云中。
結(jié)語
無服務(wù)器計算和Kubernetes對應(yīng)不同的應(yīng)用場景,也有著各自的缺點。如果是初學(xué)者,建議從無服務(wù)器計算開始,畢竟Kubernetes的配置過程相對繁瑣。如果是企業(yè)用戶,追求高性能計算、更優(yōu)性能并希望運行大規(guī)模應(yīng)用程序,Kubernetes依舊是最佳選擇。
參考鏈接:https://dzone.com/articles/when-to-use-serverless-when-to-use-kubernetes
總結(jié)
以上是生活随笔為你收集整理的何时该用无服务器,何时该用Kubernetes?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 丰田汽车受战斗操作模式启发影响推人机合作
- 下一篇: Dynamics2011中Attachm