云原生从字面意思上来看可以分成云和原生两个部分。
云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS、PaaS和SaaS。
原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性和分布式优势。
微服务
微服务解决的是我们软件开发中一直追求的低耦合+高内聚。避免牵一发而动全身,因为一个接口的调整导致多个服务受影响甚至下线。微服务的本质是把一整个服务群,分为多个单独的模块,各自负责专门的一部分,独立开发、独立服务。这样一个模块出问题了,其它模块还能正常对外提供服务。
DevOps
DevOps的意思就是开发和运维不再是分开的两个团队,而是你中有我,我中有你的一个团队。
持续交付
持续交付的意思就是在不影响用户使用服务的前提下频繁把新功能发布给用户使用,要做到这点非常非常难。现在半个月一个版本,每次上线之后都会给不同的用户造成不同程度的影响。
容器化
容器化的好处在于运维的时候不需要再关心每个服务所使用的技术栈了,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护,现在比较流行的工具是docker和k8s。
所以也可以简单地把云原生理解为:云原生 = 微服务 + DevOps + 持续交付 + 容器化