现有案例分析
系统融合,简单的说就是把多个系统合并成一个系统。组件化,是在服务化的拆分基础上,提取可独立部署和多次服用的部分。一个是合并,一个拆分,看似矛盾,但两者却可以同时使用,相得益彰。
笔者在前面总结过“适配器模式”和“迭代器模式”在系统融合过程中的运用,并以两个公司合并进行系统融合为例讲解具体的使用方式。在实际项目中,两个公司合并的场景毕竟是少数,但在同一个公司中其实有很多类似的软件系统,也是需要融合的。为什么在同一个公司中会存在很多类似的软件系统呢?个人觉得这是“以业务驱动”的公司的通病,尤其是以“以业务驱动”的大公司的通病。当然这不能把所有的责任都推给公司的“业务人员”,主要问题还在技术架构的设计上。下面来看一个案例:
现在的大型电商网站的入口页面 几乎都是由首页、频道页、活动页、店铺页、商品页等组成。由于网站的各种不同促销几乎无时不刻都在进行,在这一刻看到页面内容主题背景是红色、页面上有10个商品,在下一刻就有可能背景就换成了黑色、页面上的商品换成另外的15个商品。对于不了解电商网站系统架构的朋友来说,你可能觉得这个网站是不是通过不停的修改代码,重启系统实现,但又会觉得如此频繁的上线重启系统肯定不现实。
真实的做法是,这些页面都是通过在线编辑系统生成的(用过QQ的人,应该都装修过自己的QQ空间;在iteye上发布自己的博客也是一个道理),“业务人员”只需要在这个称为“装修后台”的系统里调整页面的样式、以及页面上的商品,然后执行发布操作就可以生成最新的页面内容。外部用户在访问网站时就可以及时的看到页面内容的变化。这种方式可以满足业务人员和商家的快速业务变化的需求。
在“业务驱动”下,首页、频道页、活动页、店铺页、商品页等系统的架构,会按照各个业务线搭建各自的业务系统,整体流程和思路很清晰。如果我们把整个架构画出来,就会发现问题:
业务确实比较清晰和并且各个系统相互独立,一个系统出现故障不影响其他系统。但这里却存在大量重复功能,每个系统里都有一套自己的 装修工具、权限管理、页面浏览、页面渲染。这里势必会有大量的重复代码,研发人力投入成倍增加;研发人员疲于各种业务开发(很有可能每套系统都会开发一次),整天忙于开发各种业务功能,无力投入人员进行系统优化,然后各个系统继续招人。最后发现,招了一大批人来做重复的事,技术又得不到提升,进入很危险的恶性循环。
组件化
如果任由上述案例中的问题发展下去,后果是非常严重的,会直接影响整个公司技术发展的未来。出现这个现象也有一些客观的原因,比如业务方太强势、业务发展太快等等。但出现问题就要思考怎么去解决问题,“组件化”就是解决上述案例中的利器。
文章开头已经提到:“组件化”的前提是“服务化”,首先来看下使用组件化的思想来解决上述案例中的复用性问题:
可以看到,上述案例中每个业务系统中都需要重复建设的功能,被提取成公共组件,每个组件由独立的研发团队复杂开发、优化和维护。与具体业务相关的逻辑被剥离到前台系统中,可以利用现有的组件库 通过搭积木的方式快速响应“业务方”的需求。
通过上述架构上的调整,现在有部分研发人员可以安心的做各个“组件”的优化工作了:如果应用服务器扛不住,就拆分应用;如果数据库扛不住,就进行垂直拆分或者水平拆分,其中又包含数据库中间件建设;通过前两步拆分之后,就会形成多个“微服务”,这些服务之间的通讯又会用到“消息队列Mq”以及RPC框架来实现同步或异步的方法调用和消息传递。
研发团队还可以根据业务需要,创建其他新的组件,利用“技术”反向驱动业务的发展。至此 公司的整个体术体系进入良性循环:进入“技术”和“业务”双驱动阶段。
待这些基础组件成熟后,还可以把它们部署到云上,为其他公司提供可插拔的服务(SAAS平台)。结合云计算 为公司带来另一个利益增长点。
系统融合
这里提到的“系统融合”,其实是把各个业务相似的独立系统,融合成一个“看似相同”的同一个系统。比如前文提到的“店铺系统”,在业务发展前期可能又会被分为两个系统:pc店铺系统(电脑版)、m店铺系统(移动端)。通过进一步的分析,我们可以发现pc店铺和m店铺的商家属性、商品列表、商品库存等等其实都是一样的,唯一不同的只有页面展示不同,一个是在电脑上展示、一个是在手机端展示。这时其实就可以把这两个系统的公共部分融合成多个“公共组件”,共两个前台系统使用,这两个前台系统主要职责就是负责页面效果展示。
通过这个案例可以发现,“系统融合”和“组件化”拆分,这两个看似矛盾的概念,在架构设计上有时候却会同时出现。
有朋友会说前面讲的内容已经到了公司整体的技术架构的层级,距离我们一个小团队太遥远。其实这种“组件化”的思想 同样适用于各个小团队。仔细梳理下自己团队里的系统:你所在的团队是不是有多个项目,每个项目负责一套系统开发;是不是每个系统都有一套自己的“权限管理体系”;是不是每个系统都有自己的“worker”定时器;是不是每个系统都自己实现了一个“分布式任务调度”;是不是每个系统都有自己的一套“实时数据计算”子系统 等等。如果你的回答是,那就可以把他们都独立出来,形成自己团队内部的公共组件,由指定研发小组去把他维护到极致。
通过上述梳理,会发现你的团队会建立起自己的前、中台技术体系。在人效最大化的同时,团队的整体技术水平也会上升一个台阶,因为每个项目再也不用来回的copy代码做重复的事情。
相关推荐
总的来说,e-mobile 6.5组件安装包是ecology系统升级和优化的必备工具,通过其强大的兼容性和丰富的功能,可以帮助企业提升业务处理能力,推动企业的数字化进程。在实际操作中,用户应仔细阅读安装指南,遵循正确的...
### 惠普超融合系统-POC测试报告知识点总结 #### 一、测试背景与目的 **测试背景** 随着云计算技术的普及和发展,虚拟化技术已成为云计算领域的一项关键技术。传统集中式存储架构逐渐暴露出局限性,而超融合架构...
综上所述,这个项目涵盖了iOS开发中的组件化思想、Swift与Objective-C的融合、中间件的运用以及依赖管理等多个关键知识点,对于提升项目质量和团队协作效率具有重要意义。在实际操作中,开发者还需要根据项目的特性...
随着技术的发展,微波组件正向着低成本、小型化的方向迈进,混合微波集成电路(HMIC)和单片微波集成电路(MMIC)成为主流技术路径。HMIC倾向于采用LTCC(低温共烧陶瓷)高密度封装,而MMIC则向多功能MMIC和系统级...
在IT行业中,"visio信息化设计实例传化集团融合通讯系统拓扑图-V2.0.zip"是一个关于网络通信工程的资源,它涉及到智慧城市建设和产品开发的重要领域。Visio是微软出品的一款专业图表绘制软件,尤其适用于绘制网络...
综上所述,电动井盖组件在电子政务中的应用,是科技与城市管理的深度融合,不仅提高了工作效率,也对构建智慧、安全的城市有着重大意义。随着技术的进步,我们可以期待更多类似的创新解决方案,服务于社会的各个角落...
信息物理融合系统(Cyber-physical systems, CPS)是基于嵌入式设备的高效能网络化智能信息系统,通过一系列计算单元和物理对象在网络环境下的高度集成与交互来提高系统在信息处理、实时通信、远程精准控制以及组件...
本资料主要探讨了电子政务中感温包组件的应用及其在电磁炉设备中的具体实现,旨在提供一个全新的视角来理解电子政务与智能硬件的融合。 一、电子政务的概述 电子政务,即政府通过信息技术手段,实现政务信息的数字...
1. 系统架构:详细描述组件化的分布集中一体化架构,包括各个组件的功能、它们如何相互交互以及如何与中心管理节点通信。 2. 开发与集成:介绍如何设计和开发这些组件,以及如何有效地将它们集成到一个系统中。 3. ...
在信息技术领域,任务载荷数据融合是一项关键技术,它涉及从多个信息源整合数据,以提高信息处理效率和系统的自动化水平。尤其在航天航空等领域,多源传感器的数据融合对于获取高精度、高可靠性的决策至关重要。通过...
这份资料的深入学习将有助于我们理解电子政务如何与新能源产业相互融合,推动经济社会的可持续发展,同时也能让我们了解到在数字化转型浪潮中,政府如何借助科技手段优化能源管理,服务于公众利益。
在实现边缘计算与云计算融合的过程中,使用了诸多技术组件和框架。例如,使用Kubernetes控制台和OpenAPI来实现物联网终端设备与边缘计算系统、云计算系统的结合。同时,Baetyl作为一个开源项目,提供了云原生的编排...
综上所述,"基于.NET组件化的销售预测系统的设计与开发"是一个融合了C#编程、Matlab数据分析和.NET组件化技术的综合项目,它旨在通过现代信息技术提升销售预测的科学性和效率,为企业决策提供强有力的支持。...
混凝土灌注桩基础模具的设计和使用不仅是工程技术问题,也是电子政务流程优化的实践案例,体现了科技与政务服务的融合。对于从事电子政务、光伏工程或者相关领域的专业人士,这份资料将具有很高的参考价值。
在现代Web开发中,"Web前端工程化与组件化开发实践"已经成为提升开发效率和代码质量的重要手段。本文将深入探讨这两个概念,并结合具体的实践案例,解析如何在JavaScript开发中应用它们。 首先,前端工程化是指通过...
在"电子政务-具有增速组件的轮毂电机.zip"这个压缩包中,我们可以看到一个特定的焦点——具有增速组件的轮毂电机,这在电子政务领域可能涉及到智能交通系统或者新能源应用。 首先,让我们来理解一下“轮毂电机”。...
该白皮书全面阐述了云网融合的内涵、意义、需求、特征、愿景、原则等,并系统介绍了中国电信云网融合的技术架构、三阶段发展路径和目标。 云网融合的概念和发展历程 --------------------------- 云网融合是指将...
同时,随着物联网、人工智能等新技术的融合,电子设备正朝着智能化、网络化方向发展,喇叭组件的角色也变得更加重要,不仅承担播放声音的任务,还可能涉及语音识别、人机交互等功能。 在电子政务领域,喇叭组件同样...
VCenter是VxRail集群的核心管理组件之一,用于统一管理集群内的虚拟化资源。 **步骤:** 1. **访问VCenter:** 输入VCenter地址`192.168.105.19`。 2. **输入凭证:** 使用管理员账户登录(默认为`administrator@...
在移动通信领域,电路板组件的设计需要满足小型化、低功耗和高性能的需求。例如,高密度互连(HDI)技术被广泛应用于移动设备,以在有限的空间内集成更多的电子元件。此外,射频(RF)电路设计是移动终端中的关键,...