容器云平台如何满足金融行业的监管和安全要求?
本文是2020容器云职业技能大赛架构师岗课程之《容器云平台建设需求分析》的介绍和试读。 本次大赛学习平台由上百位来自用户社区及共创厂商的技术专家联手打造,是一场集学习、认证与比赛一体化的产业级学习运动。其中架构师岗课程共24个,完成课程学习+自测,获取岗位结业证书。具体请戳>>>学课程,拿认证!胜任容器云架构师的这些技能,你皆可掌握→
2020 容器云职业技能大赛架构师岗课程系列之——《容器云平台建设需求分析》
课程出品人
顾文俊,某互联网公司 金融行业架构师。2008年南京邮电大学电路与系统专业研究生毕业,12+年职业生涯主要从事IT基础设施、云计算、容器、大数据、AI、金融科技相关领域的解决方案工作,twt社区平台特邀作者、2020 容器云职业技能大赛百位专家委员会成员。
本文通过对新经济形态下的业务特点的介绍,回顾了容器和容器云的兴起,阐述了容器云平台设计方案中需要注意之处。在分析了容器云平台所面临的挑战的前提下,对建设思路进行了介绍。从计算资源、网络资源、存储资源、支撑应用系统建设等方面深入进行了分析。例如,在计算方面,如何选择容器平台部署;在网络层面,如何选择网络组件;在存储方面,如何设计存储插件以及持久化存储;在应用开发方面,如何满足团队的协作开发和应用的快速迭代;在应用系统运维方面,如何满足应用系统的无中断部署和运维便利。
容器云平台建设会是一个不断完善、迭代积累的过程,同时容器相关技术的发展变化非常之快,在平台的建设中要持续保持新技术的敏锐嗅觉,来提升应用服务、运维管理、安全监管等各方面的水平。最后以金融类企业为例,探讨建设的容器云平台如何满足金融行业的监管和安全要求。
读者通过此文,可以对容器云建设的初衷有一个概念,并实践在今后的工作之中。
1 容器云平台概述
1.1 容器的兴起
1.2 容器云平台规划时需要考虑的一些问题
1.3 容器云面临的机遇和挑战
1 容器云平台概述
1.1 容器的兴起
1.2 容器云平台规划时需要考虑的一些问题
1.3 容器云面临的机遇和挑战
2 容器云平台建设思路
2.1 概述
2.2 部署
2.3 网络方案
2.4 存储方案
2.5 总结
3 以金融行业为例看容器云平台的建设要点
参考资料
试读章节:
1 容器云平台概述
1.1 容器的兴起
进入 21 世纪,社会和经济在不断进步的 IT 技术的推动下发生了巨大的变化,竞争越来越激烈,对各行业的要求也越来越高。企业必须要保持“敏捷、开放、创新”,才能在竞争中保持优势 。
在新经济形态下,业务和应用系统合二为一。新的业务需求如洪水一般滔滔不绝地从市场的第一线喷涌到企业的应用开发部门和系统运维部门。为了满足不断变化的业务需求,企业的信息系统的建设也在不断地变革,而且从未停步。应用系统的架构从客户端/服务器(C/S)架构,变为分布式计算(Distributed Computing)架构和多层(Multi-tier)架构,应用系统从互不连通的信息孤岛,变为面向服务的架构(SOA)和微服务架构(MSA);软件工程方法从瀑布式,变为敏捷式(Agile Method);应用系统的部署,从物理机,变为虚拟机和基础设施即服务(IaaS) 云, 再变为平台即服务(PaaS) 云和功能即服务 (FaaS) 云 。
通过近十年云化的推进,大多数有一定规模的企业已经实现了基础设施资源的池化和云化,这里的基础设施资源指的是诸如服务器、网络、存储。用户可以用很短的时间获取业务应用运行所需的虚拟机。基础设施资源云化其实并不是目的,而是手段。最终的目标是让承载业务的应用可以更快地上线。但现实是,通过虚拟机获取的基础设施资源并不能被我们的最终业务应用直接使用。应用系统还必须进行或繁或简的部署和调试才可能运行。部署涉及到操作系统的配置的修改,编程语言运行环境的安装配置,中间件的安装配置,数据库的安装配置,应用程序的发布和数据初始化等。部署的过程在一些企业仍然是通过手工完成,低效且容易出错。有的企业则是通过简单的自动化方式完成,提高了效率,但是满足不了后期更高级别的要求,如,补丁更新、操作系统升级、弹性伸缩、快速更改配置、动态申请存储、动态调整应用服务之间的网络访问。即使勉强通过自动化工具帮助实现,后期随着基础设施资源和部署的应用系统的类型的增多以及复杂化,维护的难度将会以几 何级增高,无法真正做到持续集成、持续部署和开发运维一体化(DevOps) 。
基于这个背景,业界需要有一种手段来弥合业务应用和基础设施资源的这道鸿沟,让应用可以做到“一键式”便捷地云上运行。为了实现这个目标,业界出现了多种不同的轻量级虚拟化技术,即,Linux容器(LXC) 。随后,一个叫Docker的开源项目出现了。Docker通过对 Linux内核已有功能的整合,为业务应用部署提供了一个更简单的方案,其简单易用的用户命令行,让Docker快速地获取了巨大的用户基础,并推出了Docker Swarm 容器编排工具 。而后Kubernetes异军突起,通过竞争击败了Docker Swarm和 Apache Mesos,成为当前业界主流的容器编排软件,即,容器云平台的核心。Kubernetes源于Google开源的容器集群管理系统,目前属于云原生计算基金会(CNCF) ,它通过规范的接口集成容器运行时,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容、负载均衡等整一套功能 。CNCF定义了一系列的规范,孵化了众多的项目,并建设了生态系统,以补充和完善基于Kubernetes的容器云平台解决方案 。
1.2 容器云平台规划时需要考虑的一些问题
容器云平台是一个全栈的企业级容器应用解决方案。它为容器提供了一揽子基础设施和平台服务:CRI兼容的容器运行时 、CNI 兼容的网络服务 、CSI 兼容的存储服务 、主机管理、负载均衡、防火墙、操作系统和平台软件……云端时代容器云平台让上述服务跨越公有云、私有云、虚拟机、物理机环境运行,真正实现一键式部署和应用 。
容器云平台采用基于VXLAN的Overlay网络方案 ,采用 VXLAN Overlay 网络能够简化不同网络区域主机间的防火墙设置,容器之间通过Overlay网络通讯,防火墙只需开通主机之间的Overlay网络端口,容器内部通讯可以通过network policy进行控制。这样对网络设备的要求降低了,无大二层的必要,消除了arp 广播风暴和网络设备不兼容的风险。
容器云平台可以部署和管理多个集群,集群可以部署在公有云、私有云、虚拟机、物理机上。此架构下多个独立集群,可独立扩展、升级,可扩展性和灵活性最佳;集群管理和计算资源完全隔离,安全性最佳;
可以进行混合云部署,平衡私有云的数据安全性和公有云的最佳经济性。
容器云平台必须提供数据中心级别的高可用性,单个数据中心故障时不影响应用系统的正常运行和使用。Kubernetes集群:每个数据中心有独立的Kubernetes集群,单个数据中心故障时,另一数据中心的集群仍可正常提供服务。用户可根据需要,将应用部署在两个数据中心以确保高可用性(需要注意的是应用系统的应用程序和数据库需要支持数据同步,将状态实时向每个数据中心同步,以保证业务数据的一致性)。
容器云平台的管理平面和数据库:采用高可用(HA)的跨数据中心部署,对于光纤直连的同城数据中心,可保证主备节点之间的数据一致性。通过前端负载均衡实现单入口访问,采用灾难恢复(DR)技术保证在一个数据中心故障时自动切换到另一个数据中心。
容器云平台使用OCI兼容的镜像仓库,并实现多数据中心的高可用部署,即,每个数据中心均有高可用部署的镜像仓库,每个数据中心的镜像仓库的服务均可读可写,同时支持同步复制数据到其他数据中心,保证了高可用和镜像一致性 。
1.3 容器云面临的机遇和挑战
云计算在IT市场上的比重会越来越高。当市场上同时存在OpenStack 、Apache Mesos 、DockerSwarm 和Kubenetes等云平台,并且存在竞争关系时,Kubernetes容器云平台的机会在哪里?从CNCF的统计数据来看,Kubernetes关注度已经超越OpenStack,并逐渐将与CloudFoundry、Docker Swarm和Apache Mesos 的差距拉大,这至少在一定程度上说明基于Kubernetes的容器云平台是未来云计算的趋势,趋势就是机会 。
从某个角度上讲,容器云可以做为IaaS/PaaS提供服务,容器云平台的流行并不意味着IaaS/PaaS的消亡,容器云平台是IaaS/PaaS在云计算道路上的进化,是企业和个人用户选择的结果,特别是企业用户,在选择第一代IaaS/PaaS之后有几个问题是避不开的。
1.第一代IaaS/PaaS服务运维门槛相对偏高,对运维人员的要求也高,组建一个合适的云计算运维团队不容易。即使有了专门的运维岗位和运维人员,在后续的业务迭代过程中运维和开发人员之间产生的沟通成本也无法忽略。
2.对企业来说,理想情况下是建设自己的私有云,退而求其次是使用托管云服务。但是无论私有云还是托管云,它们的代价都不小。因此,对中小型企业来说,最佳选择就是按需付费的公有云平台。当然,选择公有云平台也不是没有顾虑的。一来担心公有云平台本身生命周期太短,还不及自己产品的生命周期长;二来担心技术架构被公有云平台的技术、服务和条款所绑架 。
而Kubernetes容器编排技术的出现恰好解决了企业应用上云和交付的这几个痛点。
首先,容器轻量,成本低,运行效率高。容器的本质是一种操作系统级别的轻量级虚拟化,启动一个应用容器其实就是启动容器应用进程本身,这是容器技术与传统虚拟机技术的最大差别。
其次,容器镜像具有不变性。容器镜像能够将应用程序和它依赖的操作系统、类库以及运行时环境整体打包,统一交付。另外,容器镜像还可以通过Dockerfile定义,换言之,应用程序和运行环境一起是可以被版本化分层管理的。容器镜像真正抹去了应用程序多个运行实例间的环境和依赖版本差异,同时也把对运维人员的重度依赖解耦开来。
最后,Kubernetes容器编排与平台无关,兼容性好。Kubernetes容器编排在Linux平台各发行版下是兼容的,这意味着应用架构一旦在Kubernetes上部署之后,就可以在任何云平台间无缝迁移,不会被云提供商所绑架。Kubernetes容器编排技术出现在最被需要的时候,就像那只站在风口上的猪,这就是容器云平台的机会。
虽然业界普遍看好Kubernetes容器云的前景,但是也不乏一些唱衰的观点出现。对构建一个良性的社区环境而言,正面和反面的声音同样重要 。
1.容器技术和容器生态仍需要持续发展
容器的出现是近几年的事情。一般来说,会把Docker技术诞生的2013年作为容器技术流行的元年。众多的Docker用户只是将其做为一个轻量级虚拟机来使用,当使用Kubernetes管理Docker时,Docker的一些固有的缺陷就暴露出来了。例如,Docker的网络和存储管理带有天然的缺陷,成为大部分生产环境实践的障碍,另外,以 root启动的Docker daemon进程引入了过多安全风险。另外,容器依赖于Linux核心,容器的问题往往需要在Linux核心解决,若遇到各家扯皮就会是个大问题。
2.用户的使用习惯仍需要培养
从我们开展的容器目标群体调研结果来看,大家对容器的使用方式和容器的正确使用方式之间存在差异。长久以来的虚拟机概念深入人心,再加上LXC容器技术的先入为主,导致用户习惯于以使用虚拟机的方式在使用容器。这也是网易蜂巢提供容器化主机的根本原因。因为我们意识到,大部分用户的容器云使用习惯在短期内难以改变,只能慢慢引导。我们也期望通过不断丰富云平台功能,可以将用户使用容器云的角度,从IaaS转变为PaaS,释放出容器真正的威力。
3.安全仍是个大问题
容器技术本身非但没有提升应用的安全性,反而在一定程度上降低了安全性。因为容器与宿主机共享操作系统内核,只要同一个宿主机上任一容器存在漏洞,或者宿主机本身存在安全漏洞,都有可能导致上面的所有容器安全性受到影响。再加上公有镜像市场中的容器镜像鱼龙混杂、恶意镜像的传播途径更是不可控的,使得单独容器对容器云平台的安全性造成很大的威胁。如何有效防止外部攻击和内部渗透把危害带给云平台和业务,也是各容器云平台厂商需要思考并且解决的。
(试读章节完。篇幅所限,如需系统学习可以直接免费下载全文,学习中有疑问,可以参加在线辅导答疑。)
针对本课程社区已组织专家线上答疑活动:
学习过程中如有疑问,就扫描添加社区管理员为好友,加入到我们为您精心准备的学习班吧!有专家在线及时解答您在学习中的各种疑惑。
2020 容器云职业技能大赛
架构师岗课程系列
课程1:容器云解决方案架构设计及建设交付课程包括:容器云平台高可靠性设计容器云平台的稳定性设计容器云平台的安全性设计容器云平台的高可用设计容器云平台的性能设计容器云产品架构分析容器云平台网络架构设计、优化容器云平台存储架构设计、优化容器云平台监控架构设计、优化容器云平台安全合规规划设计
OpenShift中的NBU数据备份
容器云平台周边环境集成规划设计
OpenShift中使用Veritas Access存储识别以下二维码
了解更多”2020年容器云职业技能大赛“信息:
长按二维码关注公众号
*本公众号所发布内容仅代表作者观点,不代表社区立场