Category: Micro Service Architecture
1. 写在前面 作者近期针对企业数字化和架构转型思考后陆续写了三篇文章,这篇是第三篇,主题专注微服务和 DevOps 支撑技术,以 Netflix 技术栈为例。第一篇称为《企业的组织架构是如何影响技术架构的》[附录 8],主题是建立背景上下文 (background)。第二篇称为《将你的组织架构旋转 90 度》[附录 9],主题专注组织架构转型。 为啥前面要花两篇讲组织架构背景和转型?因为微服务和 DevOps 在本质上需要组织架构转型 (Re-org),组织架构对了,技术架构才能落地下来。如不考虑组织架构,直接切入技术架构(很多架构师的通病),则失败风险巨大。 为啥要以 Netflix 技术为例?因为 Netflix 是业界微服务和 DevOps 组织的楷模,有大规模生产级微服务的成功实践。而且其技术栈大部分开源,模块化抽象好,整个体系是一个样板。相关技术资料也丰富,可以从其公司的 techblog 或者 slideshare 上直接获得。本文是作者多年研究 Netflix 技术资料的总结,可以认为是对 Netflix 微服务技术架构的一次全面系统的反向工程。
http://blog.christianposta.com/microservices/low-risk-monolith-to-microservice-evolution/ http://blog.christianposta.com/microservices/low-risk-monolith-to-microservice-evolution-part-ii/ http://blog.christianposta.com/microservices/low-risk-monolith-to-microservice-evolution-part-iii/ 讲讲拆分:从单体式应用到微服务的低风险演变 从单体式应用到微服务的低风险演变 II
[source] 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候? Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。 作为一名 Java 程序员如果你已经厌恶了传统的开发模式,希望有一个全新的框架可以提供快速开发,简单集成的编程体验,强烈建议你学习了解 Spring Boot 。Spring Cloud 未来随着 Kubernetes 和 Service Mesh 的发展可能会有所弱化,但是 Spring...
微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统、提供更好的软件伸缩性以及提高组织的敏捷性。然而现实中较少有项目一开始就会选择使用微服务架构,绝大多数新项目在最初都会务实地从更容易掌控的单体架构起步构建,如果最终发现单体架构复杂到影响了团队的开发效率及软件的伸缩性等方面时,才会开始考虑逐步将系统往微服务架构做演进。 现实中任何软件架构都是诸多trade-off的结果,想要获得微服务架构所带来的好处也就意味着有能力承担它所带来的的副作用。Martin Fowler就曾在MicroservicePrerequisites一文中指出实施微服务所需要的先决条件,他用“个子是否够高”形象地比喻了微服务所需的技能门槛。 而对于既有系统,还需要一种务实的演进方法和实施策略,使得能够伴随着恰当的代码重构,逐步积累能力和完善基础设施,最终平稳的将其演进到微服务架构。 本文总结了一些从既有系统到微服务演进之路上会遇到的问题和解决策略。文中使用“既有系统”而非“遗留系统”,是因为遗留系统给人一种即将退出生命周期、行将就木的感觉,而我们则希望把精力投入到还有长远商业价值的系统上,通过合理的微服务演进让其具有持续的生命力。