在CNCF所推崇的理念里面有个叫做避免云厂商的Lock in,试图通过一些跨云厂商的通用技术框架,来避免被云厂商锁定。作为驻云,很多时候有机会接触一线的客户,被云厂商锁定是一个核心痛点吗?
阿里云MVP时间特邀上海驻云科技创始人蒋烁淼,与技术创业者们促膝长谈。
「如果对阿里云有异议,可以一键迁移到另一朵云。看似带来灵活性,但也带来另一个问题,就是很难发挥出云原生的价值」
所谓避免Lock in,更多的是从技术人员角度出发的。举个简单的例子,所谓避免Lock in,就是说今天可以在云上面搭建一套容器的服务,这个容器服务背后的节点可以跨多个云,甚至不受云厂商所有本身提供的技术所束缚,通过开源的技术去构建一切应用。也就意味着今天如果对阿里云不满,可以一键很快的迁移到亚马逊或者其他地方去,或者反过来也是可以的。看起来带来一些技术上的便利性和所谓的灵活迁移性,但也带来另外一个问题,就是很难发挥出云原生的价值。这个云原生不是CNCF的云原生,而是云厂商原生的特定技术的价值。
「完全遵循纯粹云原生宗旨时,看似避免了技术Lock in,但其实是被技术团队绑架了,而不是被云厂商绑架了」
再举个例子,当考虑使用阿里云的Polar DB或者AWS、Azure的那些数据库时,如果遵循纯粹云原生、云原生的原教旨主义,是不能用这两个数据库的,为什么?因为这两个数据库背后的锁定性远远超过主机上的镜像。在主机上无论是否使用容器,迁移成本还是相对比较低的。但如果用了这些,迁移难度就很大了。更别说用了阿里云的Max Computer或者用了阿里云的一些更高阶的技术服务。而如果不用这些东西,意味着要通过云原生本身推荐的技术。
比方说不用阿里云的Redis,得自己去搭建Redis;不用阿里云的MQ,就是消息队列,得自己去搭消息队列;不用阿里云分装好的EMR,得自己在容器上部署Hadoop。当然也可以这样操作,确实也没有被任何一个云厂商绑架,但是它所带来的另外一个问题,自身的团队里面要有足够的能力去Handle这些所有刚才提到的技术。不能再开箱即用,得自己要去运维、管理,甚至备份数据。其导致的成本就需要去评估,这个成本高低如何。虽然看似避免了技术Lock in,但如果跳开技术的框架去思考,站在公司的立场上思考,其实是被技术团队绑架了,而不是被云厂商绑架了。所以这个事情,最后还是都会锁定。
设想在试图避免云厂商lock in时,会面临什么问题?比如说团队里一个非常懂Redis运维的同学离职了,如果不补这样的人,可能Redas出故障的时候那时候就麻爪了。但如果用的是云厂商提供的Redis,那有问题就找云厂商兜底,就是这么一个逻辑。所以它的锁定逻辑是不同的。因为今天用的是一个技术,而每个公司所具备的技术能力是有限的,不可能也不应该把所有的宝押在企业自身必须掌握所有的开源技术上,这个风险是非常非常大的。
「对于企业的业务发展,是使用新兴技术为企业提高更高的算力、存储能力价值大,还是不被绑架价值大?」
作为驻云,很多时候有机会接触一线的客户,会看到一些坚持用云原生或者传统架构的公司,会导致技术无法升级。为什么呢?一旦升级,比方说需要用到一些MangoDB这些新兴软件技术的时候,如果本身公司没有掌握这项技术的人,就别说要把这样的技术部署在云上,或者说在云原生的容器上,这个难度会上好几个台阶。在这种情况下,有些公司甚至就选择干脆不上这些技术,因为上了这些技术就会被云厂商绑架。
但对于企业的业务发展,是使用新兴技术为企业提高更高的算力、存储能力价值大,还是不被绑架价值大?
这就是一个权衡。当然比如对于一些超级头部的互联网公司,可能考虑和云厂商之间,未来可能在商业上会产生竞争,或者有些敌对关系,所以自身投入大量的资源资金,去保证业务系统不被任何一个云厂商绑架。这是这种企业的战略考量。但对于绝大多数企业来说,甚至包括多云,其实都是一个花了额外的成本买了一个心理安慰。因为不同的云厂商看起来提供的产品大同小异,但实际技术上,包括协议上、API上似乎都不怎么兼容,包括性能上。如果要跨云,意味着开发团队要掌握两种以上的技术栈,这个事情得到的好确实可以在不同的厂商之间游刃有余,但坏处就是会有一个很大的迁移成本。
「纯粹追求完全的多云或者跨云,不被云Lock in这件事情,对于95%以上的企业是没有意义的」
回过头来看阿里云发展的这十年里最早喊出的口号,叫做去IOE,但是为什么会喊去IOE,就是最早被IOE的技术绑架了。而反向到今天,阿里云在一两个月前发布了Polar DB for Oracle。现实是这样的,因为客户被Oracle的技术栈绑架了,今天要发行产品,即使性能再好,也得兼容客户以前所有的技术栈,兼容他的协议,而并不是说非得另起炉灶搞一套。
今天很多企业或者开发者陷入于在技术上倾向于一个平台,这个反而会导致本身的学习成本和选择面变得非常广,而这个广又带来很大的成本,这不是聪明的选择。而云厂商们要做的事情是,大家能不能标准稍微统一一点,不让大家这么痛苦,这个是云厂商自己的一个战略决策,这也说不清楚。所以纯粹追求完全的多云或者跨云,不被云Lock in这件事情,对于95%以上的企业是没有意义的,可能对5%的头部企业兴许有些意义。
最近关于“云原生”比较火的,包括还有很多关于CNCF、开源基金会的讨论。驻云也是CNCF成员之一。人类社会发展过程中炒概念是所有人不论任何过程中都不可或缺的。所以在理解什么叫云原生的时候,也许会有些困惑的。
其实云原生本质脱胎于容器和容器编排,以及容器编排相关的业务体系。在容器这个技术做出来以后,到现在包括Kubernetes这些东西的诞生以前,可能早五年、三年前,阿里巴巴从阿里云角度来说是一个自有的分布式系统叫“飞天”,在开源世界里面那个对应的东西叫Open source,但最近这几年Open source提的越来越少了,不多了,反而兴起了另外一个云原生或者说容器。
「与其说是云原生,更不如说这个东西不叫云原生,可能是容器原生更好」
回归本质。第一个,从技术本身来说,这种弱资源隔离,就是LXC基于容器的这个技术,确实比模拟虚拟化技术相对来说对性能的优化等都有明显的好处的。但实际上与其说是云原生,更不如说这个东西不叫云原生,可能是容器原生更好,因为可以看到所有云原生所讲开的这些,包括监控体系的Prometheus,也是阿里巴巴弄的,包括一些所谓云原生的组件,实际上都是围绕着Kubernetes编排和容器技术展开的。
回过头来这里就有一个让人最困惑的东西,什么是云?在2010年参加一个活动的时候,当时主持人也不是一个技术人员,他当时就说云是什么?“云总搞的大家云里雾里的。我自己对于云的理解是这样的,首先站在整体服务的立场上,我认为云是把技术变成服务,就是大家说的IaaS、PaaS、SaaS这个角度,把技术变成服务的方式商业输出的一种模式。比方说我们看到阿里云最基础的产品ECS,它就是把物理硬件和操作系统变成了一种虚拟机的商业模式输出给客户,而不需要客户自己去买硬件服务器,自己装操作系统,或者自己上一个虚拟化软件,所以云在我看来是一个服务的概念。”
「云原生本身强调的是在容器周边做一套软件体系或者应用体系,这个跟云不云没有关系」
但这里又有一个困惑了,云原生本身强调的是在容器周边做一套软件体系或者应用体系,而这套应用体系本身跟上述所讲的商业上的云没有什么关系,因为不管是在物理服务器上,或者说在裸金属服务器上,或者在虚拟机上部署都可以的,这个跟云不云没有关系。
那么这个东西为什么要叫Cloud native?其实它本质更多的是基础技术的迭代,从原来的虚拟化转向容器化带来的一系列的革新,包括微服务化所带来的。但至于它为什么叫云原生,可能更合理的说法,是叫云时代应用的原生,或者叫云时代原生的应用。因为确实容器也好,或者一些其他的相关技术不跑到云平台上面,而是跑在物理硬件上,它效能发挥的是相对比较差的,不是说不能跑。这个词语太迷惑,很多人说云原生,是把容器等于云原生了。
「从纯商业角度来说,如果买物理硬件,开的发票是13个点的增值税,如果买神龙服务器开的是6个点的服务费」
这里有一个很有趣的细节,就是自己家买硬件服务器放在自己的IDC或者自己的机柜里面,和在阿里云上买神龙服务器那个裸金属服务器有什么区别?裸金属服务器就是容器,而你自己买的物理硬件它就是传统IT。所以如果能理解这一层,大概就理解云和传统的卖货模式的最大区别。开玩笑的说,从纯商业角度来说,如果买物理硬件,开的发票是13个点的增值税,如果买神龙服务器开的是6个点的服务费,这就是很大区别。
想查看对话驻云创始人系列更多后续内容,可点击以下链接查看!
对话驻云创始人 | 七问技术创业者(一):AI、IoT,你是等技术成熟后用,还是提前布局?
对话驻云创始人 | 七问技术创业者(二):云计算、大数据,你要掌握底层技术,还是会用就够了?
对话驻云创始人 | 七问技术创业者(四):“业务中台”and “数据中台”,你真的了解吗?
对话驻云创始人 | 七问技术创业者(五):创业者,如何让你的商业得到快速验证和落地?