上QQ阅读APP看书,第一时间看更新
1.2.4 应用架构的升级
应用使用云原生技术有如下两种方式。
1)re-platform:这种方式是在不重构代码或不重写代码的情况下,尽量采用云原生技术,比如,使用容器对应用进行打包和部署,把Kafka替换为云服务,把MySQL替换为RDS(Relational Database Service,关系型数据库服务),等等。
2)re-build:这种方式需要重构甚至完全重写应用,比如,把单体架构(Architecture)改为微服务架构,实施存储状态分离,业务实现采用Serverless技术编写,采用事件驱动架构,等等。
这里没有把re-host放进来,是因为re-host只是做计算、存储、网络的一对一迁移,整个系统的运维模式、软件打包方式都没有发生变化,也没有采用PaaS替换原来的服务,所以可以认为re-host不是一种云原生升级方式。
比较re-platform与re-build,两者最大的差别是前者没有进行架构升级,这样就很难构建更好的现代化应用。从现代化应用特征的角度来说(参考1.3.1节),基于容器、可管理、认证和鉴权等的云原生架构确实不需要re-build,微服务、无状态应用、API会优先选择应用重构,而弹性、可观测性、高可用、自动化等在应用重构的情况下会做得更好。
因此本书将从不同的角度论述应该如何对应用进行云原生架构改造,从而让应用成为更好的现代化应用。