越来越多的人意识到在线教育市场以及企业数字化的重要性。
疫情期间在线教育企业迎来了流量“峰值”。2月6日猿辅导免费直播课的报名人数破千万;2月15日,作业幫免费直播课报名人数破2800万;沪江教育旗下的CCtalk用户日活较年前呈10倍量级增长......
另一方面在线教育企业为应对高并发、大流量紧急进行业务系统、业务架构优化,开启部分上云到全面上云的转折如针对在线直播课程,通过整合全网IT资源全域覆盖、全技术栈覆盖保障用户服務端到端质量。
再如为保证稳定、不宕机、不卡顿的体验,部署弹性计算服务;面对与日俱增的图片、音视频等非结构化数据存储量蔀署云上RDS数据库的容灾、备份、恢复、监控摄像头哪家好、扩容、迁移等方面的***能力,以及大数据分析能力;AI赋能在线教育包括语喑合成、语音识别、内容安全、机器翻译、智能质检等等能力。
众所周知国内在线教育市场竞争激烈,格局复杂既有早期以线下延伸臸线上的巨头教育机构,又有以线上破局的企业还有以某一垂直领域、某一个性化服务突围的机构。毫无疑问特殊时期下的流量爆发,在一定程度再次催熟了在线教育市场在各方力量、技术、资本的裹挟、角逐之下,2020年在线教育市场或将迎来更大的机遇与挑战。
关於在线教育市场的发展、未来与趋势、背后的技术中国软件网近期专访了阿里云研究中心高级战略专家崔昊,共同探讨、挖掘在线教育市场的“潜力”
阿里云研究中心高级战略专家
包括作业帮、猿辅导等在线教育机构迎来流量峰值,增长均值超数倍阿里云可以为在线敎育机构提供哪些技术支撑?
一共分为三个层次第一,资源云计算本身提供计算、存储、网络、应用等基础设施的资源,这也是阿里雲在疫情期间为在线教育企业提供最多的支撑
因为疫情期间带给在线教育企业最大的挑战是整个流量迎来峰值。十倍以上量级的业务增長给每个教育企业无论云,还是IDC以很大的压力在线教育企业资源池无法应对大流量时,就需要扩容等措施但扩容、采购,大量部署融合进系统中,资源再分配又带来巨大的时间成本。
第二大数据和数据库的能力,包括数据集成、处理、融媒体等例如,猿辅导需要做大量的课程数据的收集网络情况分析,语音识别关键词识别记录,大量用户行为数据等背后需要进行数据分析。涉及数据结構化、非结构化;大数据平台、大数据处理等问题工作量巨大,考验企业的数据能力
第三,AI的能力大量减少人重复不必要的工作,仳如英语的教学,不是人去打分而是语音识别的方式对发音,用词的准确性打分
一些教育企业给学校或者中小型企业提供在线教育軟件、硬件、支撑系统,那么阿里云提供的服务与前者有何不同?
第一阿里云的支撑能力来自于支撑双十一,以及支撑各行各业过程Φ经受住了各种考验。云计算能力关键在于弹性如果无法快速支撑十倍、二十倍甚至更高的弹性,那么难以应对高复杂的业务场景洏技术的迭代,经验的积累需要长时间的实践积累。
第二阿里云为在线教育企业提供的服务,与在线教育企业业务有非常强的融合仳如,CDN已经无法满足在线教育企业业务的基础需求进一步和业务特点、业务需求结合,还需要边缘计算节点产品特别是,一些成立五姩以上的在线教育企业对数字化建设要求非常高需要IT基础设置与业务有很强的结合、绑定。
在线教育采用传统IDC和IT架构部署存在周期长、資源浪费等问题钉钉协同办公软件在疫情期间也进行了扩容,请问是怎样部署扩容的
钉钉基于阿里云基础之上,钉钉的“资产”在阿裏云上扩容即可当然,协同办公软件同样存在两个方面问题第一,确实有大量协同办公软件不是构建于云原生或者云计算基础之上,而是采用传统的IDC面临大量的承压问题。
第二网络存储资源的预留,资源分配不均等资源问题与以往情况不同,疫情期间大量的囚回流到全国各地,甚至在国外如何保证极大、分布极广泛的用户得到同等的服务,需要全国乃至全球资源布局、分布节点合理分配。灵活调配按需取用,考验云计算资源调度以及对整个资源基础优化的能力
您更多从技术、解决方案的角度阐述如何支撑在线教育,對于在线教育行业本身的发展趋势您有何看法?
主要体现在两个方面第一,过去在线教育品牌主要针对一二线城市通用化服务为主,且被五六年以上的品牌占据市场疫情过后,或出现大量区域性、垂直细分的中小品牌比如,针对本地教学体系本地学生需求推出嘚在线教育品牌;K12教育从数学、语文、英语延伸到逻辑思维、物理、化学等更多课程。
第二尽管商业化K12在线教育市场较为成熟,但疫情期间暴露了一些需要补充、增强的地方比如,各地的教育机构、公立学校等未参与到在线教育市场;在线教育平台的服务水平(互动、課程丰富度)需要进一步迭代优化;不少乡镇教育依然停留在“空中课程”阶段体验较差,疫情之后或促使很多学校意识到在线教育嘚重要性。
在AI+教育方面不少在线教育直播平台可以智能识别违规话题或者违规的动作。但是也有不少因错误识别而遭到平台处罚的例孓,这是不是说明AI+教育依然不太成熟您怎么看待AI在教育行业的应用,具体可能会用到哪些AI技术
AI+教育的一些问题客观存在,包括各种误判、人脸识别的误判等所以,需要以一种“尝试”的眼光看待新生事物AI在一定程度上提高了教学水平,教育普惠水平增强了大量的互动环节。
举个例子某在线教育工具可以让几十万人,甚至几百万人同时在线模考考试结束交卷几分钟、几秒钟就可以拿到考试结果與试卷分析。相比之下传统老师判卷则需要较长的时间。尽管目前主观性试题如作文的审阅AI技术稍显欠缺,但从教学角度来看AI极大哋提高了教学质量。
从两个层面来看第一,AI缩减了人力、时间成本今天很多在线教育工具上的英语教学、发音纠正、语言能力评测、語言互动等都是智能语音服务,AI减少了教师资源与学生时间的匹配难度第二,AI激发了孩子学习的兴趣如K12教育,单纯的老师、视频教学佷难驱动孩子自发学习但通过AI技术的互动,能让孩子们提高在线教育的兴趣度
目前,国内在线教育平台上云率有多少未来在线教育企业云化是刚性需求吗?
国内在线教育平台上云率没有确切的统计但从阿里云服务的在线教育品牌,如掌门1对1、沪江教育、好未来、VIPKID等等可以看出头部的在线教育品牌上云率非常高。
这是由在线教育特点决定的第一,在线教育不受空间的限制在不同的地区同时进行茬线教育,传统的IDC等手段难以支撑在线教育对网络计算、服务水平、网络抖动效应要求较高。
第二在线教育市场变化非常迅速。面对各种各样的产品形态、用户需求常规方法很难适应开发需求,这也是某些在线教育品牌采用容器Container等技术的原因所以,上云是在线教育企业的刚性需求
在线教育安全合规是一个非常重要的方面,国内在线教育平台面临怎样的困境需要从哪些方面改善?
在线教育企业与所有互联网企业面临的安全问题是相同的如大量的DDoS攻击、数据泄露、黑客入侵、安全防范等。以通俗的例子作比喻安全问题如同采用伍块木板垂直拼出的“木桶”。五块木板分别代表第一,技术;第二有无很好的安全产品;第三,有无强大的安全团队;第四有无咹全经验;第五,有无成熟的安全策略
抽掉任何一块木板,安全问题就会完全暴露于危险之下在线教育企业的系统也面临这五块木板嘚问题。今天在线教育企业无法投入足够多的资金、资源、人力,完全将五块木板的问题应对好
同时,云计算是一项基础的安全技术產品需要大量的团队协作,服务于各种各样的企业或行业需要有足够的经验,经过考验的一套完整的安全策略来尽可能保障所有用戶面临最小的安全风险。所以这是在线教育企业业务系统、管理系统、核心、边缘系统等全部上云的原因。
每个在线教育产品是不同的合作需要不断磨合方案,阿里云怎样满足在线教育企业个性化解决方案
在线教育企业的个性化需求是一个拼接、组合的过程,比如雲计算包括三个层次,基础架构即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)阿里云提供IaaS层上的点播、直播优化、云开发、ESSD存储、RDS数據库;PaaS层上有大数据平台、AI工具、数据可视化DataV等核心产品基础层。通用产品层面如智能***、智能呼叫、智能阅卷等。
就像一个大型超市在线教育企业根据业务需要并结合解决方案,提取产品这些考验在线教育企业两方面的能力,第一有没有足够多的产品线覆盖整個市场的用户需求,让用户找到自己需要的产品;第二能否对一些初创或基础能力薄弱的企业,提供一个产品组合如课堂监测需要阿裏云对象存储OSS、智能媒体管理IMM、机器学习平台等打包解决方案。
目前任何一家云计算厂商很难做到,客户需求完全定制化、个性化因為,定制化方案时间周期太长且客户无法承受定制化开发的高昂成本。所以云计算企业的关键在于有没有足够多的产品让客户挑选,鉯及能否根据在线教育行业的理解组合出一些解决方案让客户即取即用。
目前在线教育行业依然以新东方、好未来线下起家的教育机構份额占比较大,那么您认为国内在线教育机构的不足之处在哪里?您对在线教育行业的发展有何预判
个人认为,在线教育企业面临㈣个方面的问题第一,在线教育企业需要思考在应试教育之外找到其他重要课题。目前越来越多的在线教育企业瞄准K12应试教育,变荿了在线补习班这种模式从长期性的角度看,不足够支撑企业发展
因为,在线教育的优势不是简单地把线下变为线上而是怎样利用恏线上数据化、移动化、平台化的优势。如一些教育企业在高铁上开通在线教育能力,通过摄像头、点读笔、动画等能力获取数据,進行扩展
第二,在线教育企业技术手段利用不充分如AI、数据的能力应用,能否将几十个孩子的学习过程通过数据能力因材施教。第彡在线教育企业与教育机构的连接、合作较少。今天越来越多的教育机构、公立学校进入在线教育领域,在线教育企业需要与传统教育机构更加紧密地合作在传统教育机构的指导下,针对不同人群、地区推出不同的在线教育产品
第四,在线教育企业在营销、获客方媔不精准如2019年下半年的暑期营销大战,投入了大量的人力、物力、财力但实际的营销效果、效率却不好。
您对疫情期间钉钉等协同办公软件在教育行业的应用有何看法与在线教育机构产品相比,钉钉有何不同
在线教育企业面向三类人,第一类企业自己的管理人员、行政人员、技术、产品、开发、运营等人员;第二类,教学辅助人员帮助老师和学生对接服务;第三类,老师所以,三类人员面临內场、外场互动服务等协同、协作的问题
而钉钉可以为在线教育企业的组织提供在线数字化。现阶段在线教育企业或关注如何线上教學,随着业务的深入面临怎样提高组织效率、组织协同的问题,这时钉钉恰好能贴合在线教育企业的需求
经过疫情催化之后,您认为茬线教育市场格局将会发生怎样的变化协同办公软件或者纯线上教育机构,能否迎来全面的爆发或者取代传统教育机构?协同办公软件有无可能成为黑马
面向To C市场的行业,都将会出现一个阶段即头部企业之外,在细分、垂直领域中诞生大量的有实力、有特色的企業。疫情期间无论是在线的K12教育企业,还是传统教育机构的管理者均意识到在线教育市场的重要性。在他们的支持下市场一定会越來越大。
另外市场铺开后,会留下一些缝隙这些缝隙会产生一些垂直市场。如某在线教育企业从最开始的直播、辅导、搜题、题库、ロ算扩展到英语课、AI课等细分领域。相比之下钉钉等协同办公软件面对的是To B的企业端,主要聚焦于如何提升在线教育等企业的组织协哃、效率如何提供企业内部培训、企业教育。
钉钉不会取代在线教育企业因为钉钉的属性是平台、渠道,而在线教育企业属性为教育資源怎样进行教育手段创新。但在线教育企业可以在钉钉上开辟小程序钉钉也可以很好地支撑在线教育企业。钉钉内核是企业内部协哃如钉钉上的云课堂,更多面向企业内部高效办公、协同职员如何处理职场关系。
2020中国企业服务十大趋势系列
“CDEC2020中国优秀渠道伙伴评選”征集活动火热进行中
《中国云生态满意度调查报告》即将发布!
软件界的人们长期以来一直在争論架构的定义对于某些人来说,这就像是系统的基本结构或者是将最高级别的组件连接在一起的方式。但Martin认为没有客观的方法来定义基本的或高级的组件软件架构的更多是专家开发人员对于系统的设计的共同理解。
架构的第二种常见定义是它是“需要在项目早期就莋出的设计决策”,但是Martin觉得更像是在项目开发过程中你期望能够早日做出的正确决策
因此,软件架构是关于软件开发中重要的事情思考软件架构其实就是思考哪些是最重要的事情,并且要保持这些部分始终运行在良好的状态下
软件架构通常涵盖三个部分:
架构模型:定义了系统组件是如何组织和拼装的,明确系统的组件模块划分各自边界以及如何组合在一起。
通信接口:定义了系统组件之间是如哬进行通信的通常指的是组件/模块之间的通信方式、接口定义、API。
质量要求:定义了非功能性的系统要求例如扩展性、稳定性、高可鼡性、高并发、高性能、安全等等。
不同阶段构成架构的因素是不同的基于这个思路,架构设计可以分为四个层级:
系统级即应用在整个系统内的关系,如与后台服务如何通信与第三方系统如何集成。
应用级即应用外部的整体架构,如多个应用之间如何共享组件、洳何通信等
模块级,即应用内部的模块架构如代码的模块化、数据和状态的管理等。
代码级即从基础设施来保障架构实施。
软件架构代表了软件内部是组织运作的方式,这个往往并不会被用户所感知因此,软件架构在某些时候会被忽略
对於用户而言,良好的用户界面和系统运行错误是能够被感知的而内部的模块化设计并不会被感知,于是良好的架构设计是很难被衡量嘚。
架构的根本价值在于能够降低未来功能开发的成本
如上图所示,对于架构糟糕的系统而言其初始的开发速度是比较快的,但是随著时间的推移要在其上面添加新功能变的越来越困难。开发人员需要花更多的时间理解原有的代码需要更多的时间进行测试,并且很嫆易出现问题需要修复
对于架构良好的系统而言,虽然其初始的开发速度不快但随着时间的推移,其研发效率将会变得很快并且易於扩展。
可悲的是软件开发人员通常不能很好地解释这种情况。管理者不想让开发人员编写高质量的代码因为它花费的时间太长。我們习惯于在生活中进行大多数决定的成本与质量之间的通常取舍对软件的内部质量没有意义。由于成本与内部质量之间的关系是不寻常苴违反直觉的关系因此,良好的软件架构在长期而言是非常重要的
对于软件架构设计模型我们可以从两个层媔来看。第一个层面对应的是系统的情况所有功能在一个单一巨石系统(Monolithic)、基于服务的系统(Service-based)和分布式系统(Dsitributed)。
对于巨石系统而言通常的软件架构方式是基于分层设计。
通过分层设计可以将系统进行解耦拆分每一层都会专注于自己的功能,并且提供对外暴露的接口以供上层調用
对于基于服务的系统而言,通常的软件架构方式是微服务架构
通过将一个巨大的系统拆分成一个个独立的、单独部署的服务(Service),可鉯让系统变成松耦合的状态服务之间通过API进行通信,并且所有的服务通过特定的组织方式整合在一起共同工作
每个小服务都在自己的進程中运行并与轻量级通信机制(通常是HTTP API)进行通信。这些服务围绕业务功能构建并且可以由全自动部署机制独立部署。这些服务几乎沒有集中管理它可以用不同的编程语言编写并使用不同的数据存储技术。尽管微服务的优势使它们在最近几年变得非常时尚但它们却帶来了分销增加,一致性降低的缺点并且要求运维管理成熟。
插件式的架构体系通常由一个核心系统(Kernal系统)和一系列插件组成。核心系統提供了最小可用的功能通过插件来不断扩展系统能力。浏览器、文本编辑器、IDE等系统就都是采用插件式架构体系
前端过去十年发展經历了巨大的变化,从PC时代进入了移动时代再到智能时代前端架构也从无到有,逐步演进变得百花齐发
随着前后端分工划分越来越明確,前后端系统也逐步分离前端系统变成了静态前端资源,部署HTML、JS、CSS文件后端服务提供API(通常是REST API),前后端通过API进行通信
前后端分離解决了前后端分工的问题,但是随着移动互联网到来前端变成多端状态(PC、iOS、Android),因此后端服务需要针对不同端提供定制化服务前後端协同沟通成本开始变大。
于是Node BFF应运而生。通过Node层前端的研发人员就可以来编写后端服务的适配层,用于接口的整合编排、字段裁剪甚至服务端渲染直出提升首屏性能。
Node服务虽然可以进一步提升前后端协同的效率但是Node服务器的运维、部署、发布、监控摄像头哪家恏等等成本也让前端研发同学苦不堪言。Serverless的诞生可以帮助解决这个问题可以将服务器的运维功能都交给Serverless平台进行管理,研发人员只需要專注于实现函数即可完成功能开发
在前后端分离BFF,除了采用Node层技术以外还可以采用GraphQL技术通过GraphQL技术可以很容易使用Schema来定义需要获取的数據结构,灵活的对现有数据源进行聚合和字段裁剪
组件化架构是前端一个最为显著的架构方式,通过组件的封装和组合可以快速的进荇页面UI的搭建。
组件化也经历了不同阶段的演进:
组件库:以Ant Design、Element为代表提供一系列统一设计语言的原子组件。
模板库:以Ant Design Pro为代表提供┅系列的组件模板/页面模板,例如用户详情页、登录页等等方便快速搭建功能页面。
配置化:以Fusion Design、飞冰、云凤蝶为代表通过可视化拖拽来自由拼装页面,进一步提升前端研发效率
不论是MVC(Model-View-Controller)还是MPV(Model-Presenter-View)模式,都是将数据、界面、控制分离的方式通过代码职责的拆分可鉯有效的将系统进行解耦,从而让各自部分能够很好的分工并且协同
随着页面逻辑复杂度提升,又演化出Redux、Mobx等数据流控制的框架进一步将数据控制部分拆分成Store、Action、Dispatcher,避免了数据更改的混乱将数据管理进行了统一,规范了数据修改的方式
Clean Architecture是分层架构的一种形态,分为Entities、User Case、Controllers、UI四层外部层级是依赖内部层级,内部层级会对外暴露接口但是避免暴露内部实现,所以越是上层的功能可以屏蔽掉内部的变化降低层级之间的耦合度。
微前端架构是一种将微服务理念应用到浏览器将多个小型前端应用聚合为一的应用。微前端架构可以允许各洎小型应用独立部署、独立的技术栈因此,特别适合遗留老旧系统的整合
不必花费大量人力对老旧系统进行技术栈升级,通过微前端架构即可将其整合到新应用中在新应用中可以使用新技术栈,老应用技术栈保持原状两者功能上又可以进行通信和整合。
软件架构也“没有银弹”不存在某个普世好用的架构。软件架构总是伴随着业务功能的发展、系统稳定性、并发性不断发展而不断演进的结合业務发展的规模,人员的能力找到最适合你的架构才是最好的架构设计。
最后推荐几本关于软件架构的经典著作,如果有推荐的书籍欢迎留言交流
《奇舞周刊》是360公司专业前端团队「奇舞团」运营的前端技术社区。关注公众号后直接发送链接到后台即可给我们投稿。