簡體   English   中英

PAAS和雲服務器之間的區別。

[英]Difference between PAAS and cloud server.

我正在開發一個需要使用RoR的Scalability.Website的網站。 我對Ninefold和DigitalOcean主機感到困惑。 我的網站就像社交網站一樣,我需要在其中存儲大量用戶數據和媒體。

正如一位偉大的開發人員所建議的那樣,數字海洋是一台雲服務器(配置您自己的數據庫,Web服務器ssh等),而ninefold是一個平台即服務,您可以將代碼推入該平台。

我想知道這個的確切含義

簡而言之,區別就是這樣。

目前,市場上有兩種極端的報價。

Digital Ocean,它將創建您的VM,然后您需要對其進行配置和管理(意味着安裝所有的ruby,nginx和其他東西)

和Heroku,它是完全抽象的,您無權訪問任何內容,只需將代碼推送給他們,然后他們就可以在雲上的某個地方運行它。

然后是Ninefold,介於兩者之間,它們創建您的VM,您可以在其中訪問並指定諸如磁盤大小,CPU數量和RAM大小之類的內容。 但是Ninefold還可以為您完全配置VM,並安裝(以及以后的更新)所有的ruby,nginx,postgres之類的東西。 因此,歸根結底,這是兩全其美的,您可以通過將代碼推送到GitHub來部署代碼,但是您也可以完全訪問VM,並可以根據性能需求對其進行微調。

在實際負載方面,Ninefold比Heroku更具成本效益。

這些只是出於不同目的的不同事物。

雲服務器只是一台機器。 它可以執行您強迫它執行的任何操作。 基本上不限於托管RoR或什至一般的任何Web平台。 如果只需要RoR,則必須設置Ruby,數據庫,安裝應用程序,配置代理(如果需要)。 您還可以在同一台計算機上運行補充程序(例如,對於使用WebRTC的應用程序,您也可以在其中運行STUN服務器)。 您必須定期對其進行升級(和/或配置自動升級),並應對應用程序下系統中可能存在的安全漏洞。 本質上與購買物理服務器,將其掛接到網絡並用於生產中的方式相同。

PaaS是一個稍微不同的概念。 為了運行您的應用程序,您可以如上所述配置計算機:軟件,庫,Web服務器。 您為應用程序運行設置了平台。 這就是PaaS中的P。 在PaaS上,您不受操作系統和可用軟件的控制,但可以確保已正確配置。 您只應確保已正確配置您的應用。 有一個“ 12個因素”的概念 ,描述了構建以PaaS為目標的應用程序的准則。 這意味着PaaS嚴格是單一用途的:它僅基於您的代碼庫運行進程,而沒有任何成熟系統的商品。 Heroku是最著名的PaaS,它沒有本地數據庫服務器,但是您的應用可能會要求它運行。 因此,您可以為您的應用程序提供遠程數據庫服務器的URL,它也可以是一項服務(例如,DBaaS,Heroku單獨提供,例如在ClearDB插件中)。

實際上,沒有什么可以限制您不要同時使用這兩種方法。 您可以以一種不太依賴系統軟件的方式來設置服務器基礎結構。 您可以使用Docker將應用程序的代碼,用戶數據和所需的服務(例如數據庫)與系統的其余部分分開。 當應用程序作為Docker容器運行時,通常單獨放置,具有暴露的端口,並且對系統的要求不高。 數據庫位於自己的容器中,該容器鏈接到應用程序並通過環境變量發現,因此本地數據庫服務器也不會受到影響。 那有什么好處? 控制。 一切都與系統完全隔離,可以進行備份,擴展甚至遷移,而無需重新創建以前在某處所擁有的大多數應用程序環境。 很像您自己的PaaS。 它確實需要一些規划和設置平台以及打包應用程序的知識。 而且只有在您要運行多個應用程序時才有意義。

在Digital Ocean上,通常會得到一個空虛擬框,其中包含您選擇的Linux操作系統。 您將ssh放入該服務器,安裝rvm,安裝ruby,安裝nginx,安裝乘客或獨角獸,安裝postgresql,在本地計算機上設置capistrano以部署到該服務器上的生產環境...

如果Ninefold與Heroku類似,則已經為您配置了它。 您只需推送代碼並運行您的網站。

安德烈·阿佐夫(Andrey Azov)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM