轻量级微服务架构及最佳部署轻量级微服务架构及最佳部署
一、微服务将变得轻量级
架构需要由人去设计,这些人被称为架构师。或许很多人并未授予架构师的头衔,但自己却从事着架构的工作。我们认为,架
构这项工作永远都需要由人去完成,可能短期内都无法由机器来取代。如果我们不理解什么是架构,或者对架构师的职责感到
疑惑,那么很难让架构这项工作有效地落地。我们将在本节重新认识架构,并重新定义架构师的职责。此外,架构演进是一个
曲折的过程,但我们却不难看出架构的发展规律,甚至还能推测出架构将来的发展趋势。我们相信,微服务一定不是架构的终
点,它或许只是架构从重量级转型为轻量级的桥梁,我们正是设计并建造这座桥梁的工程师。
现在我们从架构与架构师的角度开始出发,开启轻量级微服务的架构探险之旅。
1. 架构与架构师
可能绝大多数的程序员都想成为一名优秀的架构师,每天都能从事技术架构的相关工作,编点框架代码,画点架构图,写点
PPT,帅气地站在讲台上给程序员们进行技术培训。大家普遍认为,架构师的代码比别人写得少,但是工资却比别人拿得多,
架构师是技术团队中技术最牛的人,别人搞不定的技术问题,在架构师眼中都是小菜一碟。
这样的人真的是架构师吗?
我们认为,他们不是架构师,而是技术专家。其实架构师与技术专家有着本质的区别,从他们所关注的技术方向来看,架构师
更偏向技术广度,而技术专家更偏向技术深度,如图1-1所示。
图1-1 架构师与技术专家的区别
换句话说,架构师需要有较强的综合能力,他们需要接触的技术领域较广,但他们所掌握的技术专业能力却没有技术专家那么
深。如果我们想成为一名架构师,那么就不应该把所有的精力都投入在某个技术领域上,而是要学会分散自己所关注的层面,
做到在众多技术领域上都要有一定的深度。
架构师除了需要具备在技术上所需的“硬技能”,还需要不断完善自己的“软技能”,比如沟通、组织、学习等技能。有时候软技
能可能比硬技能更加重要,甚至软技能还会影响自己的职业发展。如果没有较好的软技能,架构师将无法将自己所设计的架构
顺利地移交到程序员们手中,并指导他们将其真正落地。架构师正是通过他们所具备的综合能力来带领技术团队,解决不断出
现的技术挑战。
架构师的职责是什么?
我们的回答是:制定规范 + 指导落地。
架构师根据业务需求所制定的合理且可落地的技术规范,我们将这样的规范称为架构。
将架构工作做好犹如我们用两条腿走路一样,左腿迈出去表示“制定规范”,右腿跟上来表示“指导落地”,如图1-2所示。