SREWorks中针对企业云原生应用管理,提供了从开发、构建、发布到交付部署的完整端到端能力,覆盖常见的CI/CD/CO流程,以应用管理的SaaS形态提供。
承载企业云原生应用的CI流程,用户可以新建应用,并一键构建和测试环境部署,在确定功能正常后可发布到应用市场。
登录SREWorks后,进入“交付/应用管理-应用开发”页面,会展示开发态的应用模板列表。
点击“新建云原生应用”,在滑出的表单中输入应用定义相关信息,即可完成应用模板定义
当前支持两种内置组件类型的添加,“Helm类型”和“微服务类型”组件,用户可按自身应用架构进行选择,一个应用可以包含1到N个组件。 组件是企业应用的核心承载体。
在完成组件添加后,可以在“应用构建”页面进行一键构建,当前一键构建会自动计算版本,创建构建任务后,在构建列表中可查看刚刚提交的构建任务。
构建完成后,即可在构建列表中展示当前构建的应用及组件构建状态,同时可以在操作中一键部署测试和上架市场。
应用测试实例支持多套部署,并会自动生成全局唯一的实例名,规则为“应用名-uid”。该实例被部署在同名的namespace下。
用户可自行对应用进行测试,测试通过后,可选择一键发布到市场的操作将应用版本发布到市场中。
通过构建列表中指定构建任务的“上架市场”操作完成应用到市场的发布。
应用市场用来分发企业应用的制品,在应用市场中是完成开发测试的稳定应用版本定义,同时应用市场的背后关联有具体的软件仓库,软件镜像制品在构建过程中都会上传到软件仓库。
在市场中可以指定应用一键下架,当前每次操作将下架该应用的当前最新版本,下架是需要输入应用名进行确认。
应用中心是企业应用线上生产实例的管理中心,当前提供应用实例列表页面和应用详情管理页面。在实例列表中可对应用版本做升级回滚相关操作。
应用实例列表展示当前部署在prod的企业应用生产实例,并提供升级、回滚、卸载操作。
在应用实例详情中提供了应用实例的概览、组件、健康、指标、事件、跟踪、操作等基本运维监控管理页面功能。
指标定义页面可以开启内置指标(应用CPU水位、 应用RAM水位、 应用PVC分配量、 应用平均响应时间、 应用请求成功率、 应用unready状态POD数量)。开启后,会自动创建一个**基础指标采集作业,**用于基础内置指标的采集,同时指标数据会接入数仓服务。
另外,指标定义可以自动添加业务指标。添加的指标默认会打上** app_id和app_name**两个标签,用于标识指标归属当前应用定义。
健康定义页面可以开启内置POD事件/POD状态的健康定义。开启后会针对POD运维事件进行采集,同时会针对应用POD不可用状态数量进行应用健康管理。如需对应用进行健康配置管理,请移步健康管理服务。
**指标:**应用定义页面打开指标采集,会自动在应用实例POD添加标签 **kubernetes.labels.sreworks-telemetry-metric: enable **添加该标签实例会自动采集POD基础资源指标和POD状态指标数据
**日志:**应用定义页面打开日志采集, 会自动在应用实例POD添加标签 **kubernetes.labels.sreworks-telemetry-log: enable **添加该标签实例会自动采集POD产生的日志数据,默认按照时间切分日志行
eg:[2022-03-10 09:06:21] or 2022-03-10 09:06:21
**追踪:**建议先阅读Skywalking官方使用文档,按照应用开发语言下载对应的skywalking-agent(这里以java为例,参考demoApp配置):
a.trace采集配置
b.log和trace关联配置
以上两部分配置成功后,即可将应用的可观测数据采集到SREWorks平台,进行管理。
依托作业平台,利用采集场景作业实现数据采集加工,关联数据仓库和指标服务。
1.基础运维数据:
**质量:**自动采集健康服务下应用的健康定义、健康实例等数据,并按照应用进行质量数据汇总
**成本:**自动按照应用维度采集每个POD的资源使用成本,并按照应用进行成本数据汇总
**效率:自动采集应用的构建部署操作等数据,并按照应用进行效率数据汇总
应用的资源计价模型维护在数仓DIM =>运维服务主题 =>成本域=>RESOURCE_PRICE, **用户可根据实际情况在系统设置中配置默认的资源计价。
2.自定义业务数据:
用户按需创建具体的采集场景作业,采集数据到数仓。
开启内置健康定义的应用定义,在应用实例的事件详情页可以看到,当前应用实例的POD运维事件。如果用户创建了其他事件定义,同样可以看到自定义的应用事件实例。
应用实例的健康(风险、告警、异常、故障)看板。通过该页面可以细粒度的看到应用的健康概览数据、详情数据以及健康趋势图。
应用实例指标列表和指标时序曲线查看
应用实例日志数据,支持按照追踪ID和日志关键字进行过滤。
应用实例追踪数据,可根据追踪ID跳转SkyWalking UI页面,进行追踪详情查询。
健康服务汇总看板
事件定义和事件实例的管理页面,事件定义需要关联到应用定义。
风险定义和风险实例的管理页面,风险定义需要关联到应用定义。启用状态的风险可以关联巡检作业,产出风险实例。同时可以对风险定义配置权重值(0-10),用于应用健康分计算。
风险巡检页面,创建巡检场景作业,关联多个巡检项,巡检项可以绑定到具体的风险定义(启用状态),满足条件即可产出对应的风险实例。
告警定义和告警实例的管理页面,告警定义需要关联到应用定义。当告警定义处于启用状态时, 告警定义绑定的指标会通过阈值检测服务,根据告警规则产出告警实例。同时可以对告警定义配置权重值(0-10),用于应用健康分计算。说明,故障定义规则,生效时间在30min左右(flink维表缓存时长)。此外,当前版本暂不支持告警消息推送,后续会开放支持。
告警分析页面,创建告警分析场景作业,可以订阅启用状态的告警,该作业绑定的分析项可以获取订阅告警产出的告警实例,进行告警数据分析。同时告警分析项可以关联下游的异常,当满足条件时,产出对应的异常实例(下游异常实例通过关键字nextIncident标识)。
告警实例放在环境变量varConfPath
python脚本为例,
# 获取方式
result = json.loads(open(os.getenv("varConfPath")).read())
# 回写方式
open(os.getenv("varConfPath"), 'w').write(json.dumps(result))
异常定义和异常实例的管理页面,异常定义需要关联到应用定义。开箱内置不可用异常类型。异常定义可以配置是否支持自愈,支持自愈的异常表示可以进行故障自愈。同时可以对异常定义配置权重值(0-10),用于应用健康分计算。
异常诊断页面,开启自愈的异常可以被诊断场景作业订阅,该作业绑定的诊断项可以获取订阅异常产生的异常实例,进行异常实例诊断。同时诊断项可以关联下游的异常,当满足条件时,产出对应的异常实例(下游异常实例通过关键字nextIncident标识,当前异常实例通过关键字currentIncident标识)。
异常实例放在环境变量varConfPath
python脚本为例,
# 获取方式
result = json.loads(open(os.getenv("varConfPath")).read())
# 回写方式
open(os.getenv("varConfPath"), 'w').write(json.dumps(result))
开启自愈的异常实例,存在如下五种状态
# WAITING 等待自愈状态 (新产生异常实例首先进入等待自愈状态)
# RUNNING 自愈中
# FAILURE 自愈失败
# SUCCESS 自愈成功
# CANCEL 自愈任务取消
用户可以结合实际情况对异常实例状态进行合理轮转
故障定义和故障实例的管理页面,故障定义需要关联到应用定义。故障实例由其关联异常实例,满足故障条件后自动产出。按照异常持续时间,平台内置P4~P0(由低到高)五级故障,用户可以结合异常的重要性进行合理配置。说明,故障定义规则同告警规则一样,生效时间在30min左右(flink维表缓存时长)。
应用健康分(满分100)采用扣分项机制,根据应用实例关联的健康实例(风险、告警、异常),结合权重系数和影响因子,计算每个扣分项,最终计算得到每个实例的健康分值。
自愈任务链的统计数据和自愈任务详情数据
运营中心按照应用实例从质量、成本、效率三个维度,分别进行数据统计汇总
概览页面,按照质量、成本、效率三个维度,汇总上层指标数据,
健康:健康分和服务可用率,以及健康实例的统计数据
成本:应用的占比和资源用量统计
效率:应用人效比和构建部署数据统计
应用实例每日新增风险、告警、异常以及故障实例趋势图
应用实例每日平均资源水位趋势图
应用每日构建部署成功率趋势图