3. 对象类型与属性建模
在 Jira Assets 中,对象类型(Object Type)是资产模型的骨架,属性(Attributes)则是骨架上的血肉。对象类型回答“这类资产是什么”,属性回答“这类资产有哪些可记录、可查询、可约束的信息”。如果对象类型划分过粗,所有资产挤在一个类型里,属性字段会变得杂乱且大量留空;如果划分过细,又会造成类型爆炸、维护成本上升。因此,本节的核心任务是:理解对象类型的定义方法,掌握属性的数据类型、必填约束与默认值配置,并以“服务器”为对象类型,实际建立主机名、IP 地址、操作系统等属性。
一、对象类型的定义方法
对象类型代表一类具有相同属性集合的资产。定义对象类型时,建议从三个问题入手:这类资产是否共享同一组关键属性?是否由同一角色维护?是否在同一个生命周期阶段被管理?如果答案都是肯定的,就适合归为一个对象类型。例如“物理服务器”和“虚拟机”虽然都是服务器,但前者关注机架位置、序列号、保修期,后者关注宿主机、虚拟化平台、资源配额,属性差异明显,通常应拆分为两个对象类型,而不是硬塞进一个类型里用大量可选字段兼容。
在 Jira Assets 中创建对象类型的路径通常是:进入 Assets 对象架构(Object Schema)→ 选择或新建对象类型 → 定义名称、图标、父类型(如需要继承)→ 添加属性。对象类型名称应使用业务人员能理解的术语,避免用缩写或内部代号。对于服务器场景,可以建立“服务器”对象类型,并进一步用“服务器类型”属性区分物理机与虚拟机,这样既保留了统一查询入口,又能在属性层面区分差异。
二、属性的数据类型与选择依据
Jira Assets 提供多种属性数据类型,选择合适的数据类型直接影响后续的搜索、过滤、自动化和报表能力。常见类型包括:
- 文本(Text):适合主机名、描述、备注等自由文本,但不适合做精确匹配统计。
- 整数/小数(Integer/Decimal):适合 CPU 核数、内存 GB、磁盘容量等数值,可参与范围过滤和计算。
- 日期/日期时间(Date/DateTime):适合采购日期、上线时间、保修到期日,可用于到期提醒。
- 布尔(Boolean):适合“是否在维保”“是否核心系统”等二值判断。
- 单选/多选(Select/Multi-select):适合操作系统、环境、机房等有限枚举值,能保证数据一致性。
- 对象引用(Object Reference):适合建立服务器与机房、负责人、应用系统之间的关联关系。
- 用户(User):适合指定负责人、运维联系人,可直接关联 Jira 用户。
- IP 地址(IP Address):专门用于存储 IPv4/IPv6 地址,支持网段查询。
- URL/Email:适合管理地址、监控链接、联系邮箱。
选择类型时遵循一个原则:能用枚举就不用自由文本,能用数值就不用文本,能用对象引用就不用字符串。例如操作系统如果写成自由文本,会出现“CentOS 7”“centos7”“CentOS-7.9”等多种写法,导致统计困难;改为单选并预置标准值,就能保证一致性。
三、必填约束与默认值
必填约束(Required)用于保证关键属性不缺失。对于服务器对象,主机名、IP 地址、操作系统、环境、负责人通常应设为必填。必填属性在创建对象时若未填写,Jira Assets 会阻止保存,从而避免产生“半成品”资产记录。但必填不宜滥用:如果某个属性在资产创建初期确实无法确定,强行必填会导致用户随意填写占位符,反而污染数据。此时可以先用默认值过渡,待信息补全后再改为必填。
默认值(Default Value)用于减少重复输入并统一初始状态。例如“环境”默认设为“生产”,“状态”默认设为“在用”,“是否在维保”默认设为“是”。默认值不是强制值,用户仍可修改,但它能显著降低录入成本。对于日期类属性,可以设置默认值为当前日期;对于单选属性,默认值必须是预置选项之一。需要注意的是,默认值一旦设置,只影响之后新建的对象,不会自动修改已有对象。
四、服务器对象建模示例
下面以“服务器”对象类型为例,给出一个可直接参考的属性配置表。表中字段、类型、约束均为教学示例,实际项目中应根据组织规范调整。
| 属性名称 | 数据类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 主机名 | 文本 | 是 | 无 | 唯一标识,建议与 CMDB 命名规范一致 |
| IP 地址 | IP Address | 是 | 无 | 支持 IPv4/IPv6,可做网段查询 |
| 操作系统 | 单选 | 是 | 无 | 预置 CentOS 7、Ubuntu 22.04、Windows Server 2019 等 |
| 环境 | 单选 | 是 | 生产 | 生产、测试、开发、灾备 |
| CPU 核数 | 整数 | 否 | 无 | 用于容量统计 |
| 内存(GB) | 整数 | 否 | 无 | 用于容量统计 |
| 负责人 | 用户 | 是 | 无 | 关联 Jira 用户 |
| 所属机房 | 对象引用 | 否 | 无 | 引用“机房”对象类型 |
| 上线日期 | 日期 | 否 | 当前日期 | 用于生命周期管理 |
| 是否在维保 | 布尔 | 否 | 是 | 用于维保提醒 |
建立属性时,建议先在草稿中列出所有候选字段,再逐条判断类型、是否必填、是否有默认值,最后在 Jira Assets 中按顺序创建。创建完成后,可以新建一条测试服务器对象,验证必填拦截、默认值填充和 IP 地址查询是否按预期工作。例如新建时故意不填主机名,系统应拒绝保存;不修改环境时,保存后应自动显示“生产”。
五、建模后的验证与维护
属性配置完成后,不要直接批量导入生产数据。建议先创建 2~3 条测试对象,覆盖以下检查点:必填属性为空时能否保存;默认值是否自动填充;单选属性的选项是否完整;IP 地址能否按网段搜索;对象引用能否正确关联到机房或应用。验证通过后,再通过 CSV 导入或手动录入正式数据。
随着运维实践变化,属性也需要迭代。例如新增“容器平台”字段、把“操作系统”从文本改为单选、将“负责人”从文本改为用户类型。修改属性类型时要注意:Jira Assets 通常不允许直接把已有数据的属性从文本改为单选,需要新建属性、迁移数据、再删除旧属性。因此,初期建模时宁可多花十分钟确认类型,也不要后期频繁重构。
总结来说,对象类型与属性建模的关键在于:用对象类型划分资产边界,用数据类型保证数据可计算、可过滤,用必填约束守住关键字段,用默认值提升录入效率,用对象引用建立资产之间的关联。以服务器为例,主机名、IP 地址、操作系统、环境、负责人这五个属性构成了最小可用模型,后续再按需扩展 CPU、内存、机房、维保等字段,就能逐步形成既规范又实用的资产数据基础。