中国第一家推出容器云服务的金融行业云:平安金融云
作为国内综合金融卓越典范的中国平安集团,IT引领业务发展是其多年践行的企业科技发展战略,凭借多年积累的技术与团队经验,平安科技强大的IT能力始终为行业所瞩目。而平安的云计算战略,不仅仅着眼于平安集团自身,更期望立足于整个金融行业(和国内其他一些金融巨头的定位一样!),在科技服务自身发展的前提下,逐步谋求将先进而丰富的IT能力与基础设施资源对外进行输出,以科技的力量推动行业整体发展。而对于行业中的中小机构同业来说,在符合信息安全要求的前提下,标杆企业的专业技术与强有力的IT基础设施平台,是他们非常乐于学习和借力的先进资源,可以更快、更便利地获得专业的技术平台解决方案,这有利于他们将有限的人力物力更专注地投向业务应用层面的需求响应。
平安科技正是在这一战略前提下开始致力于打造金融行业领先的“平安金融云”,恰逢标志着Cloud2.0时代到来的容器技术传入中国,其诸多革命性的技术优势很快引起了平安技术先行者们的积极关注。及至2015年下半年,平安科技决定在新的平安云平台建设项目中,正式启动对容器技术的选型与引进。
项目目标场景
框架选型
在提供容器服务之前,平安云平台已经在为用户提供云主机、云存储等一系列企业公有服务,为了实现快速对接平安云已有IaaS平台并提供全面的容器云运营管理能力,平安科技在容器管理平台框架选型方面提出了以下选型要求:
- 架构简单,能够快速部署,易维护。
- 开源,贴近主流社区和原生平台。
- 支持多租户,能够严格的隔离和必要的互通。
- 支持VPC网络降低对网络的依赖。
- 符合容器服务规范的Stack、Service、Container领域模型。
- 完备、丰富的RestfulAPI。
- 跨平台支持好,能够适应混合云部署模式。
经过一系列的验证与测试平安科技最终在K8S,Mesos+Marathon以及Rancher之间选择了我们的Rancher平台作为容器服务平台基础框架。
自助服务
过去,开发测试人员做应用的开发测试工作时往往需要通过繁杂的内部资源申请流程获取开发测试环境。过程中常常需要与运维团队中负责各个基础设置资源管理以及数据库、中间件管理的成员进行多次沟通。无形中增加了时间成本沟通成本,同时所申请的环境在使用之后没有有效的资源回收机制造成了大量的资源浪费。
为了解决上述问题,平安科技通过容器服务平台为租户提供自助开发测试容器环境创建服务。租户可以自助在平台上快速部署所需服务与环境,并且在平台所分配的资源池中使用或释放开发测试容器环境作用资源。同时自助的在平台上完成镜像管理、应用编排、服务集群管理、容器管理等一系列工作。
持续交付
提供API对接平安已有的开发管理平台Wizard,为CICD流水线提供容器运行环境,实现全流程部署自动化。
技术实现方案
服务架构
平安云统一管理区
容器服务门户
- 门户系统,提供容器服务操作。
- 基于lvs+keepalived部署架构,外接mysql集群。
统一管理节点
- 采用Ansible,用于部署多租户容器环境,添加主机,初始化Registry等节点管理。
平安云公共服务区
Rancher服务
- 核心服务组件,主要用于容器调度与部署。
- 基于lvs+keepalived部署架构,外接mysql集群。
Docker节点
- 用于镜像制作、上传、下载,文件传输,执行Docker命令。
PublicRegistry
- 平安官方公共镜像仓库,同时是官方公共租户的镜像库。
- 采取多节点挂载共享盘部署。
租户VPC
租户环境
- 每个租户拥有完整容器部署和运行环境,包括RancherServer、Docker节点、PrivateRegistry。
- 隔离与其他租户之间的影响,减少跨租户的网络访问。
容器网络
对外:ContainerBridge,采用端口映射。
对内:容器之间直接使用容器管理平台框架Rancher自带的IPsec隧道实现。
如果某个容器需要对外服务,则采用端口映射方式,连通所在vm,就可以暴露服务。
如果容器不需要对外提供服务,只需要在同个应用内提供服务,那么采用ipsec方式,这样避免浪费过多端口。
容器与容器之间建立私有网络,只有容器与容器之间可以访问。每个容器都拥有一个私有网络地址:10.42.网段。
容器存储
根据Docker官方提供的所有存储驱动的成熟度。可以看到目前Production-Ready的是AUFS和DeviceMapper。
目前平安科技容器服务统一运行在CentOS,还没使用其他操作系统。因此选择DeviceMapper作为容器存储驱动。DeviceMapper底层直接使用云磁盘作为pool,采用LVM管理。
除了容器和镜像存储外,应用数据存储,包括配置文件采用了volume接口或者直接volume映射来解决应用容器漂移的数据问题。
日志
- 容器服务平台日志:本地+云平台ELK日志服务。
- 容器自身运行日志:本地云磁盘+云平台ELK日志服务。
- 容器内应用(业务方)日志:业务自行规划,已经提供目录挂载。
容器监控
主要依赖Rancher平台自带的主机与容器的监控功能,同时,通过脚本,定时获取容器本身的性能监控(cpu/mem/network/storage)数据,能够在portal上查看。
1、主机监控
2、容器监控
3、特定的中间件监控
平安研发了基于zabbix/open-falcon的监控平台用来提供常见中间件的性能监控(WebLogic/Tomcat/Nginx等),为中间件镜像制作脚本,中间件监控程序整合到Docker镜像中,容器一启动,就能即时上报性能数据到监控平台,无需任何外部干预。
镜像管理
针对镜像管理,平安科技进行了从单节点->双节点->跨区域分布式架构的演进。
通过自行开发的服务组件实现对不同区域数据中心的跨区域分布式镜像管理,每个区域都部署一套,对接本区域的私有镜像库。一方面监听当前区域的镜像仓库事件,然后主动发起同步操作。另一方面:执行Dockcer命令,管理该区域的所有运行容器的机器。
项目成果
经过大半年的设计、验证、实施,平安科技以全球领先的容器云开源技术框架(Rancher)为核心,自主研发为主,圆满完成了平安云CaaS容器服务平台的建设,实现了为平安集团旗下各个金融类别和拥有不同开发模式的子公司用户,提供物理机、虚拟机、容器等满足不同种类计算需求的计算资源服务的总体目标。并于2016年尝试面对公众市场发布推广,成为金融行业走向容器云平台公共服务的第一家机构!
结语
睿云智合(Wise2C)作为Rancher在金融保险行业的独家总代理,有幸成为这一历史性重大项目的合作伙伴,新的一年我们将一如既往地为平安金融云的不断发展提供更多专业、高效的服务。
同时,我们也非常高兴受邀参与到了更多不同运营方向的其他大型金融机构的容器云平台建设项目,为此我们正不断完善自身的系列容器技术平台产品,希望将我们的项目经验和技术能力,完整而快捷地交付给更多的企业用户!