此文已由作者刘超授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
互联网这个词目前已经普遍化,这大概也归功于罗振宇的罗辑思维对于互联网概念的极力宣扬,似乎不加上互联网三个字,企业宣传都张不开嘴。于是互联网+这个名词就随处可见了。
支撑互联网化的一个重要的力量就是云计算。但现在的云已经外延被扩大的不知道到哪里去了,什么财务云,发票云等等,让我们这些做计算、网络、存储、中间件、大数据的,都没办法和这些外延清晰的区分出来。
现在人工智能火了,也加入到了云计算的范畴中来,因而各种智慧云都出来了,智慧教育、智慧医疗、智慧交通等。
传统行业中干辛苦活的,眼睁睁的看着互联网公司双十一一天赚了一年的钱,于是红着眼睛也想纷纷上船,踏上互联网化、云化、智慧化的浪潮。
我们来盘点一下当前的现状,展望一下未来。
互联网都火过啥,从最早兴起的三大门户网站,Google退出后大家争相追逐的搜索引擎、社交网站、电商、微博、团购、互金、视频网站、O2O、直播、单车等等,一波接着一波,长江后浪推前浪,前浪死在沙滩上。
他们都经历着下面的这个循环。
首先要有个人有个创意,做一个没有的产品或发明一种没有的商业模式,当创意得到市场认可的时候,就迎来了市场的爆发,大家纷纷涌入,做同质化的产品,将一个新兴的市场变成一个红海,在红海中进行生死较量,有的退出了,有的倒闭了,有的被兼并,最终只能剩下两三家,或者成为巨头,或者被巨头收购。
前面所说的这样浪潮,都没有逃脱这个循环,唯一不同的是,这个循环越来越快,门户网站的角逐持续了好多年,而最近的这些浪潮一般十八个月就会见分晓。创业公司越来越发现,融的资看起来一轮比一轮大,但是都花不了太久时间。
市场没有耐心,你不采取激进的市场策略,竞争对手会的,你便宜,对手更便宜,你免费,就有人敢补贴。
投资人没有耐心,不在短期内拿出傲人的成绩,你就不会有下一轮,所以不花钱,被对手的声势碾压了,没有下一轮,是个死,使劲花钱,把对手碾压了,在胜出之前,没有下一轮,还是个死。
核心员工没有耐心,如果想公司有较快的发展,必须要找到牛的人,牛的人往往很贵,会让你融的钱花的很快,当然有一部分创业者可以通过愿景和期权留住牛人,但是这是有实效的,牛人往往社交面广,有独立的思维,不是那么容易被忽悠住的,牛人往往身怀绝技,容易被挖,所以除了画饼,你还需要不断的兑现一些饼,例如你的生意要在较短的期限内有一个起色,或者到另外一个高度。
所以随着这个循环越来越快,留给互联网公司的时间越来越少,能胜出的互联网公司往往具备快速的迭代速度,对传统行业进行冲击。而传统行业的老板们也想通过加上互联网能力,获取相同的竞争优势。那到底什么才叫互联网化呢?
吴恩达在AI Conference的讲座中,提到了他对什么是互联网公司,什么是AI公司的理解,我觉得非常的深刻。
(1) 商场 + 网站 ≠ 互联网公司
如果你是一个传统的商场,仅仅是做了一个网站,那不叫互联网化。
真正标识一个互联网公司的,有以下几点:
(2) 传统科技公司 + 机器学习/神经网络 ≠ AI公司
如果你是一家传统公司,只是其中的一个部门用上了机器学习和神经网络技术,那你不是一家AI公司。
一家真正的AI公司,应该有如下的特点:
在AI公司里,产品经理在和工程师沟通的时候,需要学会运用数据,要求精确的反馈。产品经理除了有客户思维,应该有数据思维,就像吴恩达说的一样,做一个人工对话机器人,产品经理画一个框,里面一个小人,是没有意义的,要知道数据从哪里来,如何获取这些数据,如何利用这些数据,如何定量的评估人工对话机器人的效果是否有提升,这不能感性的来,也是要有数据。
要想让你的公司尽快的实现互联网化,需要从三大架构考虑。
当前云化已经成为业内的共识,但是云计算的目前的状态还处于云计算1.0时期,也即仅仅实现了资源层面的弹性。
什么叫弹性呢?
说的通俗一点就是灵活性,主要包含两个方面的灵活性,一个是时间灵活性,也即想什么时候要就什么时候要,一个是空间灵活性,也即想要多少,就要多少。
人们之所以云化,是因为物理机是无法实现这种灵活性的。物理机有四个方面的不灵活,一是采购不灵活,采购期短则一两周,长则一两个月,二是粒度不灵活,无法采购一个1核1G1M带宽的机器,三是复用不灵活,同样一台物理机,一个人用过了,很难复原成原样,让另外一个人使用,除非重装系统,四是运维不灵活,很多事情要去机房才能搞定,而机房往往在最偏的地方。
虚拟化技术解决了这个问题,点即可得解决采购灵活性问题,可大可小解决粒度灵活性问题,即创即销解决复用灵活性问题,界面运维解决运维灵活性问题。唯一没有解决的问题是调度灵活性,需要手动运维,因而规模有限。
云计算的调度技术使得集群规模非常的大,并且可以自动调度,从而从客户的角度,真正实现资源弹性。
但如果云计算不管应用,则会是什么样呢?例如平时我们只需要十台虚拟机,但是双11的秒杀场景,我们需要一百台虚拟机,有了云计算资源层面的弹性,我们只要在云平台上一点,很快90台虚拟机就创建出来了,但是里面的应用呢?
还是需要我们的运维人员一台一台去安装,实在是太复杂了,无法实现真正的弹性。
于是我们开始想云计算如何来管理应用。
我们把应用分成两种,一种叫做通用的应用,例如这里面写的Spark,Mysql,Hadoop,这些应用的特点是通用,谁安装都一样,但是运维起来又相对比较复杂,应该交给云平台去运维和扩容。另一种叫自己的应用,这些应用的安装云平台无法帮到你,因为你自己的应用只有你自己知道怎么安装,所以云平台往往提供了一些基于脚本的工具来做这些事情,例如Chef、Puppet、Ansible等。但是脚本有一个最大的弱点,一旦环境有差异,脚本就很难顺利运行成功,所以导致基于脚本的安装工具,实现跨云迁移非常困难。
于是容器应运而生。
容器的英文是Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。
在没有集装箱的时代,假设将货物从A运到B,中间要经过三个码头、换三次船。每次都要将货物卸下船来,摆的七零八落,然后搬上船重新整齐摆好。因此在没有集装箱的时候,每次换船,船员们都要在岸上待几天才能走。
有了集装箱以后,所有的货物都打包在一起了,并且集装箱的尺寸全部一致,所以每次换船的时候,一个箱子整体搬过去就行了,小时级别就能完成,船员再也不能上岸长时间耽搁了。
这是集装箱“打包”、“标准”两大特点在生活中的应用。
部署任何一个应用,也包含很多零零散散的东西,权限,用户,路径,配置,应用环境等!这就像很多零碎地货物,如果不打包,就需要在开发、测试、生产的每个环境上重新查看以保证环境的一致,有时甚至要将这些环境重新搭建一遍,就像每次将货物卸载、重装一样麻烦。中间稍有差池,都可能导致程序的运行失败。
那么容器如何对应用打包呢?还是要学习集装箱,首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰,互相隔离,这样装货卸货才方便。
另外就是如何将这个集装箱标准化,从而在哪艘船上都能运输。这里的标准一个是镜像,一个是容器的运行环境。
所谓的镜像,就是将你焊好集装箱的那个时刻,将集装箱的状态保存下来,就像孙悟空说定,集装箱里面就定在了那一刻,然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的,谁看到这些文件,都能还原当时定住的那个时刻。将镜像还原成运行时的过程(就是读取镜像文件,还原那个时刻的过程)就是容器的运行的过程。
有了容器,云计算才真正实现了应用层和资源层的完全弹性。
在这里暂时总结一下,虽然从技术角度来讲,容器已经成为一个趋势,然而在真正的实施过程中,云计算1.0时代,将应用云化的过程,很多传统公司尚未完成。然而,在大型的互联网公司,基于容器的云计算2.0技术实现架构的全弹性伸缩,已经在大规模使用。容器的三大平台战役已经落下帷幕,Kubernetes已经全面胜出,现在在互联网公司的论坛中,再讲容器技术,已经感觉是很老套的技术了,然而在很多传统企业,云化却尚未完成,这中间鸿沟巨大,利用容器技术的快速迭代,将是对还未进行云化的公司的降维打击。
也有人会说,你老说云化,云化怎么好,能够降低成本,可真正实践下来,云的技术虽然在不断的进行迭代,然而我的运维成本,还越来越高。
原来用物理机的时候,其实我只需要懂基本的Linux知识就可以运维了,后来你们忽悠我上虚拟化软件,虚拟化软件非常非常的贵,能够会使用虚拟化软件证书的人更贵。后来虚拟化软件存在绑定的问题,于是你们忽悠我用开源的虚拟化软件OpenStack,谁知道开源并没有免费,如果不进行适配和定制,基本上没办法在生产环境中使用,但如果一旦定制,又变成了一个私有化的软件,这时候我的运维人员,不但要会用虚拟化软件,还需要去开发虚拟化软件,能开发虚拟化软件的实在是非常贵,而且如果自己运维OpenStack没有五十甚至一百人的团队,根本搞不定,后来你们说应该用容器,可是用了容器以后,计算网络存储的技术一样不能少,而且还要懂应用,全栈工程师就更加贵了。
云计算真的能够降低成本吗?难道我用了假的云计算?
接下来我们详细分析一下云计算的使用方式。
最简单的使用方式,当然是使用公有云,公有云就相当于你买了一个公寓房,成本非常的低廉,同时隔离也是逻辑的,在高峰期的时候,不免有争抢资源的现象。
如果你想不被争抢资源,可以使用专属主机,就相当于买了一整栋单元楼,这台物理机上的所有的虚拟机都是你的,然而很多PaaS服务如数据库还是在公用集群上的。
于是有很多公司就想建设自己的私有云,把这比喻成为住别墅,其实这顶多是农村自建房,因为你可能需要去别人的数据中心里面租一块地,然后或者自建云平台,或者招标云平台。没有人会去想住别墅的时候,自己拿地自己去盖,自己出了问题自己去修,这样部署运维更新,成本非常的高,你需要自己养一个专业的运维团队来做这件事情。
这种方式往往只能解决心理上的安全问题,真的安全吗?不一定。就像农村自建房,没有完善的物业,也没有完善的保安一样,托管在别人数据中心中的云平台,很难保证不被邻居机架上不专业的运维行为威胁你的安全。你搭建了云平台,你的邻居机架上直接用物理机,我们经常见到有的小公司在公司里面一个VPN,将办公网络和机房的物理机连通起来,办公网的wifi非常不安全,如果有黑客能够到达邻居的物理机,很可能就能黑到你的物理机上面来。
除非你是大土豪,例如电信银行电力,自己拿地,自己建数据中心,自己,有成百上千人的运维团队,有非常完善的机房运维流程,就相当于特朗普自己拿块地自己盖别墅,自己招聘物业,自己雇保安,当然是最最安全的。可能大部分的传统企业,都不能享受这样的待遇。
网易云专属云服务,商业别墅型云服务。地网易来拿,房子网易来盖,物业网易来管,保安网易来招。相当于在网易的机房里面,划出一块地方来,这个地方上面部署的云平台资源全是你自己的,但是硬件、网络、安全、安装、升级、修复,你都不用来管,有非常专业的运维团队来做这件事情,这些运维操作保证安全合规,你只需要关注自己的应用就可以了。
网易为什么要推出专属云呢?因为我们认为云化容器化的趋势是一定的,前面所叙述的道路本身没有错误,能懂OpenStack和Docker的技术牛人越来越贵是必然的,只有规模越来越大,才能体现云的成本优势。例如谷歌,谷歌里面的运维工程师相当相当贵,有几十万,甚至上百万美金的年薪,他们掌握这些最先进的技术是没有任何问题的,但是他们会通过各种自动化,甚至智能化的技术,管理全球的几百万台机器,这样成本摊下来就不是很高了,所以谷歌完全养得起。如果你只是运维一个几十个节点,最多几百个节点的云平台,同样需要招一些这么贵的人,一般的企业肯定受不了,所以对于大部分企业来说,应该将IT架构交给最专业的牛人。
我个人甚至认为,将来只有两种云平台,一个是大规模公有云平台,一个是土豪的自建云平台,其他的形式都会随着技术的越来越先进,运维人员的要求越来越高,运维人员的年薪越来越贵,而消失。
免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐
更多网易技术、产品、运营经验分享请点击。