2007年,Netflix开始了走向在云中全面运营的漫长道路。Netflix的大部分后端和中端应用都是使用Java构建的,Netflix工程部门构建了很多基于云的架构库和系统 ,比如用于负载平衡的 R ibbon,用于服务发现的Eureka和用于容错的Hystrix。将所有这些组件组装在一起的库有 Governator 依赖注入与生命周期管理和 Archaius 配置。所有这些Netflix库和系统都是在2012年左右开源的,至今仍被社区使用。
2015年,Spring Cloud Netflix达到1.0。这是一项社区努力,使用Spring Boot而不是用Netflix内部的解决方案就可将Netflix OSS组件拼接在一起,随着时间的推移,这已成为社区采用Netflix开源软件的首选方式。
我们很高兴地宣布,从2018年开始,Netflix也正在向Spring Boot过渡,将其作为我们的核心Java框架,通过社区对 Spring Cloud Netflix 做出贡献。
为什么Netflix在内部解决方案上投入了大量资金后才采用Spring Boot?
在2010年初,Netflix云基础架构的关键要求是可靠性,可扩展性,效率和安全性。由于缺乏合适的替代品,我们在内部创建了解决方案。快进到2018年,Spring产品已经发展和扩展以满足所有这些要求,其中一些也是通过使用和改编Netflix自己的软件!
此外,社区解决方案已经超越了Netflix的原始需求。Spring为数据访问( Spring-data ),复杂的安全管理( spring-security ),与云提供商( spring-cloud-aws )的集成等提供了丰富的经验。
Spring及其功能的发展与我们发展要求非常吻合。。Spring表明他们能够提供经过深思熟虑,有文档记录且持久的抽象和API。他们与社区一起提供了这些抽象和API的高质量实现。这种抽象和实现方法与Netflix核心“ 高聚合,低耦合 ”的原则相吻合。利用Spring Boot,我们可以为企业构建,同时保持对业务的敏捷性。
向Spring Boot过渡不是我们单独进行的。在整个过程中,我们一直与 Pivotal 合作。无论是Github问题和功能请求,会议的现场对话还是Gitter / Slack的实时聊天,Pivotal的回应都非常出色。这种沟通和支持水平使我们对Pivotal维护和发展Spring生态系统的能力充满信心。
展望未来,我们计划利用Spring中的强大抽象来进一步模块化和发展Netflix基础架构。如果存在强大的社区方向 - 例如即将推出的Spring Cloud Load Balancer - 我们打算利用它们来取代老化的Netflix软件。哪里有新的创新 - 例如新的 Netflix自适应并发限制器 - 我们希望帮助将这些创新贡献给社区。
Netflix OSS和Spring Boot的结合开始于Netflix之外,我们现在在Netflix中重新拥抱它。这只是漫长旅程的开始,我们一定会提供更新和有趣的发现。我们要特别感谢多年来为这项工作做出贡献的许多人,并希望成为未来创新的一部分。