针对某一套具体应用系统,比如8节点,4个节点以虚拟机方式部署和运行,4个以容器方式部署和运行,前端通过负载均衡进行流量控制,这种方式是否有银行生产落地实践?有哪些需要注意的技术难点?
肯定是可行的。
传统企业在进行老系统容器化改造的过程中,应该都会面临这个问题:切割上线的时候,是一刀切,还是先并行(或称之为灰度发布)?
虽然在容器环境生产上线前都会经过各种各样测试,但是很难保证一刀切(将业务系统的访问流量从虚拟化环境全部切换至容器环境)之后不会出现异常。所以,比较稳妥的方式,就是将同一系统在原有环境中与容器环境中同时并行运行。以F5负载均衡为例,将”容器节点“作为新的pool member加入到原有的VS中。需要注意的是,这种方式需要考虑容器环境的外部访问模式,如果是NodePort访问方式,则需要把node+port加入到VS中,如果是域名访问方式,需要把Router加入到VS中。
这种方案是银行过渡到容器云阶段的必经之路。
1.接入层使用负载均衡来流量分发到虚拟机或者容器集群,虚拟机部署的应用服务endport基本可认为是固定的,负载均衡可以手工配置,但是容器集群的应用容器是动态ip(除非做ip固定),这样就要求负载均衡要有服务自动注册的能力。
2.容器化到一定阶段后,上下游应用混合跑在异构环境中,要注意容器集群和虚拟机集群的互联互通,虚拟机要能访问到容器集群的服务实例,容器集群也要能访问到虚拟机集群里面的关联服务。
3.要注意规划采用哪种容器网络方案,不同的网络方案会有不同的问题。(三层路由或者隧道模式,或者放弃网络隔离性,采用宿主机网络)
4.注意关联服务是否有ip白名单的安全管理要求。
分别部署虚机/物理机和容器环境,可行!
1、目标:对于业务连续性要求,防范新技术(容器技术)应用的技术风险,重要系统可以同时部署在两种环境,形成“本地双活”,当容器平台发生风险时,无业务中断风险,但是此技术会增加配置复杂性、架构复杂性和操作复杂性。待容器技术成熟后,可切至容器平台,也可认为是一种技术过渡性方案。
2、应用节点部署,1)虚机/物理机部署,可采用自动化部署(使用Jenkin、ansible等自动化技术),或者手动部署;2)容器部署,采用镜像进行一键部署。
3、负载均衡,最前端采用F5,1)双负载均衡架构,前端一个总VS,下挂分别挂两个VS:A、虚机/物理机单独再配置一个VS(虚机物理机IP),B、容器部署也配置一个VS(容器软负载IP);2)单负载均衡架构,前端一个VS,下挂混合虚机/物理机IP以及容器软负载IP。
4、上述两种负载均衡根据各数据中心情况和需求进行相应调整。