2014年春天,Netflix的交付工程团队开始着手实现一个伟大的目标——通过一个软件平台来实现端到端的全局持续交付,该平台有利于系统的可扩展性及弹性。为了满足Netflix的交付与部署需要,我的团队曾构建了两套不同的应用程序,但这两套应用程序都有演变成庞然大物的趋势,而且都没能满足灵活性和弹性的目标。更重要的是,这些庞大的应用程序最终还拖了我们的后腿,让我们跟不上合作伙伴的创新步伐。用户开始回避我们的工具,而不是使用它们。
很明显,如果想要向公司证明自己的真正价值并快速创新,我们需要把庞然大物分解成小的独立服务,这些服务要能随时发布。拥抱微服务架构给我们带来了希望,让我们能实现灵活性与弹性的双重目标。但是我们需要在一个可靠的基础上实现这一架构,它要能实现真正的并发、合理的监控、可靠易用的服务发现,运行时还要有极好的性能。
我们要在JVM上寻找一款框架,它要直接提供快速开发的能力和强大的运维能力。最终,我们找到了Spring Boot。
Spring Boot能用寥寥数行代码构建一套基于Spring并满足生产要求的服务,不费吹灰之力!实际上,一个简单的Spring Boot Hello World应用程序能放进一条推文里,这在短短几年之前还是完全不可能的事情。它还自带了不少非功能性的特性,比如安全、度量、健康检查、内嵌服务器和外置配置,这些都让选择Spring Boot成为了一件顺理成章的事情。
然而,踏上Spring Boot之旅后,我们却发现手头没有好的文档。要搞明白怎么利用好框架的特性,只能依靠源码,这可不是个让人愉快的办法。
Manning那本著名的《Spring实战》的作者再度接受挑战,将Spring Boot的核心用法写成了另一本好书,对此我一点都不吃惊。毫无疑问,Craig和Manning的团队又做成了一件了不起的大事!正如我们所料,《Spring Boot实战》是一本通俗易懂的好书。
从第1章引人入胜的介绍以及富有传奇色彩的90字符推文应用程序,一直到第7章对Spring Boot的Actuator(提供了很多生产应用程序所需的神奇的运维特性)的深度分析,《Spring Boot实战》做到了知无不言,言无不尽。实际上,对我而言,第7章对Actuator的深度分析解答了不少问题,这些问题自一年多以前我开始使用Spring Boot后,就一直萦绕在我的脑海里。第8章对部署选项的透彻研究让我大开眼界,了解到Cloud Foundry在云部署方面是如此简便。第4章是我最喜欢的章节之一,Craig揭示了很多强大的选项,它们能很方便地测试Spring Boot应用程序。从一开始我就惊喜于Spring的测试特性,而Spring Boot将它们发挥得淋漓尽致。
正如上文中我所说的那样,Spring Boot正是十几年来Java社区所探寻的那种框架。它那简单易用的开发特性和开箱即用的运维能力,让Java开发再度趣味横生。我欣然向大家宣布,Spring和Spring Boot已经成为了Netflix新持续交付平台的基础。而且,Netflix的其他团队也参考了我们的做法,因为他们也看到了Spring Boot的巨大益处。
我怀着兴奋与激动的心情,向大家强烈推荐Craig的书。作为Spring Boot的文档,本书可谓通俗易懂、趣味横生,是Spring Boot征服Java社区后,大家翘首以盼的佳作。Craig浅显易懂的写作风格,对Spring Boot核心特性与功能的全面分析,一定能让读者对Spring Boot有个彻底的认识(而且在满心欢喜的同时还肃然起敬)。
Craig加油!Manning出版社加油!那些开发出Spring Boot的天才开发者们加油!请你们一定坚持下去!正是你们确保了JVM的光明未来。
Andrew Glover
Netflix交付工程团队经理