== 背景 ==
阿里云的ecs,提供的实例id, ip都不方便记忆,当管理的机器数量增加时,使用实例id/ip管理机器是不现实的。
幸好阿里云提供对实例进行命名,但不幸的是,对应的api不支持根据实例的名称获取实例的ip信息。
== 命名规范 ==
为了便于管理,我们制定阿里云server的命名规范如下,
* 规范: environment.offset.module.serverType.idc
* 举例: online.0.myModule.ecs.qd
* 说明:
* environment: 服务环境,online|deployment|test|sandbox等
* offset: 实例id, 从0开始
* module: 模块名称,如cofood, wxcloud-admin等
* product: 所属项目组,由于模块数较少,此项暂时不要
* serverType: 服务器类型,ecs/oss/rds/slb等
* idc: 阿里云数据中心,bj/hz/qd/hk/sz等
比较麻烦的一点是,需要手工把这部分信息录入到数据库中,做为机器的元数据,供其他service(监控、部署等)调用。
暂时没有相当什么自动化的手段。
== 总体设计需求 ==
1. 提供http api && cli查询:
a. 根据ip查实例信息
b. 根据environment,module,serverType,idc的一个或几个字段进行查询,支持*做匹配符
2. 初期提供web页面进行手工录入机器信息
== 数据库设计 ==
根据不同的服务器类型,分不同的表。也可以根据地域分表
如ecs表结构如下,
| id | environment | offset | module | idc | ip | external_ip |
== 后记 ==
其实有了这个数据库之后,后续就没有必要修改ecs的实例名称了。所有的信息都在数据库中,所有的系统都使用数据库中的元数据。
阅读(1191) | 评论(0) | 转发(0) |