微服务实战
上QQ阅读APP看书,第一时间看更新

第1章 微服务的设计与运行

本章主要内容

 

微服务应用的定义

微服务方案的挑战

微服务应用的设计方法

微服务运行的成功之道

 

为了解决各种各样的复杂问题,软件开发者一直致力于努力提供各种有效而及时的解决方案。通常大家所要解决的第一个问题就是:客户到底想要什么?如果开发者比较擅长挖掘用户的需求或者运气好的话,还是有机会把这个问题搞清楚的。但是我们的工作不大可能就此终结。应用会继续发展壮大:开发者要对应用出现的问题进行调试,要开发新的功能,还要保证应用的可用和平稳运行。

面对日渐壮大的应用,即便团队成员受过最专业的训练,他们可能也只是挣扎着来尽量维持之前的节奏和灵活性。最坏的情况下,曾经简洁、稳定的产品变得越来越难以处理、越来越脆弱。开发者们疲于处理服务故障,焦虑于发布新的版本,迟迟都不能交付新的功能或者补丁,无法再为顾客持续地交付更多价值。不管是客户还是开发成员,都会因此而感到失落。

微服务为我们提供了一种更好地持续交付业务影响的方式。相较于单体应用,使用微服务构建出来的应用是由一系列松耦合的、自治的服务组成的。通过开发这些只做一件事的服务,开发者可以避免大型应用中所存在的缺乏活力和混乱的状态。即便是对于已有的应用系统,开发者也可以一步步地将其中的功能抽取为独立的服务,这样可以使整个系统的可维护性更强。

在采用微服务以后,我们很快就意识到,开发更小的、更独立的服务只是保证关键业务型应用稳定运行的一部分工作而已。毕竟,所有成功的应用在生产环境里所度过的时间要远远长于在代码编辑器里的时间。如果想要通过微服务来交付价值,团队就不能只关注开发这一步,还需要在部署、监控和诊断这些运维领域具备专业能力。