成功准备微服务的5个步骤

原文作者:Kristijan Arsov

原文地址:https://medium.com/@kikchee/5-steps-to-successfully-prepare-for-microservices-cd5205204ec2?source=search_post


设计应该始终在开发之前!

微服务一直是一个热门话题 - 数百次会议已经举办了,网络研讨会和媒体都是关于这个主题的。到目前为止,你会认为每个人都已经知道他们提供的所有好处,以及他们带来的所有风险。然而,许多组织在没有事先准备的情况下就已经进入了这个趋势。在实现这种类型的体系结构时,这自然导致了许多失败。

一位智者曾经说过:

“在企业中使用的任何技术的第一条规则是应用于有效操作的自动化将放大效率。第二,将自动化应用于效率低下的操作将放大效率低下。“ - 比尔盖茨

我相信这个理念也适用于微服务。没有为这个过渡做好准备很可能会导致失败。这就是为什么在本文中,我将介绍为准备实现微服务体系结构需要遵循的5个步骤

1.从绘图开始

许多开发人员在开发某种微服务时犯了直接编码的错误。这可能是你可以犯的最大错误。是的,也许你会成功地提供一项服务; 然而,随着他们人数的增加,整个事情将变得一团糟。

与其他需要创建的产品一样,流程必须从设计开始。通过设计,我的意思是和团队一起围坐在桌子旁,把服务写在纸上(或者白板上)。首先确定正在构建的应用程序的主要功能。然后,通过自顶向下的方法,将它分解为最小的单元。最后,展示所有这些不同的部分之间的相互联系。这些功能将成为您的微服务。

纸张可以承受很多变化

例如,在书评应用程序中,主要功能是不同书籍的比较。但是,必须开发许多其他功能,例如创建用户配置文件,评级,评论,书籍数据库等。识别每一个功能对于将它们捕获到微服务中至关重要。

这个过程将持续超过一天,并需要多次迭代直到完善。当然,您需要来自不同部门的许多人的意见,以获得不同的观点和意见,并确保您不会遗漏系统的任何功能。

2.微服务不是组织单位

根据公司的组织单位来定义微服务似乎很自然。如果你正在构建一个单一的应用程序,这看起来可能是一个合适的解决方案。但是,在实施这种体系结构时,可能是一个错误的决定。

也许它适用于销售部门或客户服务,但是许多组织只有一个单元来处理所有的数据库。因此,为所有数据库创建一个微服务将导致一个单点故障。这是微服务的一个关键特性-  不会有单点故障!

您希望通过服务呈现的一些功能可能会延伸到几个组织部门。或者,您可能需要为单个部门构建许多微服务。最后,您应该将架构的重点放在您想要提供的功能上,而不是您公司的组织结构上。

3.创建合适的团队结构

切换到完全不同的架构结构肯定会使得公司管理和监控活动发生变化。前两步的重点在于设计应用程序以向最终用户提供正确的功能。现在,是时候确保您为新架构提供适当的操作支持了。

您将不得不放弃旧的部门结构,将团队集中在特定的微服务上。这意味着每一个团队将由不同的成员有不同的技能系统分析师等用户体验/ UI设计人员,后端和前端开发者,等等。这样,团队负责项目从端到端(microservice)——从开发和部署操作,监视和管理。这反过来又会增加他们创造自己觉得属于自己的产品的动机。

团队如何在不同的体系结构中定义

团队的规模将由公司/项目的总规模决定; 然而,专家建议,理想的规模是每支团队8-10人。此外,与整体架构不同,微服务体系结构允许您在业务增长时扩展团队规模。

当然,所有团队都将积极协作,完成整个项目。这就引出了这种结构的主要好处——将最终产品更快地交付给市场。

4.性能和可靠性也很重要

切换到微服务体系结构背后的整个想法是创建一个性能优于整体的最终产品,更可靠(即停机风险更低),当然,可以更快地交付到市场。

将性能作为设计过程的一部分处理是很重要的,,以确保尽早考虑任何潜在问题。通常情况下,微服务设计主要集中在功能上这一块。但是,如果服务第一次收到更大的负载时崩溃或明显减速,那么该服务将变得毫无用处。当底层资源失败时,每个服务都应该有两到三个可选的机制来继续运行,如果一个服务在可接受的时间范围内没有响应,那么它应该快速循环。

考虑如何预先为更大的负载变化准备服务,将有助于应用程序抵御真正的挑战,使您在市场上具有竞争优势。

5.提前计划变更

忽略应用程序更改是不可能的。开发人员不断地添加和删除功能,修改代码,替换应用程序的核心元素等等。微服务应用程序更是如此。实际上,更正确的说法是,微服务正在不断发展。

总是想着未来!

当您每天处理几次代码更新时,最好接受更改是常量,而不是偶尔中断到稳定状态。一旦您认识到这一点,您就会意识到,从一开始就集成更改所需的灵活性是很重要的。确保您的应用程序始终正常工作的一种方法是准备服务API,以便各个微服务可以继续相互交互,即使它们发生更改。此外,您应该包含版本控制,以便允许服务包括旧的和新的服务接口。

另一方面,数据存储的演变更具挑战性。不断发展的数据库方案在传统上支持新功能一直是升级应用程序中最困难的部分,而微服务并没有让它变得更容易。然而,NoSQL数据库的新技术在添加新字段而不破坏现有结构方面更加灵活。如果您期望您的数据存储需求不断发展(谁不希望呢?),您应该将可演化的数据存储作为微服务设计工作的一部分。

结论

我们一致认同,为向微服务体系结构的过渡做好准备是整个项目成功的关键因素。只有通过仔细的规划、创新的设计思维以及适当的操作和管理结构-您才能获微服务提供的所有好处

本文的版权归 阿小庆 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

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

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

2383
来自专栏云计算D1net

采用云计算和虚拟化的益处

在目前的情况下,IT部门热衷于降低成本和提高性能。创新使用先进的技术,这是一个合乎逻辑的解决方案,但很难实现。数据中心需要优化的基础设施和部署策略,以提高数据中...

3615
来自专栏云计算D1net

将PB级数据传输到云端的四个步骤

如今,各种组织正在越来越多地使用公共云基础设施,但是人们发现将数百TB或PB数据向云端的迁移比想像得更复杂,更具破坏性,并且不具备灵活性。 ? 云存储的商业价...

3587
来自专栏云计算D1net

多云环境带来管理挑战

企业中多云环境的增长点燃了降低复杂性和冗余性管理工具的需求。 根据Gartner的数据,接近半数的大型企业将在2017年末之前运行混合云架构。灵活性、可伸缩性和...

42710
来自专栏云计算D1net

什么是云原生应用 有哪些关键点?

最近讨论云原生应用越来越多,其是指原生为在云平台上部署运行而设计开发的应用。公平的说,大多数传统的应用,不做任何改动,都是可以在云平台运行起来的,只要云平台支持...

2907
来自专栏云计算D1net

将应用程序移动到云计算的5个步骤

组织对于关键业务应用程序的迁移,需要进行充分的前期准备,并保持其在整个过程中所需要的控制。 ? 业务应用程序以创纪录的数量进入云端,使用户和IT团队进入了访问...

3505
来自专栏腾讯大数据的专栏

主流大数据系统在后台的层次角色及数据流向

最近有不少质疑大数据的声音,这些质疑有一定的道理,但结论有些以偏概全,应该具体问题具体分析。对大数据的疑问和抗拒往往是因为对其不了解,需要真正了解之后才能得出...

1987
来自专栏企鹅号快讯

管理混合云的5个秘诀

如今,“混合”与复杂性似乎是同义词,企业通常担心在IT部门增加更多的工作量,却没有额外的资源来应对。当企业试图找出解决新出现的混合问题的最佳方法时,他们会以安全...

1956
来自专栏云计算D1net

成长的烦恼 怎么解决云计算风暴?

云计算目前已经开始逐渐的被越来越多的企业用户采用。但是随着越来越多的应用部署在云中,云计算风暴也开始困扰着客户。 云计算风暴有时也被称为“启动风暴”,或VDI启...

4296
来自专栏BestSDK

管理混合云的5个秘诀

如今,“混合”与复杂性似乎是同义词,企业通常担心在IT部门增加更多的工作量,却没有额外的资源来应对。当企业试图找出解决新出现的混合问题的最佳方法时...

3365

扫码关注云+社区

领取腾讯云代金券