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

日期: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还是其他,都有工具帮助重构代码的繁重过程变得轻松一点和安全。其数量已经多到眼花缭乱令人难以选择的地步。

技术手册>更多

  • SOA数据治理与管理指南

    在现今包围SOA的所有诉求和术语中,对团体而言,最寻常的仍是寻求如何将面向服务架构集成到他们的IT框架中,以避免他们设计中的数据整合、处理、管理等相关问题。他们开始学着与SOA并存,然而,他们经常发现与其他系统的协同工作、解决方案引起了令人觉得好奇的问题。本专题为企业架构师和开发人员提供了SOA数据治理与管理的基本知识和最佳做法。

  • OSGi模块化技术手册

    最近有一些争论,主要是关于是否完全成熟的OSGi模块化是严格意义上必须的东西,或者Jigsaw是否一种足够好的“更简单”的方法。但是也许关键点在于对于任何既定的组件在哪里适合什么模块化。OSGi是Java领域里无可辩驳的最成熟的模块系统,它与Java几乎是如影相随。在这本技术手册中我们将分三部分来和大家聊聊OSGi模块化以及它和Java千丝万缕的关系。

  • 云应用性能管理和测试教程

    云里来雾里去的云计算讲了好多年,其实对于大众来讲对这个概念仍然是有些摸不着头绪。那么对于已经应用了云服务的企业而言,在实践中有哪些技巧可以参考或者有哪些经验可以分享呢?在这期技术手册中,我们将一起来关注云应用的可用性,如何进行云应用的监控,云服务中间件如何?同时我们将侧重于云应用性能管理以及云应用测试的内容。

  • 业务流程执行语言BPEL(升级版)

    BPEL即业务流程执行语言,是一种使用XML编写的编程语言。用于自动化业务流程,也曾经被称作WSBPEL和BPEL4WS。广泛使用于Web服务相关的项目开发中,优点为具有可移植性和有效保护了投资。

    BPEL是一门用于自动化业务流程的形式规约语言。用XML文档写入BPEL中的流程能在Web服务之间以标准化的交互方式得到精心组织。这些流程能够在任何一个符合BPEL规范的平台或产品上执行。 所以,通过允许顾客们在各种各样的创作工具和执行平台之间移动这些流程,BPEL使得他们保护了他们在流程自动化上的投资。

TechTarget

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