观点文章|浅谈云原生软件系统可观测性

aa8cc0efd9a5e70e94b558e8b13dfa2a.png

CodeWisdom-观点文章

浅谈云原生软件系统可观测性

outside_default.png

云原生(Cloud Native)现在已经成为一个很时髦的概念。但凡跟云有一点关系的软件技术似乎不提云原生就落伍了。云原生的主要意思是“云上的原住民”,也就是软件从设计、实现、部署到运行都充分适应云的特点,就跟在某地土生土长、适应本地一切风土人情和生活习惯的本地人一样。与之相对的是那种半路迁移到云上去的软件系统,例如打个war包部署到云虚拟主机上的Web软件系统,这种系统虽然在云上运行但其体系结构以及实现和部署方式都无法充分适应云的特点(例如高度分布式、灵活伸缩、高可用等)。关于云原生的概念有很多解读,比较公认的理解是“微服务+容器化+DevOps+持续交付”。

这两年热起来的另一个与云原生相关的概念是可观测性(Observability)。以微服务体系结构为主要特征的云原生软件系统通过细粒度的服务拆分以及服务的独立开发、交付、部署和伸缩能力极大地降低了单个服务开发的复杂性以及整体系统的可用性和可伸缩性。然而, 复杂性并没有消失而是从单个服务上升到了服务间交互层面上。此外,云原生软件系统的运行环境具有高度的动态性、复杂性和不确定性。这些都使得云原生软件系统运维管理成为巨大的挑战,而可观测性正是与之密切相关的一种技术趋势,特别是对于所谓的智能化运维(AIOps)而言。

本文将从云原生软件生态系统的角度谈谈可观测性的问题,其中有不少是“形而上学”的抽象思考。因此,为了方便理解,本文通篇都以大规模城市运行管理来进行类比,就像我们经常用造桥、造房子比喻软件开发一样(当然现在我们也认识到软件开发跟造桥、造房子其实很不一样)。

云原生软件生态系统

cb7c53544a72b7f05eb0e1a3e4fd903a.gif

大约从十多年前开始,学术界开始经常提到“软件生态系统”的概念,例如安卓软件生态系统、互联网开放平台生态系统等,甚至同属一个领域的软件产品线应用产品及相关软件资产也构成了一个生态系统。这些例子都符合生态系统(Ecosystem)的概念,即共享一个环境的众多有机体相互独立同时又相互依存或是竞争,构成一个动态变化、自主生长、持续演化的完整系统。

大规模云原生软件系统也是一种典型的生态系统。如下图所示,云原生软件系统由众多的业务服务组成,此外还包括文件存储、数据库、网关、服务注册与发布、消息中间件等基础设施服务。从规模上看,企业云原生软件系统(微服务系统)一般包含几十到几百个服务,而大规模互联网在线服务系统可能会包含几千个服务甚至更多。这些服务由不同的软件开发团队负责开发和维护,一些基础设施服务还有可能来自开源社区或其他外部来源。不同的服务之间相互依存并构成了一个有机的整体,例如上层业务服务依赖于下层基础设施服务、业务服务之间通过各种同步和异步通信手段相互调用。另一方面,不同的服务可以独立开发和演化,在运行时相互隔离并可以独立伸缩,表现出较强的独立性。

439218c4f9444924fce718ae53cbbd2c.png

云原生软件系统之所以会逐渐成为一种复杂生态系统也与系统边界的问题相关。传统的软件系统和软件开发项目都会定义清晰的系统边界。同一个企业内不同的软件产品和软件项目之间可能存在一些公用的软件开发框架或组件,但边界大体上还是清楚的。与传统的软件系统不同,云原生软件系统是一种在云上部署的线上服务系统,其中所实现的各种服务直接体现企业的业务和技术能力并支撑企业的业务运行。因此,系统中所包含的服务随着企业业务的发展而不断增加或调整,同时服务与服务之间也会根据企业的业务需要而不断整合。例如,前几年一度很火的“中台”很大程度上就是将共性的技术或业务能力沉淀为共享的服务,从而支持各种应用服务的快速开发和演化。这些特点使得云原生软件系统内部的应用和系统边界逐渐模糊,新的应用和业务模式不断在已有的服务基础上自然扩展和生长出来。在此过程中,不同业务和产品部门从自己的角度出发自主推动这一演化过程,企业在很大程度上也会鼓励这种自主创新。以上这些都突出体现了生态系统动态变化、自主生长、持续演化的特点。因此,我们可以看到一些互联网企业的在线服务平台已经实现了不同领域业务部门之间的服务广泛连接和互联互通,并产生了包含数万个服

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值