技术转型之路二:机器的群组划分

机器分组和命名

上百台机器的规模在管理上如果没有合理的划分和规划,时间一长非常容易陷入混乱,比如

  • 难以评估现有业务规模和资源利用率

  • 难以进行容量规划和动态扩容需要

公司业务使用的 ucloud 云,ucloud 提供了业务组(tag)和主机名称(name)来表示机器,由此可以遵循 from bottom to top 的思路进行划分,即所有机器按照提供的基础功能进行划分,tag 表示其所提供的基础功能,name 表示具体的业务或者实现:

由此可以把所有机器按照这个思路划分为:

  • cache
  • nginx
  • MySQL
  • api
  • worker
  • devops
  • crontab
  • consul

等不同的业务组(tag),每个业务组下面又根据具体的业务逻辑或实现进行命名,以 cache 为例,可以分为

  • codis-server
  • codis-proxy
  • redis
  • sentinel
  • twproxy
  • ssdb

以后不论是机器扩容还是缩容都可以根据这些 tag 和 name 自动进行,然后再根据这些 tag 和 name 自动获取 ip,动态地在配置服务中心进行增减。

动态生成各业务服务的快捷入口

借助云提供的 API 可以非常方便的在跳板机生成所有服务器的快捷入口,动态的在跳板机实现对所有机器的快捷访问,生成类似快捷方式:

1
2
3
4
5
6
alias s_cache_redis_cache_20.235='ssh 10.10.20.235'
alias s_cache_redis_cache_64.207='ssh 10.10.64.207'
alias s_cache_redis_cache_29.166='ssh 10.10.29.166'
alias s_cache_redis_cache_44.213='ssh 10.10.44.213'
alias s_cache_redis_cache_95.237='ssh 10.10.95.237'
alias s_cache_redis_cache_86.173='ssh 10.10.86.173'
三月沙 wechat
扫描关注 wecatch 的公众号