当前位置: 首页 > 知识库问答 >
问题:

如何管理从单片架构到微服务架构之间的多级环境

徐阳炎
2023-03-14

我的公司最近开始了从单片架构到微服务架构的平台架构转变。整个迁移可能需要数年时间,所以到目前为止,我们仍然需要在缓慢地拆除应用程序的同时维护当前的整体应用程序。

对于某些模块(其中的数据库仍然连接到整体应用程序的数据库),我们通过面向服务的体系结构暂时拆除整体应用程序,而对于某些模块,我们直接转换到微服务(如果适用的话,微服务拥有自己的数据库)。

我们练习在特性准备就绪时发布它,而不是遵循发布窗口。每个团队都有自己的Staging来管理这一点,因此我们有多个Staging环境(总共11个),每个环境都有自己的一组遗留的整体应用程序。

(并不是要将答案引导到这个解决方案的方向上。如果有不同方向的答案,则更好,这样我们就可以有更多的选择和变化来考虑利弊)我们的一个想法是,对于每个db,我们有一个额外的列来标记这行数据是用于哪一个阶段的。因此,我们可以为多个分段维护微服务的单个html" target="_blank">实例。问题是,对于每个API调用,客户端都需要指定它是用于哪个阶段的。它使每个服务的开发变得复杂(需要满足筛选出哪个staging的数据库),使endpoint更难调用(因为您需要指定您需要访问哪个staging数据库),更重要的是,这些都是多余的代码,在生产中不应该存在。

我们面临的问题是,随着微服务数量的增加,这将占用大量的服务器资源(我们决定使用In premise server来承载我们的kubernetes和Proxmox VM作为遗留的整体)。是否有任何基础架构可以减少为此所需的资源?

共有1个答案

柯易安
2023-03-14

您可以通过为每个微服务保留相对较低的内存和cpu来使微服务的服务质量稳定。然后,您可以过度提交节点,并依赖于这样的假设,即并非所有临时区域都需要同时以峰值性能运行。

如果许多或所有微服务共享相同的数据库版本,也许您可以将它们托管在单个高可用数据库部署上的单独数据库模式中,这也减少了资源占用。

当然,这取决于临时环境的计划使用情况。如果所有团队都在同一时间完成sprint演示,集群可能会在高峰时间过载。

 类似资料:
  • 本文向大家介绍单片和微服务架构之间的区别,包括了单片和微服务架构之间的区别的使用技巧和注意事项,需要的朋友参考一下 整体架构是作为一个大型系统构建的,通常是一个代码库。随着应用程序的发展,单片应用程序紧密耦合并纠缠在一起,从而难以出于独立缩放或代码可维护性等目的隔离服务。 更改技术,语言或框架非常困难,因为所有内容都紧密耦合并且相互依赖。 微服务架构被构建为基于业务功能的小型独立模块。在微服务应用

  • Kubernetes 设计之初就是按照 Cloud Native 的理念设计的,Cloud Native 中有个重要概念就是微服务的架构设计,当将单体应用拆分微服务后, 随着服务数量的增多,如何微服务进行管理以保证服务的 SLA 呢?为了从架构层面上解决这个问题,解放程序员的创造性,避免繁琐的服务发现、监控、分布式追踪等事务,Service mesh 应运而生。 微服务 下图是Bilgin Ibr

  • 大家好, 我试图找出如何基于Wildfly中运行的模块(war)移动我当前的系统架构。现在所有的基础资源都放在JNDI树中,比如数据源、JMS等等。。。我的项目框架是Spring 4和family,它允许我查找这些资源和其他内容。 我的目标是使用Spring Boot和Spring Cloud Netflix创建一个微服务架构,其中每一个WAR都是一个通过总线服务集成的新的独立应用程序。 但我的疑

  • 让我们讨论一下微服务环境的体系结构。我们正在公司内部进行讨论,我想得到一些反馈。我认真考虑的是编排层(代码复制、更多移动部件改变api)。 网络应用- 原料药- 在这种情况下,服务不允许相互对话。业务流程层中的聚合服务 网络应用- 原料药- 这里允许服务相互对话,这里存在聚合服务。 账单属于哪里

  • 本文向大家介绍微服务架构是如何运作的?相关面试题,主要包含被问及微服务架构是如何运作的?时的应答技巧和注意事项,需要的朋友参考一下 微服务架构具有以下组件: Clients – 来自不同设备的不同用户发送请求。 Identity Providers – 对用户或客户端身份进行身份验证,并颁发安全令牌。 API Gateway – 处理客户端请求。 Static Content – 容纳系统的所有内

  • 我读了一些文章,看了一些视频,但在为这些微服务提供服务方面,没有找到具体的建议。我的理解是,他们应该使用自己的应用程序服务器。 我的问题是它们应该部署在不同的服务器上,还是没关系。 当它们在同一台服务器(计算机)上提供服务时,不会有端口冲突吗?