云原生的历史

  1. 云原生技术是Pivotal公司率先提出来的
  2. 2008年,Spring收购了Cloud Foundry,其提出了标准化打包部署的思想以及实现,Docker也是受其启发
  3. 2009年,Spring(含Cloud Foundry )被VMWare收购,集齐了应用开发,应用打包部署,虚拟机集群平台
  4. 2013年,VMWareEMC共同成立了一家公司,Pivotal SoftwareSpringCloud Foundry,RabbitMQ等整合并基于虚拟机平台跑了起来,成为了最早的Pass平台。
  5. 2003年,EMC收购了VMware。2015年10月,EMCDELL收购
  6. SpringBootRedisGreenplum等都是Pivotal推出的产品,被广泛使用

云时代的到来,解决了传统应用部署在物理机上的弊端,比如典型的应对突发热点

  1. 2006年,AWS成立,云计算大战开启
  2. 2009年,阿里云成立
  3. 2010年,OpenStackNASA发布,可搭建私有云,开源框架
  4. 2013年以前,云计算一直使用虚拟机技术,将硬件资源做为基础设施提供出来,属于Iaas
  5. 2013年以后,云计算进入Paas时代,提供的服务由虚拟机变为了应用运行平台,容器时代来临

Cloud Foundry就使用到了容器技术(Namespace,Cgroup进程隔离技术)

在互联网发展的大背景下,软件架构迎来了微服务架构,Spring Boot,云计算也为其生长提供了土壤,继而促进了容器技术的发展,同时容器技术又促进了微服务的发展,进入了全民微服务的时代(Cloud Foundry已经没落,docker崛起(制胜法宝就是Image))

  1. 2013年,Pivotal提出了云原生的概念。微服务,微服务程序设计,持续集成,敏捷开发。主要是为了推行旗下的SpringCloudFoundryVMWare vSphere

云原生战争打响。

Cloud Foundry引以为傲的就是其标准化打包部署流程,但是其为每个语言设计了一套打包方式,比较混乱,Docker看到了其中的机会,提出了创新性的解决方案,镜像。

镜像提供了一个完整的开发环境,解决了本地环境和远程环境不一致的问题,以及不同机器复用的问题,占领了Paas市场。

这一局 Docker完胜,Pivotal想要统一市场的行为,也触动了另一个巨头,Google,其也发起了反击。

Google错失了云计算时代(做的产品不受欢迎),直到AWS崛起,才吸取了教训

  1. 2015年,Google牵头成立了CNCF,云原生计算基金会

为了和Pivotal做区分,CNCF是朝着ServerLess的方向发展,以容器和k8s做为核心。

CNCF的云原生逐渐成为正统,现今的企业逐步云原生化,容器,微服务,服务网格等都已落地,并且成熟

这一局 Google完胜。

云原生的场景也越来越多,比如边缘计算是其中的热门

K8s做为云原生的操作系统,承担的功能也越来越多,导致其功能越来越复杂,实施成本过大,比如现在热门的智能运维,就是降低其复杂性的

Go和云原生

  • 目前的云原生核心是两大技术,容器docker以及容器编排k8s,恰恰这两个都是Go语言开发
  • 背景上来说,CNCF本身就是Google发起,而Go语言又是Google开发
  • 做为云原生语言,需要具有开发大型分布式应用的能力,又要易用能普及,就只有JavaGo两种语言可选
  • Java所谓的跨平台特性,对以容器为核心的云原生应用来说,并没有实际意义,并且Java需要额外的环境(JVM)支持,资源开销大,存在资源浪费,降本增效是现今的趋势,如何提高机器利用率,是各大公司和厂商的追求
  • Go的缺点以及历史包袱较少,对网络,对资源的控制更好一些,成为首选语言。
  • 我认为根本原因还在于Go和云原生都属于新生事物,不期望有历史包裹,Go的可塑性也更强,更契合当下的背景
  • CNCF如今已经有上千个项目,据不完全统计,近80%的项目采用Go做为其开发语言,由于Go的可执行文件不依赖于其他环境,同时资源占用低,更加契合容器,越来越多的实施云原生的公司,将目光转向了Go,故现在大多数公司都呈现多语言开发的状态

更多推荐