什么是云原生?
云原生从字面意思上来看可以分成云和原生两个部分。
云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS,PaaS和SaaS。
原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性和分布式优势。那具体要怎么利用呢,请参考下图:
1、微服务
微服务解决的是我们软件开发中一直追求的低耦合+高内聚。传统实现组件的方式是隔离独立的部分或抽取公用的部分,构建共享库,从而达到解耦和复用的效果。共享库的变化意味着整个应用要被更新,并且需要被重新部署。如果应用由多个共享库组件组成,那么任何库的变更都将导致应用重新发布。而微服务架构的一个显著优势是,能以松散的服务方式,构建可独立化部署的模块化应用。当然,分布式调用会使效率降低,而且可靠性和稳定性也严重依赖于网络状况。
2、DevOps
DevOps的意思就是开发和运维不再是分开的两个团队,而是你中有我,我中有你的一个团队。
3、持续交付
持续交付的意思就是在不影响用户使用服务的前提下频繁把新功能发布给用户使用,要做到这点非常非常难。因为每次上线之后都会给不同的用户造成不同程度的影响。
4、容器化
容器化的好处在于运维的时候不需要再关心每个服务所使用的技术栈了,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护,现在比较流行的工具是docker和k8s。
综之,可以简单地把云原生理解为:云原生 = 微服务 + DevOps + 持续交付 + 容器化