在技术圈里,微服务已不是一张生面孔,确切地说,如今已算得上是一名当红的明星了。然而,对于任何一门流行的技术而言,从出现到被广泛采纳必定都会经历一个被质疑、被挑战,以及在实践的锤炼中不断进化的过程,微服务也是如此。
作为本书的译者,我并不打算在这篇序里给出太多的剧透。但是对扒一扒“微服务”的成长史却深感义不容辞。
根据Martin Fowler 大叔的回忆,“Microservices”一词是在2011 年5 月于威尼斯附近举办的一次架构师工作坊的讨论中被首次提出的。
2012 年,微服务正式出道。“Microservices”一词首次在ThoughtWorks 技术雷达2012年3 月的报告中亮相。当时报告对其成熟度的评级位于“评估(Assess)”象限。
不到一年时间,“Microservices”一词在2012 年10 月的技术雷达中已经进入了“试验(Trial)”象限。这份报告称,TW 及更广范围内的社区都将微服务作为一项分布式系统设计的技术开始采用。
2013 年,可配合微服务实施的一些框架和工具相继出现,比如Spring Boot、Hystrix 等。
在此之后,业界对于微服务的实践及讨论逐渐升温。2014 年3 月,Adrian Cockcroft(前
Netflix 首席云架构师,被誉为“让Netflix 走向云端的男人”)与John Allspaw(现任Etsy的CTO)等人在Twitter 上展开了关于“微服务与单块应用”孰优孰劣的讨论1。
而在业界,真正为“微服务架构”这一架构风格正名的当属Martin Fowler 大叔于2014年3月在其博客发表的Microservices2一文,也正是此文让大众对微服务有了更加具体的认识。
2015 年,随着以Docker 为代表的容器技术的突飞猛进,微服务的部署难题迎刃而解,甚至有人将2015 年称为微服务架构元年。
而当我们跨入2016 年甚至是2017 年的时候,微服务已正值壮年。在书店及互联网上,关于什么是微服务的书籍、博文已成燎原之势。对于那些希望了解微服务“是什么”的人来说,这是一个美好的时代。但是就微服务生命周期各个阶段该“怎么做”而言,译者深感始终缺少一本接地气的实践指南。
当电子工业出版社计算机出版分社的张春雨编辑向我推荐这本书的时候,我的心里是纠结的。因为我目前本职的工作量是相当饱和的(老板请看过来~),但是却无法拒绝这本书。这不就是那部我寻找已久的接地气的“missing guide”吗?
尤其是将“微服务”与“Node.js”这两味如此珍贵的药材一起入药时,它们又会对“单块系统”中的哪些痼疾产生怎样奇特的疗效呢?说好了不剧透,那么就请读者亲自体会这一段接地气的技术之旅吧。
再次感谢张春雨编辑对我的信任,也非常荣幸能参与这本书的翻译。当然,翻译一本书并不是一件轻松的事情,我要感谢我的师弟郑伟杰,他与我共同承担了本书的翻译工作,正因为有了他的加入才让我得以工作翻译两不误。其次要感谢伟杰的女友,她为本书译文做了审阅与润色。最后,我要感谢我的家人,尤其是我的老婆和父母,你们是我坚强的后盾,让我能专注于做好自己喜欢的事情。
由于时间及能力所限,我们对于原书的理解及对译文的表述难免存在一些不妥之处,希望各位读者给予理解及反馈。我的邮箱是emsn1026@gmail.com,欢迎各位读者与我们联系。
赵震一
2016 年8 月于杭州