微服务的创建和管理最常见问题是什么?

Data

如果你不正确地划分责任,你就会遇到问题。将任何应用程序应用到分布式系统中。想想你可能会遇到的问题。管理数据和管理状态是许多人在管理有状态和无状态数据时遇到问题的地方。考虑事件驱动的命令和数据通信,以构建最好的体系结构。

1)状态管理和组件定义。如果崩溃和烧伤,您可以替换它,如果它是无状态的。

2)关注架构。如何拆分不同的组件。你可以增加复杂性而不是减少复杂性。

复杂性

任何考虑的团队都不应该介入,如果他们不清楚他们试图解决的问题的领域。微服务带来了大量的开销。随着时间的推移,它会得到回报,因为你有更多的组件。从一开始,一切都与开销有关。在确定自己需要微服务之前,避免使用微服务。当您为采用的每种语言选择堆栈、语言和数据库时,您需要开发样板代码和编制管理。如果您愿意为it生产做好准备,请仔细考虑。最终与数据的一致性也是如此。简单是最基本的事情要记住。简洁明了的api和逻辑,很容易让你的头脑去构建更复杂的应用程序和行为。

大多数传统组织都不得不移动传统的应用程序。这是一个多年的旅程。你不能停止支持单体系统。一次只做一次服务。您需要一个平台来运行这个整体并从中挖掘出功能。我们的目标是成为一个在边缘运行微服务的平台。我们使用一个虚拟机监控程序将一个整体搬到VM上,知道相同的平台可以支持Docker和VM。k8不太适合逐步过渡。

容器的一个问题是构建容器映像和发布到存储库的复杂性。这是一个开发人员过去并不担心的问题。微服务更难调试和故障排除。有这么多的微服务,很多移动部件。对单个微服务进行故障排除的能力并不像对传统的单片应用程序进行故障排除那么容易。您不能直接访问微服务。可能有很多复制品。对于开发人员来说,这是一个陡峭的学习曲线。

监控

三种类型:

1)对他们正在构建的系统的可见性和可观察性的渴望。当您希望系统在开发和生产中处于开箱即用状态时,能够使系统透明;

2)更大的企业和工程组织的迁移有强烈的愿望去理解最佳实践,需要更多的关于如何到达那里,陷阱和焦虑-标准化在哪里可以,在记录成功和失败的一边;

3)工程师的异花授粉——工程师们在工作,他们不得不绞尽脑汁,从零开始建造已经建成的东西。需要供应商和开源领导者对市场进行更多的教育。更多关于如何做事情的文档。

在不合适的时候尝试做微服务。我们如何让自动化和可观察性到位?我们如何测试我们的应用程序并获取数据以询问平台和应用程序,以及何时比较它们何时开始退化?可见性和向对应用程序开发人员负责的人公开。

2018年7月,我们调查了354名受访者,询问我们的用户在使用微服务架构时遇到了哪些挑战。对跨多个微服务的端到端流程缺乏可见性:59%的受访者。不明确的错误处理,导致在微服务之间的边界上出现未处理的错误:50%的应答者。从事不同微服务的团队之间的跨团队沟通:46%的受访者。使用不同的编程语言/使用不同的数据存储编写的复杂支持服务:38%。雇佣拥有合适技能的开发人员有困难:35%。由于大量服务导致的安全问题:30%。这些问题既有技术性的,也有组织性的。为了获得跨多个微服务的长时间运行流的可见性,并以自动化的方式处理错误,确保流在启动后总是结束,还不存在合适的工具。团队仍在研究如何在新的组织结构中有效地进行沟通,并试图找到具有微服务体系结构经验的合适人选。

技能

大多数人不理解将服务构建为细粒度的,并将其作为单个应用程序一起使用的重要性。当您将ESB(企业服务总线)分解为多个服务时,会遇到一系列挑战。主要的挑战是建立服务之间的通信并使其具有弹性。保证交付作为所选代码的一部分实现。您必须考虑如何使用分散的数据管理来管理数据。如何创建数据组合。通过整个网络支付的自主服务的总体监控和可观察性。需要使用观察工具。跟踪标准。如果你没有一个平台,你的企业文化也没有很好地结合起来,你就很难将微服务融入到产品中。无论你追求的是什么新项目,你都要把它作为一个微服务来做,而不是改变传统的应用程序。慢慢开始,逐步进入架构。

在构建、交付和管理微服务方面,存在很大的技能差距。很少有开发人员具备理解领域、从数据到API的服务编码、理解总体体系结构、与CI/CD管道集成以及交付运行中的服务所需的技能。用于低代码微服务创建和简化管理的工具对“ok”开发人员来说是一个巨大的提升,使他们在很少培训的情况下安全地提高速度,同时将“好的”开发人员变成摇滚明星。

安全

Discovery(发现)是最重要的。如何从安全角度发现微服务。它经历了所有你期望它经历的治理。编目微服务和高级api。创建微服务是一种商品。看看谷歌,“在10分钟内创建一个微服务的10个步骤”。

1)如果没有适当的治理,利用一个公开不应该公开的数据的服务,就可能变成蛮荒的西部。

2)数据安全。

3)发现管理。Swagger被认为有助于微服务管理。

其他

接口是什么?确保您没有破坏依赖关系。有哪些服务,以及如何访问它们?Kubernetes (K8s)和Istio都有帮助。要找到人们正在寻找的答案并不容易。不确定该问什么问题来解决这个问题。太早期阶段。

与IBM和Pivotal合作伙伴的客户不会直接看到问题。凯捷咨询公司和埃森哲公司在重组和架构方面看到了商机。企业在经历变革的过程中,建立了大量的支持结构。创造软件的艺术和科学。了解具有数字功能的软件如何增强您的产品以提供更好的体验。

最大的问题是沟通和所有权,因为一切都按照自己的计划进行。自动化将是下一个。如果没有自动化,如果你很难部署大的东西部署成百上千的小的东西如果没有自动化就无法完成。在分解系统之前,把自动化放在适当的位置。

我认为影响微服务的最大问题将是维护API兼容性。api成为一种“单向”契约。一旦它们被释放,它们可能需要无限期地得到支持,因为组织内外的任何人都可以使用它们。

服务注册和发现。今天部署应用程序意味着什么?如何维护业务“应用程序”中涉及的所有内容?

原文发布于微信公众号 - 程序你好(codinghello)

原文发表时间:2018-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安全领域

五个可预见的物联网挫折

简单的原型实现设备,与支持上亿软硬件都不同的设备之间存在巨大差异。一些故障并不会直接影响收入和用户的体验,因此可能会在早期的应用和敏捷开发迭代中被忽略。物联网的...

4228
来自专栏腾讯大讲堂的专栏

以体验为中心的性能优化

首先,这不是一篇讲述关于产品设计与用户体验,而是如何进行产品性能优化的文章。如果你具有一定技术背景,并且对互联网产品性能优化感兴趣,这篇文章将以QQ音乐的性能优...

2128
来自专栏知晓程序

微信小程序再曝新能力!大量新玩法等你来试

这 3 个新能力与前者有什么关联吗?下面知晓程序(微信号 zxcx0101)就来全面解读这 4 个新能力。

791
来自专栏达摩兵的技术空间

项目发布验收不严格带来思考

经常会遇到小公司的很多项目在测试环境针对测试数据库 草率的测试完之后就进行上线,然后生产环境暴露出大量问题,而且每个似乎都很严重需要马上纠正的问题。

1311
来自专栏量子位

应用悄悄拿走你的隐私做了什么?只需30秒这个AI给你答案

安妮 编译自 Futurism 量子位 出品 | 公众号 QbitAI “我已经阅读并了解……”可能是当代青年定期撒下的一个谎。 可能你深有体会。 几乎每个下载...

3008
来自专栏云计算D1net

云计算是什么?你现在需要知道的一切

公共云使客户无需投资新硬件或软件即可获得新功能。相反,他们向云计算提供商支付订阅费或仅为他们使用的资源付费。只需填写Web表单,用户就可以设置账户,并启动虚拟机...

2133
来自专栏逸鹏说道

解析微服务架构(一):什么是微服务

解析微服务架构系列文章将分几篇描述微服务的定义、特点、应用场景、企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架...

3194
来自专栏DevOps时代的专栏

精选 | DevOps 三十六计之精益敏捷与持续交付

? 前言: “一册在手,DevOps我有”,这就是传说中的《DevOps 三十六计》,相信您读完也意犹未尽,小编就来和您说道说道我注解的《DevOps 三十六...

3159
来自专栏FD的专栏

前后端分离团队的资源浪费

最近的项目,团队都是以前端、后端两个分离的形式。作为一个大前端,不论是在 Web 开发的时候,还是开发 Android 应用的时候,经常遇到:

1254

我们是否应该在物联网上使用无服务器体系结构?

我们正处于前所未有的行业混乱的时代,这是由技术发展过快导致的,特别是在物联网领域。物联网有助于将行业转变为数据驱动的范例,开辟了巨大的机遇。一些公司正通过技术革...

3856

扫码关注云+社区

领取腾讯云代金券