云原生的价值以及几点趋势

最近一直在思考云相关的事。

漫谈云原生

首先,云原生的含义是什么? 其实就像中台一样,各有各的说法。我尝试说说我的看法。

我把我的软件部署在云上了,是不是就是云原生了? 答案是不一定。如果你把服务直接部署在弹性服务器上,比如云主机上,这不叫云原生。因为他和传统的部署模式没有区别。

所以,云原生其实和传统部署是对应的。传统部署的模式非常可怕,比如很多企业一旦在自己内网组建了服务之后,就基本不可能迁移或者动他们了。如果你是传统软件提供商,可能最头疼的就是给客户进行部署,因为你要面对各种奇葩的部署环境。

所以,这个时候,一个新的部署模式来了,就是云原生。如果单单说概念,可能说不清,我们从具体的实现者的角度去思考。云原生现在的标准实现是K8s,K8s 的最大意义在于,软件一旦实现K8S支持,就实现了跨平台,跨的是啥平台呢?私有平台和云平台。所以为什么要软件云原生,其实就是要支持K8S。

现在我们再总结下:云原生就是要你的一个或者一组软件,可以很轻松的部署在K8s上,并且遵循K8s的最佳实践。我后面半句说要遵循K8s最佳实践,显然是指,不是能够部署在K8s,就叫云原生。比如有人在K8s里跑起了一整套Hadoop,然后在Hadoop上跑Spark,我们说spark云原生了么?显然不是。Spark on K8s,才能算是spark云原生。这就需要Spark开发K8s的 Operator,这样才能做到申明式部署而不是命令式部署。

下面我们再说说技术上未来的几个大趋势。

上云不是上不上的问题,是时间问题

首先,上云已经无需讨论,就是趋势,大部分企业上云,不是上与不上,而是进度问题。这点上,美帝是遥遥领先。中国还需要用户教育。

云原生是解决多云支持的根本

未来最大的不稳定性来源于云自身的故障。所以多云部署是在上云后必须要解决的问题。解决多云部署最核心的,就是你的应用不仅要能上云,还要支持云原生,这样,你才可以非常轻松的做跨云部署。云的标准已经确定,就是K8s,大部分云都会走这个支持。就像HDFS文件系统API,你云上的不管啥对象存储,都需要支持。这意味着,你的应用可以很轻松的混跑或者在不同云之间迁移。

云的未来是比拼谁的云原生软件服务提供商

Snowflake已经击败AWS Redshift,而比如Databricks也在快速崛起。这些厂商都是完全基于云对企业提供服务的,他们压根不考虑私有部署的支持。这是一个很大的变革。并且,他们最终都会击败云厂商自身提供的类似服务。

未来的格局必然是,云厂商提供基础资源,以及实现K8s标准,各个软件企业基于K8s标准实现各自的软件产品,运营于云上,对客户提供服务。

既然云厂商们未来的标准会是一致的,那么最后比拼的就是谁云上软件多,质量高,而这些软件都会来自第三方厂商。

云其实就是应用商店,应用商店的核心还是上面的软件。

对开发者而言,意味着什么

你需要转换思路了:

  1. 熟悉云API
  2. 知道如何让你的应用支持K8s(云原生化)
  3. 错过了Web,错过了移动App开发,不要再错过云原生软件了。

迁移和发展无需一步到位

云原生不一定要一步到位,可以先上裸云,然后将应用慢慢上云的托管K8s上,混合跑着。你慢慢熟悉了K8s后,再把大部分应用都切换到K8s里。

接着就是多云支持,做灾备相关的工作了,因为你已经完全云原生了,相对来说,就好做多了。

results matching ""

    No results matching ""