查看原文
其他

cachecloud:支持Redis多种架构的云管理平台




读完需 6 分钟

速读需 3 分钟 



简述

随着对运维工作的不断深入,平台化逐渐成为我们对各组件的主要管理手段,如ELK、Zabbix、JumpServer等,在此我们特推荐CacheCloud平台。

https://github.com/sohutv/cachecloud

CacheCloud是一个Redis云管理平台:支持Redis多种架构(Standalone、Sentinel、Cluster)高效管理、有效降低大规模redis运维成本,提升资源管控能力和利用率。平台提供快速搭建/迁移,运维管理,弹性伸缩,统计监控,客户端整合接入等功能。


功能架构及规模

1.功能架构

  • Redis搭建:环境初始化、实例部署安装、类型架构支持;

  • 客户端接入:Java-SDK接入、客户端监控、其他语言接入;

  • 运维管理:宿主环境、资源管理、应用审计、应用运维、应用质量监控、应用拓扑诊断;

  • 弹性伸缩:资源评估、垂直伸缩、水平伸缩、外部接入;

  • 统计监控:指标采集、应用统计、节点统计、机器统计、监控报警、问题诊断;


2.使用规模

  • 400亿+ commands/day

  • 15T+ Memory Total

  • 300+ app Total / 3000+ Instances Total

  • 200+ Machines Total


快速接入

”快速接入“ 帮我们快速启动cachecloud中台,并创建一个应用。从下图中可以看到cachecloud如何使用及管理流程:

  • 管理平台主要用于资源管理、用户请求审批、应用的创建与审批;

  • 用户平台主要用于用户申请、应用申请及客户端的接入;


1

准备工作


1.CacheCloud环境需求

  • JDK 7+

  • Maven 3

  • MySQL 5.5

  • Redis 3


2.war包准备

下载war包:cachecloud-web.war

也可以clone源码

//clone项目git clone https://github.com/sohutv/cachecloud.git//打包mvn clean package


2

初始化数据库


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

创建数据库:

url: jdbc:mysql://xxx:3306/cachecloud_openuser: 用户名password: 密码

导入建表文件:/cachecloud-open/cachecloud-web/sql/cc2.0.sql


3

启动工程


准备配置文件:application-open.yml,放到war包同目录下。

#配置应用名称spring: application: name: cloud.cachecloud-web.open#配置数据库cachecloud: primary: #mysql数据库 url: jdbc:mysql://xxx:3306/cachecloud_open user: 用户名 password: 密码 redis: #配置cachecloud-web需要的redis,用户存储任务流日志,可稍后配置 main: host: 127.0.0.1 port: 6379 password:#配置访问端口,默认8080server: port: 8080

启动工程

//启动web工程nohup java -jar -Dspring.profiles.active=open cachecloud-web.war &


访问web:http://localhost:8080/manage/login 使用默认管理员账户登录:用户名 admin 密码 admin。



4

系统初始化


系统已有默认配置,通过对系统配置页面可以动态修改系统的一些配置,例如ssh的相关信息,客户端版本信息,机器报警阀值,文档地址、maven仓库、手机和邮件报警、值班联系人配置等等,具体示意图如下:


5

创建用户


新用户注册:http://localhost:8080/user/register 提交用户注册申请。


管理员审核(http://localhost:8080/manage/app/auditList)通过后,用户可登录/使用系统。


6

资源准备


1.cachecloud-init.sh脚本准备

  •  初始化环境变量

  •  创建用户;

  •  创建默认redis路径并授权;

  •  默认安装"redis-3.0.7" "redis-3.2.12" "redis-4.0.14" "redis-5.0.9";

     注意:Redis6.0及以上版本需要依赖操作系统gcc4.9.0以上版本编译

  •  @usage: sh cachecloud-init.sh [username]


2.执行脚本

采用”用户名/密码“或“公钥”两种授权方式,请确保机器的用户名/密码与cachecloud后台”系统配置“页面的”机器ssh用户名/机器ssh密码“一致。

使用root登录目标服务器;将cachecloud-init.sh脚本拷贝到目标服务器当前用户目录下/opt ;执行 sh cachecloud-init.sh ${username},默认username="cachecloud-open";两次确认密码;一路安装直到成功。

3.添加机器

将刚准备好资源的机器添加到cachecloud中台:http://localhost:8080/manage/machine/index?tabTag=machine


7

创建应用


1.申请应用

用户申请应用http://localhost:8080/admin/app/init。


申请后由管理员审批:http://localhost:8080/manage/app/auditList,需点击”审批处理“。


2.部署应用

点击”生成部署预览“,确认拓扑无误,点击”开始部署“,跳转到应用部署任务流。


通过:等待应用部署成功后,在审批页点击”通过“,就此应用开通成功。此时就可以进行客户端接入了。


(提示:任务流日志是存储在redis中的,即项目启动时配置文件application-open.yml中的cachecloud.redis信息)


总结

CacheCloud将运维过程中的各种Redis架构集中管理、按需分配,大大节省了运维的成本;而且友好的管理界面、全面的统计监控提升了运维的管理效率。如此优雅的方案,我们可以将其应用提上工作日程了。


Jenkins+Ansible:助力基础设施建设

运维思索:接地气的运维自动化建设

ansible自动化:备份管理实践

事件推送网关: “让基础设施建设动起来”

K8SEASY:一键安装K8S高可用集群

一套包含完整前后端的系统如何在K8S中部署?




你与世界

只差一个

公众号




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存