金融行业混合云场景下,将微服务同时部署在私有云与公有云中。
请问哪种思路更佳
1、两云共用一套注册中心,微服务间走专线调用?
2、如果独立部署两套,考虑到微服务间调用,如何架构较好?
或者有更好的方式?谢谢
注册中心作为微服务的电话本,是非常重要的,无论在公有云、私有云还是混合云,注册中心都要具备高可用特性,因此需要在部署架构层面来执行。
以混合云架构举例,公有云和私有云采用专线或网络的方式进行通信,因此在网络线路上要具备接入的高可用。层主的方案有两个。
1、一套注册中心,优点是可以平滑切换,缺点是网络故障会导致注册失效,成本较低。
2、独立部署两套,优点是互不干扰,缺点是对于业务部署和业务系统之间的调用不友好,成本较高。
从性价比和维护性来看,第一个更好点。
服务注册中心是微服务治理框架中最主要的组件,微服务之间的隔离和弹性,都是靠服务注册中心进行管理。
在混合云部署微服务,可以更好的发挥混合云的优势。 混合云的优势在于可以坚固安全合规和弹性
能力,为了实现弹性能力,单一一套注册中心是最好的选择(架构简单,扩容灵活)。
在设计良好的微服务系统中,注册中心属于高可用,分布式的设计,接受最终一致性。一种方式是在公有云云和私有云上部署两个注册中心,这两个注册中心之间自己实现数据同步。微服务本身通过策略,实现本地服务优先的访问策略。
补充一点,这种方案需要对注册中心的通信进行监控,避免出现脑裂。
首先混合云场景的部署是未来的趋势,两种思路各有好处:
1、两云共用一套注册中心,微服务间走专线调用?
- 首先一定要考虑网络延迟问题,网络作为混合云的重要桥梁,是应用业务正常的必要条件;
- 两套分别部署到不同的环境(公有云、私有云),具备了高可用的属性;
- 为了避免资源浪费,建议采用双A方式部署。
2、如果独立部署两套,考虑到微服务间调用,如何架构较好?
- 一定是采用服务网关或类似平台化的架构,通过此架构可以轻松进行接口调用,而且便于拍错;
-内部的资源调度一定是在不同的集群内完成,不要跨集群完成;
- 监控相对清晰,拍错相对简单。
从项目经验看,我更看好第一套方案,成本较低、灵活性高,而且也是平台统一化的趋势所在。
收起混合云场景下, 部署一套或两套可能需要考虑混合云的管理能力和方式
网络延迟是一个重要的考虑因素,从高可用角度,尽量部署两套,互为备份,当然资源会浪费点,不过公有云通常作为备份措施,更好实现弹性伸缩
服务调用建议通过服务网关或api网关,在网关层可以实现负载分发、限流等能力,首先使用私有云资源,在响应时间或相关指标增加时,分发到公有云,实现弹性扩容。
微服务内部调用尽量不要跨云或跨集群。
无论是混合云也好,异地多活也罢首要条件就是网络打通,一般使用专线保障各朵云之间网络互通,好在目前各云厂商都提供这样的服务,只需申请即可。推荐使用单个注册中心,这样架构相对来说比较简单,扩容,缩容都简单。
如果技术能力满足的情况下最好能对架构做些调整,服务注册的时候标记下所属云,另外在客户端调用的时候选择同一朵云尽量避免跨云调用。
公有云和私有云是按照部署区域进行归类划分而来。在混合云中,不论架构如何,一方面对云平台之外用户提供服务,一方面云平台内部之间微服务互相调用。由于企业网络一般会进行多种逻辑分区,比如DMZ区、办公区、生产区等,难以用一套注册中心满足各种要求。不同网络区域的应用或者服务可以采用前置机或者代理的模式进行调用。
收起