标准化和生产环境就绪的微服务
微服务作为一种分布式的软件架构风格几乎已经席卷软件开发的各个角落;尽管它从被明确提出之后也很快经历了大量的质疑、批判乃至否定; 然而背后实践这一符合康威定律的简单(将问题分而治之)而又复杂(需要解决服务本身引起的的许多复杂的基础设施问题)的架构风格的组织却与日俱增。 其原因也不过是随着云计算技术的逐步深入,分布式...
微服务作为一种分布式的软件架构风格几乎已经席卷软件开发的各个角落;尽管它从被明确提出之后也很快经历了大量的质疑、批判乃至否定; 然而背后实践这一符合康威定律的简单(将问题分而治之)而又复杂(需要解决服务本身引起的的许多复杂的基础设施问题)的架构风格的组织却与日俱增。 其原因也不过是随着云计算技术的逐步深入,分布式...
云原生应用试图从思想层面对我们编写和发布软件的方式来一次深刻的革命;这一设想其实是基于目前的大部分云计算平台上运行的应用都是从传统的非云平台环境上移植过来的。
流式编程在微服务架构风格越来越流行的背景下日益引起开发者的关注 (前文有一些简单探讨) ,新的Java语言规范加入了流的概念从语言库上添加了对FRP的支持。 Spring最新的5.0版本更新也顺应这一潮流,加入了原生支持FRP的行列。
流式编程或者响应式编程则是一个不断进入我们视线的设计概念;它采用声明式编程范式,并将数据流和数据更新的处理作为程序运算的核心。 由于函数式编程本身即强调声明式编程,这使得用函数式编程的语言或者工具来实现响应式编程更自然清晰, 一般人们将二者的结合称为函数式反应式编程或者FRP。 FRP最早可以追溯到微软和耶鲁的两...
大部分的规模较大的商业应用软件后端系统如今都采用了分布式软件架构,并沿着SOA -> 微服务 的路径在往前演进;并按照领域驱动设计的绑定上下文的设计思路来切分服务; 服务之间的接口则不约而同地选择了HTTP协议作为基本的交互协议,背后的原因很大一部分应该来自于HTTP协议简洁、清晰的设计(尽管功能非常复杂)...
API网关是微服务结构中的一个重要的边界组件,用于隔离外部用户和内部的服务部署,完成诸如安全、鉴权等集中化的功能。 边车代理则是服务网格架构中的一个重要概念,两者从逻辑上都是作为基础设施和业务的核心功能逻辑相分离的,有一定的相似性而又有很大的不同。
Kafka这一孵化于LinkedIn的开源项目正得到越来越多组织的关注和使用;其优雅的设计和对实时性处理的探索有很多值得学习的地方。 本文试就个人学习过程中的一些思考和理解来分析为什么Kafka可以兼顾可靠性、一致性和尽可能强的实时处理能力。
数据访问和管理是软件设计需要解决的一项非常关键而又基础的问题;从早期的大型Unix应用开始,到基于C/S架构的商业应用, 乃至在互联网大潮中取得压倒性优势的基于B/S架构的企业应用,对于如何管理、访问、保存、检索、备份、维护数据这一基本问题, 无数先辈们创造了丰富多样的技术选项,然而随着行业潮流的变换,不同的技术...
微服务是个非常热门的话题,最近几年随着互联网的深入演进和云计算的逐渐普及,几乎所有的公司、技术社区、组织都是言必谈微服务; 似乎没有微服务都不好意思说自己能保持技术能力的与时俱进了。这厢微服务还没有完全在实践中铺开,那边潮头Amazon又挑起了无服务器架构的大旗,引来无数人的关注。 本文试图对这些概念和架构思想做...