私有云是不是云?这是一个问题。
大部分认为私有云不是云的人都是出于自身利益的立场,试图抹黑私有云。虽然私有云在某些场景下功能不如公有云强大,但否定私有云就像否定残疾人的人类地位,或者否认个人电脑是计算机一样。
尽管私有云发展不够健全,但这并不意味着它就不是个东西,公有云唱的很厉害也不代表就真的很厉害。两者至今都存在着缺陷,我的建议是谁也别黑谁。公有云嘲笑私有云功能不够强大,私有云则反击公有云成本过高,但这些争执都缺乏对实际场景和需求的分析和讨论。
云计算的本质 - 连接计算资源
云计算的本质在于将计算资源(包括硬件、软件和网络等)通过互联网等方式提供给用户使用。云计算通过虚拟化技术和自动化管理实现了资源的高效利用和灵活分配,使得用户能够根据需要随时获取所需的计算资源,同时也降低了企业的 IT 运营成本。
从这个角度来看,即使我在局域网中通过 SSH 连接到了一台服务器上,在这台服务器上虚拟化出几台虚拟机,这也已经算是云计算了,只是很简单粗糙而已。就像用网线连接起来的两台计算机就构成了一个小型互联网一样,这就是云计算的本质。
因此,将单个数据中心的计算资源连接起来仅供自己使用就是私有云,而将其通过公网让所有人都可以使用就是公有云。至于功能上,公有云可以实现的理论上私有云都可以实现,只是成本不同。
私有云功能弱,建设成本高
到目前为止,任何企业想要在私有化环境中建立一个类似于 AWS 的系统,都需要每年支付巨额的成本,几乎只有两个选择:采购或自建。采购的成本不言而喻,而即使在像 OpenStack 这样的软件上进行修改,单纯的软件成本也需要 30 人以上的团队。
与公有云相比,私有云显然显得非常简陋和粗糙,这也导致私有云在实践中缺乏最佳实践。然而,这并不全是私有云的错,OpenStack 作为一种基础设施即服务(IaaS)软件,的确存在一些问题。而 kubernetes 这个纨绔少年又没成年,接盘过程出现了一个小断层,存在着一些发展瓶颈。
尽管如此,私有云仍然是一种云计算,我们公司的开发环境就是由六台洋垃圾组成的集群,如果需要更多资源,我们只需购买更多服务器,并且可以根据需求灵活调整资源。这种场景是公有云难以实现的,因为成本太高。因此,场景和需求的重要性不可忽视。
此外,我们还需要强调软件的重要性。如果今天 Linux 操作系统非常复杂和不稳定,那么必然会出现 “RedHat 不算是操作系统” 的说法。然而,实际上在公有云和私有云上,几乎所有的服务器都在运行着同样的 Linux 操作系统。因此,我们可以归结为云操作系统本身不够优秀,OpenStack 的性能不佳,而 Kubernetes 只是一个云内核,云操作系统的发行版才刚刚起步。这是现实,但不是未来。
公有云价格高昂
尽管我们刚刚谈到了私有云的问题,公有云也别在拐角乐呵,乌龟莫笑鳖,都在泥里歇。
公有云最大的问题就是贵。虽然相对于物理硬件,稍微高一点的价格可以理解,但是算账的人都知道,公有云价格可能高出物理硬件的近 10 倍,这是相当夸张的。
有人可能会解释,这涉及到机房建设、空调、发电机、专线等诸多因素,但这些都没有考虑到规模效应的作用。对于那些购买好服务器并在机房中进行托管的用户来说,成本要低得多。所以细想其实是软件成本高,比如 IaaS 都干了啥,相当于把所有的硬件都用软件实现了一遍,包括路由器、交换机、虚拟 IP、虚拟机、磁盘等,可想而知软件的成本有多高。
有人可能觉得软件成本会被规模效应摊薄,事实并非如此,这个是以机房的建设成本来计算的,而不是云中的客户体量来分摊,因此需要花费大量人力和时间来进行软件交付,还需要各种服务器的管控节点以及预留资源。这就造就了昂贵成本永远无法降低的局面。
公有云的第二个问题是复杂性。即使今天已经出现了专业的云计算专家,但是我们可以发现,大部分人使用 Windows 或 Mac 操作系统时并不需要太多的指导。难道云计算真的如此复杂吗?我想不是这样的,肯定有办法让云计算更简单,只是目前的厂商们还没有深入思考这个问题。
公有云的第三个问题是封闭性。只有 S3 等少数云产品形成了事实标准,但是这又导致了绑定问题。可能某个云产品的数据表现不佳,下个月就被下架了;或者在割韭菜的时候涨价等。开源项目在一定程度上缓解了这些问题,但是云的事实标准还没有形成,因此还不够成熟。
总之,私有云和公有云都存在问题。但是我们需要了解的是,这些问题是现状,而不是未来。随着技术的不断发展,这些问题最终将得到解决。我们需要避免站在自己的利益立场上故意抹黑某一种云,而是应该客观地看待不同云之间的优缺点,选择最适合自己场景的云。
分层云计算架构将消亡
大部分云厂商仍然在使用 IaaS、PaaS、SaaS 三层架构,但这种模式都相当于造了辆“更快的马车”。想想看,我们真的需要将所有硬件能力都用软件实现一遍吗?实际上,业务的目标是稳定地运行,虚拟机是否存在并不重要。因此,从需求层面看,云架构已经发生了变化。
例如,我跑个 golang 程序能连个数据库就完了,我并不关心是否在 VPC 内部,也不需要你实现一堆路由器和交换机。未来越来越多的开发者也会意识到这一点,因此,保证网络通畅和安全性已经足够了。
所以必然可以完全抛弃掉这一厚重且成本极高的一层 IaaS。但悲观的是,目前绝大多数公有云厂商的所有产品都基于 IaaS,这就导致 IaaS 的成本叠加到了所有云产品上。
PaaS 和 SaaS 本质上是相同的,我们非要去区分它们吗?以前技术能力达不到就算了,现在还要去区分显然是一种抽象思维不到位的体现。一个数据库和一个 CRM 系统本质上没有区别,它们都是分布式应用程序。既然它们本质相同,为什么还要进行区分呢?鸭式辩型,拥有长翅膀和会游泳的都是鸭子。
更有甚者,还出现了 aPaaS、bPaaS、iPaaS 等等,你不担心 26 个英文字母不够用吗?显然,这些新分类、新方向可能只是因为其他人的屁股我们不能坐,所以搞个新分类新方向出来。。。
单机操作系统也很复杂,早期也采用了分层架构,后来演变成了高内聚的宏内核和微内核架构,云操作系统也会有类似的演进过程。比如一个最佳实践:以 Kubernetes 为内核的云操作系统。在这个系统上,“一切皆应用”。
大一统架构,公有云和私有云是同一个东西
为什么单机操作系统在云上和云下都可以使用 Linux,但公有云使用 AWS,而私有云使用 OpenStack?不能开发一种软件将公有云和私有云抽象成一种系统吗?
我认为这是可以做到的,这就是云操作系统,它必须满足以下几个特点:
简单 - 一键即可安装,与个人电脑一样易用,可以自由伸缩。OpenStack 在这方面显然不太行。
稳定 - 安装后很少出现问题。
组装 - 可以根据需求安装所需的软件,不需要的软件可以卸载。
我说的这些特点不是空穴来风,都是单机操作系统所具备的,例如 Linux、macOS 和 Android。
Sealos - 以 Kubernetes 为内核的云操作系统发行版[1],就是以这个目标设计的。
在我们的理念中,公有云和私有云是同一套代码,同一种抽象,只是在安装和配置应用时有所不同。在企业内部运行它就是私有云,在公网上提供服务时就是公有云。
与单机操作系统对应,Sealos 具有以下特点:
简单易用且功能强大 - 只需一键运行,无论是电视盒子还是数据中心都能够运行,通过安装各种应用程序来增强系统能力,不会因为功能的增加而变得更加复杂。
稳定性高 - 在我们的理念中,不应该存在运维这一角色,整个系统应该是自运维的,就像个人电脑操作系统一样稳定可靠。
最小化占用资源 - 最小化版本只有 300MB,通过安装应用程序,企业可以在各种环境中拥有完全属于自己的云系统。
这种以操作系统的思维来构建云系统最终也会改变生产关系,连接软件的生产者与使用者,让云生态系统可以像 Android 生态一样,不再由单一厂商来提供云应用,而是形成多对多的网状协作关系。
总之,私有云和公有云都是云计算的一部分,它们之间没有本质区别,未来它们将会融合成同一体系,所以我们不应该互相诋毁。
未来云的方向
未来云的方向是基于云操作系统的大一统架构,将公有云和私有云抽象成同一个东西。云操作系统必须具备简单、稳定、组装的特点,以 kubernetes 为内核的云操作系统发行版 Sealos 就是以这个目标设计的。
随着云计算的不断发展,云原生应用也越来越普及。云原生应用是基于容器技术的应用,具备快速部署、可伸缩性强、易于管理等特点,是未来云计算的趋势。
除了容器技术,未来云计算还会涉及到更多的技术,比如无服务计算、人工智能等。未来的云计算将会更加智能化、自动化,为人类带来更加便捷高效的服务。
总之,未来云计算的发展方向是基于云操作系统的大一统架构,以云原生应用为基础,结合各种技术,实现更加智能化、自动化的服务。
引用链接
[1]
Sealos - 以 Kubernetes 为内核的云操作系统发行版: https://github.com/labring/sealos
你可能还喜欢
点击下方图片即可阅读
深入了解 K8s 扩展神器 client-go 的详细用法
2023-02-28
我让 ChatGPT 化身为全知全能的文档小助理,啥姿势她都会......
2023-02-27
《降临》作者特德·姜:ChatGPT 是互联网的有损压缩
2023-02-25
云原生是一种信仰 🤘
关注公众号
后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!
点击 "阅读原文" 获取更好的阅读体验!
发现朋友圈变“安静”了吗?