BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

微服务架构设计须避开工程师思维

| 作者 Jan Stenberg 关注 34 他的粉丝 ,译者 艾利特 关注 0 他的粉丝 发布于 2016年3月14日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在对微服务和微服务API进行设计的时候,开发者最好能站在用户的角度像一个设计师一样去设计规划,Nic Benders在最近举行的Microservices Practitioner Summit峰会上如是说。正如红帽所说API应该是微服务的重点,然后通过“由外向内”的方法来构建微服务。

这里来介绍一下Benders,他是App性能管理服务商New Relic公司的首席架构师,New Relic也是一家从开发单体架构应用开始的公司,随着用户基数的不断增长,应用的功能设定也有所升级改版,更重要的是,服务的能力也在不断的提升。而正是因为这些方方面面的数据都在增长,导致更多的问题频繁出现。也正是基于这样一个大的背景下,New Relic公司在经过几年的分析思考之后,决定从原来的单体架构模型迁移到微服务架构

正是在这个迁移到新架构的过程中,Benders发现他们所犯下的最大错误就是被固有的“工程师思维模式”所局限了双眼。以数据层开始着手从内向外构建服务,然后通过业务逻辑将数据层往外迁移,这也就意味着API的设计工作接近尾声了。如果说真的是按照这个流程来执行的话,只能说制作这样一个API从业务逻辑上来说是有意义的,但是并不能满足庞大的用户需求。当然,在设计过程中也会有很多来自团队的不同声音和决策,部分决策当然会限制API的性能,同时也不能完全将用户的需求考虑进去。对此,Benders坚持认为,API的设计对产品起到了决定性作用,开发人员一定要像设计师那样去思考,而不仅仅是工程师。

When designing a system, you need to think like a designer。
对于系统的整体设计,要具备设计师那样的艺术思维。

使用这样的方法开始设计一个新的产品,同时兼顾要解决用户提出的问题,这样一款新产品如何解决用户问题,产品测试阶段还得和真实用户结合到一起才能最终得出解决方案。用户使用什么样的服务只是一个需求,跟开发者在开发这款服务时使用的什么样的模型根本就没多大关系,更重要的是在对API进行设计的时候使用了“由外向内”的设计方法,根据API的定义规则,实现对API的服务的支持则由开发者来决定的。Benders将之与测试驱动开发(Test-Driven Development,TDD)相比较,TDD是在实现驱动之初就已经将测试程序写好了。

通常情况下,Benders在设计API的时候,前期都会以写一些伪代码仿真程序来对抗API来开始,如果API运行不顺畅不兼容,届时再改变现有的参数和方法也来得及。另一个在他看来很有效的方法就是先写文档,简化和那些真正会使用这一API的用户之间的交流。

Benders还指出,对系统的设计可以改变人们使用它的方式,而如果一个系统能够简化创建服务的流程的话,将有可能鼓励用户自行来创建更多的服务,系统能够更方便的集中报告日志,同时还能集中管理。设计决策并不是为了解决现有的问题,它同样也是一个引导长期使用服务的方法——更简单的完成任务,而其他人却很难完成。通过改变设计,开发者就可以鼓励用户按照一种特定的行为模式来使用新的服务。

最近Anders Jensen-Waud在写关于Thinking Outside-In方面的内容,有兴趣的可以看看:API如何实现面向服务架构的最初承诺(How APIs Fulfil the Original Promise of Service-Oriented Architecture)。

查看英文原文:Don’t Think like an Engineer When Designing Microservices

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

工程师是不是也要具备艺术细胞 by L N

都说苹果产品是一件艺术品,并不能说明他们的设计师都具有艺术细胞,而是人家把自己的产品当成艺术品来设计。微服务架构师们也应该具备这样的艺术气息!

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT