服务部署在k8s上,日常工作中用着Devops, 看文章时候遇到各式各样的云原生的概念,但这到底是啥东西?根本就没有基本概念。在理解k8s之前,是该好好了解一下云原生的概念了,免得后面出去贻笑大方。

    从参考文章中,看到了一句话,非常的装逼:技术的变革,总是思想先行。云原生就是一种构建和运行应用程序的方法,是一套技术体系和方法论。所以,云原生是一个组合词语:cloud + native。

    cloud表示应用程序位于云中,而不是传统的数据中心;native表示的是应用程序从设计之初就考虑到云的环境,原生为云而设计,在云上以最佳的姿势运行,充分利用和发挥云平台的弹性+分布式的优势。

    Pivotal官网对云原生概括为4个要点:

    1. 微服务: a. 应用之间使用restful通信(为什么一定是restful, 不能是rpc调用或者其他方式吗?)b. 可以被独立部署,更新,scale 和重启(赞同)
    2. 持续交付:可以频繁发布,快速交付(?不是很理解,指的是不停机更新,有别于传统的瀑布式开发模型,开发版本和稳定版本并存,感觉是一种敏捷开发的模型)
    3. devops: a. 有自动化发布管道,有完善的CI工具 b. CD, 可以快速部署到生产环境 c. 开发和运维协同合作(CICD的定义)
    4. 容器化:Docker已经成为了容器化实施标准,是微服务的最佳载体!!!!

    云计算的3层划分,即基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)为云原生提供了技术基础和方向指引,真正的云化不仅仅是基础设施和平台的变化,应用也需要做出改变,摈弃传统的土方法,在架构设计、开发方式、部署维护等各个阶段和方面都基于云的特点,重新设计,从而建设全新的云化的应用,即云原生应用。

    参考资料:什么是云原生