当前位置: 首页 > 科技观察

微服务转型的注意事项远比你想象的多_0

时间:2023-03-17 21:40:52 科技观察

微服务转型的考虑因素比您想象的要多大大小小的企业都在进行这种转型,但这并不意味着它很容易。将企业转型为微服务的过程中存在许多挑战,但有一些选择可以让工作变得更轻松。过渡的原因企业向微服务过渡的原因有多种。当应用程序被分解成小块时,测试起来更容易,部署起来也更快。这种模块化还为开发人员和团队带来了范围更广的责任。然而,即使是最有动力和能力的公司也需要关注几个重要问题以确保成功转型:如何在重写大量代码的同时保持质量?如何理解所有活性成分?如何观察你的环境?如何监测影响?这些问题的答案归结为两大领域:可观察性和监控。尽管许多开发人员混淆了这两个术语,但两者之间存在一些细微差别。可观察性在整个链条中排在第一位。一个系统或应用程序在被监视之前必须是可观察的。实际上,这意味着安装操作系统级别的服务或代理,并且对于应用程序,公开端点。一旦关键信息公开,就可以对其进行监控。监控会告诉您什么坏了(或即将坏了),以及原因。注意事项从单体架构到微服务的过渡应该对用户透明。为了实现这个目标,您的监控系统需要考虑一些关键问题。它能否通过提供足够的正常运行时间和可用性来满足客户的需求?应用程序是否足够响应?发现问题并解决问题需要多长时间?开发人员如何管理变更?让我们仔细看看这些问题以及如何解决它们:1.能否通过提供足够的正常运行时间和可用性来满足客户的需求?在大多数情况下,对于当前的单体应用程序,您已经有了这个问题的答案。接下来是面向客户的应用程序正常运行时间,以及部署或计划外中断造成的停机时间。就微服务而言,跟踪正常运行时间类似于单体程序,但在开发“关键路径”微服务时需要识别更多的数据点。例如,如果将登录逻辑提取为单独的微服务,则可能会增加前端微服务的可用性。但是,登录服务停机将对您的用户产生重大影响。换句话说,这个问题的答案对于微服务来说更复杂,但是适当的工具和从头到尾跟踪请求的能力将帮助您实现这一目标。2.应用程序是否足够响应?在单体应用程序中,活动组件靠得更近——都在同一个环境中。但在微服务中,向分布式微服务的过渡将影响应用程序的响应能力,因为请求不再通过单体应用程序进行路由,而是可能会向不同的微服务生成多个请求。为了解决这个问题,您需要监控自己的应用程序和基础设施,重点是在技术管理结构中监控智能和可见性。获取从请求到结果的指标并跨多个微服务和系统跟踪它们可以为您提供所需的见解和答案。3.发现问题并解决问题需要多长时间?单体应用程序中的一个主要问题可能会使整个系统陷入停顿。但是,当系统建立在解耦和模块化的微服务架构上时,问题可能会潜伏,开发起来会更加困难。快速识别问题的能力需要可观察性和监控。因此,微服务的组件需要可观察性以便对其进行监控。并且当出现问题时,需要警报以提供详细信息以缩短故障排除和解决时间。比如说,没有其他信息的“高CPU使用率”警报几乎没有用。但是,如果警报显示“系统上的CPU使用率持续高X段时间”并且有一个视图显示在过去几分钟内使用大量CPU资源的进程怎么办。此类警报可以大大减少解决故障的时间。4.开发人员如何管理变更?开发人员的情绪可能难以衡量,但它非常重要。裁员在企业生命周期的任何阶段都是一种风险,但尤其是当您正在经历重大转型时,裁员对企业的影响会更加显着。解决这个问题的最简单方法是通过与相关团队的非正式对话,或对开发人员进行更正式的调查。即使您的开发团队中的大多数人都感受到单体架构的缺点并希望进行这种转变,了解您团队中每个开发人员的想法仍然很重要。工具帮助工具很重要,这是毫无疑问的。工具有助于识别和衡量影响您的服务水平目标(SLO)的服务水平指标(SLI)。借助好的工具,您可以快速启动并运行,而且麻烦更少。转向微服务应该会对您的SLI/SLO产生积极影响,但唯一有信心这样做的方法是具有良好的可观察性、更好的监控和对环境的整体看法。在决定使用哪些工具,自建还是开源时,很多公司的本能反应是自己动手。毕竟,谁比您自己的开发人员或SRE团队更了解您组织的可观察性和监控需求?事实上,“自己制作”工具(特别是如果它们有效且准确)是困难且容易出错的。大多数选择自己开发工具的企业都会后悔走这条艰难的道路。另一种选择是走开源路线。Prometheus+Jaeger+Grafana的架构可以满足你在改造过程中的大部分需求。在此架构中,您将使用安装在系统上或作为库包含在应用程序代码中的Prometheus客户端。客户端抓取指标后,公开给Prometheus服务器抓取并存入时序数据库。Jaeger执行分布式跟踪,通过微服务系统捕获事务的指标和数据。同时,Grafana与Prometheus和Jaeger数据源合作,提供可视化和仪表板。这种开源架构让您有机会根据您的需要修改和配置该工具。也可能直接支持一些基本的使用场景。当然,缺点是对于每个工具,您都需要跟上版本、安全补丁和配置更改。此外,开源解决方案通常会在以后出现扩展挑战。随着更多微服务的构建,管理软件和存储遥测数据的成本上升。因此,在选择工具时,建议企业还是从自身需求的角度出发。总结当企业从微服务这样的单体架构过渡时,面临的挑战是确保平稳过渡,同时自始至终保持(或提高)应用程序的质量。而在这个过程中,可观察性和监控是保持质量的关键。