QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

挖掘老旧技术栈的价值,从一个 API 开始

  • 2020-02-10
  • 本文字数:2078 字

    阅读完需:约 7 分钟

挖掘老旧技术栈的价值,从一个API开始

最近,我要给高层展示一些 PPT。我记得有一篇很旧的文档里面有一些东西,我很想把它加进来作为补充。但问题是,找这篇文档就像寻宝一样,我翻遍了各个地方,Syncplicity、Google Drive、各台电脑(笔记本、台式机)、移动硬盘,都没有找到。最后,我在一个多年没用的 Zip Drive 里找到了。


当我把这件事告诉我的一个同事,她笑着给我看了这张图片:



我看呆了,这张图片画的不就是我的“寻宝”过程吗?不过,我觉得它也适合用来描述企业的软件技术栈。在企业里,软件技术层层叠加。很多老旧的技术仍然可以给企业带来价值,不至于过时,但依赖这些技术也给企业带来了很高的成本和技术债务。另一方面,要替换这些技术也存在很高的风险,也需要付出很大的成本。再看看我们现在的公司和客户的架构,它们让我想起了大学时代的地理课,它们看起来就像是地球的剖面图,复杂而又无序。



虽然很多企业在进行数字转型,但它们内部原有的技术和相关数据仍然在为企业提供价值。企业不能只是简单地把这些技术移除掉,毕竟它们是一切的基石。这些技术通常使用的是遗留接口(CORBA、RMI、SOPA,等等)或者是只能通过 SDK 访问的专有接口,甚至是不提供编程接口的封闭式系统。这些技术和数据仍然有用,移动、物联网、大数据、机器学习仍然要用到它们。


那么,我们该怎么挖掘这些技术栈,把深埋在企业技术栈底下的金矿石挖出来?我们该如何释放这些数据的潜力,找到新的商机?

答案是:集成技术!

我们需要的集成技术是能够把底层的东西暴露成服务,或者让原始的数据存储能够很容易被访问到。无论你是要改造遗留接口,还是要现代化数据访问方式,目的都是要能够通过现代化的 API 来访问遗留系统。


遗留系统的集成,就像挖矿一样,把数据从技术栈中抽取出来,让外部可以访问。

API 网关的作用

你可以尝试使用传统的挖煤方法,在地表挖一个竖井,露在地面上的部分是竖井的上半部分,而深入地下的部分从各个地层抽取煤矿(也就是数据的价值)。这是对传统 API 网关的一个比喻。暴露在外面的部分是隔离区(DMZ)的网关,也就是竖井的上半部分。网关暴露了干净、简单易用的 API,外部 API 用户不需要知道系统内部的情况,他们可以直接通过网关创建自己的应用程序或进行集成。这样就降低了技术债务,遗留技术也因此成为 API 经济的一部分。


ESB 的作用

竖井就像是企业服务总线(ESB)。ESB 就像是煤矿的主干,旷工和煤炭通过这个通道被送到地表。ESB 扮演了共享消息主干的角色,将应用程序和其他服务连接在一起。ESB 为企业提供了传输协议、负载和数据的调解器,可以实现各种集成场景。


微服务的作用

另一种方式是把系统改造成微服务架构。正如你所想象的那样,改造成微服务架构是一种极具颠覆性的方式,而且成本不菲。


想要尝试这种转型的公司必须具备足够的运维成熟度。采用微服务架构相当于露天采矿。如果做成了,可以快速获得价值,但你的组织可能会面目全非。组织的敏捷性将得到提升,为了适应 DevOps,文化也会发生变化,团队的组建方式也是根据服务来的。根据康威定律,如果想要改变架构,必须先改变公司的组织结构。



露天采矿给周围的环境留下了一道道疤痕,显然会给人们留下负面的印象。但是,微服务架构不一样。成功采用微服务架构的组织具备了更高的敏捷度和更快的产品推出速度,因为在添加新功能后不需要所有团队重写或重新部署整个应用程序。而且,微服务的代码库越小,就越容易维护。这节省了大量的开发成本,提高了整体的开发效率。最后,因为微服务的成功实施与运维(DevOps)的成熟度有关,所以 CI/CD 管道的速度决定了产品从想法到落地的速度。

iPaaS 的作用

在现今的企业架构领域,我们看到了越来越多的企业采用混合型架构,即本地数据中心和云平台的结合。在自家数据中心内搭建基础设施和部署软件的时代已经过去了。现在的企业可以将云端的技术与已有的传统技术相结合,这种结合是一种集成,而且为了利用本地到云端甚至是云端到本地的集成,出现了新型的“XX 即服务”概念。


我们可以把 iPaaS(Integration Platform as a Service,集成平台即服务)看成是风能发电。风机向现有的基础设施(电网)输送电力,但无法为自己提供足够的电力,所以仍然需要传统电力来驱动,但把二者结合在一起就可以改进整体的发电机能。iPaaS 为本地和云端的技术集成提供了动力。iPaaS 提供了集成模板、映射、转换、调解和通用的云集成模式,它们通常以 API/JSON 为基础。就像电网一样,不同的云之间以及云端和本地端点之间存在轻量级的网关,这些网关就像电网里的变电站。


API 组合工具的作用

在把遗留数据挖出来并暴露成服务之后,还需要对它们进行打磨。打磨的过程就是让 API 变得更加好用、对用户更友好的过程。例如,数据可能需要转换,或者你可能想要为其他服务提供门面。axway API Builder 是一个 API 构建工具,可用于打磨现有 API 和数据源,让它们变得更好用、更友好。


企业里暗藏金矿,可以通过很多不同的技术将其挖掘和提炼出来。“塔尔山里有黄金”,这些黄金可以被挖出来,并为我们带来新的商机。正如我们所看到的,有很多技术可以用来挖掘埋藏在企业里的价值。

原文链接

There’s gold in them thar hills


2020-02-10 14:172240
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 391.8 次阅读, 收获喜欢 1983 次。

关注

评论

发布
暂无评论
发现更多内容

深入理解MVCC与间隙锁

林一

MySQL MVCC

能源革命背后的牛公司 (28天写作 Day16/28)

mtfelix

28天写作 能源革命

「架构师训练营 4 期」 第四周 - 001

凯迪

自动泊车初步了解 (28天写作 Day17/28)

mtfelix

自动驾驶 28天写作 自动泊车

关于价值、目标、任务的思考

L3C老司机

优雅编码 | 18个Javascript代码的小技巧

devpoint

代码优化 优雅

CSS(二)——CSS核心基础

程序员的时光

CSS 程序员 七日更 28天写作

第二次作业

秦挺

产品 0 期 - 第二周作业

Jxin

高效学习:如何学得更快更好

石云升

学习 28天写作

第4周总结-系统架构

潘涛

架构师训练营 4 期

架构师训练营 4 期 第4周

引花眠

架构师训练营 4 期

Dockerfile ENV 使用指南

K8sCat

Docker Dockerfile ENV ARG

人民日报——大力发展数字经济

CECBC

数字经济

重学JS | ES6既有Set,为啥还要有Weak Set?

梁龙先森

JavaScript 大前端 编程语言 28天写作

一文带你读懂:设计模式的六大原则

后台技术汇

28天写作

「产品经理训练营」第二章作业

Sòrγy_じò ぴé

产品经理训练营 极客大学产品经理训练营 产品训练营

算法:匹配有效的括号,Swift 5中UITest从入门到精通, Swift 5 Viper Template,极客大学产品经理训练营 产品思维和产品意识, John 易筋 ARTS 打卡 Week 36

John(易筋)

ARTS 打卡计划 极客大学产品经理训练营 Swift 5 UITest Swift 5 Viper Template

Scrum Patterns:Sprint计划会(译)

Bruce Talk

敏捷 译文 Agile Scrum Patterns

Nginx架构赏析

旺旺

nginx 架构 中间件

五分钟学会模板模式

田维常

mybatis

老师讲的真棒!2021Android精选面试实战总结整理,分享PDF高清版

欢喜学安卓

android 程序员 面试 移动开发

第4周课后练习-系统架构

潘涛

架构师训练营 4 期

“区块链+产业应用”系列研讨会首场“大健康产业篇”在深圳举行

CECBC

健康产业

「产品经理训练营」作业02:利益相关方识别

狷介

产品经理训练营

C++静态链接符号冲突的几种处理方法

ElvinYang

虚拟币钱包APP系统开发|虚拟币钱包软件开发

系统开发

企业是如何选择技术栈来做离线数仓

大数据老哥

泪目!为什么Flutter能最好地改变移动开发?成功收获美团,小米安卓offer

欢喜学安卓

android 程序员 面试 移动开发

商务部CECBC区块链专委会副主任、数字经济商学院院长吴桐:建立完善稳健的基础设施 加速区块链与产业深度融合

CECBC

区块链

区块链交易所APP开发|区块链交易所系统软件开发

系统开发

挖掘老旧技术栈的价值,从一个API开始_架构_David Mckenna_InfoQ精选文章