首页 文章 精选 留言 我的

精选列表

搜索[脑洞落地],共10000篇文章
优秀的个人博客,低调大师

架构设计:数据服务系统0到1落地实现方案

本文源码:GitHub·点这里 || GitEE·点这里 一、基于业务 数据服务通常有很多种业务模式,也就导致系统的架构与业务都会很复杂,不同的业务都具有自身的能力和复杂度,数据管理本身就是一件不容易的事情,所以在系统架构初期都会考虑服务能力的业务场景: API服务:基于Http模式的数据服务,通过请求获取数据,例如风控模型,评分,反欺诈等各种业务; 平台服务:综合性的服务能力集成系统,客户的自定义服务需求很低,具有完整流程的数据服务能力,例如自动化数字营销平台,提供营销的全流程管理能力; 采集服务:通常客户以埋点的方式提交相关点击事件,采集系统基于全渠道进行汇总分析并向客户反馈; 可视化分析:这里分为两大块,数据分析与可视化,数据可以加载多方数据源联合分析,基于前端组件做高度自动化分析,例如常见的数据洞察系统; 工具私有化:基于积累的技术能力,把数据管理的系统直接销售给客户,部署在客户自己本地的服务上; 数据服务的场景,不同的业务需要各自场景下的数据支撑,但是不同的业务都需要相同的运营,结算,订单等基础功能,理解不同的业务场景,需要找出共同点与不同点,很简单的思路:相同点在公共服务中开发,业务不同点在独立的服务中开发,方便系统的不断扩展与演进。 二、业务层架构 不同的数据服务能力,最大的不同点就是需要依赖核心数据的支撑,从业务层面看系统架构层,还需要的功能复杂公共功能,这些需要在架构初期就考虑好,不然随着业务发展很快就要面临重构问题。 客户运营:每个客户的接入都需要一套完整的流程,服务说明,计费规则,合同管理,充值,服务开通停用,账单等一系列配套功能,通常都有两个入口:客户登录端,服务方运营端。 支付结算:功能最复杂的系统模块,提供支付能力,例如聚合多个支付渠道,用来解决客户的充值退款,或者服务方自己的支付需求,并提供各种结算账单的数据输出,对账平账能力。 订单管理:客户的每次请求,或者每个服务的使用,产生的计费动作都需要详细的订单记录,涉及单价,单号,时间很多关键因素,作为结算的核心依据,也是业务数据最集中爆发的地方。 权限体系:在数据服务体系中,权限系统的设计更侧重解决公司主体层面的需求,不同的商务团队负责不同的服务运营,客户管理等,所以需要清晰的体系化权限管理,给不同的角色的商务人员分配合理的权限。 日志集成:在详细的日志体系中,正常的业务日志数据可以用来在服务异常时的数据补全分析,异常的日志数据可以给开发用来分析系统问题和瓶颈不断的优化服务能力。 基于业务场景做好服务的划分和设计,以及公共服务的基础构建,确保业务层的架构合理且可扩展,是否合理的基本考量就是,不断的新增业务场景是否需要做系统的大刀阔斧的改版,如果服务能力不断丰富,系统的改造成本很小,自然架构合理。 三、数据中心 不同的业务服务场景需要依赖核心数据能力,这是服务卖点,通常会把支撑服务能力的核心数据单独部署并提供各种服务场景,通常理解为数据中心,同时业务服务自身也会产生各种数据,这里会根据服务的部署方式独立存储。 服务能力:数据中心作为多个业务公共依赖,不但要提供数据基础的查询能力,在处理海量数据任务时,还需要提供一定的调度和计算机制。 部署方式:根据数据特点通常会以集群、分库分表、OLAP引擎、数仓等多种方式存储,并根据数据特点提供统一的服务能力对业务层开放。 数据更新:数据是需要实时或者定时更新,数据来源通常是经过大数据计算和处理后的各种数据,还有就是业务层校验有误的数据,或者在使用过程不断优化的数据。 数据中心的独立架构部署是非常有必要的操作,大部分的数据都是具有联动性的,数据间的联动处理完全不用耦合到业务层面,数据的流动校正安全性管理等等都可以在数据中心统一管理,规避掉数据混合部署带来的系列复杂问题。 四、大数据底层 数据服务能力的最底层需要海量数据处理的能力做支撑,所以用到很多大数据组件技术,对数据做存储、计算、分析、搬运等等操作。 数据存储:大数据底层最常见的存储就是文件形式,结构化的数据库存储,半结构化的日志型文件,还有一些非结构化数据。 计算能力:对于海量数据的处理需要依赖各种并行计算,离线任务,实时计算等多种方式,达到快速处理的目的。 数据搬运:数据处理完成之后并不会在底层直接提供服务能力,通常会把数据同步到上面数据中心,在对业务提供服务能力,这里搬运可以是数据输出,也可能是待处理的数据输入。 大数据的底层组件则是系统的核心能力,对数据的精准计算分析确保服务的能力,并且不断的对现有架构做自动化和工具化管理,这点非常重要,海量数据管理的流程人工介入越多则说明效率越低下,尤其在底层向数据中心推送数据或者数据接收的过程,需要约定好策略保证数据安全稳定的自动传输。 五、整体考虑 对一个复杂系统的设计,首先最关键的就是清晰的整理出业务模式,对业务模式进行分析,根据业务特点做系统架构可以避免很多弯路,例如上面的数据服务系统: 首先从大的层面看,系统拆分业务服务,数据中心,大数据底层能力这三大块,并且要求各个大模块之间不存在强耦合关系,确保模块之间可以独立的扩展; 其次确定各个模块需要的实现的核心功能,业务层保证基本的服务能力,然后把每个业务都需要的基础功能向下抽取封装,拆分出业务服务和公共服务,支撑业务能力; 然后确定各个模块之间协作的方式,例如业务与数据中心的通信能力,接口标准,数据安全等细节,或者数据中心与底层大数据之间的数据搬运模式,确保数据流通能力; 最后各个模块具体的细节实现,这里需要考量的就是根据业务模式,如果可以选择相同的组件和架构方式,尽量统一架构选型和组件依赖,降低不同模块之间的壁垒; 上述完整的系统架构从开始搭建到提供稳定的服务能力,大概耗时七个月的时间,期间不断的演进和升级,并且不断上线新的服务模块并进行系统监控,直至业务服务相对完善和系统相对稳定。 六、源代码地址 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-cloud-base GitEE地址:知了一笑 https://gitee.com/cicadasmile/spring-cloud-base

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

Serveless 助力新零售 —— 乐凯撒新餐饮服务落地实践

本文整理自乐凯撒黄道泳在 Techo 大会的分享,文字部分约 5100 字。 下面,让我们一起回顾下黄老师在 Techo 大会的精彩演讲内容: 大家好!我是黄道泳。非常荣幸收到腾讯云的邀请,来给大家介绍一下腾讯云 Serverless 在乐凯撒新餐饮服务上的应用实践。 乐凯撒是一个披萨的餐饮门店,目前在深圳、广州、上海、苏州、佛山、惠州、东莞、昆明、重庆等地拥有140多家直营门店。乐凯撒是红山资本成员企业,是红杉资本在中国投资的第一家餐饮企业。11年首创了榴莲比萨,现已风靡全国。 今天分享四部分,第一部分讲一下 Serverless 的应用背景。第二部分是关于我们用 Serverless 做了什么,第三部分我会分享下 Serverless 解决了业务上哪些痛点,第四部分讲一下未来在Serverless 应用上的发展规划,以及Serverless 使用过程中有哪些挑战和注意事项。 应用背景 先看一下我们当时的应用背景。我们开始决定使用 Serverless 来做我们系统升级改造的时候,是在2017年的时候,当时我们业务系统信息孤岛严重,有二次开发困难,大量用户用的系统语言和接口都不一样。 17年底,我们做了我们自己的小程序点餐系统,这个系统本身需要和后台业务系统打通,这个时候需要解决多个系统之间的互联互通问题。另外就是业务系统耦合度高,业务拆分困难,系统稳定性差,各种紧急的业务需求和活动无法及时满足。所以我们尝试先通过 Serverless 做一些局部的改造。 新餐饮介绍 首先讲一下我们对新餐饮的思考,它在信息化数字化的要求,新餐饮本身也是人货场的重构,主要实现我们日常经营管理所有的数据能够全流程在线化,主要分为四块: 点餐、下单、支付、制作、出品实现实时在线化。 用餐评价,会员管理可以在线化,支持数字化营销。 供应链订货、收获、盘点、损耗在流程在线,数据打通。 人事、考勤、成本核算等在线化,工具化,高效化。这些方面是我们新餐饮转型在这方面要进行全方面的数字化改造。 下图是我们以前建成的系统的架构图,我们现在的系统就是在这个基础上进行完善的。中间是业务中台,对接很多第三方系统,小系统包括我们云打印系统、点餐系统、会员系统、配送系统、开店管理系统,还有第三方系统,比如说金蝶ERP系统、红海EHR系统,第三方系统又会产生数据交互。 云函数调用方式 API网关提供http接口 定时触发。做一些定时数据处理,定时数据计算等等。 运用Websocket实时通讯,我们目前应用在云打印这一块,用来做实时打印通讯和打印机的管理。 CMQ消息订阅触发。我们会把它用在会员计算这块。 COS存储触发 CKafka数据的处理。 前面四种我们都用到了。 乐凯撒应用 Serverless 的业务概况 我们用云函数实现的业务功能非常多。 微信小程序的服务应用,基于云函数实现的,而且目前腾讯云也支持云开发。 公众号消息推送服务。 实时通讯服务,刚才讲的云打印服务。 不同的业务系统数据同步,比如说金蝶的ERP系统以及WMS系统的对接和数据同步,SOS餐饮系统和金蝶ERP数据接口的同步。 统一的支付服务,订单的付款,订单的支付,定时异常数据邮件提醒。 第三方外卖平台、第三方系统的数据抽取及处理入库。需要临时上线的功能需求或接口对接。我们做完之后,直接可以不管它了。 以上都是用 Serverless 平台实现的。 云函数的应用场景及编程语言 我们常用云函数的应用场景及编程语言有多种,一般来说, 对接不同系统接口的应用用 Nodejs; 定时任务管理, Nodejs 和 Java 都用; 数据抽取、数据运算、数据同步用Nodejs 和 Python; 各类临时活动,做完就下架,用Nodejs 。 机器学习应用可以用Python。目前Nodejs 和Python比较多,Java 用的偏少。 Serverless 解决的问题和痛点 首先,Serverless 云函数它是天然微服务的架构,它本身是函数一个服务,它是微服务,我们看成是微服务的升级版,第4代架构,是云微服务版。本身微服务能解决很多,数据耦合度的问题。 第二,适合处理大量零散的定时任务,比如说我们可以极大的减少服务,减少部署独立的定时器服务,解决集群服务的定时任务管理的问题。尤其是并发的集群的定制任务。 第三,更低的开发难度,更高的开发效率,因为现成的资源可以直接用。针对不同的业务场景,可以借助不同语言特性,结合研发团队的能力,更快速的实现对应的需求。利用他们熟悉的语言,去做业务场景,而不是需要大家统一的技术架构。他们可以很灵活快速推进这个需求。 最后,运维成本。因为云函数有一个很强的特征,不运行则不产生费用。第二个不产生资源的占比,没有多大服务器的成本。另外扩容也是全自动的。它的运维成本很低。 早期,我们用云函数来做多个业务系统之间的对接,尤其是解决多个异构系统之间的数据连通,因为我们整个系统的重构不是一天就能完成的,是慢慢去做的,慢慢不断的反复,不断的去调整这些功能。一步一步慢慢去做,多个异构系统的黏合剂。 这里,我分享几个应用场景的案例: 应用案例:云打印服务——传统架构 首先,我介绍下用来解决云打印服务,这是一个打印的小系统。用来解决门店在下单之后,我们打印机打印小票。首先说一下传统架构的实现。 在传统的架构里,每一个门店都会有一个本地的服务器,这个本地的服务器会提供一个本地服务,我们门店需要有一个交银机,一个一体机,还有打印机,通过本地服务器进行管控。总部也需要有服务,总部进行数据的整合,例如:美团的订单,会先把订单下到总部的服务器上,总部服务器把这个数据推送到门店,门店服务器接到数据之后,它才能够通知到打印机进行打印小票,由此来完成整个门店业务的管理。 现在,基本上有大量的订单是线上下单,不管是小程序的订单也好,还是美团饿了么也好,都是通过网上下单,存在网络链路的问题。网络一断就不好办了。 我总结下传统架构存在以下痛点: 硬件及维护成本非常高。门店需要部署独立的本地服务器。 总部对于门店的服务情况无法快速掌控,因为这个数据每隔一段时间才会通讯,很难做到实时把数据同步下来。 我们收银电脑普遍配置极低,订单数据无法实时上传汇总,门店下单和美团总部接到的单是错位的,需要一段时间才能同步。 应用案例:云打印服务——新的云服务架构 新的架构是云服务架构,取消了本地服务器,无需门店本地部署服务器。在比较低端配置的收银电脑或 SDK 上部署轻量级客户端。 打开浏览器,就可以实时传回所有订单数据,可以追踪你所有的服务状态。打印机它是在门店的局域网内部,所以我们单独在我们云端的服务,就是我们SOS收银系统,还有云打印服务仍然实现云打印服务,通过它连接我们本地的收银机客户端,由它来定制我们的打印机,它是实时通讯的,随时知道门店的打印机是否能正常打印,是不是卡纸,是不是纸打完了,没有纸了,我们随时都可以知道。这个过程就解决了门店很多问题,由于订单是可追踪的,打印机会随时把故障解决。 应用案例:会员画像标签运算系统 第二个案例,我们用云函数结合 CMQ ,结合 API 网关,完成会员画像标签运算系统。 我们做会员系统,一般来说会员比较重要的一项数据要生成,就是会员画像,我们要基于会员消费行为消费轨迹生成用户会员它的画像,会员的爱好、消费频率、消费的档次等等。我们希望能够快速实时的跟踪这些数据,通过平台可以用极低的成本完成整个过程。 这个过程如何实现? 第一步,用户产生购买消费行为数据推送到我们柜员系统,通过消费订单产生统计数据。这个数据统计完之后,把数据装到数据库。因为它的消费是正常的,是正常订单的数据。我们会对信息推送到消息队列里面,我们 CMQ 会调用我们 API 网关,API 网关后面对接的是云函数。 Serverless 云函数,每一个云函数会对应一类标签,包括消费频次,消费偏好等等标签,这类云函数对它进行标签的实时运算,如果计算过程中产生错误,会把这个消息反馈给CMQ,CMQ告诉消费失败,如果正常的话,会拉取数据,拉取完之后标签计算,标签计算完成之后,我们会把标签保存入库,最终生成用户画像,最终消费成功,整个标签计算完成,整个消费完成。通过这样的方式,我们完成了整个会员画像实时计算系统。 我们目前这个系统从19年上半年的时候开始做,到现在为止,整个会员画像的标签有3000多万。 应用案例:智能营业额预测 第三个案例,我们今年做的,在云函数上使用机器学习的一个实践,我们可以做的智能化: 第一、智能销售 通过分层管理通过大量的集成学习,放到数据库,调取我们的数据库,进行云计算。 第二、订货 第三、人员的排班 以营业额预测为例,具体我们是怎么做的?拉取近两年门店的营业额,最长拉两年,没有两年也可以拉,最少是一到两个月。通过这个数据,我们生成每一家门店接下来 30 天的营业额,这是每天滚动生成的机器学习的过程。 首先,我们先会抽取数据处理,对我们营业额的数据做抽取,做相关的异常处理。 其次,我们会生成训练特征,为我们数据组合特征。 第三,我们会定期训练模型,会使用LightGBM模型训练多个模型,然后是多个模型预测数据加权融合,然后使用已有模型集预测数据特征值预测数据,我们不是每天都训练,一般两周到一个月做一次训练,整个代码都是在数据库上面,没有分开去做。很边界的实现营业预测。到目前我们运行下来有接近半年的时间,我们目前营业额,单店平均准确度到达87%,这个准确度蛮高的。 云函数的价值 这三个项目中云函数主要价值点是什么呢? 1、云打印服务 通过使用腾讯云提供的Websocke服务,减少了地层框架的开发难度,使得研发人员只要关注业务开发即可。 一个人大概花2周多时间就搞定了,人力和时间成本节省至少50%。 2、会员画像标签运算系统 通过使用CMQ,API网关和云函数快速搭建起来一个高质量稳定的计算服务架构。目前我们从上线运行到现在,还没出过问题。基本上你不需要考虑太多你的服务器资源的问题,唯一的问题是你的数据库面临比较大的压力。 一个中级的研发工程师三年的经验,从研究使用到搭建框架到开发完成不到 2 周时间。 3、智能营业额预测 通过使用函数的分层管理,减少了代码的管理和调试的难度。 用较低的成本和更高的效率实现了机器学习的智能应用。 服务运维及成本、服务稳定性和性能都有较好的保障,而且费用投入远低于自建服务的方式,至少节省了3台4核8G内存的服务器。 开发周期上面传统是百分之百,云函数是55%。研发难度传统是百分之百,云函数是45%。 成本的话传统是百分之百,云函数只有30%。类似定时器这种,可能有10%。定时器一天也就跑三五次。但是很高配的服务器,长期占用的话,这个成本是消不掉的。 未来的规划 第一、强化Java体系云函数的应用。 我们刚才看到比较多的是 Python ,我们真正大型的系统还是以 Java 为主,我们这块希望做很深度的应用,我们希望结合 springboot,强化Java云函数能力,实现既能本地调试,又能方便的进行云函数部署。 第二、对于多个云函数定时器提供统一调度和管理功能应用能力。 第三、结合其他的资源,如果只用云函数,只能发挥里面百分之四五十的功能,结合其他的资源后你就会发现整体效率,包括你的成本节省会非常多。 刚才提到的CMQ、COS、LB负载均衡用起来,你会发现极大的降低其他综合流程,整个研发效率都会有比较大的提升。包括我们系统稳定性,基本上扩容这个事情,绝大部分都不需要考虑。一般我们在建系统的时候,你要考虑的是你的各个系统,你的峰值。80%的时间,你的CPU只有10%或者是1%。这样的情况下,云函数参数会有比较大的优点在你峰值低的时候,会降到很低的成本。你的费用是按照运行次数和时间和运行内存来综合计算的。 最后,继续加强机器学习和大数据分析方面的云函数应用。包括明年会计划去做这个事情,能不能搞人脸识别的库,和图片识别,去做图像识别的应用,包括用户特征这一块。这个是我们的规划。 一些挑战和注意事项 工程化、模块化管理不便。其实是微服务共性的问题,微服务开的够多够细,需要我们做好规划。 云函数本身机制的问题,第一次运行或者函数长期未运行时,或者再次发出调用的时候,会有一个启动时间,比如说5到10秒,看你的启动资源花多少,启动慢的话会一秒两秒,可能造成接口会延时。调用方面要考虑。 本地化调试的不便问题。本地运行的代码到云函数上跟我想象中的不一样,尤其是Java 函数有比较大的区别。目前我们自己也做了类似的框架。本地它是一个开发,远端入口是基于打包。出来的结果是不一样的。近期云函数发布了在线调试功能,感兴趣的朋友可以尝试。 公共类库的复用问题。这个问题用 Python 语言可以解决。Java 问题类库不大好解决。Java 类库有重复引用,我们看到这一块,看看有没有更好的解决方案。 跨区域的网络稳定性引发的云服务灾备问题。这个是什么意思呢?这个也是我们过往产生过的,我们云服务部署按区部署,你在广州部署,在北京部署,在上海部署,是不能够跨区域的。如果这个区域的网络,如果一旦发生问题,你可能会导致云服务没法正常用。这个时候需要快速的灾备方案。目前我们在上海有一套,如果网络出现问题,快速切换,这样一定程度去避免问题。目前还没有全国性的切换。 在做云函数开发的时候,我们曾经犯过一个很严重的错误,因为我们一直以为云函数资源自己管理就好了,用完了就关了,这个不一定的。尤其涉及到数据库资源,云函数里面的链接,就是你自己开了一定要关,如果不关的话,有可能导致链接池,最终导致数据库崩溃。云函数刚开始做的时候,大家会忽略。我们一定要自己管理链接。这个是我们在使用过程中遇到的问题和挑战。 今天我就分享这么多,谢谢大家! One More Thing 立即体验腾讯云 Serverless Demo,领取 Serverless 新用户礼包 👉 serverless/start 欢迎访问:Serverless 中文网!

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

规模化落地云原生,阿里云即将重磅亮相 KubeCon China

2019 年 6 月 24 日至 26 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCon + Open Source Summit(上海 )即将在中国上海盛装启幕。继 2018 年 KubeCon 首次成功登陆中国,本届 KubeCon 将吸引来自全世界数千名技术人员将会参加此次盛会,参与CNCF 全部项目和话题的深度探讨和案例分析,聆听 CNCF 项目的运维者和最终用户的分享。本届 KubeCon + CloudNativeCon + Open Source Summit 大会项目委员会由 75 名专家组成,审阅 KubeCon + CloudNativeCon 的 618 项提案,在本次 KubeCon China

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

生于阿里的“技术中台”,如何在券商行业落地发芽?

“中台”这一词,随着阿里不遗余力的宣传,成为近两年的现象级趋势。不止是互联网行业,非互联网行业机构也在推进中台化,以期快速响应前端用户需求,快速进行创新迭代,其中也包括金融行业。 在互联网化、智能化的浪潮下,金融业发生了许多新变化,其一更加要求个性化场景服务能力,二要求打破原来以产品为中心推动的金融服务,提高迭代和应变能力,其三是在保证性能的基础上,改进架构实现弹性配置,其四是利用智能技术提高生产力。 在5月16日的JRES3.0发布会上,恒生公司总裁刘曙峰表示,为了满足以上这些需求,金融机构的前进方向也变得更加清晰——一个基础技术平台,在此之上需要有业务共性抽取提炼出来的业务中台,和基于大数据和算法支撑的数据中台。 据雷锋网(公众号:雷锋网)了解,该发布会由恒生电子联手蚂蚁金服、阿里云共同举办,JRES3.0是分布

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

《MVP 时间》之物联网落地难点场景二:物联网水处理

大家好,我是叶帆科技创始人兼CEO,刘洪峰,也是阿里云的MVP。本章课程我们将结合前面讲的内容,进行场景再现,上一章节我们讲了智慧养殖,本章节我们将讲物联网是如何进行水处理的, 主要采用什么样的原理。智慧养殖是在物联网实施过程中,整个项目持续最久的。当前这个水处理系统,大概也做了2年多的时间,早期对广西的客户进行一些污水处理,主要是循环水处理,像大楼里面的暖气供水,空调用水等都是内部循环,这些水如果不及时处理,就会对管道进行腐蚀,造成其它不可预估的损失及影响。目前不只是循环水的处理,还有锅炉、RO等水处理。一、首先看一下水处理如何定义的水处理是指为使水质达到一定使用标准而采取的物理、化学措施。而我们主要采用化学水处理措施,应用比较典型的像循环冷却水、闭路系统、RO系统、锅炉系统。 二、项目在进行的整个过程中,最大的困难点1、

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

运营商NFV落地之困 择商用软件还是自主研发?

目前,NFV的主要目标是实现传统网络、网元设备的软硬件分离、网元功能的软件化、可以进行云化、按需动态伸缩、自动化部署和编排以及将来实现智能化网络运营。 采用商用软件和自主研发各有利弊 NFV的总体趋势是底层硬件实现相对通用化,采用虚拟化技术、容器技术、分布式架构技术,实现对底层通用设备的共享、调度、弹性和可扩展,向上为VNF(虚拟网络功能,即网络功能的软件实现形式)按需提供自动化配置的资源,这意味着NFV具备三个方面的关键特征。 第一,网络功能软件化。未来的网络功能升级、增强都是通过软件完成的,不需要(或者很少需要)底层硬件的升级或扩容,因此VNF软件才是未来网络发展的焦点,VNF的微服务化、分布式架构改造、开源化、自主研发、Devops是未来的发展趋势,但当前VNF技术基本还是掌控在电信设备商手中,运营商几乎没有能力染指。 第二,构建统一的NFVI资源池体系。服务于全网的云化(虽然不同的网元对NFVI有差异化的需求,但并不影响NFVI的跨专业统一规划、建设与运维,只是从资源的具体部署方面必然存在不同专业网络一定的资源“隔离性”,例如部署在不同层次的DC)。NFVI是当前运营商认为的可以实现成本降低的主要希望,但实际上除了集约化带来的电力成本降低以及机房空间节省外,从基础设施角度看是否降低成本难以评估(传统网络设备难以严格区分硬件和软件的成本),需要综合考虑服务器/存储/网络新建成本,以及NFV软件、HA、灾备、机房改造等总体成本,软件将占据很重要的成本,对于运营商来说软件如果不是自主研发,就只有依靠通用化、规模化甚至标准化才有可能降低成本。 第三,引入新型的管理体系。实现对VNF、VR(虚拟资源)以及PR(物理资源)的监控、配置、管理以及更高层次的网络服务编排等,这部分目前是由NFV架构中的MANO来完成,在ETSI定义的MANO架构中,MANO由NFVO(NFV Orchestration)、VNFM(VNF Manager)以及VIM(Virtual Infrastructure Management)组成,分别完成网络服务编排与管理,VNF管理以及NFVI资源管理等功能。 在以上所述三个方面中,NFVI、VNF、MANO是NFV架构中的关键组成,以软件实现为主,从利于快速部署、规模化、成本最低化、业务连续性和迭代创新能力等方面考虑,运营商是采用商业产品还是选择自主研发目前存在一定的矛盾。 自主研发的好处是可以基于自身的需求进行快速定制化开发和实现迭代式优化与演进发展,而不是受制于厂商,不需要进行复杂的解耦、兼容性测试和集成,而且长远看能够实现成本的持续降低,有利于自身的可持续创新和发展,借助NFV/SDN发展机遇实现真正的转型。但传统运营商并没有软件研发的基因,从机制、文化、流程、组织架构等方面难以较短时间内培育打造一支有竞争力的软件研发和运营团队,以支持运营商网络软件化的发展需要,难以实现全面的网络软件自主研发;而采用商业化软件带来的好处是可以实现快速规模化部署,成熟度和可靠性高,但成本也会较高,而且依赖厂商带来的周期性更新,难以实现快速定制与迭代式发展,目前看厂商的网络软件仍然是高度封闭的,与传统网络设备发展模式几乎没有差异,运营商仍然受制于设备商和第三方软件商,长期发展能力和空间有限。 运营商自主研发实力尚薄 目前,对国内的运营商而言,还不具备条件全面采用自主研发的软件,需要基于需求、定位、资源以及自身能力,有的放矢地选择部分核心和关键组件,采用自主研发模式或者深度合作研发模式推进NFV的发展。笔者认为应该从以下三大系统软件入手。 第一,NFVI。打造一个统一的面向NFV的规模化云资源池体系,是运营商网络云化的基础和关键,因此,NFVI是较长时间内运营商工作与投资的重点,其中NFVI软件又是重中之重,目前主要以虚拟化软件(Hypervisor)为主,未来还包括容器技术、分布式软件技术等软件定义技术。 Hypervisor自主研发的好处是未来可以全网统一Hypervisor,有利于全网资源的统一共享与调度,更利于减少兼容问题和降低集成复杂度,对于像运营商来说,NFVI必然是规模庞大的,简单评估一下就会知道自主研发长远看是否降低成本。目前大部分厂商都是基于开源KVM进行商业化定制和优化,特别是针对NFV转发性能要求高的特点,各个厂商都做了针对性的优化,这部分工作仍然难度相当大,尤其是规模化应用难度大,需要投入的资源和时间较多。 运营商技术基础和人才积累不足,目前完全采用自主研发Hypervisor并不现实(至少要投入100人左右,而且需要经过长时间的大规模验证)。但是采用第三方Hypervisor也面临巨大的挑战,各个厂商的Hypervisor与各自的VIM甚至VNF存在耦合与捆绑,形成各自的“小王国”,不同厂商Hypervisor难以互通,需要大量的规范、测试和后期的部署集成工作,而且也很难针对运营商的个性需求进行定制开发。对于Hypervisor,自主研发的窗口期已经过去,运营商一方面当前应采取减少现网Hypervisor的型号和版本的策略(同一资源池节点建议只采用一种Hypervisor,全网建议不要超过2种Hypervisor),另一方面可在新技术(例如容器技术)方面进行储备,并且逐步引入自主研发软件。 第二,VNFs。各类网元原来都是软硬件一体化的,运营商对网元的内部实现机制并不熟悉,也没有真正去探究网元设备软件系统该如何实现,大部分网元功能软件目前对于运营商来说还没有可能采取自主研发来实现,但对于运营商而言,NFV也不能停留于仅仅实现基础设施的统一和共享,VNFs是运营商必然要去逐步攻克的,否则实现软件化只是表面的工夫。这部分需要运营商逐步去积累和投入,至少要具备能力去推动VNF软件的开放和架构重构,了解VNF软件的实现细节,推动VNF微服务化,为将来实现分布式和容器化部署打下基础,在能力具备后,应深度介入甚至自主研发部分VNF软件(例如NAT、FW、CDN、DPI等)。 第三,MANO。如前所述,MANO是由NFVO、VNFM和VIM组成的,当前VNFM与VNF是强关系的(VNF并不开放,VNF开放后可实现通用VNFM)、VIM与hypervisor也是强关系的(当前可基于厂商VIM或Hypervisor开放的接口实现通用VIM功能),目前大部分运营商选择与OSS关系紧密、与网络业务关系较大的NFVO进行自主研发。 NFVO的复杂度决定于VNFM是通过NFVO还是直接与VIM交互,同时也决定于NFVO的功能定位,仅仅是实现基于VNFM和VIM的聚合呈现与管理,还是端到端的业务编排,包括对VNFM、VIM以及SDN控制器的全面掌控,实现VNF/VNFC(VNF的组件)、资源(软件、模板、虚拟化资源以及硬件)和网络连接的统一管理和编排。长远来说,运营商应完全掌控MANO管理体系(涉及到VNFM和VIM的统一),近期以NFVO自主研发为主(适配不同厂商的VNFM和VIM)。当然即使是NFVO,对于运营商来说完全采用自主研发系统近期也还无法做到,自主研发的NFVO需要经过现网的考验,功能不断迭代完善,探索运营维护机制,初期很可能采用商业化NFVO和自主研发NFVO并存的方案。 对于运营商而言,NFV整体可靠性、故障检测与自愈,以及可扩展性等运营能力十分重要,这是运营商的核心掌控点,应是重点研究和自主研发的对象。运营商也可以探索与相关厂商与提供商进行深度联合研发,建立相应的研究、开发、运营的联动机制,同时探索相应的规划、建设、采购新模式。 作者:饶少阳 来源:51CTO

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册