03.03 玩轉混合雲必備的頂級開源工具

企業現在正在使用各種IT資源來增強業務。當成本是考量最多的部分,而免費使用和可修改的開源工具能幫助企業降低成本。同時,雲供應商還提供了許多新工具,來幫助企業從雲服務中獲得最大價值。這些工具使企業能夠將預算和人力用於更具戰略意義的業務項目中。利用開源雲工具使企業本地組件和基於雲的組件協同工作。今天,介紹一些不錯的開源雲工具。

Grafana

Grafana允許查詢,可視化和了解指標,無論數據存儲在哪裡,你可以與團隊創建,瀏覽和共享儀表板,並促進數據驅動的文化。其最佳用例是時間序列數據,如工業傳感器,天氣和進程控制。Grafana用Go和Node.js編寫。它帶有一個內置的名為sqlite3的嵌入式數據庫。也可以使用其他數據存儲(如MySQL,PostgreSQL,Graphite,Influx DB,Prometheus和Elasticsearch)來存儲數據。它還通過使用其他插件來支持其他數據存儲。

Grafana可以安裝在Linux,Windows,Docker和Mac上。它帶有內置的用戶控件和身份驗證機制,例如LDAP,Google Auth和GitHub,可幫助控制對儀表板的訪問。除了上面列出的身份驗證之外,Grafana還支持AD身份驗證。Grafana具有一個API接口,可用於保存儀表板,創建用戶和更新數據源。

玩轉混合雲必備的頂級開源工具

Grafana儀表板

你可以輕鬆創建動態且可重複使用的儀表板,還可以選擇創建模板以進行重用。使用保留的標籤過濾器瀏覽和搜索日誌可以使創建儀表板的工作更加輕鬆。甚至可以使用臨時查詢來瀏覽特定數據並向下獲取取源。Grafana具有內置的警報系統,可以使用該系統定義指定指標的警報規則。它會不斷評估它們,並通過電子郵件或通過Slack等工具將通知發送到系統。

將Grafana與Kibana進行比較時,前者更適合基於特定指標(例如CPU/磁盤/IO使用率)的時間序列數據。但是Kibana更適合使用Elasticsearch功能的分析儀表板。因此,我們不能使用Grafana進行數據搜索和探索。

Terraform

Terraform是HashiCorp提供的雲基礎架構工具。它用於有效地構建,更改和版本化基礎結構。簡而言之,Terraform對交付基礎設施即代碼(IAAC)很有用。它支持大多數公有云服務提供商的基礎架構以及本地基礎架構。

Terraform與平臺無關,可幫助你部署自動測試,源代碼控制等編碼原則。它得到了社區的大力支持,許多企業已開始使用它來管理其基礎架構。

你可以進行Terraform的試運行,它無需提交即可模擬實際更改,此功能對開發人員非常有用。Terraform資源圖創建所有資源的視圖,包括每個資源之間的依賴關係。Terraform利用各自的雲提供商的API來管理基礎架構,從而減少了對其他資源的需求。

Terraform是一種描述性語言,用於描述資源的目標級別。流行的雲供應商可以使用插件來管理各自的雲資源。此外,可以使用多種語言創建自己的插件。Terraform主要支持Go語言。

git-secret

開發人員通常的做法是對代碼中使用的密碼/憑據進行加密,然後將其保存在安全的地方。為此,我們有多種工具,其中Vault是其中之一。git-secret是一個用於在Git存儲庫中存儲秘密的簡單工具。git-secret使用gpg加密和解密。

用例有:

在集中位置管理密鑰以進行加密和解密

版本控制的加密,以實現更好的管理

訪問控制和利用誰可以加密和解密

不得將任何密碼以純文本形式存儲

可以使用git-secrets來存儲以純文本格式存儲的Oauth密鑰,DB密碼,應用程序密鑰和其他密鑰。

git-secret是一個用於在Git存儲庫中存儲私有數據的工具。它使用gpg加密密碼,並使用所有受信任用戶的公共密鑰跟蹤文件。因此,用戶只能使用各自的個人密鑰解密文件,並且此處不會更改任何密碼。當某人離開企業或被替換時,只需刪除公鑰,重新加密文件,他們將無法再解密。

Aardvark和Repokid

Aardvark和Repokid可以確保角色在大型動態雲部署中僅保留必要的特權。這些是Netflix提供的開源雲安全工具,用於適應快速創新和分佈式擴展。它們幫助實現了最小特權訪問的原則,而不會影響性能。

所有公有云提供商都具有身份和訪問管理(IAM)服務,可幫助為用戶創建精細的策略。但是,自定義粒度策略增加了複雜性,這會使開發人員創建產品更加困難。缺少必要的權限會使應用程序失敗,而過多的權限會帶來安全漏洞和合規性問題。

Aardvark使用Phantoms登錄到雲提供商的控制檯,並檢索帳戶中所有IAM角色的Access Advisor數據。它將最新的Access Advisor數據存儲在DynamoDB數據庫中,並公開RESTful API。

Aardvark支持線程化以同時檢索多個帳戶的數據,並在不到20分鐘的時間內刷新數據。

DynamoDB表具有有關策略,權限計數(總數和未使用),角色是否符合回購條件或是否經過過濾以及最後一次刪除每個角色的未使用權限(回購功能)的數據,如圖. Repokid將DynamoDB中存儲的數據與角色未使用的服務一起使用,並刪除未使用的權限。

玩轉混合雲必備的頂級開源工具

Aardvark學習過程

一旦對角色進行了充分的概要分析,Repokid的repose功能便會修改該角色附帶的內聯策略,以排除未使用的權限。Repokid還維護以前策略版本的緩存,以防需要將角色恢復到以前的狀態。回購功能可以應用於單個角色,但通常用於定位帳戶中的每個合格角色。

OpenShift

OpenShift是一項類似於針對內部部署和雲平臺的“容器即服務”的服務。它基於由Kubernetes在Red Hat Enterprise Linux的基礎上編排和管理的Docker容器構建。V3的最新版本具有許多新功能。OpenShift項目由Kubernetes,Docker,CoreOS,Framework,Crio,Prometheus等支持。

玩轉混合雲必備的頂級開源工具

OpenShift容器平臺架構

將容器分組在一起極大地增加了可帶入OpenShift的應用程序的數量。這帶來了具有單個IP地址和共享文件系統的好處。由於OpenShift容器本質上是不可變的,因此可以在運行時將應用程序代碼,從屬庫和機密附加到容器。這使管理員和集成商可以將代碼和補丁與配置和數據分開。OpenShift容器框架如圖所示。

OpenShift和Kubernetes是作為一組微服務構建的,這些微服務通過常見的REST API一起工作以更改系統。這些非常API可供系統集成商使用,並且可以禁用那些相同的核心組件以允許替代實現。OpenShift在REST API上公開了細粒度的訪問控制,這使服務集成商的工作變得容易。

BOSH

BOSH是一個與雲無關的開源工具,用於複雜分佈式系統的發佈,部署和生命週期管理。大多數發行版和託管Cloud Foundry環境都使用BOSH全面管理環境,以便可以專注於編碼和交付業務價值。由於BOSH的靈活性和強大功能,Google和Pivotal使其成為了Kubo項目(Kubernetes的Web規模發佈工程)的核心。

BOSH的工作方式類似於分佈式系統,在該系統中,運行在不同虛擬機上的各個軟件組件的集合作為一個更大的系統一起工作。

玩轉混合雲必備的頂級開源工具

BOSH部署

下面列出了BOSH的主要組件。

Stem cell:這類似於用於創建虛擬機的OS的鏡像。它將基本操作系統與部署中捆綁的其他軟件包隔離。

Release:這是幹Stem cell之上的一層,描述了應該部署什麼軟件以及應該如何配置它。它包含配置屬性和模板,啟動腳本,源代碼,二進制工件等。

Deployment manifest:BOSH使用此YAML清單文件將其部署到目標基礎結構,監控虛擬機或容器的運行狀況,並在必要時進行修復。

雲提供商接口:CPI是BOSH用於與基礎架構進行交互以創建和管理Stem cell,VM和磁盤的API。

其他環境中也採用了BOSH來打包和管理各種軟件。BOSH的優勢在於它可以同時管理第一天和第二天的操作任務,例如配置軟件並將其升級到新版本,測試將整個系統從一個版本升級到另一個版本,調整主機大小以及處理安全更新。

Spinnaker

Spinnaker是一個開源的多雲連續交付平臺,用於以高速發佈軟件更改。它結合了強大而靈活的管道管理系統以及來自主要雲提供商服務的集成,這些服務包括AWS EC2,Kubernetes,Google Compute Engine,Google Kubernetes Engine,Google App Engine,微軟Azure,OpenStack,Cloud Foundry和Oracle Cloud Infrastructure。

它通過創建部署管道來自動化發佈,這些管道可以運行集成和系統測試,上下移動服務器組以及監控部署。它通過Git events,Jenkins,Travis CI,Docker,CRON或其他Spinnaker管道觸發管道。

玩轉混合雲必備的頂級開源工具

Spinnaker部署管道

Spinnaker創建並部署不可變的鏡像,以實現更快的部署,更容易的回滾並消除難以調試的配置漂移問題。它利用內置的部署策略(例如紅色/黑色和金絲雀部署)利用雲中的不變基礎架構。

Spinnaker的應用程序管理功能可幫助管理雲資源。Spinnaker作為服務的集合運行,有時稱為應用程序或微服務。應用程序,集群和服務器組是Spinnaker用來描述服務的關鍵概念。負載均衡器和防火牆描述了你的服務如何向用戶公開。

Spinnaker管道是關鍵的部署管理結構,它由一系列動作組成。可以沿管道在階段之間傳遞參數,如圖所示。你可以手動啟動管道,也可以通過事件自動觸發管道,例如作業的完成,註冊表中出現的新鏡像,CRON計劃或另一個管道中的動作。可以配置管道,以在管道執行期間的各個時間點通過電子郵件,Slack或SMS通知。

Spinnaker以雲原生部署策略為先構建,處理基礎編排,例如,驗證運行狀況檢查,禁用舊服務器組和啟用新服務器組。它支持紅色/黑色(又名藍色/綠色)策略,並在積極開發中採用滾動的紅色/黑色和金絲雀策略,如圖所示。

玩轉混合雲必備的頂級開源工具

Spinnaker部署策略


分享到:


相關文章: