云原生解决什么问题?


非常多的人在讨论云原生,那什么是云原生?解决什么问题?
上云的目的是利用云平台的优势,比如按需分配、弹性伸缩都是云原生的关注点,但应用程序并不能轻松的上云。所以想要应用程序可以利用云平台的优势,就需要对应用系统进行云原生改造。
那么什么是云原生?
Pivotal给出的云原生应用的几个特征可以参考,符合12因素应用、面向微服务架构、自服务敏捷架构、基于API协作及抗脆弱性。
其实云原生是一个思想集合,云原生技术包括技术维度、应用管理维度、企业管理维度等。
技术维度:微服务、敏捷基础设施
应用管理维度:DevOps、持续交付
企业管理维度:康威定律
更细化的架构维度特质包括:
- 模块化应用
- 容器化部署
- 自动化测试和部署
- 监控和日志收集
目前的服务网格实现的功能越来越多,包括服务发现、负载均衡、故障恢复、指标收集、监控告警等研发与运维需求,借助于Mesh方案可以实现,如AB测试、金丝雀发布、限流、访问控制、端到端认证等。

技术之外的事情
云原生除了对应用系统做了技术维度优化之外,还在流程与组织维度做了优化。它解放了开发和运维,让研发与运维的工作变得简单。云原生还关注于规模,让分布式系统具备了水平扩展能力,同时具备了故障之后的快速恢复能力。