搜狐視頻Redis私有云平臺CacheCloud

1、CacheCloud是作什麼的html

CacheCloud提供一個Redis雲管理平臺:實現多種類型(Redis Standalone、Redis Sentinel、Redis Cluster)自動部署、解決Redis實例碎片化現象、提供完善統計、監控、運維功能、減小開發人員的運維成本和誤操做,提升機器的利用率,提供靈活的伸縮性,提供方便的接入客戶端
cache_cloud_01mysql

2、CacheCloud提供哪些功能linux

  • 監控統計: 提供了機器、應用、實例下各個維度數據的監控和統計界面。
  • 一鍵開啓: Redis Standalone、Redis Sentinel、Redis Cluster三種類型的應用,無需手動配置初始化。
  • Failover: 支持哨兵,集羣的高可用模式。
  • 伸縮: 提供完善的垂直和水平在線伸縮功能。
  • 完善運維: 提供自動運維和簡化運維操做功能,避免純手工運維出錯。
  • 方便的客戶端:方便快捷的客戶端接入。
  • 元數據管理: 提供機器、應用、實例、用戶信息管理。
  • 流程化: 提供申請,運維,伸縮,修改等完善的處理流程

3、CacheCloud解決什麼問題web

cache_cloud_02

1.部署成本redis

Redis多機(Redis-Sentinel, Redis-Cluster)部署和配置相對比較複雜,較容易出錯。
例如:100個redis數據節點組成的redis-cluster集羣,若是單純手工安裝,既耗時又容易出錯。spring

2.實例碎片化sql

做爲一個Redis管理員(能夠看作redis DBA)須要幫助開發者管理上百個Redis-Cluster集羣,分佈在數百臺機器上,人工維護成本很高,須要自動化運維工具。數據庫

3. 監控、統計和管理不完善tomcat

一些開源的Redis監控和管理工具,例如:RedisLive(Python)、Redis Commander(Node.js),Redmon(Ruby)不管從功能的全面性(例如配置管理,支持Redis-Cluster等等)、擴展性很難 知足需求。安全

4. 運維成本

Redis的使用者須要維護各自的Redis,可是用戶可能更加善於使用Redis實現各類功能,可是沒有足夠的精力和經驗維護Redis。 Redis的開發人員如同使用Mysql同樣,不須要運維Mysql服務器,一樣使用Redis服務,不要本身運維Redis,Redis由一些在Redis運維方面更有經驗的人來維護(保證高可用,高擴展性),使得開發者更加關注於Redis使用自己。

5. 伸縮性

本產品支持Redis最新的Redis-Sentinel、Redis-Cluster集羣機構,既知足Redis高可用性、又能知足Redis的可擴展性,具備較強的容量和性能伸縮能力。

6. 經濟成本

機器利用率低,各個項目組的Redis較爲分散的部署在各自服務器上,形成了大量閒置資源沒有有效利用。

7. 版本不統一

各個項目的Redis使用各類不一樣的版本,不便於管理和交互。

4、CacheCloud提供的價值

  • 規模化自動運維: 下降運維成本,下降人爲操做出錯率。
  • 自由伸縮: 提供靈活的伸縮性,應用擴容/收縮成本下降,機器資源獲得重複利用。
  • 團隊提高,開源貢獻:提高雲產品開發設計經驗,本身做爲開發者和使用者,Eating your own dog food。

5、CacheCloud在搜狐的規模

  • 天天100+億次命令調用
  • 2T+的內存空間
  • 800+個Redis實例
  • 100+臺機器

6、CacheCloud環境需求

  • Java 7
  • Maven 3
  • MySQL
  • Redis 3

7、CacheCloud快速開始

一、初始化數據庫

導入項目中cachecloud.sql初始化庫表結構。默認插入admin超級管理員

二、CacheCloud項目配置

使用了maven做爲項目構建的工具,提供了 local.properties和online.properties兩套配置做爲測試、線上的隔離。 屬性配置說明:

屬性名 說明 示例
cachecloud.db.url mysql驅動url jdbc:mysql://127.0.0.1:3306/cache-cloud
cachecloud.db.user mysql用戶名 admin
cachecloud.db.password mysql密碼 admin
cachecloud.machine.username 服務器用戶名,用於ssh ${your machine username}
cachecloud.machine.password 服務器密碼,用於ssh ${your machine password}
web.port spring-boot內嵌tomcat啓動端口 8080

三、啓動cachecloud系統

(1). 本地啓動:在cachecloud-web模塊下運行

mvn spring-boot:run

(2). 生產環境

1. 構建:mvn -Ponline clean package
    2. 上傳war包到特定目錄下:如/opt/cachecloud-web
    3: 拷貝cachecloud-web-1.0-SNAPSHOT.conf配置到/opt/cachecloud-web目錄下,注意必須跟war包同目錄才生效
    4. 做爲linux服務啓動:
    sudo ln -s /opt/cachecloud-web/cachecloud-web-1.0-SNAPSHOT.war /etc/init.d/cachecloud-web 
    /etc/init.d/cachecloud-web start

(3). 登陸確認

  • a) 訪問:http://127.0.0.1:9999
    (9999是tomcat的端口號)
  • b) 若是訪問正常,請使用用戶名:admin、密碼:admin訪問系統,跳轉到應用列表下:
    cache_cloud_03

四、添加機器

(1). 運行腳本:
cachecloud項目中的cachecloud-init.sh腳本是用來初始化服務器的cachecloud環境,主要工做以下:

  • a). 建立cachecloud項目用戶:由於cachecloud項目的部分功能(redis啓動、服務器監控)是經過ssh完成的,因此這裏的用戶和密碼要和項目中的相對應,具體詳見第三節。
  • b). 建立cachecloud項目的工做目錄、數據目錄、配置目錄、日誌目錄、redis安裝目錄、臨時目錄等等。
    (/opt/cachecloud/data、/opt/cachecloud/conf、/opt/cachecloud/logs、/opt/cachecloud/redis、/tmp/cachecloud)
  • c). 安裝最新的release版本的Redis

(2). 腳本執行

  • (a). 使用root登陸目標服務器。
  • (b). 將cachecloud-init.sh腳本拷貝到目標服務器當前用戶目錄下。
  • (c). 執行 sh cachecloud-init.sh ${yourusername}
  • (d). 兩次確認密碼
  • (e). 一路安裝直到成功。

(3). 建議和警告

  • (a). 請在root用戶下執行初始化腳本,由於初始化腳本涉及到了用戶的建立等較高的權限。
  • (b). 出於安全的考慮,所選的機器最好不要有外網IP地址。
  • (c). 用戶名和密碼最好不要用cachecloud, 密碼儘量複雜。
  • (d). 機器的ssh端口最好是22。
  • (e). 請確保/opt/有足夠的硬盤空間,由於/opt/cachecloud/data要存儲RDB和AOF的持久化文件,若是硬盤太小,會形成持久化失敗。 (若是硬盤確實很小,建議創建一個軟連接到/opt/cachecloud/data,且保證軟連接的目錄也是username用戶,必定要保證/opt /cachecloud的目錄結構)
  • (f). 腳本中目前使用的是redis-3.0.6,若有須要請自行替換,建議使用3.0 release之後的版本。

(4). 添加機器
進入管理員界面(http://ip:port/manage/total/list),進入機器管理,點擊添加機器,添加機器信息是開通應用的基礎。
cache_cloud_04
搜狐的兄弟們還錄製了視頻教程,真乃開源的良心做品:http://my.tv.sohu.com/pl/9100280/index.shtml

免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/

相關文章
相關標籤/搜索