随着云计算的成熟,银行的 IT 系统发生了很大的变革,很多银行都在经历主机下移和核心应用上云的过程。在银行的数字化转型过程中,应用的快速交付、灵活调度和水平扩展能力越显重要,而容器技术以及相关 DevOps 实践成为解决上云问题的两把钥匙。容器以及容器编排技术与传统的虚拟化技术相比较,可以提供极致性能、高效调度和快速部署的优点,目前已经成为基础设施的一个主流技术体系。容器技术是继虚拟化技术后, IT 基础设施和云计算的一次技术 “ 革命 ” 。
Google 目前的所有服务和应用都是跑在容器之上 , 知名互联网企业发布云原生裸金属 + 容器的基础设施方案。万物皆可容器化,成为目前云基础设施的一个发展趋势。 DevOps 的理念很早就提出,但是随着容器的普及而快速流行起来, DevOps 解决了传统运维体系中,开发团队和运维团队目标相左的矛盾,实现了应用快速、可靠的交付。
如何在银行的关键应用中,运用容器和 DevOps 的能力,发挥其灵活高效的优点的同时,保障银行关键应用的稳定和可靠,都是需要持续探讨的问题。
1 、银行关键应用上容器云平台,应该如何进行技术平台选型?需要考虑哪些方面?
2 、容器平台上的关键应用如何实现应用的高可用?
3 、银行关键应用采用容器平台,主要关注容器平台的哪些特性?是否会开启弹性伸缩?
4 、交易类应用在上容器云的过程中,是否需要进行拆分?如果拆分,如何保障事务一致性?
5 、容器云平台的监控体系应如何建设?
为解答以上疑问,本次活动社区特邀请了大型银行专家分享容器云实践经验、红帽专家分享行业解决方案,同时会集中在线解答大家的问题。
以下是本场交流活动的典型问题:
回复 1 : Rechen 云计算架师,某大型银行
建议从技术、流程和人员这三个维度进行问题细化。
回复 2 :聂健 资深解决方案架构师,红帽企业级开源解决方案中心
技术选型除了关注的功能点外,更需要考虑的因素包括:
回复 1 :顾黄亮 技术总监,苏宁消费金融有限公司
这个问题是个伪命题,不存在容器替代虚拟机,也不存在虚拟机会消亡,双方之间也不是对立的取代与被取代的关系,而更应该是互补合作的关系。
原因有如下,首先我们不说容器的各种优点,在此我们就不再说了,听了太多了,如果大家关注虚拟化技术的话,你会发现容器的优势虚拟机基本上都有。比如说,容器赖以成名的镜像、服务发现、弹性伸缩,虚拟化都有了,而且不比容器差。
谁取代谁,关键还是看场景。并非所有应用都适合用容器:比如传统的关系型数据库应用,则不是像容器场景中宣称的那样随时都可以随便重启的,而且,数据库的高可用也不是像 Kubernetes 那样挂一个服务发现就能解决的,而是应当使用数据库本身的高可用架构来实现以确保数据的可靠性和一致性!容器是有自己十分具体的应用场景的,至少目前来看,在超出上述领域之外的其他传统应用分发、部署、运维管理中,容器并没有特别的优势,反而具备一定的劣势。场景化需求才是两种技术选择的关键。
总结一下,混合云,多技术栈的云计算场景运用,和安全稳定高可靠的架构,才是最重要的。
回复 2 :聂健 资深解决方案架构师,红帽企业级开源解决方案中心
Openshift 上有个项目 cnv, 对应着社区版本的 kubevirt, 就是通过 Kubernetes 去管理虚拟机的,也就是会把你的虚拟机包装成一个 pod, 在 Openshift 平台上进行管理,而用户使用的模式和虚机一样,固定 IP, 任何修改给你持久化,目前这个项目是处于技术预览阶段。
使用场景是对于一些很难改造的应用或者不愿意改造的应用,如果需要纳入 OpenShift 来统一管理,可以把你之前的虚拟机做成 qcow 模板,然后导入到 openshift 平台上成为一个 virtual machine 的 crd 来运行,但这种模式下就比较适合 openshift 运行在物理机的环境上了 , 因为如果底层还是虚拟化平台,那就面临嵌套虚拟化,可能导致性能问题。
回复 1 : rechen 云计算架师,某大型银行
回复 2 :聂健 资深解决方案架构师,红帽企业级开源解决方案中心
涉及到需要监控的范围是包含了平台的数据,还是业务监控的数据。
另外需要考虑多集群下的统一监控环境的搭建
第三点是除了环境建设问题外,获取的数据指标体系需要慢慢的积累,可以从一些简单的开始,然后总结经验,逐步丰富,形成自己的指标体系。
4.容器平台上的关键应用如何实现应用的高可用?
回复 1 : rechen 云计算架师,某大型银行
回复 1 : rechen 云计算架师,某大型银行
可以考虑在 DEVOPS 平台,定制出相应的 PIPELINE 流水线,屏蔽掉开发人员写 Dockerfile 的负担,兼容开发人员的编译习惯,譬如 JAVA 开发人同,只需要保证和之前一样,正常编译出 JAR/WAR , DEVOPS 平台按标准化规范(注:包括 BASEIMAGE , JDK 、中间件等的标准化)就能够自动生成容器镜像。
做好推广工作,譬如举办培训和考试认证。
回复 2 :聂健 资深解决方案架构师,红帽企业级开源解决方案中心
挺好的问题,我觉得几个方面:
回复 1 : 聂健 资深解决方案架构师,红帽企业级开源解决方案中心
目前看到更多的是研发部门牵头,因为上容器云更多的需求是为了实现应用的快速迭代和支持业务敏捷创新,因此开发和发布效率这块是一个比较关键的指标,而且也是容易收到立竿见影的效果的。为保障容器云的生产运维,也需要去构建容器运维和监控告警体系。
确实存在当把容器云做大以后生产环境需要移交数据中心的问题,一般来会由属于研发中心 PaaS 团队的一些人员加入到数据中心进行交接和赋能,有一个联合运维的阶段,数据中心完全能接手后研发再着力于技术和平台的创新 。
回复 1 : 顾黄亮 技术总监,苏宁消费金融有限公司
这个问题老生常谈了,很多人都说过, docker 很多场景都用到了 root 用户,而且 docker 一直所标榜的沙箱和隔离是否能够保证安全。 比如很多人就说,使用 root 用户运行 Docker 容器内部的应用,是否能够做到数据和权限的安全?容器内的 root 是否可以操纵宿主机资源?
回复 2 : 聂健 资深解决方案架构师 , 红帽企业级开源解决方案中心
如果只是在 docker 环境下,在 openshift 中缺省条件下是不允许以 root 用户运行的,怕造成权限的泄露 ,openshift 为了容器运行的安全,通过 scc 结合 os 层面的 selinux 去进行限制。
如果某些场景一定要再容器内布通过 root 权限,可以打开 SCC 限制,但建议通过 sysdig 进行一些 audit, 防止 root 用户在容器内部中进行一些非法操作。
Docker 因为 docker daemon 是需要基于 root 运行的,机制上很容易造成容器内进程发生权限逃逸,拿到宿主机的权限,另外 docker 机制不好的地方是所有的运行容器都是这个进程的子进程,如果有错误产生,就会有孤儿进程 . 正因为这个原因,在新的 openshift 4 版本中基于 podman 和 crio 的容器引擎,不需要后端运行 daemon 进程,通过 cri-o 或者是 podman 直接去构建 runc 的容器,构建和运行容器都不需要 root 权限,防止权限逃逸,具备了更多的安全性特征。
回复 1 : 聂健 资深解决方案架构师 , 红帽企业级开源解决方案中心
目前看到更多的是在应用层面去监控,比如对于微服务架构的应用,可以通过微服务架构中的能力去做请求调用的监控,比如 istio, 但系统层面的流量监控可以通过一些专业的工具比如 Dynatrace 进行分析 .
回复 1 : 聂健 资深解决方案架构师 , 红帽企业级开源解决方案中心
其实 多客户是在自己的 vmware 或者 openstack 等平台上部署 openshift, 也有一些是通过物理机直接部署容器环境。从原理和技术上说是一致的,区别是通过物理机部署性能会更好一些。在私有云上部署的好处是集群扩展性更方便一点,毕竟虚拟机比较容易申请,而物理机资源申请相对难一些,当然也有虚拟机和物理机混合部署在一个集群的客户 。
回复 1 : rechen 云计算架师 , 某大型银行
生产环境中容器云平台的网络架构的设计和网段规划很重要 . 容器云平台的网络架构的设计细节,包括多 AZ 可用区、 DMZ 网络分区、安全防火墙、 NAT 、 SLB 负载均衡器的部署、容器 OVERLAY 网络、虚拟化 SDN 网络等,都会影响对网络运维难度的主观判断。
故障排查方面,这是一个团队协调的活动,除了需要熟悉上述容器云网络设计的技术骨干外,还要熟悉出故障的业务应用系统的各模块调用关系的应用运维人员,以及基础设施方面的资产监控数据、网络 TAP 流量数据的分析支持。 有这些架构资产和监控数据, 在实际出现网络故障时,排障团队能够快速从业务应用系统的故障表象, 逐次识别出网络流量在各拓朴节点的入站、出站的相关问题。
回复 2 : 聂健 资深解决方案架构师 , 红帽企业级开源解决方案中心
需要对容器网络的调用层次有一定的了解,比如 openshift 容器网络架构可以参 https://docs.openshift.com/containerplatform/3.11/admin_guide/sdn_troubleshooting.html 。日常运维,基本是要去监控关键的网络组件的状态去确定是否工作正常,而异常情况下的问题分析就需要通过 tcpdump 进行抓包分析。
更多问题可点击链接查看
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论0 条评论