采用微服务时必须解决的四个挑战 -买球官网平台

2顶
0踩

引用
原文:
作者: saba anees,appdynamics公司的内容运营专员
翻译: 孙薇

在过去几周,我们介绍了微服务的概念,以及,还有——迁移到微服务的工作对企业提出了很大的挑战。在本周的文章中,我们将会对迁移到微服务时可能遇到的障碍,以及付出的努力最终所带来的好处进行深入探究。

微服务架构
微服务架构比原有系统要复杂得多,由于团队必须要管理与支持许多移动的部件,整体环境愈加复杂。其中一些必须要考虑的问题包括:
  • 在添加更多的微服务时,必须确保这些微服务能够一起扩展。颗粒度更细致,代表着可移动的部件更多,从而导致系统更加复杂。
  • 参与交互的服务越多,可能的故障点就越多。聪明的开发者总会未雨绸缪,为解决故障制定好计划。
  • 将功能从单一整体化架构向微服务架构迁移时,会有很多持续通讯的小型组件产生,追踪单个业务事务在不同层面中的性能问题可能非常困难,因此,我们可以通过调用各种相关方法,包括自定义header、token或id来解决。
  • 由于微服务是无状态的、分布式的、独立的,因此传统的日志记录方式不再实用——就算想要简单地定位某个问题,都有可能制造出过多日志。微服务的日志必须能与跨平台的事件相关联。

其他要考虑的事情包括:

1.运营与基础架构: 开发团队必须与运营团队更加紧密地合作,否则由于多个运营同时进行,情况会失去控制。

2.支持: 对微服务安装提供支持和维护,比之前为单一整体式应用提供支持维护要困难得多。微服务的每个部件都可能涉及了多种框架及语言,在提供支持时,近乎无限的复杂度会影响相关人员添加服务的决策。如果某个团队成员希望创建一个使用深奥语言的新服务,很可能会影响到整个团队,因为大家必须确保这个新服务能够与现有的部分协作。

3.监控: 在添加新服务时,维护与配置监控的能力也会是一个挑战,必须依赖自动化来确保监控跟得上服务规模的变化速度。

4.应用安全: 架构中服务的发展为黑客、解密高手与犯罪分子制造了更多侵犯的目标。要跟踪各种运营系统、框架与语言会导致负责安全的团队将全部精力放在确保系统不易受到攻击方面上。

5.请求: 在服务间发送数据的方式之一就是使用request header,它可以包含类似身份验证这样的细节,从而减少了所需的请求数量。但当这类数据发送大批量进行时,就会增加对各个团队合作的需求。

6.缓存: 缓存有助于减少所需的请求数量,涉及多个服务的请求在缓存后会迅速变得复杂起来,需要不同服务及其开发团队进行沟通。

7.容错性: 微服务的口号就是“互相依赖”。各项服务必须能经受得住直接的失败与无法解释的超时问题。故障可能会产生多米诺效应,通过某些服务产生级联效应,并可能会让某些服务失效。在这种环境下,容错也比在单一整体式系统中要复杂得多。

关注devops
在旧式开发环境中,,随着运营、开发与质量保证(qa)团队合作形式的发展,以及贯通整个软件开发流程的沟通加强,最终出现了devops。devops并不是由某个人或单个小组所担任的角色,它实际上是将有助于运营与开发密切合作的架构进行了概念抽象。在微服务架构中,开发者负责创建系统,以成功交付最终的产品。

随着大型及小型公司逐渐向微服务平台迁移,开发者也必须随之发展。由于部署微服务非常简单,开发者会逐渐参与到代码部署与产品监控的工作中。这种方式与传统案例产生了对比:在过去开发者负责编写代码,将其交付给另一支团队(devops)来执行部署与维护;而现在开发者与devops逐渐融合成更小的应用团队,主要负责三项工作:应用的构建、部署与监控。

微服务正在改变团队的组成方式,让公司得以围绕着特定的服务来创建团队,并赋予它们自治权以及一定范围内的责任。这种方式可以让公司根据瞬息万变的业务需求而快速作出调整,且不会影响到核心业务,同时也方便新人快速融入团队。

开发者可能要应对的包括:
  • 了解如何组合微服务架构的javascript开发者短缺;
  • 理解及实现物联网服务;
  • 协助公司将科技引入商业计划与策略上;
  • 让业务经理了解:怎样应用开放api来加强现有产品线,并在市场上开拓新的机遇;
  • 如何简化开发堆栈,选择正确的技术,并在供应商提供的中间件没有价值时提出拒绝;
  • 从netflix等行业领导者那里学习经验,并决定实现哪些微服务对公司最有好处;
  • 了解这一点:很多供应商尚未建立起稳定的微服务平台;
  • 同一时间内管理及运营的个体微服务或达数百,要能应对这种压力;
  • 管理日益增长的复杂团队网——由尚未完全了解微服务方法的运营者、架构师、开发者、qa团队以及整合者所组成。

开始转变
一旦转变过程开启,你就会发现之前预想不到的新挑战出现,包括:
  • 转移到微服务上的工作负载应该有多少?
  • 是否该允许代码迁移到不同服务上?
  • 在运营持续时,如何确定每个微服务的边界?
  • 如何监控微服务的性能?

想要了解更多信息,请阅读英文电子书全文《如何使用微服务构建与拓展》。
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 微服务解决的问题 服务治理:为了有效管理分布式系统中存在的大量服务实例,微服务架构引入了服务发现和服务注册机制,使得服务实例的管理变得自动化、透明化。 eureka、nacos等 api 网关:为了降低服务...

  • 微服务系列解析文第一篇

  • 上篇文章:分布式系统漫谈【陆】_soa和微服务 本文继续说说微服务面临的一些挑战和买球软件推荐的解决方案。...因此在微服务架构设计时,我们就要把这部分问题考虑进去,下面说说我们应该采取哪些措施和方案去解决。 舱壁模...

  • 专家简介 ...2014年加入云智慧,致力于apm与大数据产品的架构研发,崇尚敏捷、高效。 从一个问题谈起 从几年前某cto的一个问题说起:“我们...我们都知道一个接口是无法称之为微服务的,接口数量达到十几个或许才够称之

  • 四、独立lb进程服务发现 针对进程内lb模式不足的情况的一种折中方案 与上个方案的不同之处,将lb和服务发现功能从进程内拆出来,变成主机上的一个独立进程,主机上的一个或是多个服务要访问目标服务的时候,他们都...

  •  在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释...

  • microservices-the journey so far and challenges ahead 翻译,原文出处——ieee software | published by the ieee computer society 2018 ...microservices-the journey so far and ...微服务的好处 ...

  • 图 1 整理架构与微服务架构 图 2 实践中的 conway’s law 图 3 通过团队边界强调服务边界 图 4 polyglot persistence 图 5 基本的构建流程 图 6 模块化部署的区别martin flower, microservices infoq, 微服务架构...

  • 微服务架构的新挑战 在著名软件著作《人月神话》中提到,软件世界没有“银弹”,这句...但是打散为分布式系统后,变为进程间通信,往往这个过程还伴随着跨设备的网络访问,架构师在设计时必须考虑上下游系统因为网络..

  • 我们收获这些好处的同时,也一定会带来某些弊端与挑战,这些挑战可以从四个方面来说: 1)分布式带来的通信复杂性与不确定性 对于单体应用,要完一个业务操作,我们通过本地方法调用,这些调用都在同一个进程内完成...

  • 在4月20日的阿里云栖开发者沙龙php技术专场上,云智慧technical vp高驰涛为大家介绍了微服务的前世今生,分享了微服务架构实践中所面对的诸多挑战以及相应的应对策略。 本次直播视频精彩回顾,戳这里! 直播回顾:...

  • 微服务解决复杂问题,这个复杂问题指的是软件的耦合度问题。微服务是一种思想,是一种软件架构思想,其开发模式就是分布式开发。 一、单体应用模型的构建 假设我们要开发一个单体应用,这个应用是六边形架构。该新...

  • 四、微服务的具体特征 五、soa和微服务的区别 六、如何具体实践微服务 七、常见的微服务设计模式和应用 八、微服务的优点和缺点 九、思考:意识的转变 十、参考资料和推荐阅读   一、微服务架构介绍  ...

  • 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。概念一经提出迅速火遍全球。当前 hailo 有160个不同服务构成,netflix 有大约600个服务。国内...

  • 在生产环境中采用与部署微服务应用的决策上,很显然安全性占据了非常重要的角色。根据451 research的研究报告《2016...下面这四条正是确保微服务应用安全的最佳实践范例。第一条:发现并监控服务间的通讯通常来说,...

  • 今天我们主要来介绍微服务 docker 容器化部署和 kubernetes 容器编排的案例。 微服务架构“分而治之”的手段将大型系统按业务...在上一课时中,我们运用 ddd 将货运平台应用划分了 4 个微服务进行开发,为了解决大量

  • 在微服务架构中,服务之间势必需要集成,而这种集成关系远比简单的api调用要复杂。在本文中,我们将系统分析服务集成的方式以及在微服务架构中的表现形式。关于服务之间的集成存在一些通用的模式,我们也将在梳理...

global site tag (gtag.js) - google analytics