《如何選擇最合適的Serverless服務?》要點:
本文介紹了如何選擇最合適的Serverless服務?,希望對您有用。如果有疑問,可以聯系我們。
通過迅速靈活以及容量巨大的彈性伸縮,無服務器架構能很好地解決關鍵功能的性能瓶頸,但它并不是完美的:不僅需要修改設計去適應它,對熟悉的編程模型進行調整,還要解決諸如規劃預算、安全等等問題.但總的來說,它為云上的應用提供了另一種選擇——并且具有難以抵擋的誘惑:極大地簡化應用從開發到部署和維護的整個過程.
將編寫代碼和部署應用的整個過程簡化是每個開發人員的夢想,而無服務器架構(Serverless)正是這樣的解決方案,在采用這種架構的時候需要考慮它的局限,費用問題以及安全問題.
信息技術在不同領域的發展不盡相同.誠然,事實一直如此,因為人們為當下的問題所找到的可行的解決方案,通常先于這些問題本身就已經存在了.與虛擬化、云計算等技術的緩慢進步相比,編程語言幾乎是原地踏步了十年.直到新一輪的編程語言和方法諸如Python,Ruby,Node,Swift的出現才打破這一局面.這兩個領域看似毫無關聯,然而我們即將看到二者共同演變并結合在一起開花結果.
這個新的結合領域就是無服務器計算(Serverless).易于部署的容器實例集合、無處不在的基于REST API的外部服務、易于實現REST API的新編程語言使得以 REST API提供接口成為一種簡單而可行的選擇.這些技術相互結合,創造了一種全新的計算形式. 我們已經很熟悉這種新的編程形式的諸多方面(例如如何設計和實現REST API,如何設計實現微服務),但是仍有一些方面并不為人熟知.
但這個應用提供的并不是REST API,它只是簡單地根據不同的請求內容響應包含不同內容的HTML頁面.結合REST之后,Node應用便成為一個計算結點.不變的是,當收到請求時,它便執行邏輯,然后退出.同時,作為基礎設施的部分,它會保持對特定端口的監聽.
然而,為了實現一個簡單但完整、可運行的Node應用(或者 Python / Djang / Java / Spring / RoR 等),還需要進行網絡配置,防火墻配置,操作系統配置和調整,存儲配置,并且如果你使用了網絡應用防火墻(WAF: Web Application Firewall),還需要配置WAF.盡管,DevOps能使所有這一切更容易一些,但請試想一下,如果你根本不需要做這些額外的配置,那將會怎樣?
這對開發者無疑有著巨大的吸引力.編寫代碼后,無需進行那些看似必須的配置(無論是物理環境,虛擬環境的還是云端環境)就能部署,是眾多開發者的夢想.這也不禁讓人想起一些現實世界中的例子.首當其沖的就是應對高峰期的性能瓶頸.假設你有一個完美運行的在線訂單系統,在銷售高峰期(比如黑色星期五),由于驗證收貨地址的時間過長,系統經常陷入崩潰.
如果你有一個無服務器函數(serverless function),它僅返回輸入的地址是否有效,你就可以將地址驗證交給它來處理,那該多好? 甚至,該功能還允許快速擴展到幾乎無限容量(當然,網絡帶寬還是要考慮的)! 現在,這個瓶頸不再是問題,你只需要為這個函數實際使用的計算資源(CPU時間)付費. 這意味著調用得越多,支付的費用就越高,但是在大部分的時間里,費用都很少. 你只需要為真實使用的計算資源付費.
如果所有這一切以可接受的價格讓你在你的站點上或者云端完成,那該有多好!已經誕生了這樣的產品(Microsoft Functions,AWS Lambda和nanoscale.io等)都提供了上述所有功能.
將來,一些應用程序將完全采用無服務器架構,特別是對于相比使用云端實例更具成本優勢的應用.即便沒有這樣的應用,盡可能少地在基礎設施上配置資源也會變得更加劃算.同時,將無服務器計算作為解決各種相對獨立的功能引起的性能瓶頸的解決方案,或者用于測試在不需要增加基礎設施預算的情況下,是否可以增加應用的容量.總的來說,在信息技術領域,對于如何正確地選擇架構來實現業務目標,無服務器架構無疑是其中一種解決之道.
相關文章:
作者介紹:胡應明,趨勢科技資深工程師,DockOne社區譯者
文章來自微信公眾號:Docker
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3739.html