最早注意到云原生这个概念是某次看文章说Kubernetes是作为CNCF(云原生计算基金会)的主要项目来开发的,该基金会属于Linux基金会旗下,还包括被熟知的prometheus,istio等开源项目, 似乎可以理解为Kubernetes生态系统.
至此Kubernetes把微服务,十二要素,服务网格/Service Mesh等串联了起来, 符合这些概念的应用架构就是云原生应用.
云原生计算
提到云计算,现在主流的分类及代表是:
- IaaS/基础设施:AWS,OpenStack
- PaaS/平台: Heroku, Cloud Foundry
- SaaS/软件,应用:
从云计算的角度看, 云原生计算可被看做是最新发展阶段.云原生/Cloud Native的代表技术:
- 容器
- 服务网格
- 微服务
- 不可变基础设施
- 声明式API
相比传统应用架构, 云原生具备的优势是:
- 敏捷
- 可靠
- 高弹性
- 易扩展
- 故障隔离保护
- 不中断业务持续更新
技术圈的造词运动没有停止过, 下面顺便学习下这两个新词:
- Serverless/无服务器技术: 也不算新概念,这里并不是真的不需要后端服务器,而是后端服务以服务的形式提供,或被称为Backend-as-a-Service/BaaS,通常简化移动端开发部署的成本,前几年最成功的代表Parse被Facebook收购后很快关闭服务,BaaS也随之不被提及.
- 这两年随着Amazon Lambda服务的火热, ServerLess又被提起,同时造了个新词:FaaS/Function-as-a-Service, 这可能是云服务平台乐于推广的,不过现在看来,应用场景似乎比较受限.