當前位置:
首頁 > 知識 > 紅透半邊天的無伺服器只是炒作嗎?技術上如何發展?

紅透半邊天的無伺服器只是炒作嗎?技術上如何發展?

無伺服器是當前軟體架構模式中的熱門話題之一,像許多軟體工程中的其他術語或趨勢一樣,無伺服器也沒有一個明確的定義,所以在這篇文章中我們會簡單介紹一下無伺服器的基本概念,並圍繞無伺服器的幾個爭論點展開討論。

紅透半邊天的無伺服器只是炒作嗎?技術上如何發展?

什麼是無伺服器?

根據MartinFowler.com的定義,無伺服器體系結構是指主要依賴於第三方服務(稱為後端即服務或"BaaS")的應用程序或在臨時容器中運行的自定義代碼(功能即服務或"FaaS")。

如上說述,如果你沒有維護或管理自己的基礎架構來運行應用程序,並根據使用情況付費(或者不付費),同時從供應商那裡自動獲得所需級別的高可用性、可擴展性和容錯性,那麼你就正在運行一個無伺服器的應用程序。作為在無伺服器環境中運行應用程序的所有者,你可以將所有的精力放在應用程序業務邏輯上,而不必擔心其運行的基礎架構以及應用程序周圍的其他非功能性需求。

無伺服器只是炒作?

如果你是無伺服器的新手,並且在考慮將其作為架構,那麼這就會成為你需要面對的問題之一。沒錯兒,無伺服器是現在的熱門話題,但是綜合了之前和之後的發展,我個人認為無伺服器並不是一個短期內的炒作,至少在3-5年不是,圍繞無伺服器的技術或許會被改變、替換,但是無伺服器的概念不會。

技術層面如何向無伺服器發展?

俗話說得好,觀往知來、知古鑒今,所以在解釋無伺服器功能如何強大之前,我們先來看看它是如何在過去幾年演變的:

  • 1989 - 1991年 - Sir Tim Berners-Lee發明了萬維網

  • 1991 - 1995年 - 裸機時代

  • 1995年 web hosting

  • 1999年 - 軟體即服務(SaaS)概念由Salesforce引入

  • 2001年 - VMWare發布ESXi,"伺服器虛擬化"成為了一件大事

  • 2002-2006-AWS提出IaaS,人們開始談論"雲計算"

  • 2009年 Heroku提出"平台即服務"(PaaS)

  • 2011年 - Envolve / Firebase,實時資料庫即服務

  • 2012年 - Parse.com和第一個後端即服務(BaaS)

  • 2013年 - Docker,"容器比虛擬機好"

  • 2013-2015 - Kubernetes / Swarm / Nomad / CoreOs(containers at scale)

  • 2014年 - AWS Lambda推出(FaaS)

AWS lambda誕生了,無伺服器這個詞與FaaS一起出現在舞台上,雖然大多數人認為Lambda是無伺服器的起點,但是containerization 將無伺服器遷移推向第一個高潮,隨著containerization的出現,全球領先的雲服務提供商開始向客戶提供"付費即用"的概念以及最需要的非功能性需求,支持使用其基礎架構運營業務。

無伺服器應用程序的關鍵特性

無伺服器應用程序有四個關鍵特徵:

  • 沒有伺服器管理 -顧名思義,對於無伺服器應用程序,應用程序所有者不需要涉及任何物理伺服器。如果你是應用程序所有者,那麼你將不知道有多少伺服器代表你的應用程序及其物理位置運行。

  • 靈活的擴展 - 因為你不需了解物理伺服器層,所以不必擔心可伸縮性。應用程序將按需分配更多資源以管理所需的容量級別。

  • 高可用性 - 冗餘和容錯是無伺服器框架的內置功能,不必保留自己的伺服器以使應用程序高度可用。如果處理節點發生故障,框架會自動為您生成一個新節點或幾個節點。

  • 成本控制- 在無伺服器的環境中,您無需多花費時間,這是成本考慮的關鍵優勢之一。

FaaS和無伺服器是一樣的嗎?

這是一個趨勢類的常見問題,有些人聲稱FaaS是無伺服器概念的技術實現,還有一些人認為無伺服器不局限於FaaS,而是一個更廣泛適用的概念。作為我個人來講,我更贊同後面一種說法。

FaaS只是無伺服器體系結構的事件驅動處理部分。對於應用程序來說,還有許多其他必需的構建塊,如數據持久性,數據流,消息傳遞,用戶管理等等,以便提供一些端到端的功能。最重要的是有一些沒有FaaS組件的應用程序,但仍然可以被認為是無伺服器應用程序。

舉個例子,如果我們需要一些靜態的虛擬主機,我們可以做到這一點,而不必考慮物理伺服器。如果我們認為AWS是我們的雲服務提供商,我們可以將我們的網頁內容託管在S3存儲桶中,並啟用靜態虛擬主機來託管網頁。為了使其完成,你可以使用Route 53作為DNS和CloudFront作為CDN。

另一個例子是一個 thick client的Web應用程序,它只使用後端服務來進行身份驗證和數據持久化。你實現這種應用程序無需擁有自己的物理伺服器以及FaaS組件,有許多服務可用於身份驗證和數據持久性。

無伺服器會是未來嗎?

在回答這個問題之前,我建議你先去看一下AWS的產品頁面,如果你仔細看,那麼你會發現大約有100個"服務產品",涵蓋了從開發到部署和維護的整個軟體開發生命周期。

如何看待AWS的願景?我堅信,它將改變世界,使我們能夠在解決方案的基礎上全面開發,測試,部署和維護我們的應用程序。

如果你現在還沒有準備好,那麼可以去看看過去兩年中AWS服務的增長情況,他們正在迅速擴大自己的版圖,並從基礎架構角度提升其服務範圍,以涵蓋軟體生命周期過程中幾乎所有的要求。當然,其中一些服務還沒有完全完成(其中很少是在過去兩個月內發布的),並且完全可以替代內部產品。但是,在未來的2 - 3年內,他們將確保在為雲應用的開發、部署和維護提供服務。

那麼,這些雲服務提供商在哪裡進行軟體開發和維護?他們的目標是以無伺服器的方式來覆蓋所有可能的情況,並將他們的客戶放在一個舒適的地帶,以確保他們只需要關注他們的業務邏輯,並能夠充分發揮其潛力。

現在達到了我們所需的能力水平嗎?

現在你可能正在想:如果我們要轉向無伺服器的範式,FaaS如何能夠提供所需的處理能力。下面我列舉一個FaaS產品為例, AWS Lambda。當然,很多人都可以輕易的說出,AWS Lambda沒有能力來促進幾乎所有的處理場景(我仍然指的是基於事件的應用程序)。但對於我來說,幾乎所有這些限制都只是軟限制,都可以放寬標準,未來 AWS Lambda有信心能夠覆蓋至少90%的案件。

最近的稱,到2021年,FaaS市場預計將增長到32.7%。這僅僅是FaaS,如果你看一看無伺服器的範例,你就會明白它有多大的潛力。

結論

"無伺服器"目前是一個熱門話題,在未來幾年肯定會成為主流,你將不必擔心基礎設施,完整軟體生命周期將取決於雲服務提供商。如果你熱衷於掌握最新技術,那麼歡迎你來了解無伺服器範例和雲產品。

正如前文所說,本文中所有提出的問題都是極具爭議性的,沒有正確的答案,歡迎大家針對以上問題在下方留言評論,共同分享交流。

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

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


請您繼續閱讀更多來自 IT168企業級 的精彩文章:

博覽安全圈:警告!黑客或迫使ATM機自動吐鈔

TAG:IT168企業級 |