浅谈服务管理(二)

服务管理到底管什么?

我们谈服务管理,管理的是服务,落在实现层面实际管理的就是数据,那我们来看看服务包含哪些方面的数据呢?

服务的静态数据

从结构和约束来梳理,主要包含如下几个方面:

  1. 服务风格

    关于服务风格,上面已经做过简单陈述,包含常见的RPC、REST、GraphQL、服务端驱动(Webhook)等多种类型。

  2. 参数(请求&响应参数)

    参数部分可以说是一个服务的骨干组成部分,是其功能约束的核心,具体来看其结构可以拆解分析如下:

    • 结构类型:约定出入参的整体结构类型,常见的有:JSON、String、XML、MAP、Object对象

    • 参数组成:按照参数职能划分,可以划分为基本协议参数、业务参数,协议参数封装的是可提取抽象的公共参数,常见的有公共头信息(版本、IP、来源、时间等);业务参数即完成当前服务能力/动作所需要的业务输入和输出信息。

    • 参数类型:包含常见的数据类型结构以及自定义类型(基本类型、List、Map、自定义对象等)

    • 参数约束:如非空限制、长度限制、字段字符类型限制、值域范围限制等

  3. 响应码设计

    响应码属于参数的一部分,这里单独出来讲,为的是体现其独特的地位。在所有的响应参数里面,响应码可以说是最至关重要的一个参数,绝大部分情况下它决定了该服务的核心关键逻辑部分。这里单独强调如下一点:

    • 全局码规划:响应码的规划宜早不宜迟,良好的响应码规划需要保持合理的结构以及必要的扩展性,以有效支撑后续业务的发展和系统的建设;要能快速锁定问题类型、问题的严重程度、问题归属系统以及服务。
  4. 非功能性约束

    非功能性约束是为满足服务需求而必须具有且除功能约束以外的特性,主要包含内容如下:

    • SLA:成功率、平均时延、错误调用次数、吞吐量,该部分定义了服务的性能以及可用性指标,即向服务客户承诺的服务质量。
    • 安全性:加密、加签、编码类型,该部分根据服务安全需求选择,非必要
    • 幂等性:该部分描述服务是否支持幂等(任意多次执行所产生的影响均与一次执行的影响相同),非必要
  5. 服务归属

    服务归属定义服务归属的应用/系统/平台/组织,明确服务归属可以有效减少沟通成本

84ca36574ffc4b4b9390c83432088b62.jpg

     6. 服务上下游依赖

          记录服务间的上下游依赖关系

     7. 其他部分

  • 服务描述:名称、简述等,从宏观上给服务客户提供对于此服务的基本介绍。
  • 服务分组:为便于管理和可视化,将同类服务进行分组可有效降低管理成本以及学习成本。

剖析清楚服务的静态定义组成后,我们再看什么明确一个服务还涉及其他的方面内容吗?

既然提到的服务的静态定义数据,那当然还有服务的动态定义数据,其实服务的动态数据部分也是需要管理的范畴,何谓服务的动态部分呢,这部分主要指的就是服务的整个生命周期里涉及的过程以及控制流程,同样的,我们来看看,服务全生命周期包含哪些过程和控制流程呢:

服务全生命周期过程

a44a114296c141e2870195c841446397.jpg 

服务生命周期

顾名思义,服务全生命周期过程是指服务从诞生到消亡的整个过程,按照时间顺序我们可以预见的核心过程主要有如下方面:

  • 定义:规划定义服务归属应用以及系统
  • 设计:确定服务的输入输出、上下游依赖关系等静态定义部分
  • 开发:实现具体的服务
  • 测试:测试服务功能,确保逻辑合理性
  • 上线:服务发布上线
  • 运行:服务在线运行
  • 迭代:对服务进行优化升级
  • 下线:下线销毁服务

 

服务全生命周期控制流程

那与之匹配的服务全生命周期控制过程又该包含哪些呢?服务在整个生命周期,新增、变更、调用、上线、迭代、下线都会对关联的服务造成影响,为确保服务质量控制风险,我们要在关键过程点上加必要的控制流程:

  • 服务新增流程
  • 服务变更流程
  • 服务调用申请流程
  • 服务上线流程
  • 服务下线流程
    具体各流程该如何设计,如何规范,后面的章节(参见下一章节)我们具体讨论。

明确了服务的组成,我们就清晰了解了我们具体该管什么,服务管理基本的功能结构也就清晰的呈现在我们的面前:

9e2554b881894e6e90389a1714158198.jpg

浅谈服务管理(一) 

 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库是一种关系型数据库管理系统,是开源软件,免费使用。MySQL原本是瑞典MySQL AB公司开发的,现在属于Oracle公司旗下的产品之一。MySQL自问世以来,由于其高效、灵活、稳定等特点,成为了Web应用开发中最受欢迎的数据库之一。MySQL广泛应用在各种领域,如电子商务、社交网络、在线游戏、金融、医疗、物流等。 MySQL在系统设计中的应用非常广泛,下面我们就来浅谈一下MySQL在系统设计中的应用。 一、数据存储 MySQL数据库的最基本的应用就是用于数据存储。MySQL可以存储大量的数据,并且支持多种数据类型和索引,可以方便地进行数据的查询和管理。在Web应用开发中,我们通常会使用MySQL来存储用户信息、商品信息、订单信息、评论信息等数据。MySQL可以通过SQL语言进行数据的增删改查操作,操作简单、灵活,适用于各种规模的应用。 、数据分析 MySQL可以通过SQL语言进行数据分析,支持各种聚合函数和数据处理函数,可以方便地进行各种数据分析和计算。在Web应用开发中,我们通常会使用MySQL来进行数据分析,如统计用户数量、商品销量、订单金额等信息。MySQL还支持多表连接查询,可以方便地进行数据的关联查询和处理。 三、数据备份和恢复 MySQL可以进行数据备份和恢复,可以保证数据的安全性和可靠性。在Web应用开发中,数据备份和恢复是非常重要的工作,可以保证数据不会因为硬件故障、软件故障等原因而丢失。MySQL可以通过备份工具进行数据备份,也可以通过SQL语句进行数据备份。在数据恢复时,只需要将备份数据还原到数据库即可。 四、数据库集群 MySQL可以通过主从复制、多主复制等方式进行数据库集群,可以提高数据的可用性和性能。在Web应用开发中,数据集群是提高系统可用性和性能的重要手段。通过数据库集群,我们可以将数据分散到多台服务器上,可以提高数据的读写性能,也可以提高系统的可用性。MySQL的主从复制和多主复制是比较成熟和稳定的数据库集群方案,可以满足各种规模的需求。 五、数据库缓存 MySQL可以通过缓存机制提高数据的访问速度,可以减轻数据库的负载压力。在Web应用开发中,数据库负载是一个非常严重的问题,在高并发的情况下,数据库往往成为系统的瓶颈。通过使用数据库缓存,我们可以将一部分数据缓存到内存中,可以提高数据的访问速度,也可以减轻数据库的负载压力。MySQL可以通过多种缓存机制实现缓存,如使用Memcached、Redis等缓存软件,也可以使用MySQL自带的缓存机制。 总之,MySQL在系统设计中的应用非常广泛,可以提供高效、可靠和安全的数据管理和处理服务。MySQL是一种功能丰富、灵活、易用的关系型数据库管理系统,适用于各种规模的Web应用开发。在使用MySQL时,我们需要根据实际需要和业务场景进行选择和配置,才能发挥其最大的价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值