新聞中心
那么對于一個企業(yè)應(yīng)該選擇哪種方案呢?無服務(wù)器計算和容器之間有哪些重要的區(qū)別呢?接下來我們簡單談?wù)撘幌隆?/p>

主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開發(fā)、程序開發(fā)、微網(wǎng)站、微信小程序定制開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的做網(wǎng)站、成都網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設(shè)項目的能力。
什么是無服務(wù)器?
使用無服務(wù)器計算,工作負(fù)載實際上運行在承載幕后功能的服務(wù)器上。但是,服務(wù)器不由開發(fā)人員管理。更準(zhǔn)確地說,是開發(fā)人員考慮的事情里面是沒有考慮到關(guān)于服務(wù)器的相關(guān)概念。
無服務(wù)器函數(shù)通常是具有單一目的的小型、輕量級的編程函數(shù)。這個單一的目的可以是任何東西,比如從數(shù)據(jù)庫中獲取客戶的詳細(xì)信息,發(fā)送郵件,上傳圖片,裁剪圖片等。
大多數(shù)云提供商都提供無服務(wù)器計算功能,他們將其稱為功能即服務(wù) (FaaS)。領(lǐng)先的產(chǎn)品是 AWS Lambda、Azure Functions 和 Google Cloud Functions,Aliyun Function Compute,每一個產(chǎn)品都在相關(guān)的生態(tài)系統(tǒng)中進(jìn)行了許多功能集成。它們非常適合提供 API 接口或微服務(wù)。
什么是容器?
容器可以簡單地比喻成在海上運輸貨物的集裝箱,它們彼此是獨立的。
容器是一種獨立的、輕量級的虛擬化技術(shù)。它們與虛擬機(jī) (VM) 類似,不同之處在于它們僅虛擬化來賓操作系統(tǒng) (OS) 和應(yīng)用程序,而不是整個計算機(jī)。容器比虛擬機(jī)設(shè)置起來更快、更容易。
一旦有人構(gòu)建了一個容器,他們就可以使用 Docker 等服務(wù)來部署和運行它。大多數(shù)情況下 DevOps 團(tuán)隊最常將容器部署到 Kubernetes 集群。
容器是將現(xiàn)有的單體應(yīng)用程序轉(zhuǎn)換為云原生應(yīng)用程序的最佳方法之一。為了盡可能高效,容器還應(yīng)該將應(yīng)用程序分成更小的部分。
無服務(wù)器 vs 容器
在大多數(shù)情況下,無服務(wù)器功能和容器都不需要開發(fā)人員擔(dān)心服務(wù)器或托管其應(yīng)用程序的基礎(chǔ)設(shè)施。主機(jī)硬件和操作系統(tǒng)與來賓應(yīng)用程序和操作系統(tǒng)分開。DevOps 團(tuán)隊不需要考慮無服務(wù)器功能或容器使用什么硬件。
通過簡單地配置更好的硬件(例如更強(qiáng)大的 CPU、更多內(nèi)存或更快的網(wǎng)絡(luò)能力),這兩種托管選項都是可擴(kuò)展的。
將容器與本地基礎(chǔ)設(shè)施一起使用時例外。在這種情況下,硬件配置是一個手動過程,通常由專門的基礎(chǔ)架構(gòu)團(tuán)隊處理。
還可以根據(jù)流量等需求進(jìn)行擴(kuò)展。Kubernetes 是一個開源編排系統(tǒng),可以在幾秒鐘內(nèi)水平擴(kuò)展容器。同樣,許多 FaaS 產(chǎn)品可以根據(jù)路由到應(yīng)用程序的請求數(shù)量等重要指標(biāo)進(jìn)行自動擴(kuò)展。
無服務(wù)器和容器都是彈性的,因此它們可以在需要時進(jìn)行伸縮。然而,使用容器的 DevOps 團(tuán)隊需要像 Kubernetes 這樣的容器編排軟件來根據(jù)給定的標(biāo)準(zhǔn)自動擴(kuò)展。
無服務(wù)器計算通常是具有單一職責(zé)的小型、獨立的功能塊。它們通常是短暫的,只運行幾分鐘,如果它們是面向客戶的,則運行幾秒鐘。同時,容器最適合更廣泛、長時間運行的應(yīng)用程序或具有多種職責(zé)的應(yīng)用程序。
當(dāng)需要擺脫傳統(tǒng)的本地基礎(chǔ)架構(gòu),使現(xiàn)有的單體應(yīng)用程序部署到云上,并且希望容器實例可以全天候運行的時候,這個時候選擇容器會更好。
而對于一些不需要始終運行,只需要請求的時候進(jìn)行運行計算的服務(wù)則更推薦使用無服務(wù)計算。
容器讓您保持供應(yīng)商中立。這種中立性的副作用是容器支持任何語言,而無服務(wù)器應(yīng)用程序僅限于少數(shù)語言選擇。此支持的語言列表因每個提供商而異。
當(dāng)您決定無服務(wù)器還是容器最適合您的應(yīng)用程序時,最好將上面列出的所有因素都考慮在內(nèi)。但是,您的應(yīng)用程序架構(gòu)的大小和結(jié)構(gòu)應(yīng)該是影響您決策的主要因素。并確保在您的決定中包括其他因素,例如定價。
您可以部署一個小型應(yīng)用程序,或者我們可以輕松地將其拆分為多個較小的微服務(wù)作為無服務(wù)器應(yīng)用程序。另一方面,更大、更復(fù)雜的應(yīng)用程序可能更適合作為容器化應(yīng)用程序。緊密耦合、不易分解為小型微服務(wù)的服務(wù)集是容器的有力候選者。
由于無服務(wù)器產(chǎn)品的限制,容器部署可能是某些應(yīng)用程序的更好選擇。
但您也不一定非要選擇其中一個。無服務(wù)器和容器不是相互排斥的。您可以在需要的地方使用容器,在有意義的地方結(jié)合無服務(wù)器,并享受兩全其美的體驗。正如我們之前提到的,甚至還有用于托管容器的無服務(wù)器產(chǎn)品,旨在彌合這兩種選擇之間的差距。
結(jié)論
無服務(wù)器和容器都是創(chuàng)建可擴(kuò)展云原生應(yīng)用程序的不錯選擇,可讓您更快地進(jìn)行創(chuàng)新。
幾乎所有無服務(wù)器解決方案都支持事件觸發(fā)器,這意味著它們非常適合管道和順序工作流。
無服務(wù)器總是依賴于第三方供應(yīng)商,因此更換云提供商可能會讓人頭疼。
其實本質(zhì)上也可以通過 docker 容器來構(gòu)建一個無服務(wù)器 serverless 平臺,這兩種服務(wù)都用于開發(fā)微服務(wù),但適用于不同的需求。如果你想減少應(yīng)用程序管理并且不關(guān)心架構(gòu),那么 Serverless 是最好的選擇。如果您想在特定系統(tǒng)架構(gòu)上部署應(yīng)用程序并對其進(jìn)行控制,那么 Docker 容器是最佳選擇。
網(wǎng)頁題目:容器部署和無服務(wù)器部署那些事兒
網(wǎng)頁地址:http://fisionsoft.com.cn/article/dppgegh.html


咨詢
建站咨詢
