使用Cloud Run實現強大的無伺服器 - MásMóvilEngineering

banq發表於2019-06-23

遺留應用程式堆疊已被擱置,基於容器的應用程式已經上升。

在應用程式開發中使用Docker容器有很多好處,現在已經很明顯了。我們可以突出其中一些:

  • 亮度
  • 可移植性
  • 幾個環境
  • 簡易CI / CD

但是容器的所有開發優勢導致在生產中操作它們的高度複雜性,這就是新容器編排出現的原因。最受歡迎的協調器Kubernetes為我們提供了安全執行生產工作負載所需的所有工具。

我們的所有資源分組為計算叢集,服務發現和開箱即用的負載平衡,內建自我修復和水平擴充套件,直接與集中式日誌系統整合,並提供強大的介面,允許Kubernetes與CI整合CD工具。

所有這些都是有代價的,管理Kubernetes並不容易,這就是為什麼雲提供商提供託管Kubernetes,如Google Kubernetes EngineAzure Kubernetes服務IBM Kubernetes服務Digital Ocean Kubernetes服務

此外,為了能夠使用Kubernetes你需要了解Kubernetes。

但它並沒有結束,為了將我們的容器部署到Kubernetes,我們實際上需要一個執行的Kubernetes叢集,它具有分配的資源(CPU和RAM可用)。聽起來合乎邏輯,對吧?

如果作為開發人員,我有我的容器化應用程式並且我想在不瞭解Kubernetes以及擁有正在執行的叢集的成本和開銷的情況下執行它,該怎麼辦?

在這裡它無需救援服務。無伺服器並不僅僅意味著您不需要執行基礎架構,這也意味著如果您的應用程式未被使用(即它沒有收到任何請求),您將不會支付任何費用。我們在市場上有幾個無伺服器框架,其中一些是商業的,另一些是開源和自託管的。如果我們只關注商業和託管應用程式,我們將看到我們的無伺服器應用程式必須滿足一些要求:

  • 您必須使用無伺服器框架(即Google Cloud Functions)檢測應用程式
  • 您的應用程式受無伺服器執行時的限制。
  • 您不能簡單地使用容器化應用程式。
  • 它們專為不同的用例而設計。

Google推出一款新產品:Google Cloud Run。它為我們提供了最好的編排平臺,如Kubernetes,已經提到過,但不需要擁有和維護一個執行不足的基礎架構。它就像一個託管的“託管Kubernetes”,我們只要求我們的容器執行。

它提供了額外的好處,例如Zero的真正可擴充套件性,這意味著如果您的應用程式未被使用,它將自動關閉,如果必須處理請求,那麼我們的應用程式將通過快速冷啟動進行擴充套件。

與許多產品一樣,谷歌也提供慷慨的免費套餐,非常適合開發。另一方面,它有一個很好的定價模型,我相信我們的許多基於Web的工作負載都可以從中受益,從而降低成本。

Cloud Run構建於Knative之上。它確實是一個有管理的Kubernetes + Istio + Knative叢集,所以你不必擔心被綁在商業產品上,你無法從中獲取。您可以簡單地在任何Knative動力基礎架構上執行您的工作負載,它將以相同的方式工作。

我們可以說,這是基礎架構團隊結束和完整的DevOps體驗的一步,開發團隊負責應用程式的整個生命週期。我們可以真正關注對我們來說重要的事情。

相關文章