如何迁移到微服务

想更多地了解迁移到微服务的过程吗? 在此处阅读有关“如何使用微服务构建(和扩展)”的完整电子书!

如今,现代企业正抢先进入一个始终在线,以数字为中心的移动世界。 无法修改其技术方法的组织将被遗弃,因为其他组织采用了高度灵活和可扩展的体系结构,可以快速有效地适应现代市场的需求。

这些市场影响力推动了微服务的Swift普及 。 在短短的几年内,公司实施了各种技术配置,以提供最佳的用户体验。

迁移面临的挑战

考虑迁移到微服务时的主要​​挑战之一是单片遗留系统不能在一夜之间进行更改。 DevOps和IT经理必须决定何时何地可以将微服务合并到其现有应用程序中。 在Forrester Research的“ 四层参与平台 ”中,Ted Schadler,Michael Facemire和John McCarthy表示,现在是将技术行业转移到四层体系结构的时候了。

在针对Infoworld的一篇文章中,Patrick Nommensen 总结了四层体系结构 。 正如他所解释的那样,计算的巨大变化,包括移动设备不可思议的市场渗透,意味着开发人员必须采用全新的方法来考虑应用程序开发。 四层方法分为不同的层:

  • 客户层:通过移动客户和物联网提供客户体验。
  • 交付层:优化设备的用户体验,同时通过监视用户操作来个性化内容。
  • 聚合层:在执行数据协议转换时聚合来自服务层的数据。
  • 服务层:外部服务(例如Twilio和Box)以及已经在内部的现有数据,服务和记录系统的产品组合。

这种新方法的最大区别也许是客户层的分离。 使用此模型,基于与用户的实时交互,其下的图层会不断变化。

实用的迁移方法

那么,您需要什么工具才能进入微服务? 首先要考虑的是,您必须决定微服务架构。 在尝试优化服务的实现之前,先弄清楚服务将如何交互。 接下来,尽管微服务架构提供了很多速度,但您必须不断优化这些速度提升。 这意味着您必须灵活使用用于部署体系结构的工具。

Owen Garret与InfoWorld共享了一种实用的,分为三个步骤的方法来处理向微服务的迁移:

  • 组件化:从现有应用程序中选择一个组件,并在试验基础上创建微服务实现。
  • 协作:与团队中的所有利益相关者,程序员和开发人员分享从第一阶段的试验中学到的技术和经验教训。 这使他们参与了新的流程和计划。
  • 连接:在实际情况下,完成应用程序并连接到用户。

数据耦合

微服务架构与经常通过API通信的数据松散耦合。 一个微服务具有少于几百行代码并管理一个任务的情况并不少见。 松散耦合取决于三件事:

  • 范围有限且内置了重点情报。
  • 智能与消息传递功能分开。
  • 具有类似功能的微服务的各种修改的容忍度—更改不是强制性的或不协调的。

这些API转换了一个规范,该规范创建了一个合同,该合同指示了所提供的服务以及应该如何使用其他程序。 使用API​​解耦服务会产生大量的自由和灵活性。

新服务平台

微服务平台发展Swift。 新平台正在涌现,而更多成熟的平台正在修改其方法。 一些示例包括:

  • 微软的Azure BizTalk 微服务使使用Azure的客户端可以选择云来构建微服务应用程序 。 将Azure迁移到小型组件模型是更大努力的一部分。
  • Gilliam是为创建,部署和扩展微服务而定制的平台即服务(PaaS)。 它为现场的每个代码存储库创建一个Docker映像。
  • LSQ是一种Pa​​aS,具有预制模板,文档编辑器和NPM软件包管理器。 它包括开发环境,组装和测试区域以及云部署。
  • Pivotal是一个本地云平台 ,致力于为福特,Allstate,梅赛德斯奔驰,GE,Humana和Comcast等公司开发微服务。

微服务帮助传统应用

考虑一个用C编码并在多个大型机上运行的旧系统。 它已经运行了多年,没有任何重大问题,并且可靠地提供了业务的核心竞争力。 您是否应该尝试重写代码以适应新功能? 建议采用渐进方法,因为可以在不中断当前整体结构可靠性的情况下快速测试新的微服务。 您可以轻松地使用微服务通过旧版API创建新功能。 另一种方法是模块化单片架构,以便它仍然可以共享代码和部署,但是如果需要,可以将模块独立地移入微服务。

人员和流程

部署微服务所涉及的不仅仅是整合新技术。 您必须能够采用新的流程和团队动力,才能使过渡有效。 经理们经常按技术细分应用程序,将责任分配给不同的团队。 借助微服务,应用程序被分为按业务能力分组的服务。 所有软件(例如用户体验,外部连接和存储)均在每个业务域内实施。 团队成员负责从用户界面到数据库的完整应用程序开发。

这种结构上的变化也会影响其中的人们。 习惯于单片系统的开发人员可能很难从一种语言的世界切换到新技术的多语言领域。 微服务将它们释放出来,使其更具自治性,并为“全局”负责。

但是,对于在旧的工作方式方面具有多年经验的程序员来说,以这种新发现的自由进行操作可能会不堪重负。 您必须不断意识到团队的变革能力。 他们可能需要时间来适应新的准则和程序。 清晰的沟通是关键。 详细介绍他们在这种新型工作方式中的责任以及为什么重要。 除非一开始就得到团队成员的支持,否则以后进行调整最多可能会很困难,而到了最坏的时候就会死掉。

进入计算新时代

计算的新时代基于超快速的数据处理。 事件发生时将对其进行监视,分析和处理。 我们可以基于不断更新的数据流做出及时的决策,从而为客户提供更好的服务,改进的运营并根据预定目标即时监视业务绩效。

微服务不是万能药 。 存在潜在的缺陷,例如代码重复,接口不匹配,操作开销以及对多个系统进行连续测试的挑战。 但是,由独立团队使用多种语言和工具创建松耦合组件的好处远远超过了缺点。 在我们当前的计算环境中,速度和灵活性是成功的关键-微服务可以同时实现。

想更多地了解迁移到微服务的过程吗? 在此处阅读有关“如何使用微服务构建(和扩展)”的完整电子书!

下载按钮

翻译自: https://www.javacodegeeks.com/2016/05/how-to-migrate-to-microservices.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值