CacheCloud

Redis 私有云平台
授权协议 Apache
开发语言 JavaScript
所属分类 管理和监控、 DevOps/运维工具
软件类型 开源软件
地区 国产
投 递 者 戚勇
操作系统 跨平台
开源组织 搜狐
适用人群 未知
 软件概览

一、CacheCloud 是做什么的

CacheCloud 提供一个 Redis 云管理平台:实现多种类型Redis StandaloneRedis SentinelRedis 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两套配置作为测试、线上的隔离。属性配置说明:

属性名 说明 示例
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


3、启动cachecloud系统

mvn spring-boot:run

1. 构建:mvn -Ponline clean package
2. 上传war包到特定目录下:如/opt/cachecloud-web
3: 拷贝项目中的cachecloud-web.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

(9999是tomcat的端口号,具体要参考第三节中的online.properties和local.properties中的web.port

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

  • 环境: maven mysql jdk1.8 1.下载源码包 官网  https://github.com/sohutv/cachecloud 下载 cachecloud-master.zip 2.解压 unzip cachecloud-master.zip -d /opt/ 3.初始化数据库 登录数据库执行 mysql>create database cache_cloud; mysql> us

  • 一、CacheCloud介绍 该项目由搜狐开源,源代码托管至github上,地址为:https://github.com/sohutv/cachecloud。   CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少运维成

 相关资料
  • 介绍如何在云联壹云上纳管私有云平台,如ZStack、DStack、OpenStack等。 私有云平台纳管说明 云联壹云 平台支持纳管ZStack、DStack、OpenStack等私有云平台,通过云账号对接私有云平台,调用私有云平台上API同步并管理私有云平台上的资源,并支持在 云联壹云 平台上创建私有云平台的的虚拟机等。 纳管流程 在 云联壹云 平台纳管私有云平台流程如下: 流程 平台 配置要求

  • 介绍如何使用云联壹云提供的私有云功能。 云联壹云 提供内置私有云的功能,本章节用于帮助用户快速创建 云联壹云 平台的虚拟机。 概念介绍 区域:区域为物理概念,一般为数据中心的地理区域,一般为城市,如北京等。 云联壹云 私有云只有一个区域,只支持改名。 可用区:可用区是区域下电力和网络相互独立的物理区域,一般为机房名称,例如望京,酒仙桥等。 VPC:专有网络VPC(Virtual Private C

  • 介绍如何在云联壹云上纳管公有云平台,如阿里云、AWS、Azure、华为云、腾讯云、UCloud、谷歌云、天翼云、移动云等。 公有云纳管说明 云联壹云 平台支持纳管阿里云、AWS、Azure、华为云、腾讯云、UCloud、谷歌云、天翼云、移动云等公有云平台,通过云账号对接公有云平台,调用公有云平台上API同步并管理公有云平台上的资源,并支持在 云联壹云 平台上创建公有云平台的的虚拟机等。 纳管流程

  • Amazon Virtual Private Cloud (VPC)允许用户在虚拟网络中使用AWS资源。 用户可以根据需要自定义其虚拟网络环境,例如选择自己的IP地址范围,创建子网以及配置路由表和网络网关。 可与Amazon VPC一起使用的AWS服务列表包括 - 亚马逊EC2 亚马逊53号线 亚马逊WorkSpaces Auto Scaling Elastic Load Balancing AW

  • 1.自我介绍 2.滴滴实习经历 3.对于Spring原理理解 4.IOCAOP 5.用AOP干啥了 6.在Spring里实现过什么比较底层的东西 没用temple,自定义了配置,通过工厂实现了多库数据库连接对象的管理,实现了类似分库分表的效果 7.hashmap数据结构 8.大于多少链表转为红黑树 9.红黑树会退化成链表吗 XXXX这个没注意过寄 10.hashmap扩容过程 11.hashmap

  • 我按照这个示例从Cloud Function连接到Postgres Cloud SQL:https://cloud.google.com/functions/docs/sql. 当我使用公共 IP 创建测试云 SQL 实例并触发云函数时,它会连接到云 SQL 实例并返回一些内容。出于安全原因,我不能将公共 IP 保留为打开状态,因此当我在云 SQL 实例上选择专用 IP 时,我得到: 我无法从文档

  • 本文向大家介绍蘑菇街 私有云Docker实例应用,包括了蘑菇街 私有云Docker实例应用的使用技巧和注意事项,需要的朋友参考一下 对于蘑菇街而言,每年的11.11已经成为一年中最大的考验,考验的是系统稳定性,容灾能力,紧急故障处理,运维等各个方面的能力。蘑菇街的私有云平台,从无到有,已经经过了近一年的发展,生产环境上经历了3次大促,稳定性方面得到了初步验证。本文我将从架构、技术选型、应用等角度来

  • GCP建议通过私有IP连接使用云SQL代理https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine#before_you_begin.如果应用程序不想利用云SQL代理,而是选择私有IP连接,则没有建议、文档或流程来确保私有IP连接的安全或建立必要的身份验证。 除了专用 IP 连接之外,应用程序还应执行哪些操作,以使其等效于云