云原生架构需遵循七个原则

作为一种架构模式,云原生架构通过若干原则来对应用架构进行核心控制。这些原则可以帮助技术主管和架构师在进行技术选型时更加高效、准确,下面将展开具体介绍。

01服务化原则

在软件开发过程中,当代码数量与开发团队规模都扩张到一定程度后,就需要重构应用,通过模块化与组件化的手段分离关注点,降低应用的复杂度,提升软件的开发效率,降低维护成本。

随着业务的不断发展,单体应用能够承载的容量将逐渐到达上限,即使通过应用改造来突破垂直扩展(Scale Up)的瓶颈,并将其转化为支撑水平扩展(Scale Out)的能力,在全局并发访问的情况下,也依然会面临数据计算复杂度和存储容量的问题。因此,需要将单体应用进一步拆分,按业务边界重新划分成分布式应用,使应用与应用之间不再直接共享数据,而是通过约定好的契约进行通信,以提高扩展性。

服务化设计原则是指通过服务化架构拆分不同生命周期的业务单元,实现业务单元的独立迭代,从而加快整体的迭代速度,保证迭代的稳定性。同时,服务化架构采用的是面向接口编程方式,增加了软件的复用程度,增强了水平扩展的能力。服务化设计原则还强调在架构层面抽象化业务模块之间的关系,从而帮助业务模块实现基于服务流量(而非网络流量)的策略控制和治理,而无须关注这些服务是基于何种编程语言开发的。

有关服务化设计原则的实践在业界已有很多成功案例。其中影响最广、最为业界称道的是 Netflix 在生产系统上所进行的大规模微服务化实践。通过这次实践,Netflix 在全球不仅承接了多达 1.67 亿订阅用户以及全球互联网带宽容量 15% 以上的流量,而且在开源领域贡献了 Eureka、Zuul、Hystrix 等出色的微服务组件。

不仅海外公司正在不断进行服务化实践,国内公司对服务化也有很高的认知。随着近几年互联网化的发展,无论是新锐互联网公司,还是传统大型企业,在服务化实践上都有很好的实践和成功案例。阿里巴巴的服务化实践发端于 2008 年的五彩石项目,历经 10 年的发展,稳定支撑历年大促活动。以 2019 年“双 11”当天数据为例,阿里巴巴的分布式系统创单峰值为每秒 54.4 万笔,实时计算处理为每秒 25.5 亿笔。阿里巴巴在服务化领域的实践,已通过 Apache Dubbo、Nacos、Sentinel、Seata、Chaos Blade 等开源项目分享给业界, 同时,这些组件与 Spring Cloud的集成 Spring Cloud Alibaba 已成为 Spring Cloud Netflix 的继任者。

虽然随着云原生浪潮的兴起,服务化原则不断演进、落地于实际业务,但企业在实际落地过程中也会遇到不少的挑战。比如,与自建数据中心相比,公有云下的服务化可能存在巨大的资源池,使得机器错误率显著提高;按需付费增加了扩缩容的操作频度;新的环境要求应用启动更快、应用与应用之间无强依赖关系、应用能够在不同规格的节点之间随意调度等诸多需要考虑的实际问题。但可以预见的是,这些问题会随着云原生架构的不断演进而得到逐一解决。

02弹性原则

弹性原则是指系统部署规模可以随着业务量变化自动调整大小,而无须根据事先的容量规划准备固定的硬件和软件资源。优秀的弹性能力不仅能够改变企业的 IT 成本模式,使得企业不用再考虑额外的软硬件资源成本支出(闲置成本),也能更好地支持业务规模的爆发式扩张,不再因为软硬件资源储备不足而留下遗憾。

在云原生时代,企业构建 IT 系统的门槛大幅降低,这极大地提升了企业将业务规划落地为产品与服务的效率。这一点在移动互联网和游戏行业中显得尤为突出。一款应用成为爆款后,其用户数量呈现指数级增长的案例不在少数。而业务呈指数级增长会对企业 IT 系统的性能带来巨大考验。面对这样的挑战,在传统架构中,通常是开发人员、运维人员疲于调优系统性能,但是,即使他们使出浑身解数,也未必能够完全解决系统的瓶颈问题, 最终因系统无法应对不断涌入的海量用户而造成应用瘫痪。

除了面临业务呈指数级增长的考验之外,业务的峰值特征将是另一个重要的挑战。比如,电影票订票系统下午时段的流量远超凌晨时段,而周末的流量相比工作日甚至会翻好几倍;还有外卖订餐系统,在午餐和晚餐前后往往会出现订单峰值时段。在传统架构中,为了应对这类具有明显峰值特征的场景,企业需要为峰值时段的流量提前准备大量的计算、存储及网络资源并为这些资源付费,而这些资源在大部分时间内却处于闲置状态。

因此,在云原生时代,企业在构建 IT系统时,应该尽早考虑让应用架构具备弹性能力,以便在快速发展的业务规模面前灵活应对各种场景需求,充分利用云原生技术及成本优势。

要想构建弹性的系统架构,需要遵循如下四个基本原则。

1.按功能切割应用

一个大型的复杂系统可能由成百上千个服务组成,架构师在设计架构时,需要遵循的原则是:将相关的逻辑放到一起,不相关的逻辑拆解到独立的服务中,各服务之间通过标准的服务发现(Service Disco

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值