第8章 微服务架构设计 【1、如何进行快速交付】

8.1 快速变化如何进行快速交付?

答:

    什么时候软件价值最高呢?是用户刚刚提出需求的时候。此时,市场还没有满足用户需求的产品,如果我们适时推出相应的产品,用户将更有意愿去购买我们的产品。引出快速交付。

    如何才能获得快速交付的能力?

(1)高效的团队组织

    避免“烟囱式的开发团体”将大量的时间耗费在部门间的沟通协调中;应该建立“跨功能团队”或者“特性团队”,每个团队都直接面对终端客户,整个交付过程都由这个团队负责,避免了团队间的沟通协调,交付速度自然就提升了。

(2)精简的代码维护

    软件架构采用微服务架构,特性团队 + 微服务架构,可以有效提高规模化团队的交付速度。为了避免特性团队所有成员都是全栈工程师,成本昂贵的问题,抽离出核心底层架构团队构建技术中台,以API接口的形式开放给上层业务,从而使特性团队将更多的精力放到对需求的理解,对业务的实现,以及对用户体验的提高上,实现“大前端”;形成“大前端 + 技术中台”的战略。

(3)强有力的平台支撑

这里的强有力的平台支撑,应该指的是DevOps运维平台了。

在DevOpt运维平台中,各开发团队彼此独立地开发各自的微服务,并上传到各自的Git服务器。使用持续集成工具Jenkins每天自动从各Git服务器中下载代码,将其打包并制作成Docker镜像,发布到镜像仓库中。最后,在Kubernetes中定义每个微服务的节点个数,并将其自动化部署到云端平台中。

每个微服务都是动态的部署在云端,其IP地址与部署个数都是动态变化的。这时,该如何找到并调用这些微服务呢?关键就是“注册中心”,当每个微服务被部署在云端时,系统一启动就会将它们注册到注册中心中;当用户要通过服务网关访问微服务时,服务网关会询问注册中心,由注册中心返回微服务都在哪些IP和端口号的列表,然后根据列表通过负载均衡去调用它们。由于注册中心要求每个节点定期发送心跳给注册中心,如果注册中心收到心跳则证明这些节点是可用的,反之则证明这些节点失效了,此时注册中心就会将其注销掉。

如何将各个微服务发布到云端,并且还能弹性伸缩呢?

自动化部署由“发布中心”来完成。它首先从Git服务器下载代码,将其编译打包制作成Docker镜像,然后在发布中心定义各微服务的部署个数,通过发布中心将其部署到云端平台中。这些节点部署好后一旦启动,就会注册到注册中心,服务网关就可以查找并调用它们。如果在运行过程中有一个节点失效了,那么发布中心就立即在另外一个位置再启动一个节点,始终保持指定的节点部署,保障系统的可靠运行。

注:

用户对系统功能的使用往往遵循二八原则,即20%的功能却被80%的用户在使用,产生80%的数据,这20%的功能就是核心功能,也就是要重点优化、提升的功能。

微服务架构可以将原有的单体应用,以功能模块的形式拆分成多个微服务,从而可以按照微服务进行横向扩展,避免了资源的浪费。例:当大促到来的时候,核心功能需要承载巨大的压力,因此就将它快速拓展到20个节点,以应对用户压力。将系统转型成微服务架构,然后部署到云端,就可以充分利用云端的伸缩能力,帮助企业更好地应对互联网这种流量的起伏波动带来的压力。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值