送设?/span> 保质?/span> 高品?/span>
当前位置:主页 > 建站 >

微服务开发的 10 个最佳实践

文章出处:未知 发表时间:2020-11-08

微服务架构是将软件体系分解成可独立布置的自治模块,这些模块经过轻量级的、言语无关的办法进行通讯,一同完成事务方针。

软件体系是杂乱的。由于人脑只能处理必定程度内的杂乱性,大型软件体系的高杂乱性导致了许多问题。大型杂乱的软件体系难于开发、增强、保护、现代化和规划化。多年来,为处理软件体系的杂乱性做过许多测验。在上世纪 70 时代, David Parnas 和 Edsger W. Dijkstra 引入了模块化软件开发,以处理软件体系的杂乱性。在上世纪 90 时代,引入了分层软件架构来处理事务运用程序的杂乱性。自本世纪初以来,面向服务的架构成为开发杂乱事务运用程序的干流。微服务架构是处理现代软件运用杂乱性的最新办法。此刻,咱们或许会提出一个问题:为什么咱们忽然需求一个新的软件开发办法?简而言之,与软件开发相关的整个生态体系在曩昔十年中发生了巨大的改动。现在,软件运用灵敏办法开发,运用 CI/CD 在容器 云上布置,在 NoSQL 数据库上耐久化,在现代浏览器或智能手机上展示,机器经过高速网络连接。由于这些要素的呈现,在 2012 年诞生了微服务架构。

微服务架构是将软件体系分解成可独立布置的自治模块,这些模块经过轻量级的、言语无关的办法进行通讯,一同完成事务方针。

首要有两类人对微服务和单体架构持相反的观念。关于一群人来说,微服务架构完全是关于货品崇拜或炒作驱动的开发,这仅仅痴迷于技能的开发人员的游乐场。关于另一群人来说,微服务架构是“一个管控一切的架构”,它能够消除软件体系的任何杂乱性。在我看来,微服务和单体架构是互补的。假如从长远来看,这个运用程序依然会较小,则单体架构是合适的办法。另一方面,关于大型而杂乱的运用程序或有潜力变得大型而杂乱的运用程序,微服务架构是正确的处理方案。现代软件开发是如此巨大,以至于微服务架构和单体架构将像 SQL 和 NoSQL 相同的办法共存。

正确规划微服务架构十分具有应战性和困难。与单体架构为一切问题供给一个处理方案相反,微服务架构为不同的问题供给不同的处理方案。假如挑选了过错的处理方案,那么微服务架构便是一个注定要爆破的定时炸弹。一个规划糟糕的微服务架构比一个单体架构还要糟糕。为微服务架构界说一组最佳实践也很有应战性。我曾在一些会议上看到一些闻名的、受人敬重的软件工程师提出了微服务架构的最佳实践,但这些实践却拔苗助长。

1. 范畴驱动规划:

开发微服务的首要应战是将大型、杂乱的运用程序切割成小型、自主、独立的可布置模块。假如微服务没有以正确的办法进行切割,将会呈现紧耦合的微服务,这些微服务将具有单体架构的一切缺陷,并具有散布式单体架构的一切杂乱性。走运的是,现已有一个处理方案能够在这方面供给很大的协助。Eric Evans 其时是一名软件工程顾问,他在不同公司的事务运用程序中遇到了关于软件杂乱性的重复呈现的问题,所以在 2004 年出书的《范畴驱动规划:处理软件中心的杂乱性》一书中总结了他的名贵见地。该书概述了三个中心概念:

软件开发团队应该与事务部门或范畴专家密切合作。 架构师 / 开发人员和范畴专家应该首要进行战略规划:找到有界的上下文和相关的中心域以及普遍存在的言语、子域、上下文映射。 然后,架构师 / 开发人员应该进行战术规划,将中心域分解为细粒度的构建块:实体、值方针、聚合、聚合根。 范畴驱动规划的具体评论超出了这篇文章的评论规划,可是你应该读一下起先的 DDD 书本 Eric Evans 的《范畴驱动规划:处理杂乱的软件)》,或许更现代一点儿的 DDD 书本

推荐产品

同类文章排行

最新资讯文章

友情链接