云服务器,就上小鸟云。
反模式是随着项目的推进演变而来的,主要的原因,如重大需求调整,但架构没有对应的变化,性能和安全需求对当前架构的硬性改变,团队或组织强行调整技术等。本文将为大家讲解云原生架构中常见的反模式。
庞大单体应用
如果你有过维护或者开发巨型单体应用的经历,肯定遇到过诸多令人痛苦的问题,比如,Git 仓库过于庞大、IDE 打开慢、编译慢、应用启动慢、依赖的服务太多……对于新人来说,能够将代码复制下来,并且编译成功,能正常启动应用,那将是极其幸运的事情。更多的情况则是,运维人员至少要花费 1 到 2 周的时间去了解这个庞大的应用,否则基本上无法开始编写代码。这里并不是要排斥巨型单体应用,其还是有适用场景的。我们也不想讨论什么情况下不适合使用微服务之类的话题,这些都需要根据实际情况做出合理的决策。但是,对于大多数业务场景来说,微服务架构是非常合适的。
单体应用“硬拆”为微服务
应用的划分是一套非常科学的方法论。正如庖丁解牛一样,只有了解了系统的原理,摆脱一刀切的思维,我们才能做到游刃有余。最核心的还是领域驱动设计(Domain-DrivenDesign,DDD)的划分思想。
DDD 的本质是根据业务属性将系统划分为不同的业务领域,最简单的如电商系统中的会员、商品、交易和物流等。为了配合这些业务的运行,我们需要一些支持系统,如 CMS、社交运营平台等。如果涉及个性化推荐的商业需求,大数据和 AI 平台也是必不可少的。
依据 DDD 的 Domain 原则划分子域后,我们会使用 Bounded Context 来实现这些子域的落地。目前,我们可以将 Bounded Context