蚂蚁金服金融级容器引擎实践之路

小蚂蚁说:

在金融级分布式架构中使用容器,许多企业的开发者都面临许多挑战。在2018年ATEC蚂蚁金服技术探索大会上,蚂蚁金服高级技术专家盛延敏在演讲中分析了容器与云原生技术的本质,为容器在分布式架构上的使用带来了实用高效的解决方案。

关于蚂蚁金服科技开放其他的技术产品,你还可以参考阅读:

独家 | 蚂蚁金服TRaaS技术风险防控平台解密》;

深度|蚂蚁金服分布式金融核心套件:金融核心系统变革助推器》;

2.0 解析系列 | 一文详解新一代OceanBase云平台》…… 

关注“蚂蚁金服科技”,了解蚂蚁金服更多前沿暖科技!

容器与云原生技术

云原生技术由来已久,它包含五部分基础技术,包括容器(Containers)、服务网络(Service Meshes)、声明式API(Declarative APIs)、不可变基础设施(Immutable Infrastructure)、微服务(Microservices),以及公共云、混合云、专有云三种能力

容器(特别是docker)、微服务大家都比较熟悉,先来简单解释一下大家可能比较陌生的服务网络、声明式API和不可变基础设施的作用:

“服务网络”能够解决诸如跨语言、跨技术栈等问题;而声明式API则是目前CNCF等社区非常推崇的一种理念,比如k8s里面的对象采用了api、kind、version等方式,最终描述了一种期望达到的状态;至于不可变基础设施?这个概念比较难理解,我们知道k8s里面的pod是一个豌豆夹,里面可以放很多容器,每当声明(declare)新spec的时候,系统就会将pod销毁,产生新的pod对象,这个概念它比较像我们购买iphone,iphone是一个封闭的体系,用户想换的时候就需要买一个新的,不可变基础设施不意味着比较稳定。

回顾一下云计算的发展(如上图所示),开始的时候大家关注虚拟化,在虚拟机中安装软件和中间件,让应用跑起来。随着技术的进步,大家开始思考能不能将基础架构屏蔽,于是创造出以app为中心的理念,使用大规模发布的能力、自动化的运维,将中间件和应用代码耦合在一起部署在一个平台上,上移至PaaS层。

技术再进步,大家又想到了CaaS,通过docker的镜像、云原生的统一抽象和标准,让应用和基础组件包含在一起,以镜像的方式发布应用,大家的视角转移到容器、微服务体系的融合,“云原生”的时代就此来临。

金融级分布式架构使用容器的挑战

那么在金融级分布式架构下使用容器,我们会面临什么样的挑战?主要有三方面:

第一,已有的基础设施,包括资产管理、监控体系、运维体系,如何能平滑过渡?

第二,微服务架构,包括服务发现与寻址、跨语言支持、服务治理如何落地?

第三,如何让专有云、公共云及混合云具备弹性伸缩能力?

蚂蚁金服的解决方案叫做“CAFE”(Cloud Application Fabric Engine),它是理念以及产品集合,包括“两个标准”,即云 Provider标准、Open Service Broker API标准;“三个平台”,即“应用与容器平台”(主要关注容器和应用生命周期的管理)、“监控分析平台”(主要关注logging、trace、metrics以及链路、事件等平台)及“容灾应灾平台”(‘三地五中心’就是由它支持);“三个形态”包括专有云、公共云及混合云;其中构建了“N个解决方案”,包括DevOps、容器以及分布式架构的解决方案等。

上文提到的三个问题究竟该如何应对呢?蚂蚁金服提供了从传统到云原生的桥梁,帮助用户平滑地过渡基础设施;SOFAMesh原生的支持,帮助用户快速落地微服务2.0架构;混合云的架构,实现弹性能力。

三个应对之道

1. 从传统到云原生的桥梁

从传统到云原生,大家有很多普遍存在的困惑:比如习惯了VM(虚拟机)体系该怎么办?云原生适合我么?能否渐进上云原生?(有些任务用传统方式做,有些用云原生,两边是不是能互联互通?)

为了解决传统运维体验的问题,蚂蚁金服提供一种方式,不将容器视为单体,而是轻量化的虚机,让用户可以登录、关机、开机、重启,这种方式与操作模式无关,用户可以通过镜像化发布,也可以登录到机器中重新做service的启停。

熟悉容器技术的人都知道,如果容器本身的内核不支持,整个容器资源都会显示宿主机的资源,蚂蚁有强大的团队,可以修复这样的内核问题,另外可以支持单容器操作,让发布前后容器IP、ID保持不变,将PV和PVC绑定,创造兼容传统运维的用户体验。做到这一点,需要很多技术积累。

基于虚拟机的生命周期管理,我们先来复习一下原生pod的生命周期管理:一个pod的创建指令被接受了以后,会进入pending(暂停)的状态,这意味着这个容器、这个pod没调度,或者还没有生成,直到任务被create(生成)出来后才会进入running(运行)状态。如果所有的容器退出了,流程就会进入succeed(成功),中间running和failed可能会反复。

然而,这个生命周期不能够完全满足企业级需求,因此我们通过升级和定制,定义了如下的CAFE Pod生命周期,通过它我们可以同时支持虚拟机发布和镜像发布;分组、灰度和无损发布;版本管理,变更自愈(很多开发者社区的东西并能拿来即可用,比如我们打造的底盘夯实的能力,这一能力能够在pod出现问题时及时熔断兜底);原地升级和重建升级;通过分布式架构体系实现同城双活、异地多活;通过技术风险体系实现etcd在线备份,宕机迁移,高可靠,可运维,可监控,可交付等。这一架构通过Upgrading支持虚拟机通过镜像原地替换的方式发布,本地的存储都可以保留下来,资源还可以放大,比如2G变4G。

我们还设计了全新的负载Cafe Application,在主机故障或者停机时自动在新机器上拉起容器提供服务;在升级后(非upgrade容器方式),新pod和原pod的Ip不变;支持按分组配置升级部分容器,并且长时间可以保持该状态;支持原地升级(inplace)和重建升级(replace);提供类似statefulset的podname,每个容器的名字都是唯一的;每个容器都有单独的pv,pvc,类似statefulset;在升级前可以加入一些控制,比如摘除流量,注销注册中心等;并支持回滚到之前版本。

此外,云原生方式还要求底层具有更强大的日志能力,我们要把所有在系统里面产生的pod的日志进行收集、存储、投递。如下是整个日志搜集能力的架构图,这一架构复用了蚂蚁中间件团队积累的强大的技术实力,包含了两大核心中间件。

第一是有流式投递能力的AntQ。还有就是我们基于Elastic search做了深度改造的ZSearch,提供整个日志的存储和检索的能力。每一台机器上会有logAgent,它会和我们的LogService通信,接受dockerD来的一些event(事件),然后会和docker graph交互,拿到docker实例的文件句柄,源源不断地把这些文件流输送给AntQ,AntQ拿到以后,我们可以通过几种路径来完成整个日志的输送,对于最实时的任务可以直接通过AntQ来投递到实时的计算引擎;对于准实时的日志查询或者链路监控的需求,我们建立index(索引),让上层的链路、监控能拿到这些数据,做一些链路分析和日志查询。对于非实时的需求,我们可以通过投递到hdfs完成离线数据报表的分析和制作。

2. SOFAMesh原生支持

前面一部分讲到如何从传统的应用迁移到所谓的云原生容器的方式,对任何一个公司来说如何使用容器技术落地微服务架构,并且随着产品的不断迭代、业务需求越来越多,微服务体系是否可以支持上,支持好,这么大的技术成本对于中小公司来说是难以为继的。

有没有更好的办法呢?答案就是SOFAMesh,即SOFAStack的中间件,它可以提供全新的微服务2.0的能力。通过业务聚焦,支持多语言、多技术栈,通过CAFE平台可以让业务迅速获得这种能力。

上图是我们在SOFAMesh上的部署架构,其控制层面叫SOFAMesh Pilot,数据层面叫做MOSN模块,说白了它就是一个智能网关,所有的信息都通过APP发给MOSN模块,做网络传输;MOSN模块同时不断地把metrics, logging等投递到到日志,监控和链路分析基础设施,以便用户全方位地掌控微服务架构的状况。

这套体系加上蚂蚁金服沉浸多年的中间件的能力,以及数据中心,在金融场景中得到了大规模验证。

使用CAFE去打开SOFAMesh有什么好处?最大的好处就是开箱即用。而且它提升了技术竞争力,整合PaaS能力,统一应用管控。举个简单例子,如果有一天你的老板说,可不可以对iOS的移动流量来一个5%的线上灰度,现在的微服务架构体系里面是可以做到的,但是侵入性非常大,而SOFAMesh框架可以定规则,由Pilot下发,上面的MOSN模块很容易实现。由此可见,SOFAMesh爆发的能量是非常巨大的。SOFAMesh和CAFE是实现微服务架构的绝佳拍档。

3. 混合云架构支持

最后说一下弹性伸缩混合云。有些公司想上专有云,琢磨着能不能在公共云里面做一部分开发测试,然后再上专有云,而专有云本身资源有限,在资源有限的情况下能不能自由迁移,弹性伸缩,节省成本,这都是很多厂商看重的。蚂蚁金服近些年在这方面做了很多努力。

蚂蚁金服支持混合云架构,能够把应用的数据、镜像等在多朵云之间同步,在多个云上迅速拉起应用,包括任务调度等,在专有云、公共云之间自由分配工作负载,达到弹性伸缩的能力。

上图是我们基于CAFE容器引擎验证的全栈产品输出能力,我们的全栈产品的品牌叫做Antstack,包括了金融企业需要的所有关键组件,大家熟知的OceanBase容器化也在这个平台里面。Antstack底层通过资源调度提供计算存储网络,再上层提供产品组件,开发平台等等,这些产品可以满足不同金融场景,包括银行保险场景的解决方案。

最后三句话总结一下,CAFE为传统运维平滑迁移到云原生提供了很好的桥梁,为基于SOFAStack、SOFAMesh的微服务落地提供了绝佳的大规模运维的平台,为整个企业选择公有云、专有云、混合云架构提供了更好灵活性和敏捷性,蚂蚁金服还将继续将运维部署做稳做精,就像精心制作一杯醇正的咖啡(Cafe同音),为大家带来更好的体验。

 

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【耿老师公开课】反转!物联网火爆,开发者却很难入门?

戳蓝字“CSDN云计算”关注我们哦!在 2019 北京网络安全大会上,工信部负责人表示,我国面向 5G 和车联网将建设网安防护体系,提升监测预警和应急响应能力。其中物联网设备已成为网安防护新重点。为什么工信部会这么重视物联网&#…

rust腐蚀怎么单人游戏_腐蚀游戏怎么提高帧数 Rust设置隐藏画质提高FPS教程

腐蚀游戏怎么提高帧数 Rust设置隐藏画质提高FPS教程2018-03-04 10:58:10来源:游戏下载编辑:云曼衍评论(0)《腐蚀(Rust)》已经正式上市发售了,因为游戏的配置比较高,有的玩家在玩游戏的时候画面总是达不到自己想要的效果。今天小编…

哈工大未来计算机院士,2017年中国高校新增工程院院士名单出炉,哈工大依然很强!...

原标题:2017年中国高校新增工程院院士名单出炉,哈工大依然很强!院士是一个国家在科学技术方面的最高称号,不光在我们国家有,其他很多国家也有院士称号。而我国的院士一般都是指中国工程院院士和中国科学院院士&#xf…

使用NAS动态存储卷创建有状态应用

介绍: 目前动态生成NAS存储卷的实现:在一个已有文件系统上,自动生成子文件系统(子目录),并生成目标存储卷(PV); 生成的PV名字为:pvc-${pv-uid} 镜像介绍&a…

vue项目使用sass-loader

npm install -g cnpm --registryhttps://registry.npm.taobao.orgcnpm install node-sass --save-dev cnpm install sass-loader --save-dev

WAM计算机术语,最新的计算机一级考试MSOffice模拟试题及答案

A、数据处理B、文献检索C、资源共享和传输D、传输28.PowerPoint中,下列说法错误的是。DA、允许插入在其他图形程序中创建的图片B、为了将某种格式的图片插入到POWERPOINT中,必须安装相应的图形过滤器C、选择插入菜单中的"图片"命令…

老司机开车,教会女朋友什么是「马拉车算法」

戳蓝字“CSDN云计算”关注我们哦!作者 | 李威责编 | 阿秃马拉车算法( Manacher‘s Algorithm )是小吴最喜欢的算法之一,因为,它真的很牛逼!马拉车算法是用来 查找一个字符串的最长回文子串的线性方法 &…

l3asnumanode 设置_linux numa 配置

Cassandra操作 本文档操作都是在单数据中心,Vnode上操作1.1. 添加节点到集群中 1.1.1. 添加非seed单节点 1.在新节点上安装Cassandra,但不要启动2.修改cassandra.yaml文件:cluster_name – 新节点加入集群名称listen_address/rpc_address – …

实时计算 Flink性能调优

自动配置调优 实时计算 Flink新增自动调优功能autoconf。能够在流作业以及上下游性能达到稳定的前提下,根据您作业的历史运行状况,重新分配各算子资源和并发数,达到优化作业的目的。更多详细说明请您参阅自动配置调优。 首次智能调优 创建…

VS Code 大佬高效开发插件

插件名称功能Chinese (Simplified) Language中文菜单界面ESLint代码检查工具veturVue.js智能提示Git History DiffGit版本记录显示工具GitLens — Git supercharged增强版的 Git 管理工具Auto Close Tag自动关闭标签Auto Rename Tag修改HTML标签,修改一个另一个自动…

双11期间,请关爱程序员!

世界上有这么一群人~ 双11期间,请关爱程序员! 世界上最远的距离 不是天涯海角 而是你在狂欢 我在敲代码,改bug 致敬所有的程序员欧巴 愿代码的世界,只有爱,没有伤害!! 如果你是程序员的…

神作!3万程序员在学,这本深度学习宝典刷爆IT圈!

深度学习在过去5年处于爆发式增长状态,在人工智能领域占据主导地位。据Gartner统计,深度学习的专家职位从2014年之后才开始出现,不过到2018年,市面上大概就有40,000多深度学习专家的职位空缺。而且这些需求大多来自Facebook、Appl…

计算机软件中汇编程序是一种,计算机系统软件中的汇编程序是一种()。

摘要:疼痛,计算机系件中热、痛皮色不红、不,为E,缓者则痛得暖。下列和间关于直接经验接经验,编程的说错误法有。形式认识这种属于,计算机系件中香味人闻果的一个到苹,莱果的颜色看到。...疼痛&a…

取某个单元格的值_vba中如何进行单元格复制,Copy方法使用介绍,一定要学

NO.1在Excel操作过程当中,除了给表格输入内容就数单元格复制最常用了,通常快捷方法有Ctrlc,Ctrlv。不用说,这种方法对于操作十分方便,那么如何利用代码来实现复制功能呢!因为在编程过程中,会用到…

Visual Studio Code(VScode)设置为中文界面

安装插件重启即可: 名称: Chinese (Simplified) Language Pack for Visual Studio Code

重磅!阿里云发布业界首款SaaS化防火墙

近日,阿里云发布了业界首款SaaS化防火墙,一键开启,无需复杂网络接入配置,适用于所有在云上部署了重要业务资产的客户,特别是企业级客户。 对于用户来说,即开即用,操作简单,无需传统…

省培计算机实践作业,计算机软件基础强化实践能力培养实践部分考核作业.doc...

计算机软件基础强化实践能力培养实践部分考核作业V:1.0 精选考核制度 计算机软件基础强化实践能力培养实践部分考核作业 2020- -6 6- -8 8《计算机软件基础》强化实践能力培养实践部分考核作业(1) 《计算机软件基础》强化实践能力培养实践部分考核作业 强化实践能力培养的考核要…

阿里云全球首推流量型独享虚拟主机新规格,网络访问速度最高提升400%

近日,为了提升用户网站访问体验,阿里云虚拟主机宣布推出流量型独享虚拟主机新规格,流量型独享虚拟主机新规格可以提供高速流量包,提高访问速度。在高速流量包用尽后,网站也不会关停,可自动降为低带宽模式&a…

jq父级绑定事件的意义_js、jq事件绑定方式总结——以click事件为例

一、JavaScript点击事件绑定方法1.1 HTML onclick事件属性1 click me1 functionclickMe(this) {2 alert("click me");3 }1.2 JavaScript onclick事件1 click me1 document.getElementById("button").οnclickclickMe;1.3 IE41 click me1 2 alert("cli…