3種在雲中利用開源的方法
在雲中執行開源有一些缺點,但是選擇正確的策略可以讓你同時享受開源和雲端計算的好處。
許多公共雲服務至少部分基於開源平臺或工具,但云服務本身並不是開源的。然而,這並不意味著使用雲意味著錯過了開源的好處。透過正確的方法,你可以同時享受開源和雲端計算的便利。
開源與雲:一段麻煩的歷史
當雲端計算首次出現時,它在自由開源軟體的倡導者中引發了不少擔憂。例如,GNU創始人Richard Stallman警告說,雲平臺“讓其他人掌握了你的計算能力”。
他提出的觀點是,當你使用雲服務或軟體即服務(SaaS)應用程式時,你使用的是一個由外部供應商控制的計算環境。雲供應商很少釋出其服務和應用程式的原始碼。即使他們這樣做了,使用者也無法修改程式碼來改變服務的工作方式、控制它如何管理他們的資料,或者享受與在自己的計算機或伺服器上執行開源軟體相關的其他基本自由。
開源和私有云
解決這個難題的一種方法是使用開源平臺(如OpenStack或CloudStack)構建私有云。
如果你有自己建立和管理雲端計算環境所需的資源,這是一個好主意。但這是相當多的工作。它還要求有自己的託管基礎設施。這樣你錯過了公共雲的便利性、無限的可擴充套件性和無資本支出的好處。
在公共雲上執行開源軟體
在雲中執行開源軟體還有另一種方法,它提供了開源的大部分好處和公共雲的大部分好處:使用公共雲基礎設施託管自己管理的開源軟體。
換句話說,你可以在AWS EC2例項或Azure虛擬機器上執行任何你想要的開源應用程式,比如Apache HTTP伺服器、WordPress或Elasticsearch。
當然,你不會完全控制底層基礎設施。你也不能阻止公共雲提供商收集關於你在其伺服器上所做工作的資料。在這些方面,如果在自己的私有伺服器上執行開源,你將無法充分利用隱私和可擴充套件性。
折衷的是,你可以無限制地擴充套件主機基礎設施,只需要為實際使用的託管資源付費,而且你不必預先購買任何伺服器來執行應用程式。
開源即託管服務
第三種方法是使用雲供應商提供的託管服務在雲中執行開源軟體。例如,你可以透過AWS EKS或Azure AKS執行Kubernetes。或者,你可以使用AWS OpenSearch,而不是自己設定Elasticsearch(及相關軟體)。
開源作為公共雲中的託管服務的好處在於它簡單方便。你不必自己配置基礎設施或安裝開源軟體。
另一方面,你失去了開源帶來的所有靈活性。你只能以雲供應商支援的方式使用軟體,修改軟體配置的能力通常是有限的。當然,你不能修改軟體的原始碼。換句話說,你最終會遇到“軟體作為服務替代品”的情況。
從好的方面來看,有人可能會說,在公共雲中使用開源作為託管服務可能是以授予使用者更多自由的方式使用相同開源平臺的墊腳石。例如,如果你執行EKS,可能最終會決定自己部署Kubernetes,而不是依賴託管服務。或者有一天你可能會從OpenSearch轉向一個自我管理的ELK棧。
結論
無論你如何劃分,在雲中執行開源,而不是在你自己的私有基礎設施上,都有一些缺點。它可能需要比其他基於雲的部署選項付出更多的努力,而且你對軟體和資料的控制可能會減少。
但是,考慮到不同的部署方法,通常可以在雲中以一種讓你實現大部分目標的方式執行開源,同時最小化缺點。你只需要選擇正確的策略。
來自 “ 開源雲中文社群 ”, 原文作者:開源雲中文社群;原文連結:https://www.itprotoday.com/performance-management/3-ways-leverage-open-source-cl,如有侵權,請聯絡管理員刪除。
相關文章
- 在雲中利用開源軟體進行開發以提高創新能力
- Java中在迭代時新增元素的3種方法Java
- 在Linux中修改開啟檔案數量限制的3種方法Linux
- 在Excel中製作下拉選單的3種方法Excel
- Spring Boot 3中實現多種身份驗證方法開源案例Spring Boot
- 4 種開源雲安全工具
- BC++Builder3.0中各種資源的利用 (轉)C++UI
- 整合雲和企業資料的 3 種方法
- MySQL中3種清除binlog的方法!MySql
- Github改變開源世界的七種方法Github
- 在RFT中關閉所有IE瀏覽器視窗的3種方法瀏覽器
- JS中陣列的遍歷方法(3種)JS陣列
- React 中獲取資料的 3 種方法:哪種最好?React
- 在JavaScript中判斷整型的N種方法JavaScript
- 在Java中呼叫Groovy方法的又一種方法:使用介面Java
- 在騰訊雲上部署開源專案
- 四種常見的3D點雲標註方法3D
- Python中列表去重常用的3種方法!Python
- 在 Java 中初始化 List 的五種方法Java
- 在 Ruby 中執行 Shell 命令的 6 種方法
- 在Java中反轉字串的10種方法[Snippets]Java字串
- 在PHP中陣列遍歷的三種方法PHP陣列
- python中執行命令的3種方法小結Python
- 在 Windows 中執行 Linux 命令的 4 種方法WindowsLinux
- Billboards 技術在Unity 中的幾種使用方法Unity
- 在儲存過程中建立表的兩種方法儲存過程
- 開源點雲庫torch-points3d的嘗試S33D
- 在echarts3中使用字元雲EchartsS3字元
- 一種在客戶端利用js實現對資料校驗的方法客戶端JS
- 利用阿里雲的源yum方式安裝Mongodb阿里MongoDB
- 在C#中利用Keep-Alive處理Socket網路異常斷開的方法C#Keep-Alive
- 前端中的同源策略與三種跨域資源共享方法前端跨域
- iOS 開發中 runtime 常用的幾種方法iOS
- Linux 中實時檢視日誌的3種方法Linux
- 在區塊鏈專案中掙錢的五種方法區塊鏈
- 4個用於在雲原生環境中執行虛擬機器的開源工具虛擬機開源工具
- Win10系統開啟Windows Powershell的3種方法Win10Windows
- 尋找在 GitHub 上參與開源專案的方法Github