出品 | CSDN(ID:CSDNnews) | 红帽原创音频
这是代码英雄第三期,云间战争。前两期(第一期:代码英雄之操作系统之战 | 第二期:代码英雄之容器德比)我们追溯了开源操作系统的崛起和容器技术的发展历史,通过音频的描摹和文字的撰写感受到了浩浩荡荡的浪潮迭代,在本期栏目中,我们则会走进云里,深入云端二十年“战争史”。所谓得“云”者得天下,这个萌芽于上世纪90年代的新兴事物,目前已经形成了底层IaaS、中间层PaaS、上层SaaS的完整生态,引得全球IT企业都在向云计算转型,寻找云上的全新定位。
随着云服务的不断发展,云服务的生态环境已逐步完善并渗透到了各行各业,促使服务商的解决方案越发成熟,也形成了越来越多企业成功上云的案例,企业对云计算的认知能力也在不断提高。毋庸置疑,这场风起云涌的“云端战争”已经导致全球云计算格局基本已定,并在硝烟弥漫中呈现出更加融合、更加智能化、更加集中化的全局趋势。
务实的“云城”
1998年,24岁的布林和25岁的佩奇在对商业计划一无所知的情况下,准备凭着手里提供的搜索引擎技术服务闯出一番天地,并依靠着一位斯坦福校友的10万美元投资开启了创建Google的征程。然而过时的、廉价的零件组装,使得服务器不稳定、反应慢、零件易坏等问题频繁发生。硬件不行那就用软件弥补,因此他们决定写一套完善的容灾软件系统来克服硬件的问题,利用软件将这些成千上万不可靠的硬件组织成一个稳定可靠的IT系统,以此支撑其公司的IT基础服务。到2000年,他们已经拥有了几千台这样的服务器。于是他们又开动脑筋,用网络将这些服务器连接起来,然后重新设计了一套新型的运算模式来实现高性能运算——这就是现在所说的“云计算”的雏形。
事实上,当初业界对于云计算行业和技术并不看好,认为这是一个高投入、低回报的市场。但随着技术的不断成熟和演进,加以行业性的深化应用,云计算技术被更多的用户认可和青睐,深入应用到企业、游戏、医疗、金融等各个领域。
云计算是随着处理器技术、虚拟化技术、分布式存储技术、宽带互联网技术和自动化管理技术的发展而产生的,这种大规模的计算能力通常是由分布式的大规模集群和服务器虚拟化软件搭建。因此,云计算应用是在网络上而不是在本机上运行,这种转变将数据中心放在了网络的核心位置,而所有的应用所需要的计算能力、存储、带宽、电力都由数据中心提供。因此,云计算环境下的数据中心机房规划显得尤为重要。
数据中心承载着我们越来越多的在线生活,这里没有云朵特有的蓬松和白色,只有彻头彻尾触手可及的物理身体,包括:裸机服务器的机架;连接到世界的所有电缆,沿着天花板上的轨道运行;还有一种奇特的蓝光闪烁着;最多的还是一排排“饥饿”的服务器......数据中心每年消耗的能量极为巨大,甚至超过整个英国消耗能量的总和。因此可以发现,数据中心的一切都是务实的,只有一堆机器,一堆风扇,在便宜的土地上使用大量廉价的水保持凉爽——这座“建筑”基本围绕着能想象到的最完美的HVAC(暖通空调)系统而设计。
当我们谈论在云上存储东西、或在云上构建应用程序时,我们有时会欺骗自己,认为它就像天空中的云,是没有人可以触摸的东西。但事实恰恰相反,一旦我们记住云在哪里,我们就可以开始讨论谁拥有了云?谁控制着所有这些服务器、电缆和风扇?这些如何改变了开发者构建未来的方式?......
因为在云城,我们都一起生活在那里。
混乱的云
经过多年的发展,数据中心已经不再是高高在上的,云计算和基于互联网内容的“爆炸”也推动我们转移到互联网的“边缘”,更靠近用户。但是,过度的异构性和更少的公共服务不断软化数据中心的边缘,更是带来了云混乱等各种问题。例如那些完全不理解云服务的人们,仍然在采取错误的方式对待云,却不清楚他们的数据实际上是穿过铜缆或光纤,位于由其他人管理和拥有的存储设备中。而这一点,显然会带来隐私泄露等可怕的问题。所以,我们在把东西扔到云端时,究竟扔到了哪里?
这一问题同样适用于云服务应用,以及对无服务器的探讨。归根结底,“这是别人的服务器,别人的电脑。”所以当寻找云提供商时,我们需要弄清楚租赁租约实际上是什么。但在那之前我们要搞明白,为什么要急于跳到云端呢?
作为开发人员,我们不想管理运行应用的基础架构。我们想要开发应用,想要部署这些应用,希望这些应用能够运行。而且我们已经看到越来越多像无服务器计算、功能即服务、容器和容器管理平台Kubernetes的流行——所有这些都有助于抽象出应用需要运行的底层基础架构。而这将是一种趋势,我们将看到其在未来持续发展。
超大规模也是原因之一。通过云提供所有基础架构,我们可以按照自己的需要快速启动,并扩展或缩小。不再需要构建自己的基础架构,而是只需租用需要的云大小,这对初创公司来说,意义尤其重大。
使用公有云进行应用开发的整个模型,对于应用开发人员来说也是一个巨大的进步。利用公有云,一系列全新的创业公司出现并成长为获得资本青睐的公司,比如Netflix(网飞),在亚马逊及其他云提供商的云上运行大部分后端基础设施。因此,云对开发人员的影响不容低估,这是过去十年中应用开发的重大转变。
在没有云之前,更改基础设施十分痛苦。以前如果有人提出做某个项目的想法,我们会说“这需要硬件才行。” 所以我们总是受到内存的限制,在任何给定时间启动的虚拟机数量也会受到限制。因此,我们必须获得新处理器、新内存、新硬件、5000美元增加物理空间以及类似事物的报价。一旦我们从多个不同的供应商处获得这些报价,它就会转到管理层,并且需要一个缓慢而漫长的决策过程,而这仅仅是为了获得硬件。更不用说,之后构建虚拟机并将其运转起来、进行测试之类所需的工作量。云可以让以前几个月的工作在几个小时内完成,这是一个巨大的转变。
云的选择
在可扩展性、速度和价格等方面,云非常诱人。如果以租赁公寓为例,云可以让你无需额外费用即可获得管家和司机提供的服务。而今天,我们有亚马逊、微软、谷歌和阿里巴巴这四大云服务提供商在做这件事情。在2018年,亚马逊AWS以47.8%的份额雄踞第一,而微软排第二约为15.5%,阿里云份额为7.7%,谷歌云约为4.0%——这四大云服务商垄断了全球约75%的份额。
亚马逊AWS先发优势明显,2006年推出的AWS目前已经运营11年,在技术和服务有大量的积累,另外云计算是重资产行业,随着规模的扩大,边际成本得以摊薄,因此相比其他云计算巨头优势明显。微软是全球最大的企业软件开发厂商,拥有从操作系统到应用软件全套软件产品,微软Azure与传统软件产品完美融合,其Office365的推广极大地推动了Azure的发展。谷歌则在高性能运算和存储方面技术优势最为明显,另外谷歌的大数据应用服务相比竞争对手更加成熟。由于国内云计算发展相对较晚,国产化等政策影响,海外巨头AWS、Azure 进入中国缓慢,阿里巴巴作为国内互联网巨头在公有云市场占据了先发优势。2018年一季度,阿里云业务收入实现翻番至7亿美元,成功超越了IBM位列全球第四。随着我们依赖的云持续增长,四大云提供商争夺主导地位的竞争态势必定愈加激烈。但是他们都想成为云城的新地主,一旦我们在某些方面受到一家专有公司的限制,是否就会让我们陷入困境?
开发人员经常会发现,随着时间的推移,他们可能会对某些特定类型的存储有不同的需求,或者他们可能希望拥有一定规模的虚拟机,或者他们可能想要一种云提供商无法提供的产品类型。此外,成本效益分析也是必须考虑到的方面,开发人员厌倦了每五年就替换老化的物理硬件,因此云服务的可扩展性是不可或缺的。一旦进入云端还必须考虑其他连接,所以安全性、价格也是需要考虑的问题。
因此,开发者可以进行选择:我们是否需要放弃一些独立性,依靠单一的云提供商来保护我们的工作?我们是否可以走另一条道路,在保持独立性的同时最大化云的可扩展性?我们又是否可以签署一份租约,在云上做自己想做的事?......这些都是最终用户必须要考虑的,除去这些还应该考虑:我是否想要使用云提供商原生的工具?这些工具能否与云提供商提供的服务,以及我可能希望在该云上使用的其他服务更加集成?或者我是否想要在我自己的基础设施或其他提供商的基础设施上优先使用开源平台?......当使用专有云供应商时,我们可以使用不同的方式。一方面,可以以包含开源标准和开源平台的方式使用云,并在可能是专有的云上运行这些开源平台;另一方面,可以将本机工具用于那些可能不是开源的云提供商,但它们可能与公有云平台有更强的集成。
完美的系统并不存在,为了避免出现提供商中断、重新部署应用,或者价格方面的对比问题,我们需要锁定供应商。所谓供应商锁定,就是指越来越依赖于别人的服务器平台,即使遭遇强制升级、成本变化,也不会更改选择。那么如何在公有云和私有云上找到合适的组合?最终的解决方案可能只能是混合云,两全其美。
“当计算和处理需求波动时,混合云计算使企业能够将其本地基础设施无缝扩展到公共云以处理任何溢出,而无需提供第三方数据集中访问整个数据。组织可以获得公共云的灵活性和计算能力,用于基本和非敏感计算任务,同时将业务关键型应用程序和数据安全地部署在组织防火墙之后。”这是微软公司在其网站上总结的混合云概念。
我们可以利用混合解决方案做任何想做的事情,但仍然可以获得公有云提供商的一些好处,具有极高的成本效益。当然这其中也存在安全性、工作负载等问题,也不一定是完美的解决方案。混合云有时会让人们自欺欺人,如果没有很好地运作,会因为设置更加复杂而难以维护和保护,也会带来数据延迟等问题。此外,由于混合云是不同的云平台、数据和应用的组合,因此整合可能是一项挑战。在开发混合云时,基础设施之间也会出现主要的兼容性问题。如果我们与云提供商合作,可以添加一些直接连接内容,可以更好地提供帮助。
云中的开源
在这之中,云中的开源是一个有趣的主题。
从技术层面来看,云服务提供商拥有常人难以企及的技术实力,可以迅速完成开源产品的优化和对外服务,并实现持续更新和迭代。而当云计算形成一个庞大的产业之际,云服务提供商凭借强大的技术能力,将开源软件产品作为服务提供给用户,凭借强大的规模效应,很容易获得巨大的商业利益。在过去的几十年,开源开发活动发生了很大变化,包括像微软、IBM等企业都参与其中。无论哪家大型企业,他们要么使用开源来提供他们的产品,要么正在建设开源并将其贡献给社区,抑或是两者结合。显然,几乎所有云计算公司也都看到了开源是大势所趋,连云计算老大AWS也开始积极拥抱开源。
作为开发人员,我们大多数人都非常喜欢开源,希望一切都是开放和透明的,并分享代码和所有东西。然而,一旦云服务提供商们停止对开源社区的持续反馈,将会对开源项目产生巨大影响。对于用户而言,一方是经过优化、稳定、可靠、功能更强大的云服务;另一方是商业化程度较低的开源产品,用户的选择显而易见。对于开发人员来说,即使云提供商允许使用开源工具,它们本身也不是开放的。因此,即使有大量的开源技术可以利用公有云,但并非所有的公有云都将其基础设施作为开源提供。例如,如果使用亚马逊,我们将无法真正看到他们用于构建虚拟机或构建其他服务的内容,调整和组合更是难上加难。
从公有云提供商的角度来看,为了获得公有云的优点,开发人员是需要牺牲一些扩展性或者其他优势的,因此,云间的迁移是必然的。红帽业务架构副总裁Mike Ferris就混合云如何帮助我们维持开源精神提供了很好的解释。“开源是世界上几乎所有云的基础,现在世界上许多(如果不是大多数)应用基础架构和工具都从开源发展而来,人们用来构建的所有内容和关键与非关键应用都基于开源。”这种混合概念确实与之相符,意味着他们有能力在任何地方利用这些东西最基本的功能集,基于开源有助于定义标准这一概念,并且正在推动下一代开发。
当我们跳上云时,我们可以声明某些部分属于自己并保持云开放。幸运的是,有OpenStack这样的平台在,在云之间构建开源桥梁变得更加容易。OpenStack是一组能够很好地协同工作以创建基础架构、跨平台管理基础架构的应用,无论是需要复杂的虚拟机,还是复杂的网络、奇怪的存储需求,OpenStack通常可以满足大多数需求。对于OpenStack,我们可以将其视为一组互连的开源应用,允许构建所需的基础架构。如果它无法构建你想要的内容,那么还可以进入社区并对其进行更改——如何确保适应力水平在未来的云中得到体现?强大的社区必不可少。此外,OpenStack基金会的创建也让OpenStack用户在创建开源基础结构服务云时可以实现最佳实践。支持这些开源社区的社区对于开发下一波开源工具,学习如何使用这些开源平台的最佳实践,以及鼓励这些公有云供应商采用这些开源标准非常重要。
因此我们可以发现,混合云的构建潜力无穷。
借助混合云,我们可以将自己带到下一章。对于今天的代码英雄来说,跨多个云管理工作是一项巨大的工作。但是创建混合云应用的关键还没有被破解,这也就说明会有很多的试验和错误。不过这些都是值得的,因为我们知道,保持开源意味着开发人员可以随时建立他们想要的世界。这种灵活性是我们坚持的方向,也是开源最擅长的反叛精神。
代码英雄下一集将讨论开源时代的数据爆炸,有关该栏目与之前剧集的更多信息,请访问RedHat.com/CommandLineHeroes。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved