项目地址:https://github.com/sohutv/cachecloud/

一、CacheCloud是做什么的

CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少开发人员的运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入客户端。

二、CacheCloud提供哪些功能

  • 监控统计: 提供了机器、应用、实例下各个维度数据的监控和统计界面。

  • 一键开启: Redis Standalone、Redis Sentinel、Redis Cluster三种类型的应用,无需手动配置初始化。

  • Failover: 支持哨兵,集群的高可用模式。

  • 伸缩: 提供完善的垂直和水平在线伸缩功能。

  • 完善运维: 提供自动运维和简化运维操作功能,避免纯手工运维出错。

  • 方便的客户端:方便快捷的客户端接入。

  • 元数据管理: 提供机器、应用、实例、用户信息管理。

  • 流程化: 提供申请,运维,伸缩,修改等完善的处理流程

三、CacheCloud解决什么问题

1.部署成本

Redis多机(Redis-Sentinel, Redis-Cluster)部署和配置相对比较复杂,较容易出错。

例如:100个redis数据节点组成的redis-cluster集群,如果单纯手工安装,既耗时又容易出错。

2.实例碎片化

作为一个Redis管理员(可以看做redis DBA)需要帮助开发者管理上百个Redis-Cluster集群,分布在数百台机器上,人工维护成本很高,需要自动化运维工具。

3. 监控、统计和管理不完善

一些开源的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使用各种不同的版本,不便于管理和交互。

四、CacheCloud提供的价值

  • 规模化自动运维: 降低运维成本,降低人为操作出错率。

  • 自由伸缩: 提供灵活的伸缩性,应用扩容/收缩成本降低,机器资源得到重复利用。

  • 团队提升,开源贡献:提升云产品开发设计经验,自己作为开发者和使用者,Eating your own dog food。

五、CacheCloud在搜狐的规模

  • 每天100+亿次命令调用

  • 2T+的内存空间

  • 800+个Redis实例

  • 100+台机器

六、CacheCloud环境需求

  • Java 7

  • Maven 3

  • MySQL

  • Redis 3

七、CacheCloud快速开始

 1、初始化数据库

导入项目中cachecloud.sql初始化库表结构。默认插入admin超级管理员

2、CacheCloud项目配置

使用了maven作为项目构建的工具,提供了 local.properties和online.properties两套配置作为测试、线上的隔离。 属性配置说明:

3、启动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的端口号,具体要参考第三节中的online.properties和local.properties中的web.port)

(b) 如果访问正常,请使用用户名:admin、密码:admin访问系统,跳转到应用列表下:

4、添加机器


(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),进入机器管理,点击添加机器,添加机器信息是开通应用的基础。

运维帮近期活动预告,点击了解详情

运维帮技术沙龙《架构之美》 (3.26@成都站)

听云《应用性能管理大讲堂》(3.26@北京)

51CTO《 WOT2016运维大会》(4.14@北京)


欢迎加入运维帮QQ技术讨论群:542812110

点我加入运维帮会员,沙龙举办城市你说了算

快乐分享,快乐生活

商务合作,请加微信yunweibang008

内容转载自公众号

运维帮
了解更多

搜狐视频Redis私有云cachecloud开源了相关推荐

  1. 搜狐视频Redis云平台Cachecloud开源-视频教程

    搜狐视频Redis云平台CacheCloud的github主页:https://github.com/sohutv/cachecloud 欢迎关注.star.拍砖 转载请注明出处哈:http://ca ...

  2. 搜狐视频Redis私有云平台CacheCloud

    一.CacheCloud是做什么的 CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone.Redis Sentinel.Redis Cluster)自动部署 ...

  3. Redis云平台Cachecloud开源-视频教程

    有关Redis的入门视频,可以参考:http://carlosfu.iteye.com/blog/2276606 CacheCloud在我们搜狐视频内部运行了接近两年,应该来说是一套非常稳定.靠谱.便 ...

  4. 仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图(二)之SuperIndicator源码分析

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼:http://blog.csdn.net/hejjunlin/article/details/52510431 背景:仿爱奇艺视频,腾讯视频 ...

  5. 仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图介绍(一)

    请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52327435 前言:本篇只是一个介绍这个一个类库,具体实现思路代码会下 ...

  6. 搜狐视频协议分析之Tracker交互协议分析 [20161113]

    续上篇(http://blog.csdn.net/cancanfairy/article/details/53100888),本篇分析搜狐影音的Tracker交互协议,即如何从Tracker处获取对应 ...

  7. 搜狐视频如何开启青少年模式

    搜狐视频开启青少年模式可以避免孩子使用时造成的无意识消费,那么如何开启呢?下面给大家简单介绍一下 1.首先在手机桌面找到[搜狐视频]并点击进入 2.在[我的]页签点击右上角设置图标进入 3.点击[青少 ...

  8. 搜狐视频如何上传原创视频

    很多人都使用搜狐视频,小编给大家分享一下搜狐视频如何上传原创视频相关内容.搜狐视频打造涵盖电影.电视剧.综艺.动漫在内的十余种类型的丰富的正版视频内容库,让搜狐视频进入真正意义上的全类别.高品质时代. ...

  9. 搜狐视频怎么更改头像

    本文播放器家园网小编给大家分享搜狐视频怎么更改头像,如果大家在使用搜狐视频过程当中遇到类似问题,欢迎阅读本文!搜狐视频具有很强的防火墙穿透能力,搜狐视频为用户在任何网络环境下收看流畅的视频节目提供了有 ...

最新文章

  1. 从《翔谈》说起,看美团
  2. python汉诺塔问题输入层数输出整个移动流程_python实现汉诺塔方法汇总
  3. Android系统移植与驱动开发概述
  4. 测试用例 集成测试增删改查_20年高级测试人员的进阶汇总
  5. 关于ReetrantLock
  6. php 随机在文章中添加锚文本_页面SEO优化的锚文本优化概念
  7. 【MySQL】故障分析 | MySQL 优化案例 - 字符集转换
  8. C语言小于n的素数,关于求N以内素数的一点小问题(N小于一亿)
  9. linux模拟gps,Android之GPS研究(实战篇二)
  10. php5.0手册,tp5.0 开发手册下载|
  11. JAVA(jar)软件_Autojar - 打包工具 - 开发工具 - JAVA开源项目 - 开源吧
  12. 电脑网速,别把宽带浪费了,一招提升电脑网速
  13. 解决win7连接不了win10远程桌面
  14. matlab模拟嫦娥奔月,【文章】仿真动画软件设计作品--嫦娥奔月
  15. Python绘制对多角星
  16. mysql造1000万数据_MySQL制作具有千万条测试数据的测试库
  17. Probability Through Experiments
  18. 为啥不建议写内联样式?
  19. Mybatis再学习
  20. IT外企那点儿事(18): 当“we are a team”成为口头禅

热门文章

  1. 编码GBK的不可映射字符
  2. 快速配置Ehcache
  3. 《Oracle大型数据库在AIX UNIX上的实战详解》的集中答疑九 数据库字符集与国家语言...
  4. ASP.NET Core使用Middleware有条件地允许访问路由
  5. 微软用的工具,统一财务三大表及高级分析通用模板
  6. 使用ImpromptuInterface反射方便的创建自定义DfaGraphWriter
  7. ERP平台的自动化测试技术实践
  8. .Net Core WebAPI + Axios +Vue 实现下载与下载进度条
  9. 程序员过关斩将--作为一个架构师,我是不是应该有很多职责?
  10. 新基建火了,开源云计算渠道能做什么?