犀牛云CTO周长军:前后端分离架构在解决方案项目中的实践说明

2022-08-03 2509

《犀牛云CTO周长军:前后端分离架构在解决方案项目中的实践说明》


一、项目架构


随着IT技术的不断进化,在谷歌的V8引擎的催生下,近4-5年来网页的构建技术已经发生了翻天覆地的变化,全新的“前后端分离”的软件工程模式+软件前端架构模式这个双分离模式的概念迅速崛起,正在以迅雷不及掩耳之势覆盖到IT各个领域。 Google的Angular经典前端框架、Facebook 的代表作 React 框架、华人大牛尤雨溪的神作Vue 框架等已经成为现在前端技术的代名词。在国内,以阿里、百度、腾讯为首的互联网龙头企业为主先锋,特别是阿里的 Weex 框架系列,D-Cloud 的 uni-app 框架、京东的一码多端 Taro 框架等等,正在主导这一场巨大的前端工程性和架构性变革。同时这些框架产品已经作为民族优秀软件的代表,正走出国门,走向海外,并已经拥有了大量的海外用户。


1、架构性前后端分离


何为架构性前后端分离?简单理解就是将传统的网页前端技术中 HTML、CSS、JS 三大部件与后端逻辑实现的耦合进行完全切开,也就是“解耦”,前端只关注页面构建、交互实现、动效实现,后端只关注业务逻辑、安全控制、均衡控制等。前端的开发工作从传统的“简单页面重构”演变为前端“编程”,是真正的编程,通过将前端的代码程序以打包的方式来输出为不同终端的实际页面(PC, 手机,Pad,电视,智能手表、物联终端等等)。前端页面与后端服务通过一系列标准的REST风格的API进行交互、鉴权。这个技术意味着:一个后端,一套代码,可以对应着多个前端设备,每增加一种设备,后端不需要任何维护和改变,只需要前端进行适配即可,甚至是未知的设备、即将上市的全新的设备形态!


《犀牛云CTO周长军:前后端分离架构在解决方案项目中的实践说明》


传统的页面前端技术与后端程序,都依赖服务器端的算力(CPU能力、内存大小),客户量的增加、并发量的增大,都需要增加服务器的投入。而近年来,边缘计算的概念(Edge Compute) 逐步称为人们讨论的话题!因为我们逐步意识到,随着集成电路技术的不断进步,服务器之外还有很多设备也在不断提升自身的性能,比如网络设备防火墙、交换机、路由器,浏览网页的用户端设备(个人PC,智能手机、平板电脑、车载智能设备、家用物联智能设备),都在按摩尔定律的规律在不断进化。


这些设备的进化,为什么不能利用它们富余的算力来协同运算,降低对服务器的依赖呢?因此边缘计算的概念应运而生。架构性的前后端分离模式也是边缘计算思想的产物!服务器端使用分布式计算的微服务思想,不再参与任何与页面渲染相关的任何工作,仅对数据采集、计算、存储、检索服务,极大地减低了对服务器算力的依赖。相同算力的服务器投入,可以成倍地提高并发性,同时服务于更多的访客。客户端浏览器则负责执行一部分“边缘计算”的任务,通过服务器反馈的页面指令,进行页面渲染、解析、输出。这些边缘计算对用户而言是无感的,因为谷歌V8引擎的最大贡献在于极大地提升了JavaScript(JS)脚本的执行效率,JS性能被诟病的历史时代已经一去不复返了。


前后端分离给我们带来的好处显而易见,但在极个别方面也给我们带来了不便,这个方面就是传统意义上的SEO(搜索引擎友好度优化)。除此之外,我们几乎再也找不到任何其它方面的影响。在业内,其实我们不用太关注这个问题,因为搜索引擎巨头已经关注到了这个问题,Google 搜索引擎已经做出了明智的决定:顺势而为,调整自身以适应行业的变化趋势,而不是被动地等待着被市场淘汰!


Google已经从内核算法上进行了调整,完全支持前后端分离架构了。国内的百度、360、搜狗等搜索引擎目前尚没有公开其对前后端分离的态度,但从上述技术演化的潮流上讲,他们做出算法调整以支持前后端分离架构的决定只是一个时间问题,在此之前,我们可以通过一些“折衷”的技术手段,依然使用前后端架构性分离的架构,尽可能使用先进架构给我们带来的好处,也尽可能保留SEO友好性。目前我们也正是这样做的。

当前我们几乎绝大部分客户都明确要求使用架构性前后端分离技术来实现他的项目,甚至作为竞标的必备条件之一。如顺丰、能源集团、国家电网、腾讯、顺电、健安医药等等。在客户没有明确要求使用哪种架构的情况下,我们会优先选择更先进的前后端分离架构!而部分作坊式的工作室、小技术团队,他们技术更新较慢,思想转化较慢,可能会停留在多年前的认知上,当用户没有明确地提出一定要使用前后端分离架构的时候,他们会避重就轻,选择用自己熟知的传统架构、低成本地来进行开发交付,因为客户从网页表面上是无法区分的。这是对客户的不负责任的态度,当然也可能只是一个对新技术的认知问题,是客观的,不是主观故意的。


《犀牛云CTO周长军:前后端分离架构在解决方案项目中的实践说明》


2、工程性前后端分离


何为工程性前后端分离?在基于“架构性前后端分离”的趋势下,人力资源市场的人才知识结构也在悄然发生变化!大量HR专员发现,传统意义上的前端人员已经越来越少了,基于前后端分离的“新前端”人才大量涌现,同时,只会一点前端知识的后端开发人员,也越来越少,几乎找不到了。


分析这种现象,不难发现:在“架构性前后端分离”的趋势下,软件工程领域也在变革,人才知识结构在调整、开发过程中的岗位设置在改良、开发流程在不断变革。等等这些就是“工程性前后端分离”。在工程性前后端分离的趋势下,技术在演进、人才在变更,如果我们的项目还在固守成规,那么项目即使开发完成并上线,后续的持久运营和维护的人才补给是与市场发展不相符合的!(简单说就是技术老旧,懂旧技术的人已经很难招到了)


二、MIP/AMP移动SEO规范


MIP/AMP 分别是搜索引擎两大巨头百度、Google 推出的、对移动网页进行特别缓存的一项技术,两者技术非常相似。其作用是:移动端页面(手机、小屏平板、小屏物联设备)的页面代码中,使用它们规定的标签或技术来实现,将会取得SEO的优待,会优先收录或排名,并在搜索结果列表中也给一个特殊的标记,表示对该网页经过了加速处理等等。在当时特定的历史时期,这一技术对移动端页面的搜索技术起到了极大的推动作用。在2018年前,我们开发的移动端网页,默认都是基于MIP/AMP(二选一)来实现的。


随着网络技术、网页开发技术的不断变革,百度、Google 均发现旧的规范已经严重制约了开发过程的创造力,给开发人员带来了太多的局限性,并且其缓存机制也日渐失去了存在的意义,成为了鸡肋产品。两大巨头不约而同,先后发布了官方申明,不再支持移动端页面的特别优待政策,并且也将关闭MIP/AMP特殊标签,届时,这些使用MIP/AMP标签的网页将面临尴尬局面(目前还可以正常浏览,但已无加速功能)。


三、如何衡量一个项目优劣


从技术角度衡量一个项目优劣有很多个维度,它们不仅仅只是前端架构,还有更多,比如更长的生命周期、更强的性能、更安全性的防护机制、可扩充性和可维护性等等。下面只从 3 个方面描述:


(1)更长的生成周期:技术选型前瞻性是更长生命周期的先决条件。包括前端架构和后端架构。我们后端采用当前业内最先进的 SpringBoot 套装的部分组件来实现,可轻松实现分布式部署、微服务架构部署,是面向未来的架构体系。


(2)更强大的性能:项目的性能,不仅仅是看前端页面打开的、肉眼看到的1秒、2秒等速度,而更重要的是我们需要做压力测试,在1000个并发、2000 个并发的时候,服务器是否能正常响应,软件的架构是否考虑到了 1万个并发、10万个并发。


(3)更安全的防护机制:我们项目经验收正式交付前,需要做一个标准的《浸入式安全渗透测试报告》,实现零高等级风险警告。


犀牛云(XINIU.COM)是针对全球企业数字化转型升级推出的“企业数字化引擎”云服务平台。帮助全球企业开展营销工作数字化,同时逐步实现管理数字化。犀牛云9年来,在PSST(中国)研究院的技术驱动下,先后推出“犀牛云营销三剑客(企业云网站网赢战车、品牌占位系统)、圈能力SCRM(微名片、圈互动、圈商城、CRM)、犀牛云电商三剑客(XINIUshop电商系统、SSC供应链系统、SSC云铺货系统)”三大系列软件产品。帮助全球企业实现从企业数字化向数字化企业的全生命周期的进化,累计服务超过220000家全球企业!


犀牛云圈能力SCRM发布上线,打造企业私域超能力,一键实现数字化转型!

 扫码关注犀牛云

了解更多资讯,欢迎致电犀牛云全国统一销售热线:400-0998-667




相关推荐