Knative最佳实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.3 微服务拆分

微服务是一种比较重要的架构模式。但使用微服务架构并不容易,因为大多数现有系统都不是为此而设计的。不管怎样,微服务拆分都不是简单的事情。

也许你会说可以使用扼杀者模式(strangler),逐渐添加微服务,请求路由到新服务,逐渐废弃原始代码,重复执行直到全部微服务化[2]

Knative通过两种方式简化了上述过程。第一种方式,Knative擅长流量路由。按照流量百分比灰度是Knative很重要的一个特性。这一点很关键,因为废弃某些代码,同时把流量都请求到新服务上,是一个很大的赌注,如果新服务有问题,则会导致线上的服务100%出现问题。Knative的按流量百分比路由则可以避免这种情况。

第二种方式,使用Knative可以更容易地部署微服务。Knative对于微服务有较好的支持,尤其是用完即毁的小函数。重启一个小函数与重启一个服务相比,耗费的资源更少。微服务拆分得越小,就越容易启动。Knative在微服务拆分过程中的优势如图1.3所示。

img

图1.3 Knative在微服务拆分过程中的优势