企业的微服务架构

最近,我参加了悉尼思特沃克总经理达伦•史密斯有关企业微服务架构的演讲。

这个演讲帮助我解决了关于大企业微服务架构的诸多问题。现在让我快速回顾一下,在你探讨团队利弊的时候给你提供帮助。

演讲视频地址:https://www.thoughtworks.com/insights/blog/microservices-architecture-for-enterprises

企业的微服务架构_第1张图片

首先,达伦传达的信息是微服务架构并非构建大型企业应用程序的新形式。在过去的几年中,诸如网飞和亚马逊之类的公司已通过执行微服务架构生产成功的产品。

但是,微服务架构是否适合你的组织呢?答案不是简单的是或不是,我将以达伦的演讲作为指导,引导你获得答案。

微服务架构这一段旅程从文化、技术和操作等多个维度影响你的组织。我们设想一下,在一家运营多年并占领市场的成熟跨国企业中使用整体应用程序。从软件工程师或者架构师角度来看,简化代码库的复杂区域,使之更易维护,这是一种很好的做法。

所以当你碰到具有很多行代码的极其庞大的Java类,而不可取的方法又带来了40%的类时,你怎么办呢?很自然地(合乎情理地),你会与团队进行某种形式的讨论,然后提出策略来把类分成多个小类和/或方法。现在问问你自己,为什么清理整个Java类那么重要?

假如你的回答是更简单的单元测试,易于审查代码和修改影响,我建议你对整个服务和构成产品的模块采用相同的思考过程。

把整体的应用程序分成更小的易于管理的服务,这其中有几个原因。假如你是组织中的商业领袖,以下就是你可能考虑的一些问题:

进入新市场

支持创新

使业务能力和系统之间更一致

改变治理结构,更好支持快速决策

快速应对新的市场现状

抵御干扰市场者


作为首席技术官或者首席架构师,你的责任就是评估不同的解决方案,以最佳方式解决上述问题并设计出与组织愿景相一致的系统。当考虑微服务架构时,要集中在一些关键区域上:

多层服务中的关联性管理

端对端功能测试的规模

快速检测故障,温和地失灵而迅速地恢复

集合作为构建构件

跨组织边界的元件/模块重复利用

应用程序设计接口承揽公众使用的服务

监控生命周期部署的各个阶段

集中的架构团队相对于分散的架构团队

基础设施自动化


架构师的角色随着微服务采用而发展,对其委以挑战性责任,从而形成架构管理。架构管理对于一个努力开启微服务之旅的组织来说,是关键性因素之一,因为如果没有合适的顺序,流程将很快通向微观管理,而不是微服务。

把整体分成多个易于管理的服务的最大优势之一就是能让一个小团队全面管理服务的生命周期—开发、测试并推向生产。这就意味着企业架构师不再为单个服务的内在运作所累,转而高度关注整个系统各个服务之间的互动。而且架构师应密切关注系统的整体健康,确保每项服务以一致的方式产生与监控有关的指标。

给予开发团队全部的权限来选择他们构建服务的技术堆栈,不意味着架构师对其执行不再有任何发言权。事实上,我们非常鼓励架构师教导并影响其开发团队。例如,考虑到服务要处理的数据具有高度非结构化性,架构师可以建议使用NoSQL数据库来代替关系数据库。再比如,网飞公司把JVM平台的使用标准化,这样他们就可以在所有服务中使用标准库。

当某位架构师正忙于跟开发团队的协作时,另一位与“业务”团队合作,以使技术愿景和业务愿景一致。这就是架构师的一个重要品质,因为系统需要能适应产品愿景或用户反馈的变化。因此,架构师需要始终保持对行业中最新趋势、工具和结构的关注,随时准备将适当的工具用于给定的工作。

达伦谈到了“部署耦合”这一理念,强调了这样一个事实,很多整体系统和传统企业架构需要改变,单次生产中的所有系统都要同步。这转而导致了什么也没有得到的长时间的测试循环以及没有人会失败的观念,因为没有到达最后期限的系统意味着其他人都被排挤出去。

为了避免部署耦合,将远程调用作为一个机制来整合服务。微服务社区建议在HTTP上使用REST,与其他诸如远程过程调用或者简单对象访问协议之类的远程通信协议截然不同,因为非基于HTTP的协议常常会把你困在一个特定平台或者限制互操作性。通过使用基于HTTP的用户级合同来整合服务,开发团队可以避免永无休止的端到端测试阶段并保持合适的速度。

对一个组织来说,掌管数以百计的服务使得运营变得复杂。作为一个组织,你必须确保具备坚实的DevOps基础设施,随时处理应用程序监控和报警。正如我前面所提到的,架构师至少必须把服务发出日志的方式标准化,这样运营团队就能监控整个系统的健康状况,假如需要进一步调查,逐层展开到服务级别的健康。

最后,每个组织必须努力聘请、培训并留住高质量的技术人员,因为“微团队”之间的沟通和协作需要成效、技术刺激,尤其是乐趣,这些都是至关重要的。

我希望能解决你有关大型企业微服务架构的问题。建议你观看这个富有深刻见解的视频录像,在里面达伦更加详细地谈论了这些问题。

你可能感兴趣的:(企业的微服务架构)