什么是应用程序现代化

简单来说,软件现代化、老旧系统现代化或老旧应用现代化都是指替换或升级旧软件的过程。根据系统的情况和公司的情况,对软件进行现代化改造的方案从轻微修改到完全更换都可以。比方说我们要升级一架飞机,有时可以使用新的航空电子设备、新型号的发动机或舒适的座椅对其进行改装,有时候就干脆卖了换一架新的。

进行现代化改造的原因

对老旧系统进行现代化改造的主要驱动因素可以分为两类:一类是希望通过改造消除对旧系统继续升级维护的技术成本和风险,另一类是希望利用新技术带来的各种便利。

老旧技术的风险

当聊起使用老旧技术开发的系统时,开发人员通常会说:“如果能用,就先不要动它”。例如,很多企业仍然在使用几十年前开发的 COBOL 应用系统。这些系统到现在仍然非常稳定,而且速度快。只要不出问题,似乎可以一直这么用下去。但是万一需要修改或者排除小问题,麻烦就来了。现在已经很难找到 COBOL 开发人员了,当时编写这些系统的人大多已经退休,而年轻的开发人员已经不再会想要学习这样的开发语言。即便辗转找到一个,他也要花费很长的时间先熟悉并理解代码。

还有一个风险是,如果老旧系统中使用第三方的软件,而该软件已经不继续提供支持了,这样就进入了死胡同。在想办法替换这个软件之前,只能希望不要出任何漏洞和问题。

采用新技术

与此同时,新的技术和架构范式如雨后春笋般的涌现:

  • Web 和移动端 UI 提供了非常好的用户体验;
  • 容器化技术将应用程序与运行环境进行解耦,以便应用程序能运行在任何环境并且产生相同的行为;
  • 微服务架构提高了应用的可伸缩性和弹性,并且打破了大型整体式应用系统的复杂性,技术支持和功能修改也相对容易;
  • DevOps 工具可在最短的时间内交付新版本的应用,避免了人为干预;
  • 公共云提供即用型服务、无尽的可扩展性和最高水平的容错性,而只需最少的维护工作。

最后,现代开发语言更容易理解,更不容易出错。新的生态系统中包括上千个多个经过多次验证的库和功能强大的开发人员工具,这些工具能提供代码完成、调试、重构、智能提示和纠错功能。所有这些都提高了开发人员的工作效率,有助于更快地开发高级别的应用系统。

在当今瞬息万变的数字世界中,生存的首要能力就是适应性。但是,仍在使用老旧软件的企业根本无法跟上竞争的步伐。在老旧系统上花费了很多,等待了很久,但是仍然无法提供客户想要的功能。

比尔盖茨曾经说过:

“唯一成功的大型公司是那些能先于他人淘汰自己产品的公司”

应用系统何时才算过时?

我们看到,每年都有闪亮的新框架和技术出现。是否意味着使用前两年技术的业务系统过时了?当然不是,“过时”是一个相对的术语,只能在特定的环境中考虑。

在企业级软件世界中,10-20 年是应用系统的正常生命周期。在此期间,内部或供应商会为该系统提供积极的支持,并且可以根据业务需求进化。一些独立的后台系统甚至可以是更老旧的软件,而不会对业务的灵活性产生明显影响。但是另一方面,面向终端客户的门户或者 App 可能需要每隔几年进行一次完整的系统现代化改造才能保持竞争力。

因此,如果满足下列条件,我们才能说这个软件“过时”了:

  • 无法再提供技术支持了。例如,供应商倒闭,且无法找到能提供支持的人员了。
  • 无法提供能满足新的系统级或者业务级需求的更新。例如,一个桌面客户端软件无法为用户提供基于浏览器的访问;或者,应用系统中写死了部分业务逻辑,但是这部分逻辑与现有的业务流程冲突了。
  • 只有在淘汰的软件或者硬件设备中才能运行。例如,一个手机 App 只能在塞班系统中运行;或者,一个网页需要使用 Flash 播放器。

这里提到的局限性,也包括虽然可以,但是需要花费难以接受的代价。

现代化改造还是数字化转型?


这是在踏上现代化征程之前必须回答的战略问题。数字化转型不仅要求 IT 环境现代化,还要求改变业务流程,抓住新的数字领域的机会。

我们假想一个简单的例子。一家传统的零售银行,业务由大型机上的 COBOL 软件提供支持。当变革的时机到来时,银行可以选择对软件和硬件进行现代化改造。但一般来说,这个任务非常困难、漫长而且昂贵。而同时,金融科技方面的创业公司,由于没有历史遗留问题,并且无需分析生产系统之间的盘根错节,他们可以轻装上阵而轻松领先。

或者,银行可以保持一切原样,而在新的绿地开展新的金融科技业务。通过这种方式,银行可以不受约束地使用一流的技术和实践,例如,没有实体办公室、使用手机上的超级 App,由人工智能驱动的评分系统等。一段时间后,就可以停止旧业务并将客户迁移到新平台。这样的方案与企业应用程序现代化相比,数据更容易迁移。现有的客户群、丰富的银行经验以及一流的技术相结合,完全可以成为一个强大的组合。

希望上面这个极简的例子能说明现代化改造和数字化转型之间的区别。

现代化改造策略

以下问题的答案决定了最佳的应用程序现代化策略:

  • 我们想要达到什么结果?
  • 我们有什么资源?
  • 我们是否拥有应用系统的源代码,是否可以对其进行修改?
  • 有问题的系统与其他系统之间是否有互相依赖的关系?
  • 系统宕机的话是不是严重的问题?必须 7x24 小时全天候运行吗?

下面我们给出一些现代化改造的选项,从最容易最便宜的一直到最难最贵的。

推迟改造

等一等有时候是最好的选择。推迟不是说不做,而是从当前的利弊分析,进行现代化改造所需要的开销和承担的风险大于业务上能得到的收益,或者当前无法为现代化改造分配所需的资源(例如,业务主管在负责其他优先级更高的事情),又或者问题系统所依赖的其他系统要先进行改造。如果从远期利益判断,进行现代化改造是一件必须做的重要事情,那么请不要从任务队列中删除,重要的事情如果一直不做,就会变得紧急且代价昂贵。

改变部署环境

现代化改造的一种选择是进行部署环境的改造,将业务系统迁移至新的基础架构,一般来说是指进行容器化部署,通过本地 Kubernetes 实例进行托管或者部署至公有云环境。这种相对简单的改造可以将系统从老旧的硬件环境中独立出来,一方面可以避免由于硬件老化造成的损失并减少维护费用,另一方面能提高硬件的使用率和业务的弹性。

选择新平台

这个与上一个选项有点类似,选择新的平台是指通过对业务系统的简单修改,从而使用一些云服务,比如数据库、人员认证、全文检索服务等。是将除了应用系统本身之外的其他部分进行优化,达到降本增效的目的。

应用系统前端改造

还有一个比较流行的改造方案就是仅对应用系统的前端进行改造。一般来说,只需要对后台系统进行相对简单的修改就可以将应用系统的功能通过类似 REST API 的方式进行开放。然后其他应用程序可以通过 API 与原系统进行交互。随着 Web 和移动端的流行,我们还可以开发新的 Web 端和移动端应用程序,调用这些开放的 API,为终端用户提供更好的体验。这种方案虽说没有对后台系统进行太大的改动,但是面向用户侧却得到了有力提升,并且可以结合上面两个选项同步进行。

重构

业务系统往往在构建初期,并没有预料到后来将要面对的更多更复杂的业务,因此随着时间推移,系统的弹性不能满足需求或者由于修修补补已经变得不堪重负。这种情况下,只能通过重构或者重新设计来拯救老系统。最流行的方案就是将原本的单体应用拆分成微服务应用。还有一些其他的方案,例如,对负担最重的业务进行优化、使用缓存、使用集群部署、将部分数据迁移至 NoSQL 数据库等等。最重要的是保证在重构的过程中,业务系统的主要功能没有变化。

完全重写

现代化改造的终极方案就是“复刻替换”或者完全重写。此时,业务系统就完全替换成一个新的系统了。当有下列问题时,这个选项可能是最好的或者唯一的选择:

  • 系统的功能已经无法满足业务需要并且无法通过简单修补实现新的功能
  • 没有资源或者技术修改原有系统的源码
  • 市场上有更新更好,且支持更完备的产品出现

除非我们已经有一个能替换的产品并且带有完善的迁移工具,否则“复刻替换”不会是一个简单的任务。因此,针对系统的不同复杂度,有两种不同的方案:

  1. “大爆炸”式

对于体谅较小或者不太复杂的系统,我们推荐使用这种方案。重新设计全新的方案,并付诸实施,进行完整的测试之后,定制详细的迁移方案。然后沐浴更衣,一次将系统完全替换。理论上,我们还需要有一个回滚的 plan B,如果出问题至少还能用老系统顶一下。

  1. 逐步替换

这个方案一般用于体量比较大或核心业务系统,比如 ERP 之类,也有那种需要 7x24 小时运行的系统,比如出租车调度系统等。一个替换方案是将单体系统拆分为不同的微服务,保证每个微服务业务相对单一且容易替换,这样可以逐个击破。还有一种替换方案是“并行”,新旧系统并行运行,但需要保证数据的同步和一致性,这种方案的好处是业务不会因为新系统的不稳定而中断。

如何开始现代化改造?


现实中,不同的公司具有不同程度的愿景和风险偏好,而在预算、时间、资源以及复杂的业务系统架构等方面也面临着不同程度的困难和约束。现代化改造的根本目的一个是为了降本增效,另一个是为了捕捉新的市场机会。

因此,业务系统进行现代化改造的进程最好从对现有的业务系统进行评估开始,以符合公司愿景和风险偏好的原则确定是否要进行旧系统的现代化改造,并且从预算、时间、资源、系统复杂度等方面确定进行改造的方式方法,比如使用投资回报率(ROI)作为关键评估指标。

在这个过程中,保持合理的现代化要求非常重要。例如,系统的的可扩展性通常被高估,导致产生不必要的成本,并采取了次优的策略。根据 ROI 指标和系统的依赖关系,可以确定现代化过程的优先级并选择最佳的现代化解决方案。

Jmix 能否支撑?

Jmix 是一个开源应用程序开发平台,可以在“完全重写”的现代化改造方案中显著减少所需的成本和时间。

Jmix 是面向开发人员的少代码高效平台,无需为交付的应用系统支付高昂的许可费用。

Jmix 支持在已有数据库上直接运行,在“并行”的逐步替换方案中通过该功能提供完美支持。

很多团队和业务系统已经从传统的 Delphi、MS Lightswitch、FoxPro、Oracle Forms 等平台迁移至 Jmix。

Jmix 通用高生产力应用平台兼顾了低代码平台的开发速度和传统开发的灵活性:

  1. 自然贴合 - 使用以数据为中心的开发方法和企业级 UI 组件实现企业应用系统的现代化
  2. 未来验证 - 基于数百万开发者信任的主流开源技术架构
  3. 易上手 - 使用 Java 或 Kotlin 作为唯一开发语言,并提供可视化开发工具帮助新人入门
  4. 高效率 - 以创纪录的时间开发大型应用系统,支持大量的数据模型和业务逻辑
  5. 云支持 - 支持任何云环境部署或私有部署,不依赖供应商的基础设施
  6. 成本效益 - 基于 Jmix 构建的应用系统在交付和使用时,无需支付任何使用费

更多有关 Jmix 的功能,可以访问 Jmix 中国 官网进行了解。

常见问题

  • 什么是老旧系统现代化?

    老旧系统现代化是指对不再能满足业务需求的系统进行升级或替换的过程。

  • 为什么需要对老旧系统进行现代化改造?

    1. 缺少能对现有系统提供支撑的专业人员或资源。
    2. 已经不再提供维护的第三方库或组件。
    3. 系统无法提供对新业务功能的支持。
  • 如何定义系统是否老旧?

    1. 无法获取对系统的技术支持。
    2. 无法通过可接收的成本实现对系统修改以支持新业务。
    3. 系统依赖其他“过时”的系统。
  • 目前有什么现代化改造的策略?

    1. 接受风险,继续等待。
    2. 改变部署环境。
    3. 选择新平台。
    4. 替换面向终端用户的前端界面。
    5. 重构。
    6. 完全重写。

应用程序现代化权威指南相关推荐

  1. 《Cortex-M0权威指南》之体系结构---程序映像和启动流程

    <Cortex-M0权威指南>之体系结构---程序映像和启动流程 转载请注明来源:cuixiaolei的技术博客 我们先来看看程序映像. 通常,Cortex-M0处理器的程序映像时从地址0 ...

  2. 《Windows 8 权威指南》——2.4 Aero与Metro的触摸对比

    本节书摘来自异步社区<Windows 8 权威指南>一书中的第2章,第2.4节,作者:胡耀文 , 尹成 , 李贝贝 , 卢磊 , 曹珍著,更多章节内容可以访问云栖社区"异步社区& ...

  3. 送5本《Kafka权威指南》第二版

    文末送书 科学家们每一次发生分歧都是因为掌握的数据不够充分.所以,我们可以先就获取哪一类数据达成一致,只要获取了数据,问题也就迎刃而解了.要么我是对的,要么你是对的,要么我们都是错的,然后继续. -- ...

  4. 秋天里的第一本云原生巨著:《Harbor权威指南》

    注:微信公众号不按照时间排序,请关注"亨利笔记",并加星标以置顶,以免错过更新. 在这个特殊的2020年里面,我们完成了一本特殊的书:<Harbor权威指南>.本书由 ...

  5. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  6. 《CUDA C编程权威指南》——1.5节总结

    本节书摘来自华章社区<CUDA C编程权威指南>一书中的第1章,第1.5节总结,作者[美] 马克斯·格罗斯曼(Max Grossman) ,更多章节内容可以访问云栖社区"华章社区 ...

  7. 爬虫书籍-Python网络爬虫权威指南OCR库 NLTK 数据清洗 BeautifulSoup Lambda表达式 Scrapy 马尔可夫模型

    Python网络爬虫权威指南 编辑推荐 适读人群 :需要抓取Web 数据的相关软件开发人员和研究人员 作为一种采集和理解网络上海量信息的方式,网页抓取技术变得越来越重要.而编写简单的自动化程序(网络爬 ...

  8. 图灵七月书讯【Cassandra权威指南将在7月末上市】

    重点图书推荐 Cassandra权威指南--本书是一本广受好评的Cassandra 图书.与传统的关系型数据库不同,Cassandra 是一种开源的分布式存储系统.书中介绍了它无中心架构.高可用.无缝 ...

  9. Flex 3权威指南

    Flex的发展史 2002年3月,Macromedia创造了RIA这个术语.当时,这个想法感觉像是个幻想.不过,这些都已经改变了,RIA现在已经成为了现实.     Macromedia在2004年推 ...

  10. 《Flex 3权威指南》——Adobe官方培训教材

    Adobe官方培训教材 手把手教你渐入Flex技术佳境 涵盖Flex 3新特性 媒体评论 这是一部杰作,将Flex开发讲解得通通透透.             --Huw Collingbourne, ...

最新文章

  1. ps aux参数说明
  2. 怎么找出消耗 CPU 的罪魁祸首?!
  3. Drop down list value changed
  4. 利用airTest的图像实别技术测试Web应用
  5. java中怎么声明常量_如何在Java中声明一个常量
  6. java构造器 权限_一文搞懂Java的 构造方法 和 访问权限
  7. LVS-Fullnat之编译内核 将fullnat模块添加到内核
  8. php5.6 mongo 扩展,docker php5.6镜像创建,包括常用扩展安装
  9. python记账app开发_Python之区块链简单记账本实现
  10. SAP培训及ABAP学习入门必读
  11. 导航网站完整程序源码
  12. jetbrain试用
  13. 无人机倾斜摄影—三维建模和DSM,DEM,DOM(正射影像)的生成「CC(Smart3D)),Pix4d,Photoscan,Inpho」
  14. Effectively Learning Spatial Indices(VLDB)
  15. jsp+servlet搭建在线投票问卷系统
  16. 数学建模竞赛知识点汇总(一)——层次分析法
  17. Go实战--golang中使用Goji微框架(Goji+Mongodb构建微服务)
  18. HTML 导航栏标签切换
  19. maya2018英文翻译_maya2018英文怎么切换中文?
  20. matlab 画非线性曲线,MATLAB实例:非线性曲线拟合

热门文章

  1. HPE 3PAR StoreServ存储系统连接解决方案
  2. 【craps赌博游戏】
  3. NCBI中Entrez Direct的使用
  4. 如何免费下载B站视频!!!实测可用!!!
  5. EasyPoi如何使用注解导出,并且添加自增序号?
  6. 蒋清野《虚拟化、云计算、开放源代码及其他》
  7. 数学建模-多元线性回归
  8. C语言pow函数编写
  9. X站全称是什么_哔哩哔哩:b站的由来、233娘的拜年祭、霸屏的雷姆、站内界面变化...
  10. 【网络通信 -- 直播】网络通信协议简介 -- RTP 协议的 H264 封包