首页 文章 精选 留言 我的

精选列表

搜索[API选型],共10000篇文章
优秀的个人博客,低调大师

叉车防撞技术选型:为什么UWB+TOF正在淘汰红外和蓝牙?

你工厂里的叉车防撞系统,可能是个"心理安慰"。 我见过太多这样的场景:叉车上装了个红外感应器,驾驶员觉得"有保护了",结果倒车时货架挡住红外射线,系统压根没报警,工人被挤在货架和车体之间。还有用蓝牙RSSI的,手机上显示"距离3米",实际已经贴脸了——因为蓝牙靠信号强度"猜"距离,金属货架一反射,信号强度乱跳,猜出来的距离能差出两三米。

优秀的个人博客,低调大师

选型宝访谈:什么是OpenStack云平台的正确打开方式 ?

写在前面云计算颠覆了企业IT的基础架构,为企业创新提供了无穷动力。 在拥抱云时代的过程中,五花八门的云形态和云产品也为CIO/CTO等IT采购决策者带来了巨大困惑: 到底哪种云方案,才是最适合我们的“ 这一个 ” ?同样是开放云,为什么OpenStack能一枝独秀?部署OpenStack,CIO/CTO们将面临怎样的挑战?……主持人:您如何理解企业IT基础架构云化的趋势?云化会为企业带来怎样的价值? 嘉宾: 所有人都知道,云计算是现在非常热的话题,是IT基础架构的发展趋势。那为什么企业需要云呢?我们知道,人类生产力的发展在加速,最近200年的生产力基本上是人类过去历史的整个生产力的总和;最近20年的发展,又超过了过去200年发展的总和;而在最近的20年里,发展最快的又是移动互联网高速发展的最近5年。 2016年,国外第三方机构Business Insider与PitchBook共同发布了一份2012-2016年间估值增长最大的30家公司列表,这些公司的总估值是1800亿美元,平均每家60亿美元。在这30家增值最快的公司中,除了3家医疗技术公司、1家太空科技公司外,与互联网相关的公司达到了26家,当然,里面也包括那些以互联网技术为传统产业提供服务的公司。 那么问题来了,很多企业守着家里的金矿,但是开采方式过于传统,很难获得快速增长,所以大家都希望通过互联网去加速增长。但是,互联网+并不是一蹴而就的,万丈高楼平地起,移动互联业务成功的背后是社交和大数据,而这一切都需要云计算来支撑。2012年,国外著名的分析机构Gartner就提出了“众力聚合”的概念,他说云计算、大数据、移动互联网和社交这4项具有革新力的技术,互相连接并与传统行业结合起来,就会形成巨大力量,创造出巨大商机。直到今天,基于“众力聚合”的商业模式仍然是创新的主体。 所以回过来头看,为什么那么多企业在上云?因为要创新。业务创新的捷径就是与云计算、大数据、社交和移动互联网结合,而这些技术的基础就是云计算。 创新和云的关系是什么呢?创新不是自顶向下的,而是自底向上的,只有在企业内部打造一个适合创新的环境,为每个员工提供创新平台,才可以从底层实现创新。之前有太多创新的成功案例,据说微信的摇一摇功能就是2个大学生用2周的时间做出来的创新点,我不知道腾讯内部有多少个这样的创新组合,但是我相信一定很多。每个企业如果都有能够让员工很容易实现创新的平台,那企业一定就有巨大的创新力。可能有的用户说了,我没有微信那样巨大的客户存量,怎么办?实际上,手机作为今天的普适社交平台,通过社交网络传播,每个企业都有堪比微信的客户存量,好比国外最近比较火的创业公司Snapchat,中文名叫阅后即焚,也是由两个大学生做的小应用,通过社交网络传播之后,一夜之间火遍美国高校,今天,这家公司已经上市了,从0到做到百亿美元市值,只用了3-4年的时间。所以,创新无处不在,它的成功不会受到企业品牌、企业规模、客户存量等等因素的影响,而是需要有能够支撑创新的环境和机制,而从IT架构的角度来看,这就需要云计算来支撑。 您提的第二个问题,是云会为企业带来什么样的价值?那创新价值就是最大的价值。除此之外,云还可以帮助企业节约成本。在十几年前,单服务器计算能力有限,大家都习惯性地采用物理服务器作为最小资源单元。后来,随着单服务器计算能力越来越强,再随着VMWare虚拟化软件的普及,大约有50%的企业采用了虚拟化技术。在今天,这两种情况都比较常见。 采用纯物理方式的主要问题是,今天的服务器的计算能力已经非常强,一台2路的服务器可以做到几十个CPU核心和几个TB的内存,而今天的应用软件的架构设计,越来越偏向分布式,最终导致这些服务器的资源利用率长期不足,造成大量浪费;而另外30%采用虚拟机的客户,一台物理机虚拟出几十台虚拟机,上百台物理服务器就会有几千个虚拟机,面向几十个业务部门,有哪些虚拟机有人用,哪些虚拟机不需要管,几乎没人能说清楚。服务器数量是减少了,但管理成本却大大增加了。所以,不管你是去采用物理机方式,还是采用虚拟机方式,都会带来巨额的成本。物理机是资源浪费的成本,虚拟机则是采购和管理的成本,它会非常的高。而云计算平台就是为解决上面的问题应运而生的,它先通过虚拟化技术,解决好硬件资源利用率的问题,再通过多租户管理和自服务平台,让资源使用部门自己参与到资源管理中,从而降低了管理成本。我想,这才是最终的解决之道。 除了上面说的两点,云计算还能为企业提高IT效率,把以前长达半年的IT上线周期缩短为“即需即上”,并且,还有一些企业把空闲的资源包装出去销售,做科技输出服务,进一步为企业带来营收。这些都是云计算带来的好处。 主持人: 企业IT基础架构的云化,有哪些技术路径可以选择?这些路径分别有哪些优势或劣势,分别适合怎样的企业? 嘉宾: 从形态来看,云计算可以分为公有云、私有云、混合云和行业云。公有云基本上目前都是自研技术,包括阿里云、亚马逊等。 公有云的特点是价格比较低,服务质量差一些,比较适合小微初创企业。 行业云主要由一些行业龙头企业自建,一方面自用,一方面服务于行业内的其他企业。比如像兴业数金云,一方面承载兴业银行自己的业务,一方面服务于中小银行,他的服务质量比公有云高,比较适合中小型金融企业,相当于传统的资源托管。私有云也是一种形态,从技术上可以分为开源开放架构和自研封闭架构。私有云比较适合于有一定IT规模的企业和对安全要求较高的企业,他的服务质量最高,数据的安全性也最高,非常适合一些期望通过数字化手段实现实体经济转型提升的企业,也就是有魄力有想法的CEO和CIO。 混合云就是对公有云和私有云进行混合构建,核心业务放在私有云上,一些临时的压力,放在公有云上分担。 除此之外,还有一些子形态,比如全开放形态的私有云、一体机形态的私有云等等。这几种形态的云,各有各的优势,世界上不存在银弹,用户应该根据自己企业的特点和IT习惯去采购不同形态的云。 主持人: 几种开放云平台,目前来看OpenStack有一枝独秀的趋势,您认为主要原因是什么? 嘉宾: 云计算诞生于2006年,2008年左右到了中国,发展到今天,OpenStack已经成为私有云的事实标准。就在今年4月,中国信息通信研究院发布了《2017年中国私有云发展调查报告》,里面讲到,2015年,有73.5%的受访用户准备用OpenStack构建私有云,而2016年,这个百分比已经上升到了83.2%。显然,OpenStack已经成了80%以上用户的首选。之所以出现这种情况,主要原因有几点: 第一,易于创新。兼容性和开放性好,是真正的开放平台,各种第三方软硬件易于对接,快速打造支持各种创新业务的平台,比如大数据、人工智能、物联网、移动互联网业务等。 第二,管理相对简单。其实,管理是否简单要看技术人员是否能掌握。Linux简单吗?不简单,但是大家都懂了就简单。2014年、2015年,可能大家还觉得OpenStack运维难,但到今天,随便发一个招聘信息就有大量懂OpensStack的工程师来应聘。在京东上,有200多本关于OpensStack的书。另外,还有简单的安装部署工具,这些都打破了原来大家对OpenStack的误解。 第三,性价比高。从功能上看,半年一个版本,每个版本几千人开发,从IaaS到PaaS,已经超越了很多云。由于全球众筹,成本均摊,其采购成本远低于一些自研封闭的云平台。 主持人: 您认为,今天在什么样的需求和场景下,CIO必须考虑部署OpenStack了? 嘉宾: 首先,只要企业的业务大量依托于IT系统,那就需要云。如果还是延用传统的竖井式架构,那企业就很难发展。在选择的时候,小微企业可以用公有云,只要企业到了一定规模,业务需要稳定的支持,很多东西需要做到可预测、可估量、可管理,并且要掌握在自己的手里,将来不会被别人绑架,这时就需要私有云了。私有云只有一个事实标准,就是OpenStack。 从业务场景来看,有两类场景特别适合切入云。第一类是跟互联网相结合的,这类业务需要一个很好的架构,你有一百个终端用户时,它能够跑,当你有100万个用户的时候,同样的架构还能够支撑。比如手机银行、小微贷款、企业电商等所有面向C端的业务都适合OpenStack部署。另外一个适合云架构的,是开发测试环境。开发测试是一个随时变动的环境,会随时出现各种思路和想法,因此需要一个很灵活的环境。 当然,今年来随着OpenStack的成熟很多用户也把传统核心业务部署到云上来,比如我们与合作伙伴合作为城商行提供以互联网架构为基础的新核心银行系统。 我们先把它搬上来,再慢慢做改变,你不踏出第一步,永远不知道这一步该怎么踏,会永远在那里纠结。IT基础架构的云化,至少会给企业的未来提供更多的想象空间。 今天而言,部署OpenStack已经非常容易,企业面临的真正挑战,是如何在OpenStack平台上线之后持续业务创新。解决这个问题,就需要企业选择的合作伙伴有足够多的行业经验和面向未来的创新意识,要能够真正帮到客户。所以,我曾经说过,今天的用户选择云平台,一定不是选择产品,而是在选择合作伙伴。我们不是甲方乙方的关系,而是亲密战友,最终的目的是一起帮助业务成长,这也是EasyStack最感兴趣和最愿意做的事情之一。 主持人: 同样是OpenStack阵营,各个企业发展思路各有不同:有的国外品牌推社区发行版;有的国内品牌只推产品,没有对社区做贡献。我们知道,EasyStack采取了“社区+产品化”的融合策略,这样做会为用户带来什么好处呢?经过几年的积累,是否给你们带来了优势?未来会为你们带来什么不一样地方? 嘉宾: 做开源产品最大的优势,是有一个社区可以利用,最大的问题就是社区更新得太快,产品化很难。我们看到国外品牌,往往就是将社区版卖给用户,用户觉得非常难用,因为开源社区很多功能就是程序员的思维,完全不考虑用户的水平和体验,因此需要购买服务。 也有一些公司,将社区的某一个版本,封装成企业版给用户,然后用户就很难再升级了。两种方式都有弊端,那基于开源社区,到底应该怎样做产品呢? 2014年, EasyStack刚成立时,我们的CEO陈喜伦就定下了“产品+社区”的战略,这个战略的核心是12个字:“背靠社区,紧跟社区,引领社区”。 什么叫“背靠社区“?EasyStack是一个以开源为核心的基础软件,社区是我们的核心,我们不会违背社区的宗旨去做一些东西。第二个“紧跟社区”,就是我们会跟着社区快速地去往前滚动和升级。这个时候最大的困难,就在于用户有各种需求,你怎么样去满足?你怎么样去做一个适应用户需求的版本出来,这就是讲到第三个词,叫做“引领社区“,你必须让你的想法和意见能够参与进去,引领着这个社区往前走。 所以大家才能看到,我们从2014年就开始贡献社区,并培养出中国创业公司的第一个Core(核心工程师),第一个PTL(项目负责人),也培养了OpenStack基金会中的第一个中国专业开源企业的独立董事。这意味着,我们能够理解、预测甚至深度参与OpenStack的发展方向,意味着我们的产品可以真正与全球的大方向保持一致而不是闭门造车。为什么EasyStack会支持他从一个普通工程师一步步走到基金会独立董事这样一个位置,其实就是为了“引领社区”。所以现在来讲,首先我们会做自己的商业版本,会按照社区版本系统地升级。同时,我们也会面对用户的各种需求,并对这些需求进行评估,看它是不是符合社区的发展路线。 如果这些需求是合理的,那我们会满足用户的需求,放到我们产品主版里面,并且引导社区往这个方向去走;如果它不合理,有更先进的方法或更好的方式去解决这个问题,我们会跟用户去解释,这样的话,我们一方面满足了用户的需求,另一方面也不会让用户的云平台变成一个“孤版”。 给大家举一个例子。今年3月底,我们在德国KuberCon大会上发布了几乎k8s的容器产品,它能够与我们的OpenStack云产品深度融合,成为全球三大同时拥有OpenStack+K8S的专业开源企业(红帽、Mirantis、EasyStack)。其实,我们在去年就已经完成研发,并且有了客户,这就是我们能够引领社区,能够看到未来的优势。 所以说,我们一定要背靠社区,紧跟社区,做得最好就是引领社区。你在社区里面要有一定的话语权,当你在有了话语权和影响力,你就知道社区发生的最新的故事,你就知道未来发展的方向,就不会带着自己的用户走偏,这就足够了。 主持人: 从计算、存储、网络、管理这些方面,ESCloud解决方案包括哪些部分?对于用户来说,该如何从这些组件中做出选择? 嘉宾: 对一般用户来说,选择云计算的时候首先想的是IaaS组件,IaaS组件其实在我们一个非常简化的版本里面都有,包括计算、存储、网络、仪表盘、身份认证、镜像管理等,这些组件都是基本组件,我们叫做纯IaaS组件。 也有一些用户,到了一定程度上之后,觉得纯IaaS组件已经不能满足自己的要求,他需要一些PaaS组件,包括像大数据级服务、容器级服务、数据库级服务等,这些PaaS组件也可以选择。 但是,如果大家一定要选择12个商业组件以外的其他组件,就有一定的风险了,你必须要由这个公司来帮你进行商业化,因为它们没有进基金会认可的这12个组件的名单,就说明他的产品本身在技术上还不稳定,在产品化程度上他也还达不到要求,所以它只能叫做潜力组件,是未来有潜力的组件。在选择这些组件的时候,大家就要更慎重一些。应重点去选择我们讲过的12个核心组件,这些是非常成熟和靠谱的。 主持人: 非常感谢周总的分享。

优秀的个人博客,低调大师

视频云王海华:关于移动短视频技术选型的那些事

在短视频时代,让自己的产品提供短视频能力,并拥有良好的用户拍摄和观看体验,让短视频真正能够帮助业务发展是每个产品都应该考虑的问题。如何让自己的应用能够快速拥有短视频的能力,让短视频在你的应用里能够拥有更好的用户体验呢?今天我们从完整的技术链路上来梳理一下搭建一个完整的短视频的服务我们需要考虑哪些技术相关的问题。首先我们来看一张图: 上图展示了一个移动短视频的一个生命周期,在整个生命周期中包含了以下几个关键的步骤:移动端适配拍摄+编辑,视频文件的上传,视频文件处理(存储,转码,视频理解),视频分发(CDN加速),短视频的播放。那么下面我们分开来讲讲每个阶段在短视频场景里需要考虑的一些问题。 一、如何选择一个短视频SDK 为什么讲如何选择一个SDK而不是开发一个SDK?因为从零开始开发一个短视频SDK对开发工程师音视频专业能力有较高的要求,

优秀的个人博客,低调大师

架构选型必读:集中式与分布式全方位优劣对比

应用现状比较 由于历史原因,集中式架构多用于传统银行、电信等行业。主机资源集中在大型主机或小型机上。集中式架构下,包括操作系统、中间件、数据库等“基础软件” 均为闭源商用系统。集中式架构的典型案例是 IOE(IBM、 Oracle、EMC)提供的计算设备、数据库技术和存储设备共同组成的系统。 近年来,分布式架构在 Google、Amazon、Facebook、阿里巴巴、腾讯等互联网公司广泛应用的基础上,也被金融行业越来越多关注和应用。分布式架构一般采用性价比更高的 PC 服务器、分布式数据库和大量 PC 内存闪存,程序同时运行在众多 PC 服务器上。 图 1 集中式与分布式系统示意图 核心要素比较 以下是两种架构的核心要素对比分析: 表 1 集中式与分布式架构核心要素对比 业务支撑能力比较 客观讲,分布式架构在价格成本、自主研发、灵活兼容、伸缩扩展方面有比较显著的优势。互联网行业具有请求量大、数据量大的特点,业务上又可能在集中的时间段出现高于日常流量数倍的业务高峰,这些特征对架构的可扩展性提出了极高的要求。 在集中式架构下,为了应对更高的性能、更大的数据量,往往只能向上升级到更高配置的机器,如升级更强的 CPU、升级多核、升级内存、升级存储等,一般这种方式被称为 Scale Up。但单机的性能永远都有瓶颈,随着业务量的增长,只能通过 Scale Out 的方式来支持,即横向扩展出同样架构的服务器。 在集中式架构下,由于单个服务器的造价昂贵,所以 Scale Out 的方式成本非常高,无法做到按需扩展。而分布式架构的解决方案是基于廉价的 PC Server 来做 Scale Out,借助高速网络组建的 PC 集群在整体上提供的计算能力已大幅高于传统主机,并且成本很低,横向的扩展性还可带来系统良好的成长性。 蚂蚁金服通过几年架构演进,已经从初级的服务器可扩展、数据层可扩展发展到 IDC 层面的可扩展。一旦采用了分布式架构,天然支持按需扩展,唯一的要求是在设计上保持每个应用节点不保存状态信息。 随着业务量从几百笔/秒到几万笔/秒级别时,需要更多的服务器来支撑,数据库单表的性能会成为瓶颈。数据量也会从 GB 迅速飙升到 TB、PB,单数据库实例的容量也会成为瓶颈。 数据层会采用分库分表的策略来支持业务量的增长,具体策略根据业务场景可分为垂直拆分(按业务)、水平拆分(按请求/用户做哈希,或者做区间拆分)、读写拆分等,最后通过统一分布式数据访问组件来屏蔽数据扩展的复杂性。 下图简单描绘了服务器扩展性(应用层)和数据层可扩展(持久层)的形态: 图 2 应用层与数据层弹性伸缩架构示意图 随着业务的发展,应用和数据层弹性伸缩也会受限于到单个机房的电力、面积、散热等物理条件的制约而无法 Scale Out,同城的机房个数也是有限的,所以势必要从机房层面支持弹性的可伸缩。 蚂蚁的业务规模早在两年前就已突破这个规模, 因此进行了机房单元化改造,其架构核心思想是把数据水平拆分的思路向上提升到接入层、终端层。 从接入层开始,把原来部署在一个 IDC 中的系统集群,进一步分成多个更细粒度的部署单元,从而达到机房级别的扩展。这种机房架构在容灾方面的优势会在第五个小节中展开说明。 下面为这种架构的示意图: 图 3 单元化架构示意图 下表总结了两种架构模式在业务支撑的几个方面的比较: 表 2 集中式与分布式架构业务支撑能力对比 可用性和一致性比较 从架构设计来看,集中式系统的计算、存储都在一套硬件体系内,无需面对网络分区(网络无法连接)问题,能很容易实现高一致性,并通过存储的冗余和软硬件结合的高度优化,达到了较高的可靠性。 但在可用性方面,由于集中式架构在设计上是一个单点,单机不可用即全部不可用,所以集中式的系统只能在停机维护时暂停业务,这一点在很多互联网场景下是难以接受的。分布式架构设计,天然就有多个节点,很容易通过主备(HA)、冗余、哈希等手段实现计算和存储冗余备份,从而实现高可用。 当然,软件领域没有银弹。分布式架构多个节点的设计也带来了保持一致性和高可靠性上的巨大挑战。 2000 年,加州大学伯克利分校计算机教授 Eric Brewer 提出了著名的 CAP 理论,任何基于网络的数据共享系统(即分布式系统)最多只能满足数据一致性(Consistency)、可用性(Availability)和网络分区容忍(Partition Tolerance)三个特性中的两个。 在大规模的分布式环境下,网络故障是常态,所以网络分区是必须容忍的现实,只能在可用性和一致性两者间做出选择,即 CP 模型或者 AP 模型,实际的选择需要通过业务场景来权衡。 对于一些离线的应用,或者对可用率不敏感的业务,可以适当牺牲可用性来保证强一致,即采用 CP 模型,这样会大大简化设计。系统具备不可用的发现和恢复机制就能让系统保持正常的运转,纯粹的 CP 模型还是比较简单,但适用场景也非常有限,真正复杂的还是 AP 模型。 在金融行业中,尤其是互联网金融系统,保证提供连续可靠的服务尤为重要,长时间的业务中断会引发各种社会问题,影响到生活的方方面面,所以,必须考虑如何在采用 AP 模型的时候尽可能保证一致性(Consistency)。 关于一致性,不是只有 0 或者 1,是可以有程度的细分,一般可分为强一致性、弱一致性和最终一致性。达成什么程度的一致性,可以从客户端和服务端两个视角来分析。从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题。 在支付宝系统中,为保证性能,业务数据被垂直和水平拆分到多个数据源中,一次典型的转账操作,会在借贷双方的数据库中分别进行存入和扣除操作。 蚂蚁技术团队借鉴了BASE理论(Basically Available、Soft State、Eventual Consistency 基本可用、软状态、最终一致性),设计了基于 TCC(Try Confirm Cancel)模型的两阶段的柔性事务框架,在保证单机事务的 ACID 原则的前提下确保全局分布式事务的最终一致性,在保证用户体验(性能)的前提下让客户感受到了一致性,并向用户屏蔽了短暂不一致(故障或者延迟)的恢复细节,满足了业务上对一致性的要求。 以下为分布式事务框架的模型示意图: 图 4 柔性事务框架原理图 为了保证高可用和业务连续性,分布式系统的存储往往会设计成多份冗余,并尽可能在机架、机房甚至城市维度将冗余的数据分散在多处。所以从服务端角度看,最关心一致性问题是如何尽快将更新后的数据分布到整个系统,降低达到最终一致性的时间窗口。 Paxos 协议就是一种在保证强一致性前提下把可用性优化到极限的算法。蚂蚁金服自主研发设计的 OceanBase 数据库就将数据存在多份存储上,每个存储都分布在不同机房,任何一份存储出问题,都不影响全局的可用性。 为保证这种高可用架构下的一致性, OceanBase 在多份存储的写入过程中,就用到了 Paxos 协议,并针对各种具体场景,对协议做了优化和改进。详细的设计和说明可参考 OB 的资料。 下表列出了两种架构的具体案例和相关的技术产品,支付宝的架构体系也经历了从集中式到分布式的演进。 表 3 集中式和分布式可用性、一致性和可靠性对比 运维复杂度和故障恢复能力比较 集中式架构部署结构简单,设备数量少,在运维复杂度上较分布式架构有天然的优势。分布式架构随着机器数量的线性增长,复杂性也随之增长,无法通过简单的工具和脚本来支撑。这个复杂度包含了发布部署、系统监控和故障恢复等几个方面,下面会逐一对比。 集中式的发布部署一般只需应对百台内规模的代码/配置更新,通过简单的脚本或者平台就可以自动化完成,发布时间一般也能控制在小时级别。而且采用集中式架构的系统一般比较稳定,发布周期也不会太频繁。 在分布式环境下,千台甚至万台服务器的规模很常见,如果按照传统的串行操作和自动化脚本,整个发布周期会非常长,一旦出现问题,回滚也会非常慢。 在分布式架构下,往往需要提供 P2P 分发或类似的技术手段来加速发布过程,同时通过 beta 发布、分组发布、蓝绿发布等手段来解决大规模集群下的发布验证、灰度引流和快速回滚等问题。 蚂蚁金服在发展过程中,整个运维体系也随着业务规模的增长而升级演进,逐步形成了一套完整的运维管控平台,支持单人运维千台服务器,避免了分布式架构下运维复杂度的增长。 在系统监控方面,集中式架构比较简单。而在分布式环境下做监控,主要挑战在于海量日志的实时分析和秒级展示。系统运行的状态分散在上万台规模的集群中,每时每刻都在产生新的状态。监控系统需要通过日志或者消息的方式采集整个集群的数据做各种统计分析。 在巨大的业务量下,每晚一秒钟发现问题就会带来大量的业务异常,在极端情况下还会产生不可估量的损失。因此,也需要监控体系具备秒级的实时计算能力。蚂蚁金服也逐步沉淀这样一套监控平台,很好地弥补了分布式环境下监控的劣势,是整个平台稳定运行的基石。 在系统的容灾机制和故障恢复方面,集中式架构一般会采用主备复制和主备切换的方式来实现,几种典型设计原则包括一主多备、同城双活、两地三中心等。 集中式的容灾方案比较成熟,也沉淀了数据复制、镜像快照、一体化迁移等一系列容灾相关的技术,可以从容应对各种场景,但仍然在以下几个方面存在不足: 1、成本较高 在集中式架构下,经典的灾备方案一般会做全量备份,在一些改进方案中会通过余量空间做交叉互备等方式来降低成本,但整体上看还成本还是较高。为 1% 甚至概率更低的灾难场景,而付出与支撑当前业务量相等的成本,这对需要承载海量业务的互联网业务来说更是一个巨大的负担; 2、恢复时间较长 灾备方案中大量用到数据复制技术,但由于网络带宽或者异地延迟等问题,在恢复时,需要等待数据完全一致后才能切换,而且无论备份数据是冷备还是热备,切换都有一个预热的过程。综合切换复杂度和上述的技术限制等因素,很难缩短恢复时间。 3、业务影响面较大 由于集中式架构本身扩展性的不足,所有业务都跑在一个单点上,一旦发生故障就可能影响到所有用户。在承载海量业务的系统上,这种影响更容易被放大,尤其在金融系统上,更有可能引发一些社会事件。 虽然在运维和监控复杂度方面在分布式系统需要通过技术手段来弥补天然的不足,但在容灾恢复方面却有着天然的优势。数据天然分布在不同的存储、机房和城市,而且架构上容易按合适的容量进行水平拆分。 随着这几年互联网的高速发展,各家互联网公司都遇到了集中式架构下灾备方案的几个痛点,并进行了类似的架构改造,一般业界称之为单元化改造,其本质是将分布式下可扩展的特性运用到灾备场景,这个在第四章节中有提到。 这种架构能将业务影响面控制在一定的范围内(取决于单元的大小),并通过交叉互备降低灾备成本,这种机房架构下的逻辑单元具备以下三个特征: 1、每个单元在业务处理能力上自包含,对外承载一定业务分片的业务流量,内部的系统调用链路和各类存储访问是局部化在本单元内的; 2、每个单元的实时数据是独立不共享的,配置类数据或读多写少且对延时性要求不高的数据全局共享; 3、单元间的通信统一管控,尽量以异步化消息进行通信,同步调用则通过单元间代理方案实现,实现网络上的收敛,便于监控和管控。 该架构解决了以下四个关键问题: 1、由于尽量减少了跨单元交互和使用异步化,使得异地部署成为可能。整个系统的水平可伸缩性大大提高,不再依赖同城 IDC ,真正实现异地多活架构; 2、可以实现 N+1 的异地灾备策略,大大缩减灾备成本,同时确保灾备设施真实可用; 3、整个系统已无单点存在,大大提升了整体的高可用性;同城和异地部署的多个单元可用作互备的容灾设施,通过运维管控平台进行快速切换,有机会实现 100% 的持续可用率; 4、该架构下业务级别的流量入口和出口形成了统一的可管控、可路由的控制点,整体系统的可管控能力得到很大提升。基于该架构,线上压测、流量管控、灰度发布等以前难以实现的运维管控模式,现在能够十分轻松地实现。 下图为该架构的示意图,表格中则总结了两种架构在运维和容灾方面的对比。 小结 通过上述对集中式和分布式架构在业务支撑、一致性/可用性、运维成本/故障恢复三个方面的分析发现,分布式架构在经济性、安全自主、灵活性、可伸缩性等方面有明显优势,随着金融系统需要处理的交易量与数据量越来越大,分布式架构在这方面的优势也会越来越明显。 集中式系统在可维护性、一致性方面有优势,而分布式系统需要达到同等或更高的可维护性与高一致性,需要通过先进的分布式中间件与大规模运维平台来支持。 蚂蚁金服通过自身实践,证明了分布式系统能够实现金融业务所需要的高一致性与可维护性,并将这种技术沉淀到其云计算平台上,支撑用户更好地运用分布式架构和云计算能力,共同用新技术的力量推进普惠金融的发展。 原文发布时间为:2018-06-14 本文作者:蚂蚁技术团队 本文来自云栖社区合作伙伴“DBAplus社群”,了解相关信息可以关注“DBAplus社群”。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册