logo

地址:深圳南山区大冲国际中心21楼

联系我们 : contact@wise2c.com

产品支持 : service@wise2c.com

售前咨询 : sales@wise2c.com

电话: +86 (755) 33268246

粤ICP备16049363号

最佳实践

某股份制商业银行定制化PaaS介绍

某股份制商业银行的PaaS平台是由睿云智合(Wise2C)与Rancher合作,基于Rancher做的定制化开发。基于业务场景和银行业的特殊需求,同时为了兼顾能够实现对以后Rancher版本的平滑升级,我们在Rancher之上做了一层逻辑抽象。 一、软件架构与部署方案 整体软件架构如下图所示: 顶层的DCOS作为统一的管理平台,可以通过PaaS以及IaaS提供的API实现对云平台的集中管控。左侧蓝色部分是原生Rancher,DCOS与红色定制化部分通过API来访问Rancher。由于未对Rancher做任何改动,可以做到对Rancher版本大于1.2的平滑升级。   红色部分为定制化逻辑抽象部分,归纳起来可以按照功能职责大致分为以下微服务(后面会详细介绍): 1 鉴权认证 2 资源管理 3 应用编排 4 弹性伸缩 5 日志收集 6 监控告警 7 镜像仓库   这些微服务在部署时按照Rancher将infrastructure stack部署到环境中的思路,使用一个独立的Rancher环境来部署这些微服务,部署拓扑结构如下图所示: 图中每一个虚线框对应Rancher中的一个环境;“扩展ENV”这个环境直接使用Rancher server的主机作为Agent,上面运行定制化的微服务。其他环境分别对应到某个租户的特定网络,单个网络内部流量不使用Rancher原生的overlay,而采用Wise2C实现的扁平化网络,网络之间流量由外部防火墙控制。   二、角色与权限模型 PaaS平台的角色与权限模型沿用了Rancher的一部分概念,又引入了自己的内容。主要差异在于两方面: 1 PaaS平台引入了对镜像仓库的管理,这在Rancher中是没有的;即角色的权限,除包含操作Rancher外,还能够操作镜像仓库。镜像仓库与PaaS的权限模型是一致的; 2 另外,客户引入了租户的概念,这点与Rancher中不同,租户是可以跨越多个Rancher的环境的   Rancher权限模型: 平台管理员: 拥有整个Rancher平台的所有权限; 环境用户: 1 Owner拥有环境的所有权限; 2 Member拥有除对环境内部用户授权外的所有权限; 3 Restricted User拥有环境内部除对用户授权以及操作基础资源外的所有权限; 4 Read Only拥有环境内部资源的只读权限;   PaaS平台权限模型: 平台管理员: 等同于Rancher的平台管理员权限再加上对镜像仓库管理的所有权限; 租户内部角色: 1 租户管理员拥有管理租户资源以及对租户内部用户进行授权的所有权限;再加上对镜像仓库管理的所有权限 2 高级成员在PaaS平台内拥有对租户内用户授权以及操作基础资源外的所有权限;在镜像仓库内,拥有对镜像仓库设置镜像同步规则、创建、删除镜像仓库Namespace、改变镜像状态等权限; 3 受限成员在PaaS平台内拥有对租户内用户授权以及操作基础资源外的所有权限;在镜像仓库所属Namespace内,拥有上传、下载镜像的权限; 4 Read Only在PaaS平台内,拥有查看租户类资源的权限;在镜像仓库所属Namespace内,拥有查看镜像仓库资源的权限; 具体映射关系如下图所示: 鉴权部分的软件设计如下所示: 所有对PaaS访问的API请求均经由API proxy做鉴权控制之后代理到系统内部具体的微服务上。PaaS不直接参与租户的增删查改,API proxy通过与PaaS外部的Keystone通信来获取用户角色以及租户信息。   三、资源管理 网络部分 1 由于金融行业对网络安全性方面的要求比较苛刻,而Rancher所能够提供的均是基于某个环境内部的overlay网络。Overlay必然会导致很多报文无法被安全设备透明的过滤,这是行业内无法接受的;因此,必须采用扁平网络。 2 处于安全的考虑,会出现同一个stack内部的多个service需要分别部署到不同的网络分区的需求,采用当前Rancher的managed网络显然无法满足需求;因此,必须支持多网络。 对于扁平网络的支持,我在之前的文章(在Rancher 1.2中实现基于CNI的扁平网络)中有详细的介绍,主要是使用ebtable直接在linux bridge上对流量做控制,从而避免使用overlay;这样,外部安全设备能够透明的看到各个容器之间的流量。     对于多网络的支持,我们是通过在Rancher之上实现一层抽象逻辑来实现的。整个模型演变为一个网络映射为Rancher的一个环境(环境内部运行一个扁平网络)。这部分主要涉及对平台中所有网络的管理,以及维护租户与网络之间的映射关系。 下面举一个例子来描述该流程:     1 平台管理员在PaaS上创建一个网络,指定网络的参数(子网掩码、网关、所属安全域、所属隔离域等),这些数据会保存到数据库; 2 平台管理员根据需要为租户分配第一个网络;此时,抽象层需要真正在Rancher上创建出网络所对应的环境;以及创建监控、日志、以及定制化系统所需的system级别的应用堆栈; 3 当平台管理员为租户分配第二个以上的网络时,抽象层还需要将该Rancher环境与租户其他网络对应的Rancher环境之间建立env link关系,否则跨Rancher环境的应用堆栈各service之间无法使用Rancher DNS进行互访。 存储部分 客户PaaS在存储部分最终选定NFS作为其存储方案,前期也有讨论过使用ceph等,这部分我在之前的文章(探讨容器中使用块存储)中也有专门分析过为什么不选用那种方案。 由于单个租户可以拥有多个网络(也就是多个Rancher环境),而在Rancher中Rancher-NFS driver所创建volume是基于环境层面的。为了能够将该volume映射到租户层面,我们在抽象层中做了这层映射操作。 具体流程如下: 1 平台管理员在PaaS中指定参数创建出一个NFS server;同网络一样,此时只是将数据保存到数据库; 2 平台管理员为租户分配NFS server,此时抽象层真正操作租户网络所对应的多个Rancher环境,在逐个环境内添加用于提供Rancher-NFS driver的system...

Read More

邮政电商平台“邮乐网”完成容器云平台项目建设,进一步完善分布式架构系统治理

众所周知,容器技术在互联网电商平台的应用普及相比传统企业更早、更为广泛,2016年10月,邮乐网成为睿云智合第一个互联网企业客户。   邮乐网由中国邮政与TOM集团携手呈献,是一个结合高端线上网购和线下零售于一体的独特创新购物服务平台。中国邮政历史悠久,线下网络覆盖全国,并且拥有完善的物流系统及代收货款一体化平台;TOM集团在电子商务领域具备丰富的经验、先进的科技及应用。双方互为裨益,以后来者面貌出现的 “邮乐网”,正试图通过集合中国邮政和TOM集团的资源优势,以及借鉴双方在电子商务市场的经验教训,来实现在B2C行业的突破。   以高起点、高规格快速搭建的邮乐网电商平台,核心技术团队来自沪港地区资深互联网、金融等领域,在搭建支撑年营收额数百亿且高速增长的业务平台过程中,技术平台的选型与部署严谨而又高效,在全球范围内对容器云集群管理平台产品进行了筛选与评估,最终选择Rancher作为容器云平台核心框架,由睿云智合提供项目实施与技术支持服务,双方共同为邮乐网的电商运营平台提供基于容器的云计算基础架构解决方案。...

Read More

安盛天平借助容器技术提升关键业务系统持续运维自动化水平

在刚刚达成的安盛天平汽车保险有限公司与睿云智合的容器项目合作中,双方确认,由睿云智合提供全方位的技术支持服务,帮助安盛天平实施应用容器化的持续运维管理平台建设。双方将建立长期的技术合作,以逐步实现安盛天平各个关键应用系统在接下来分阶段、分步骤地完成生产环境容器化后的持续运维管理目标。   安盛天平车险是中国财产险市场上目前以数字化业务为主要核心渠道的两家公司之一(另一家是平安产险),公司业务系统架构一直以追求灵活响应、高度自动化为目标,是为数不多在信息技术层面能够快速高效响应数字化业务发展需要的财产保险公司之一。早在2015年末,安盛天平的技术团队即已投入对Docker技术的研究与学习试用之中,在自行完成了多种容器编排框架产品的内部部署与测试后,最终仍选择借助第三方技术服务方的力量,与深圳睿云智合共同合作,逐步完成基于自身实际需要的容器化应用持续运维管理平台的建设,为安盛天平继续保持在车险数字化业务领域的竞争优势提供新型容器云技术的有力支持。...

Read More

国内首家股份制商业银行基于容器的PaaS平台项目正式启动

2016年10月,在历时半年的技术选型和验证性测试之后,恒丰银行最终选择了基于美国Rancher Lab公司提供的容器集群管理平台来实施轻量级PaaS平台项目。作为Rancher Lab在中国的战略合作伙伴,睿云智合承接了该项目的全部研发与实施任务。   恒丰银行为全国18家股份制商业银行之一,在极短的时间内完成了公司经营模式和治理架构的大幅改造。由科技驱动业务高速发展的战略是公司核心经营思路之一,自主研发的各类系统解决方案将直接支持一线业务开展,因此,打造一个内部的软件生产/交付/运营全生命周期管理平台(PaaS)变得极为重要。在Docker引领下的容器技术颠覆性发展的今天,PaaS平台变得更为轻量又易用,将成为企业级用户IT能力建设的一个关键性基础平台。银行业由于面对严格的风控与监管要求,在创新信息技术引进落地方面格外谨慎,诸多银行均在1~2年前即已开始着手基于容器的PaaS平台建设方案调研,此次恒丰银行PaaS项目的启动则率先成为银行业的第一单,堪称金融行业容器技术应用项目的一个里程碑。...

Read More

长城人寿谋求核心系统架构改造,探索微服务治理解决方案

2016年10月,睿云智合与长城人寿保险公司达成合作,为其提供系统架构改造与容器技术引进咨询服务。   长城人寿隶属北京金融街集团,已在专业寿险领域耕耘十余年,致力于从产品和客户服务方向走差异化经营路线,树立自身独特的保险服务品牌。长城人寿根据细分客户不断创新,开发了包括母婴险、自助养老险和全能健康险在内的一系列高保障保险产品,特别为钢琴天才郎朗开发设计了十指保险,突显了保险的保障本质。   进入日益激烈的数字化业务竞争阶段后,长城人寿对自身业务系统的灵活、快速响应能力要求也日益提升,业务系统进行架构改造的需求也日益强烈。经过调研选择,长城人寿选择与睿云智合进行合作,引进专业IT咨询服务,针对现行系统架构改造制订规划路线和实施方案,同时也对未来基于容器的微服务架构系统治理模式进行了探索与验证。以这个项目作为起点,从此长城人寿的业务系统架构改造工程正式迈入实践阶段。...

Read More

民生人寿保险成为首家将基于容器的DevOps平台在生产环境落地的金融企业

2016年中,民生人寿保险有限公司经过技术选型,决定引进睿云智合基于容器的CI/CD产品WiseBuild作为其接下来在IT内部全面推动DevOps的核心平台。该项目预计在半年内逐步替代原有的应用开发测试运维作业模式,使得民生保险的IT治理模式更加顺应新一代分布式架构的核心业务系统的开发&运维要求,显著提升业务系统软件的交付效率。   作为民营寿险企业的杰出代表,民生人寿成立十余年来始终坚持贯彻“以用户为中心”的经营理念,将不断提升用户体验,丰富服务模式,尝试通过多种渠道为客户提供个性化、定制化的保险产品作为公司追求的经营目标。而这一业务经营方针对IT支持的要求也在日益提高,在经过反复的“打补丁”方式勉力维持原有核心系统运行多年之后,民生人寿IT团队决心破旧立新,着手重构一套全新的微服务架构核心业务系统,并且采用容器技术来优化微服务架构系统的治理模式。民生人寿表示,新架构下的核心业务系统重建项目意义极为重大,它很可能带领民生人寿在未来几年保险市场风起云涌的激烈竞争格局中突破重围,一举超越同类型机构。...

Read More

富德生命人寿在保险行业率先启动容器技术全面实践应用

2016年初,富德生命人寿经过大量调研与验证性测试评估,结束了容器云集群管理平台的技术选型,选择睿云智合作为其接下来容器技术应用场景全面实践项目的技术服务方。   富德生命人寿保险股份有限公司是一家全国性的专业寿险公司,成立于2002年3月4日,总部现位于深圳。在保险行业,富德生命人寿曾创造多个业务创新与高速发展的业绩奇迹,其科技团队技术实力雄厚,应用系统坚持走自研为主的道路,成为行业典范。本次项目旨在引进容器技术,帮助富德生命人寿IT在CI/CD,微服务治理,应用容器化后持续运维,混合云管理等各个场景全面践行和检验容器技术的可用性、可靠性,为未来实现IT整体架构改造,加速IT对业务需求高效、灵活的响应支持奠定基础。...

Read More

在Rancher 1.2中实现基于CNI的扁平网络

  Rancher 1.2 网络现状Rancher 1.2之于之前的版本在很多地方都有颠覆性的更新,今天我着重来谈网络方面。在1.2中Rancher实现了对CNI的支持,通过network-plugin来实现对CNI的调用;另外,network-plugin还实现了如为暴露端口的容器配置DNAT,MASQUERADE等操作。但是,1.2版本也并非彻底的拥抱CNI,原因如下: 01 Network-plugin默认为必选项,其内部自动检测容器是否expose端口到host,并为容器端口配置DNAT规则;另外,所有容器默认使用docker0经过三层转发(通过Iptables规则控制)来访问外网,即全部配置MASQERADE;这一点限制了网络模型(二层广播域只能在host内部),将影响到希望使用另一张网卡来实现扁平网络的用户;02Network-plugin的启动依赖于Metadata,而Metadata和DNS server均使用docker0的bridge网络(IP为169.254.169.250)。即,用户私有化的CNI网络必须要能够访问到docker0网络,否则Rancher提供的服务发现与注册以及其它为业务层提供的服务将不可用。03不支持多个网络,官方宣称只能选择一个CNI网络,在UI中对所添加的各类型的CNI网络均显示为托管网络。其中系统基础服务比如scheduler、health check以及load balance默认均只能在托管网络内工作。如若手工添加了其它CNI网络,将导致第二个CNI网络内,scheduler、health check以及load balance异常。客户需求 一  在很多场景中用户对于容器网络的使用,还是希望业务与管理隔离,即通过一张独立的网卡来运行业务流量。二   在混合组网的场景中,用户一部分业务运行在裸机中,另一部分业务运行在Rancher容器内,将这两张网络统一为一张扁平化网络的呼声也较大。 解决方案基于Rancher 1.2中CNI的诸多限制,有没有办法去实现扁平网络呢?答案是肯定的!网络整体拓扑先看一张网络部署图,下图可分为两个区域,Rancher区域与裸机区域。Rancher区域HOST-1和HOST-2分别为Rancher的agent节点(每个节点有两张网卡),按业务划分,该区域内部可以通过容器部署一些变动大、常启停或常扩缩容的业务。 裸机区域 Host-3以及其它主机为物理服务器(即裸机),按照业务划分,host-3上可运行一些相对业务对硬件资源要求较高,且不常变动的业务组件。 这两个区域通过业务交换机二层互联,如果网络规模小,这样的拓扑结果是没有问题的。如若网络规模大,需要考虑广播域的问题,为了避免广播风暴,一些客户会使用一些支持SDN的设备来取代业务交换机,从而对二层广播做限制。  扁平网络内部(包括两个区域的所有主机)统一使用外部的路由器做网关,比如图中,Rancher内部的容器的子网范围为10.43.0.0/24, IP地址池范围为10.43.1.2-10.43.1.254。同理,裸机域内,子网范围为10.43.0.0/24, IP地址池范围为10.43.2.2-10.43.2.254。   之所以要将管理网络和业务网路经过同一个路由器(或者防火墙)是因为scheduler需要访问cattle,即管理网;另一方面,scheduler又需要由CNI网络中的health check 做健康检查和故障恢复。若考虑安全问题,可以在防火墙上配置规则,对业务网对管理网的访问做限制。 Rancher内部CNI网络内部CNI网络主要需要解决两个问题: 一  如何访问Metadata和DNS server的地址169.254.169.250;二  采用独立的网卡来转发业务流量后,二层广播域跨主机了,若每台主机上还通过同一个IP 169.254.169.250访问DNS和Metadata服务,如何解决地址冲突的问题; 下图是宿主机内部CNI网络的拓扑图以及流量转发规则: 由于扁平网络需要使用自定义的bridge,与docker0无关。同一个network内部的所有容器属同一个二层网络,且都不可见169.254.169.250地址。为了让容器可以访问该地址,我们采用将br0(CNI bridge)与docker0连通,然后再该链路上的流量做限制来实现。具体如下:1、container-1内部有到达169.254.169.250的一条主机路由,即要访问169.254.169.250需要先访问10.43.0.2;2、 通过veth-cni与veth-doc的链接,CNI bridge下的container-1可以将ARP请求发送到docker0的10.43.0.2地址上。由于10.1.0.2的ARP response报文是被veth-cni放行的,于是container-1能够收到来自10.43.0.2的ARP response报文。 3、然后container-1开始发送到169.254.169.250的IP请求,报文首先被送到docker0的veth-doc上,docker0查询路由表,将报文转到DNS/metadata对应的容器。然后IP报文原路返回,被docker0路由到veth1上往br0发送,由于来自169.254.169.250的IP报文都是被放行的,因此container-1最终能够收到IP。 4、由于属于该network的所有的宿主机的docker0上都需要绑定IP地址10.43.0.2;因此,该IP地址必须被预留,即,在catalog中填写CNI的netconf配置时,不能将其放入IP地址池。 5、 同时,为了保障该地址对应的ARP请求报文不被发送出主机,从而收到其他主机上对应接口的ARP响应报文,需要对所有请求10.1.0.2地址的ARP REQUEST报文做限制,不允许其通过br0发送到宿主机网卡。 具体转发规则对应的ebtables规则如下所示:Drop All traffic from veth-cni except:1、 IP response from 169.254.169.250 2、  ARP response from 10.43.0.2 ebtables -t broute -A...

Read More