云原生时代来临之际,对软件架构设计的思考
预告篇
随着分布式中间件,容器编排,云计算基础设施等技术不断进步,应用软件的架构设计也逐渐在演变和进化。
从部署在单台或者小型集群上的单体架构软件,到运行在多个计算中心的成百上千的服务器节点上的微服务应用,再到主流云厂商上理论可以无限扩展的云原生技术架构,开发软件时会面临各种技术和架构的选型。我们开发软件,究竟适合用什么样技术呢,我将从中间件的视角,分析并给出一些建议。
中间件技术演进
分为三大类
1
JavaEE和Spring框架实现企业应用架构
各类Java中间件的架构设计和关键技术
2
SpringBoot微服务
服务治理的两种技术实现
运用DDD方法论指导微服务设计
3
Java主流云原生框架
函数化和无服务编程
适应容器和容器编排能力
围绕云计算设施来设计软件架构
云原生不是银弹!只是能充分利用云计算基础设施的一种软件设计方式。
可以预见,在一段时期内,基于虚拟机形态的云计算资源还会长期存在。而真正肯为信息化花大价钱的大型企业,还是会坚持部署私有云或者混合云。
程序员不能不懂操作系统,也不能遗忘web服务器知识,无服务器技术描述的“美好”,更多的是把服务器能力下沉到云计算设施了。
对于软件架构师,这是一个最好的时代,会面对各种各样的知识和“学派”,进行思想碰撞,需要能抽丝剥茧,从真正的用户需求中提炼并找到软件开发的真谛所在。