傳統來說,Web 應用程序通常部署在 web 服務器上,運行在物理機器上。作過開發的人知道,運行軟件的服務器是很複雜的。爲了讓應用程序運行在服務器上,須要花費數小時的時間下載、編譯、安裝、配置和鏈接各類組件。而且,機器的操做系統還須要不斷升級並修補安全漏洞。管理服務器是一項耗時的任務,一般須要專門的系統,由專門的部門來操做。
/編譯/ W
/原文做者/ Yos Riady 、Manjula Piyumal
*/原文連接/ https://dzone.com/articles/wi...
https://dzone.com/articles/wh...web
軟件工程的重點是什麼?
軟件工程師的目標不是提供軟件,雖然這可能與一部分人的想法相反,可是軟件工程師的工做是提供價值——將軟件的實用性交付給用戶。數據庫
因此說到底,服務器要的作的是提供軟件。花費在管理服務器上的時間本來能夠用來開發新功能和改進應用程序——與其擔憂服務器,不如關注軟件的打包封裝。後端
當你有一個好的 idea 想要實現的時候,你最不想作的就是搭建基礎設施。怎樣才能將軟件交付時間所帶來的影響最小化呢?安全
在過去幾十年中,網絡和平臺層(操做系統和應用程序之間的技術)的改進使雲計算變得簡單。服務器
早在20世紀90年代初,開發人員只能用裸機來運行他們的代碼,得到新計算單元可能須要幾天到幾個月的時間。縮放資源須要很是詳盡的計劃纔會進行,耗費大量時間,重點是還須要花費大量資金。因此,轉變是必然的。虛擬機和管理程序提供的虛擬化技術,將配置新計算單元的時間縮短到了幾分鐘。而如今,容器能在幾秒鐘內爲咱們提供新的計算單元。 網絡
同時,DevOps 也逐漸發展成熟,IaaS 和 PaaS 供應商激增。經過這些第三方平臺,用戶就可讓他們來維護代碼的執行環境,從而將軟件開發人員從服務器管理和部署中解放出來。 架構
今天,開發人員已經擺脫在物理服務器上部署應用的狀態。與其在每一個服務器實例上手動下載和搭建一系列平臺級技術(隨後在擴展時也必須重複此過程),不如選擇在 PaaS 平臺上選擇簡單的 Web 用戶界面,單擊幾個選項,讓應用程序自動部署到配置徹底的羣集。app
企業用戶應用程序使用量增長,單擊幾個按鈕就可添加容量。當須要額外的基礎架構組件,或者須要設置部署 pipeline 或啓用數據庫備份時,都只要在同一個Web 界面單擊幾個按鈕添加就可。框架
如今,PaaS 平臺和雲計算既方便又強大——但咱們還能夠作得更好嗎?less
企業如何無服務器化?——上雲
雲計算的下一個重大轉變將是實現 「無服務器」。
「無服務器」這個短語並不意味着跟服務器無關,而是意味着開發人員不須要過多考慮服務器這個因素。計算資源能夠像自來水那樣按需付費,而無需考慮物理容量或限制,節省思考時間和勞務成本。
無服務器是一種軟件開發方法,旨在經過如下方式解放基礎架構管理人員:
► 使用託管計算服務(FaaS)來運行代碼,
► 利用外部服務和 API(第三方 SaaS 產品)。
如今有大量的第三方服務:好比在線支付、交易郵件、用戶分析、代碼質量檢測、內容管理、持續集成及其它問題都是利用 API 來處理的。平常工做中,還能夠利用外部工具進行項目管理、文件共享、辦公室管理等。
與其將寶貴資源用於搭建基礎設施和維護服務器等,倒不如讓開發人員更專一於企業核心產品。開發人員能夠將預製件鏈接在一塊兒,從應用程序中刪除複雜性,不須要從頭開始搭建。經過使用第三方服務,能夠快速搭建鬆耦合、可擴展且高效的架構。
無服務器和 FaaS 平臺是將基礎設施問題委託給第三方公司的重要步驟。企業 DevOps 表現再出色,Google 或 Microsoft 都會作得更好。企業徹底能夠享受現代容器架構所帶來的益處,不必耗費大量資金或者花費數年時間自行從頭搭建。
爲何要無服務器化? 由於你能夠隨時進行封裝啊~
無服務器定義
無服務器是當前軟件架構模式中的熱門話題之一。像許多軟件工程中的其餘術語或趨勢同樣,無服務器也沒有明確的定義。接下來介紹一下無服務器的基本概念以及一些例子,此外還將一探無服務器的潛力。
無服務器體系結構是指,應用程序主要依賴於第三方服務(稱爲後端即服務「BaaS」),或自定義代碼運行在臨時容器中(功能即服務或「FaaS」)。因此,若是有運行應用程序,可是不須要自行維護或管理基礎架構,並且資源按需付費(不須要支付閒置費用),同時還能夠從資源供應商那裏自動得到應用程序所需高可用性、可伸縮性和容錯能力,那麼就是在使用無服務器運行應用程序。應用程序運行在無服務器環境中,企業或者我的就能夠把更多精力放在應用程序業務邏輯上,沒必要擔憂其運行的基礎架構,以及應用程序的其餘非功能性需求,例如高可用性、容錯性和可擴展性。
無服務器只是炒做?
若是您是無服務器的新手,而且計劃將其做爲一種架構,其中最擔憂的就是「無服務器」會不會只是一個炒做?的確,無服務器是當今熱門話題,但看了它過去一段時間的發展,再思考它所涉及的技術,我我的認爲它不是一個短時間炒做,至少將來3-5年內它都會是一個熱點。無服務器技術可能會改變或被替代,但無服務器這個概念是不會的。
無服務器的前世此生
➤➤ 「你必須瞭解過去才能理解如今。」——卡爾薩根
這是無服務器隨着時間的推移而發生的變化:
➤ 1989-1991年——TimBerners-Lee 發明萬維網
➤ 1991-1995年——裸機時代
➤ 1995年——虛擬主機的發明
➤ 1999年——Salesforce 推出了軟件即服務(SaaS)概念
➤ 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(大規模容器)
無服務器的關鍵特性
無服務器應用程序有四個關鍵特性:
☞ ❶ 無需管理——對於無服務器應用程序來講,運行不涉及任何物理服務器。
☞ ❷ 靈活伸縮——即便不瞭解物理服務器層,也沒必要擔憂其伸縮性。應用程序將分配到其所需的資源,以管理相應的容量(好比處理進程、內存、磁盤、數據庫存儲等)。
☞ ❸ 高可用性——冗餘和容錯是無服務器框架的內置功能,企業沒必要保留本身的服務器,使應用程序高度可用。若是存在處理節點故障,框架會自動生成一個或多個新節點,根本感受不到有任何問題。
☞ ❹ 按需付費——在無服務器環境中,無需爲閒置資源付費,這是成本考慮中的一個關鍵優點。
無服務器是將來發展趨勢
無服務器是將來發展的趨勢,提供雲服務的第三方雲供應商的目標是將無服務器推廣到全部可能場景,並讓他們的客戶「生活」在溫馨區,確保他們只須要關注他們的業務邏輯,並可以充分發揮其潛力。
無服務器目前是一個熱門話題,確定會在將來幾年內成爲主流。未來,咱們無需擔憂基礎設施問題;完整軟件生命週期將由雲供應商提供。關於無服務器問題的這些問題部分都是有爭議的,而沒有具體的定義或答案。