微服务是遗留软件现代化的神秘武器?

日期:2015-12-29作者:Brad Irby翻译:崔婧雯 来源:TechTarget中国 英文

【TechTarget中国原创】

对很多企业而言,处理遗留软件现代化问题都是很大的痛点。但是,微服务可能能够有所助益。Brad Irby深入解释了该领域。

遗留软件现代化一直步履维艰。在周围技术世界不断变化的过程中维护应用本身非常痛苦。开发人员都想使用最新的技术,因此要求开发人员停留在旧的技能,使用旧的技术工作,这也很困难。微服务能够提供无需重写任何东西就可以在旧的技术里使用的新功能,从而给这些遗留系统带来了新的生机。

微服务提供了一种方式来获取并且处理应用本身之外的数据。遗留软件和微服务之间的所有通信都是通过JSON完成的,意味着使用数据的遗留应用和微服务本身共享的只有这一种通信协议。因此,可以使用合适的任意语言来编写微服务。需要使用F#编写的业务逻辑来加强ASP经典网站?使用微服务完成处理,并且返回结果。是否已经拥有了Cobol程序需要使用的,由C#编写并且调试的路由?微服务是解决方案。

因为可以用合适的任意语言编写这些服务,它们自然也能让开发人员满意。很少有开发人员愿意维护遗留应用程序,但是如果能让他们体验最新的编程语言和最新的架构,无需被之前存在的架构束缚,那么就更容易说服他们。

微服务也是“传播爱心”的机会,让大家都参与进来。因为在服务和遗留应用程序之间有很大的组件壁垒,所以编写服务的开发人员不需要像遗留软件现代化处理那样属于同一个团队。编写了合适的需求之后,微服务是非常好的可以外包到海外更便宜开发地的项目。它拥有特定的交付需求,是单独的系统,能够在虚拟空间开发,必须是插入即可使用的,从而也可以按需替换。

微服务最大的ROI是关于遗留软件现代化正在移除重写遗留应用的需求。使用这种新方案不仅仅能够加强遗留代码,而且它还帮助消除了从头重写应用的压力——这通常也是一种昂贵的选择。

即使已经决定重写遗留应用,微服务也提供了一种缓慢并且可预测的方式,而且不会违反任何服务级别协议。已有应用上一小步一小步地改动,使用微服务替换某个功能。这样,大家可以缓慢减少遗留应用的规模,从而减少了重写所需要的时间。

使用微服务有上述这些优势,当然也有需要慎重考虑的方面。比如,该方案可能被过度使用。从定义上讲,微服务是小的,但是它们需要完成支持生产环境的首展流程和测试。虽然达到这些目标所需的工作量很小,但是的确存在,并且不能忽略。如果想要使用太多的微服务来加强已有应用,那么可能就需要在各个问题之间均衡考虑。

另一个问题是性能问题。任何时候跨越服务界线,系统性能都会受到一定的影响。微服务通过调用异步实现有助于让应用程序看上去响应更快一些,但是更难(或者不可能)在遗留技术里这么编码实现。当使用微服务作为加强遗留应用程序已有特性的方案时,必须假定该特性的性能会下降。能接受多大幅度的下降取决于业务需求。如果通过微服务在遗留应用程序里实现新功能,会更加容易一些,因为之前用户对此没有性能上的预期。

当然,所有这些都假定遗留语言拥有某些属性。比如,我们假定语言能够构建Web服务调用。虽然语言越古老,可能越难实现这一点,不过我还不知道有什么语言不能构建Web服务调用的。

异步调用也很必要。Web服务的任何异步调用都是灾难可能发生的地方,因为用户很快就会抱怨系统性能。构造异步调用要求多线程的支持,可能很难找到(我说的就是,COBOL)。在进入微服务世界之前,一定要确保这些基本功能是可用的。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Brad Irby
Brad Irby

Brad Irby has been a developer and systems architect since 1990, designing and implementing systems using the Microsoft stack.

大型机与遗留应用>更多

  • 2016移动技术趋势

    2015是移动领域很重要的一年——2016将更加重要。但新的一年里会出现什么IoT和移动技术新趋势呢?

  • 微服务是遗留软件现代化的神秘武器?

    对很多企业而言,处理遗留软件现代化问题都是很大的痛点。但是,微服务可能能够有所助益。Brad Irby深入解释了该领域。

  • 移动设备遗留应用现代化

    如果你的企业已经成立超过20年,一定有一些不是为移动而构建的遗留系统。这些系统可能也不是为Web而构建的。那么应该怎么处理这些应用?

  • 代码重构工具选择的七大标准

    代码重构工具有很多,不管是Java、PHP、.NET还是其他,都有工具帮助重构代码的繁重过程变得轻松一点和安全。其数量已经多到眼花缭乱令人难以选择的地步。

技术手册>更多

  • API样式及云计算API选择教程

    据Gartner的副总裁兼应用架构、集成与开发分析师Daniel Sholler介绍当今主流软件的变革是围绕着应用程序接口进行的。这些“集成接口”的性质正在发生微妙的改变。API设计正变得与用户界面设计一样的重要。REST架构的普遍性使得它可以在各种广泛的场合下工作,且其流行性也已经在一大群程序员当中得到了证实。在这本技术手册中我们将着重看一下API公共数据选择、公开API,以及REST和SOAP的选择,同时也将涵盖云计算API的内容。

  • BPM获取成功秘籍

    业务流程管理(BPM)正在迅速成长,正在影响着各行各业,但改变从来都来之不易。但是在今天的经济环境下,对于业务和IT高管来说,掌握BPM的大局观正显得前所未有的重要,这样才能从他们业务流程改进中收获最大利益,才能令其BPM投资的价值最大化。要想克服变革性或企业范围内的BPM行动的常见瓶颈,需要前瞻的、持续地实施某些关键的最佳实践,以确保真正跨职能的业务流程的实现。

  • SOA标准组织:OASIS

    OASIS是一个非赢利的国际协会,致力于电子商务相关标准的制定和推广,也是目前制定Web服务标准最多的一个组织。

  • 松散耦合的七个级别

    在软件领域,“耦合”一般指软件组件之间的依赖程度。那么,什么是依赖?各种依赖对耦合度和松散度有多大影响?软件耦合可以发生在许多级别。必须区分生成时(编译时)依赖和运行时依赖。在分布环境中,为了确定系统的耦合程度,必须分析各个级别。下面我们就来具体看一下。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算