Mutable Monster Server
最早的巨石架构,应用本身包含状态,整个应用部署在物理节点上,要升级通常需要对整个应用升级,一般需要停止服务。并且这样的架构很难横向扩展。
Immutable Server and Reverse Proxy
过渡到微服务后,应用是不可变的服务部署在容器或虚机上,服务自身不包含状态,利用反向代理提供访问。
这样的架构便于升级和横向扩展,当需要升级的时候,分配新的物理节点,不是新版本的应用到该节点。
重新配置代理,切换到新版本的服务。
然后下线旧版本。
这样的部署方式可以很方便的实现在线升级。同时,水平扩展也变的容易。
Immutable Microservices
不可变的微服务部署和前一种模式类似,但是当升级时,不需要配置新的物理节点,只需要创建新的容器就好了。