云服务器内容精选

  • 代码示例 本示例用于追加上传examplebucket桶中的example/objectname对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 package main import ( "fmt" "os" "strings" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" " // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.AppendObjectInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定追加上传对象,此处以 example/objectname 为例。 input.Key = "example/objectname" // 指定追加写位置。如果是首次上传时就必须指定position为0 input.Position = 0 // 指定待上传对象的数据流 input.Body = strings.NewReader("Hello OBS") // 追加上传对象 output, err := obsClient.AppendObject(input) if err == nil { fmt.Printf("Append object(%s) under the bucket(%s) successful!\n", input.Key, input.Bucket) fmt.Printf("ETag:%s, NextAppendPosition:%d\n", output.ETag, output.NextAppendPosition) return } fmt.Printf("Append objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 返回结果说明 表7 返回结果 参数名称 参数类型 描述 output *AppendObjectOutput 参数解释: 接口返回信息,详情参考AppendObjectOutput。 err error 参数解释: 接口返回错误信息。 表8 AppendObjectOutput 参数名称 参数类型 描述 StatusCode int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 RequestId string 参数解释: OBS服务端返回的请求ID。 默认取值: 无 ResponseHeaders map[string][]string 参数解释: HTTP响应头信息。 默认取值: 无 VersionId string 参数解释: 对象的版本号。如果桶的多版本状态为开启,则会返回对象的版本号。 取值范围: 长度为32的字符串 默认取值: 无 ETag string 参数解释: 对象的ETag值,即base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。ETag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,都有唯一的ETag。 约束限制: 当对象是服务端加密的对象时,ETag值不是对象的MD5值。 取值范围: 长度为32的字符串。 默认取值: 无 SseHeader SseCHeader 或 SseKmsHeader 参数解释: 服务端加密头信息,选择SSE-C加密方式,则详见SseCHeader,选择SSE-KMS加密方式。则详见SseKmsHeader。 NextAppendPosition int64 参数解释: 下一次追加上传请求应该提供的追加写位置(position)。 约束限制: 需要追加写的对象首次上传时就必须指定为0,下次追加需要填写的值为服务端本次上传成功返回消息的NextAppendPosition。 取值范围: 0~(263-1),单位:字节。 默认取值: 0 表9 SseCHeader 参数名称 参数类型 是否必选 描述 Encryption string 作为请求参数时必选 参数解释: 表示服务端加密是SSE-C方式。对象使用SSE-C加密方式。 取值范围: 可选值:AES256,即选择SSE-C方式加密对象。 默认取值: 无 Key string 作为请求参数时必选 参数解释: SSE-C方式下加密使用的密钥,该密钥用于加密对象。 约束限制: 该头域由256bit的密钥经过Base64编码得到,示例:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= 默认取值: 无 KeyMD5 string 作为请求参数时可选 参数解释: SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。 约束限制: 由密钥值经过MD5加密再经过Base64编码后得到,示例:4XvB3tbNTN+tIEVa0/fGaQ== 默认取值: 无 表10 SseKmsHeader 参数名称 参数类型 是否必选 描述 Encryption string 作为请求参数时必选 参数解释: 表示服务端加密是SSE-KMS方式。对象使用SSE-KMS方式加密。 取值范围: 可选值:kms,即选择SSE-KMS方式加密对象。 默认取值: 无 Key string 作为请求参数时可选 参数解释: SSE-KMS加密方式下使用的KMS主密钥的ID值。 取值范围: 有效值支持两种格式: regionID:domainID(账号ID):key/key_id key_id 其中: regionID是使用密钥所属region的ID,可在地区和终端节点页面获取; domainID是使用密钥所属账号的账号ID,获取方法参见如何获取账号ID和用户ID?; key_id是从 数据加密 服务创建的密钥ID,获取方法请参见查看密钥。 默认取值: 如果用户没有提供该头域,那么默认的主密钥将会被使用。 如果默认主密钥不存在,将默认创建并使用。
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用 IAM 或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 用户上传的对象存储在桶中。用户必须对桶有WRITE权限,才可以在桶中上传对象。同一个桶中存储的对象名必须是唯一的。 每次追加上传都会更新该对象的最后修改时间。 服务端加密SSE-C方式,那么追加上传和初始化段一样,设置诸如x-obs-server-side-encryption之类的请求Header,后续追加上传也必须携带。 服务端加密SSE-KMS方式,有且只有第一次上传且桶内不存在同名对象时,才设置诸如x-obs-server-side-encryption之类的请求Header,后续追加上传不携带。 每次追加上传的长度不能超过对象长度上限5G的限制。 每个Appendable对象追加写次数最多为10000次。 如果对象存储类型为COLD(归档存储)或深度归档存储,则不能调用该接口。 如果桶设置了跨区域复制配置,则不能调用该接口。 并行文件系统不支持追加写对象。
  • 代码示例 本示例用于限定条件下载examplebucket桶中的example/objectname对象,并且指定该文件的修改时间必须在"2022/12/31 00:00:00"后才能下载成功。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 package main import ( "fmt" "os" "time" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint/*, obs.WithSecurityToken(securityToken)*/) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.GetObjectInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定下载对象,此处以 example/objectname 为例。 input.Key = "example/objectname" // 定义IfModifiedSince时间 layout := "2006/01/02 15:04:05" t, err := time.Parse(layout, "2022/12/31 00:00:00") if err != nil { fmt.Printf("Parse time error, errMsg: %s", err.Error()) } // 如果下载对象在给定的日期之后存在修改,才会下载成功。否则返回不带消息主题的304响应。 input.IfModifiedSince = t // 下载对象 output, err := obsClient.GetObject(input) if err == nil { // output.Body 必须关闭,否则会造成连接泄漏。 defer output.Body.Close() fmt.Printf("Get object(%s) under the bucket(%s) successful!\n", input.Key, input.Bucket) fmt.Printf("StorageClass:%s, ETag:%s, ContentType:%s, ContentLength:%d, LastModified:%s\n", output.StorageClass, output.ETag, output.ContentType, output.ContentLength, output.LastModified) return } fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 input *GetObjectInput 必选 参数解释: 限定条件下载请求参数,详情参考GetObjectInput。 extensions extensionOptions 可选 参数解释: 拓展配置项。通过调用拓展配置项为对应请求配置额外的拓展请求头,详情参考extensionOptions。 表2 GetObjectInput 参数名称 参数类型 是否必选 描述 Bucket string 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 Key string 必选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4. myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 ResponseCacheControl string 可选 参数解释: 指定OBS返回请求中Cache-Control头的值。指定Object被下载时的网页的缓存行为。 默认取值: 无 ResponseContentDisposition string 可选 参数解释: 指定OBS返回请求中Content-Disposition头的值。指定Object被下载时的名称。 默认取值: 无 ResponseContentEncoding string 可选 参数解释: 指定OBS返回请求中Content-Encoding头的值。指定Object被下载时的内容编码格式。 默认取值: 无 ResponseContentLanguage string 可选 参数解释: 指定OBS返回请求中Content-Language头的值。指定Object被下载时的内容语言格式。 默认取值: 无 ResponseContentType string 可选 参数解释: 指定OBS返回请求中Content-Type头的值。指定Object文件类型。 默认取值: 无 ResponseExpires string 可选 参数解释: 指定OBS返回请求中Expires头的值。指定Object被下载时的网页的缓存过期时间。 默认取值: 无 VersionId string 可选 参数解释: 对象的版本号,用于获取指定版本号的对象。例如:G001117FCE89978B0000401205D5DC9。 取值范围: 长度为32的字符串。 默认取值: 无,如果不设置则默认获取最新版本的对象。 ImageProcess string 可选 参数解释: 图片处理参数,描述针对对象的图片处理命令或处理样式。例如如果想表示对图片依次进行缩放、旋转,取值:image/resize,m_fixed,w_100,h_100/rotate,90。 取值范围: 命令方式:image/命令参数。 样式方式:style/样式名称。 详细参数说明参见处理图片。 默认取值: 如果不输入处理命令,将返回原图。 RangeStart int64 可选 参数解释: 指定下载对象的起始位置。 取值范围: 0~对象长度,单位:字节。 默认取值: 0,即从对象的第一个字节开始下载。 RangeEnd int64 可选 参数解释: 指定下载对象的结束位置。 取值范围: 取值必须大于RangeStart。 如果该值大于对象长度-1,实际仍取对象长度-1,单位为字节。 默认取值: 无 IfMatch string 可选 参数解释: 指定一个预设的Etag值,如果下载对象的ETag值与该参数值相同,则返回对象内容,否则返回错误。 取值范围: 长度为32的字符串。 默认取值: 无 IfNoneMatch string 可选 参数解释: 指定一个预设的Etag值,如果下载对象的ETag值与该参数值不相同,则返回对象内容,否则返回错误。 取值范围: 长度为32的字符串。 默认取值: 无 IfModifiedSince time.Time 可选 参数解释: 如果对象在指定的时间后有修改,则返回对象内容,否则返回错误。 约束限制: 日期格式必须为ISO8601的格式。 例如:2018-01-01T00:00:00.000Z,表示如果最后修改时间晚于2018-01-01T00:00:00.000Z则返回对象内容,否则返回错误。 代码示例:time.Now().Add(time.Duration(24) * time.Hour)。 默认取值: 无 IfUnmodifiedSince time.Time 可选 参数解释: 如果对象在指定的时间后没有修改,则返回对象内容,否则返回错误。 约束限制: 日期格式必须为ISO8601的格式。 例如:2018-01-01T00:00:00.000Z,表示如果最后修改时间早于2018-01-01T00:00:00.000Z则返回对象内容,否则返回错误。 代码示例:time.Now().Add(time.Duration(24) * time.Hour)。 默认取值: 无 SseHeader SseCHeader 可选 参数解释: 服务端解密头信息,详见SseCHeader。 约束限制: 如果客户端的对象上传时,使用了客户提供的加密密钥进行服务端加密,当下载对象时,同样也必须在消息中提供密钥。 表3 SseCHeader 参数名称 参数类型 是否必选 描述 Encryption string 作为请求参数时必选 参数解释: 表示服务端加密是SSE-C方式。对象使用SSE-C加密方式。 取值范围: 可选值:AES256,即选择SSE-C方式加密对象。 默认取值: 无 Key string 作为请求参数时必选 参数解释: SSE-C方式下加密使用的密钥,该密钥用于加密对象。 约束限制: 该头域由256bit的密钥经过Base64编码得到,示例:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= 默认取值: 无 KeyMD5 string 作为请求参数时可选 参数解释: SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。 约束限制: 由密钥值经过MD5加密再经过Base64编码后得到,示例:4XvB3tbNTN+tIEVa0/fGaQ== 默认取值: 无
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 对于存储类别为归档存储或深度归档存储的对象,需要确认对象的状态为“已恢复”才能对其进行下载。
  • AppStage运行时引擎基本概念 表1 基本概念说明 基本概念 说明 微服务 微服务是云原生应用的最佳架构, 它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个微服务运行在其独立的进程中, 微服务与微服务间采用轻量级的通信机制互相沟通。每个微服务由全功能团队独立构建、独立测试,并且能够被独立地部署到生产环境。微服务的特点:组件化、松耦合、服务自治、去中心化。 应用 完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务能够相互发现和调用。 NUWA框架 NUWA提供一个完整的微服务开发框架,是一个开箱即用的应用级容器,以插件的形式汇聚云服务平台能力,让开发把时间更多的花在业务代码逻辑上。 Kubernetes Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署、规划、更新、维护的一种机制。 Pod Pod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。 Node Node是一个执行具体工作的机器,可以是虚拟机或者物理机。Pod是部署在Node节点上的,如果Node故障,整个Pod会被调度到集群中的另外可用的Node节点上去。 工作负载 工作负载是在Kubernetes上运行的应用程序。无论您的工作负载是单个组件还是协同工作的多个组件,您都可以在Kubernetes上的一组Pod中运行它。在Kubernetes中,工作负载是对一组Pod的抽象模型,用于描述业务的运行载体,包括Deployment、StatefulSet、DaemonSet、Job、CronJob等多种类型。 无状态工作负载:即Kubernetes中的“Deployment”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。 有状态工作负载:即Kubernetes中的“StatefulSet”,有状态工作负载支持实例有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、mysql-HA等。 创建守护进程集:即Kubernetes中的“DaemonSet”,守护进程集确保全部(或者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每个节点上都需要运行的场景,如ceph、fluentd、Prometheus Node Exporter等。 普通任务:即Kubernetes中的“Job”,普通任务是一次性运行的短任务,部署完成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜像仓库。 定时任务:即Kubernetes中的“CronJob”,定时任务是按照指定时间周期运行的短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。 父主题: AppStage运行时引擎简介
  • AppStage运营中心应用场景 运营中心在AppStage服务应用的全生命周期的背景下,以应用运营为主线,主要面向应用运营者提供应用运营的分析底座、领域或行业经验资产以及可视化看板等能力,帮助用户高效率、低门槛的展开应用运营,支撑业务的成功。 用户可以通过应用数据接入、数据模型构建、指标配置管理,以及自定义运营看板,分析产品运营过程中取得的成效和潜在问题。 运营中心使用场景: 业务决策者(如领导、业务负责人等)可以基于全场景运营看板随时随地了解业务情况。 业务分析者/执行者(如产品经理、运营人员等)可以根据业务诉求快速生成、查看各类数据报表。 数据工程师/分析师支撑或配合业务提出的数据相关需求,完成一些相对复杂的数据接入、数据建模以及数据指标开发的工作。 父主题: AppStage运营中心简介
  • 弹性网络服务 弹性网络服务(ENS)通过引入“隔离域”这一网络资源概念,将业务使用的底层网络资源进行封装,为具有相同安全保护需求并相互信任的服务提供访问策略的安全分组。当服务器加入到隔离域后,即受到这些访问规则的保护。访问规则继承自选定的安全区域(安全域),并根据租户声明的服务依赖关系自动生成。 图1 ENS与原有模式差异 隔离域内部是在虚机子网或者容器网段上加安全域包装在一起的,当建立了隔离域后,业务层只感知隔离域与隔离域之间的互通关系。 图2 业务感知差异
  • 部署服务 基础设施即代码(Infrastructure as code,简称IaC)是一种基于软件开发实践形成的基础设施的自动化方法,它强调一致、可重复的供给和变更系统及其配置。当代码发生变更后,可以进行自动化测试,测试完成后可自动化的应用变更到运行系统中。使用基础设施即代码的方法,可以使用敏捷工程的优秀实践(如测试驱动开发、持续集成、持续发布)可以快速安全的变更基础设施。 部署服务按架构元素(服务)组织资源,软件单元(微服务或函数)作为最小变更单元 ,执行变更的结果围绕服务环境进行资源管理,每个组件可以独立发布版本、独立变更。
  • 使用限制 在实际应用时,有以下几个方面的使用限制: 仅支持“帐号和密码”做为登录认证方式时使用。 仅支持能部署在Windows Server 2016和Windows Server 2019操作系统上的应用。 对于远程桌面方式(RDP)登录APS服务器,目前仅支持管理员帐户。 RD Licensing服务器的Windows Server版本必须等于或高于RDS CAL版本,RDS CAL版本必须等于或高于APS服务器的Windows Server版本。 远程应用不支持锁屏操作。 软件兼容性 部署应用软件要求: 软件必须支持多实例运行,能同时打开多个程序实例。 不支持需要以管理员权限才能够运行的软件。 不支持安装到个人用户目录的软件。 Profile和个人用户数据存储 若用户需保存个人数据,必须配置Profile和个人用户数据存储。在没有配置Profile和个人用户数据存储的场景下,建议不要在APS服务器中保存个人数据,避免个人信息被其他用户访问,导致信息泄露。 远程应用的用户Profile数据存储使用Windows的“漫游用户配置”和“文件夹重定向”两个功能来提供,存储在由第三方提供的共享的文件服务器上,该方案依赖于微软的实现,只支持用户的应用配置接入到一台服务器:用户通过打开多个应用同时接入多个应用服务器时,将同时存在多份漫游用户配置拷贝,此时如果分别修改过用户配置,将出现配置冲突、修改的配置无法正常保存到漫游用户配置中。 用户个人数据使用共享的存储系统,存储系统由第三方提供(如NAS)。 云应用基于Windows Server的RDS服务来发布应用,用户之间通过会话隔离,相互的基本操作互不影响。但操作系统及应用程序提供给所有用户共享使用,一旦操作系统或应用程序本身出现故障或出现安全问题,会影响所有用户。云应用不适用于对安全及用户隔离有较高需求的用户。 云应用为无状态服务器,数据备份依赖于应用软件自身的能力。请及时将文件、资料等数据同步到本地磁盘或NAS文件服务器。如应用使用过程中网络异常中断或用户购买的AD服务器异常等导致用户不能接入应用,华为云对此不承担责任。 父主题: 简介
  • 为什么使用AppStage运行时引擎 AppStage运行时引擎提供了NUWA微服务框架,NUWA是一个开箱即用的应用级容器,兼容开源Spring Cloud微服务,预集成构建云服务业务分布式架构所需的各个组件(微服务框架、数据库、通用中间件、安全中间件、公共服务等)及DFX(Design for X,“X”代表产品生命周期的某一环节或特性,意味着面向产品生命周期中各个环节的设计)能力,让业务开发人员可以专心撰写业务代码,屏蔽全球多个站点环境的复杂差异,开箱即用,缩短开发时间,提升交付效率。 父主题: AppStage运行时引擎简介
  • 运维中心的优势 简化运维管理:使用AppStage运维中心可以集中管理和监控所有的IT资源和服务,大大简化了运维管理的复杂性。通过统一的Console,SRE可以轻松地管理服务器、数据库、网络和应用等各个方面,实现应用生命周期 数据可视化 ,避免数据孤岛。 提高运维效率:AppStage运维中心提供了自动化的运维流程和任务调度功能,可以自动执行常见的运维任务,如监控、巡检和故障处理等,节省SRE大量的时间和精力,让运维团队能够更专注于解决重要的问题和提供高价值的服务。 实现故障快速恢复:AppStage运维中心具备强大的故障监测和自动恢复能力,当系统出现故障或异常时,AIOps可以及时发现并采取相应的措施进行修复,最大限度地减少停机时间和业务中断,减轻可能出现的业务损失和客户流失。 提供实时监控和报告:AppStage运维中心集成了丰富的监控和报表功能,可以实时监控系统的性能指标、资源利用率和安全状态等。通过可视化的报表和图表,SRE可以随时了解系统的运行情况,进行及时的决策和调整。同时,这些信息也可以用于向上级管理层的汇报和运维成果展示。 降低运维成本:AppStage运维中心沉淀了华为在运维领域的管理经验,包括集成了简洁高效的运维流程,提高自动化和智能化水平,在各个环节提升效率,减少人力投入。基于人工智能技术提供数据分析,优化资源配置,预测未来需求,以降低IT资源成本。企业将应用迁移至华为云后,通过AppStage运维中心来自主管理和运维,可以自然使用上述能力获得成本优势。 提高运维安全性:AppStage运维中心通过身份验证、访问控制和加密等技术,保护企业应用不受攻击、侵入、干扰和破坏,确保客户数据的安全性和完整性,同时通过自动化变更、操作防呆等减少SRE的误操作风险。
  • 运维面临的问题 快速迭代对稳定性持续冲击,业务上线速度和现网稳定性之间存在冲突,发布周期变短,可能存在每个版本都没有经过充分的现网验证。 各业务基于开源软件或者基于 AOM 、LTS、 APM 等自己构建,运维组织、人员能力及知识体系需要快速发展,无统一的数据接入、监控、诊断、 数据治理 体系,各工具能力参差不齐。 系统整体可用性依赖全栈可用性,运维人员需要利用数据被动变主动,及时发现问题,精准定位问题。 内部运维人员的操作可能带来业务安全的不确定性,外部安全攻击渗透频率日趋增多,攻击技术手段越发高超,数据泄露代价更大。
  • 功能特性 Prometheus监控具有监控数据采集、存储、计算、展示、告警等能力。监控指标覆盖广,涵盖容器、云服务、中间件、数据库、应用以及业务等多种监控数据。本文介绍Prometheus 监控支持的主要功能。 表1 监控对象接入 功能 功能说明 创建Prometheus实例 支持创建多种类型的Prometheus实例。您可以根据需求选择创建任一类型的Prometheus实例。 集成中心 集成中心作为Prometheus实例的入口,将容器服务、自定义服务发现、组件监控的关联数据和高频操作进行集中化展示。 当前仅Prometheus for CCE 实例支持。 表2 监控指标采集 功能 功能说明 服务发现 通过新增ServiceMonitor或PodMonitor的方式为应用配置Prometheus监控的采集规则,来监控部署在CCE集群内的业务数据。 当前仅Prometheus for CCE 实例支持。 配置指标 支持查看、新增和废弃指标。 当前仅default类型、CCE类型、云服务类型、E CS 类型的Prometheus实例支持。 表3 监控数据处理 功能 功能说明 获取Prometheus实例的服务地址 使用Remote Read地址和Remote Write地址,将自建Prometheus的监控数据存储到AOM的Prometheus实例中,实现远程存储。 预聚合 通过配置预聚合规则将计算过程提前到写入端,可减少查询端资源占用,尤其在大规模集群和复杂业务场景下可以有效的降低PromQL的复杂度,从而提高查询性能,解决用户配置以及查询慢的问题。 当前仅Prometheus for CCE 实例支持。 父主题: Prometheus监控简介