AWS vs K8s 是新的 Windows vs Linux

作者:Ian Miell是开源程序员、演讲师、作家和博客写手


以前……


如果你与我一样,年过四十,又在IT行业工作,恐怕还记得每个人使用Windows,一小群但越来越多的人在业余时间埋头编译Linux的年代。


Windows用户见此情形会困惑不解:“明明Windows拥有你需要的一切功能,得到支持,还易于使用,你何必这么做?!”


这个问题的答案可谓五花八门。有些人喜欢捣鼓,有些人希望操作系统“免费”,有些人想要对软件拥有更大的控制权,有些人想要速度更快的系统,所有人都能搬出这么做的某个理由。


现在……


当我又熬夜试图让某个新的Kubernetes附件按文档记载的那样运行时,惊讶地发现我处于与过去颇为相似的境地。就在几年前,Kubernetes本身对于门外汉来说是混乱而恐怖的东西:API经常变更;你试图自行构建,却发觉说明文档编得很差;以及一个不成熟的大型软件项目该有的种种特点。


话虽如此,无论过去还是现在,Kubernetes的治理都比大多数开源软件项目先进得多,不过当时的感觉就如同2000年前后编译Linux,或者处理每当你拔掉USB连线,一半时候崩溃的笔记本电脑(是的,这种事过去常发生)。


就拿knative来说吧:


640?wx_fmt=png


knative俱乐部的第一条规则是,你无法解释knative是什么东东。


我那些使用AWS的同事看到我经常费老大的劲,问道:“明明AWS拥有你需要的一切功能,得到支持,还易于使用,你何必这么做?!”


AWS是Windows


与Windows一样,AWS也是一种产品。它并不灵活,但性能可靠。API得到了明确的定义,关键性能指标(KPI)很好,对于大多数“实际”工作负载来说足够实用。帮助定义你能实现什么、不能实现什么的种种资源方面有限制。


大多数人都想要这样,就像大多数人想要一辆可以跑起来,又不需要常修理的汽车一样。有些人喜欢维修汽车。一些公司聘有机修工来维修一大批汽车,因为规模化后成本较低。同样道理,一些组织切中要点:它们可以看到再度自建数据中心带来的好处。想想Facebook或者完全改弦易辙的Dropbox。(后文会探讨这点)。


与微软一样,AWS采取的做法是拥抱并拓展(embrace and extend),现在谷歌如法炮制,一旦觉得某个领域有利可图,就开发出越来越多的产品。


AWS和Kubernetes


这就引出了AWS与Kubernetes的关系。AWS没有领会Kubernetes的要点,这可不是什么秘密。AWS已经拥有ECS,这是个丑陋又笨拙的产品,不过如果你一开始就在AWS上投入了大成本,它倒是再合适不过。


有人说,不过有EKS。我最近没有关注EKS,该产品很久后才面市,但它根本谈不上功能丰富。给人的感觉就像是一个云框架(AWS)与另一个框架(K8s)联姻,一个难缠的青少年退学了。比如说,继续有人埋怨部署起来“太费时间”。


640?wx_fmt=png


就像微软当初对待Linux,AWS长期无视Kubernetes,而且与微软一样,AWS也被迫对竞争对手采取“拥抱并拓展”的做法来保护市场份额。我经常接触AWS人员,他们在解释我们明明可以用ECS为什么要使用EKS时讳莫如深。


EKS和锁定


这就引出了AWS交付EKS,因而“拥抱”Kubernetes的主要原因之一:身份和访问管理(IAM)。


EKS(同所有AWS服务一样)与AWS IAM高度集成。正如大多数人所知,IAM是AWS锁定的真正根源(而Lambda是出众的锁定技术。)


改变身份管理系统几乎是任何一家企业组织最不想做的事情。要求贵公司的首席技术官主张对核心安全系统进行根本性改变,短期内对公司没有效益,风险又很大,这可不是提升职业生涯的举措。


另一方面,有人对为什么Linux永远不会威胁Windows提出了类似的论点;虽然桌面端确是如此,但手机和Mac的出现已经将Windows沦为消费级计算市场的配角。只要看看在过去的10年微软没有将浏览器强行推给人们就略知一二了。


因此,只要市场上出现一些意想不到的转变,另外某种技术就能受到追捧,成为市场老大。微软清楚这一点,AWS也清楚这一点。这就是为什么微软和AWS不断为各自的解决方案添加新产品和新功能,这就是为什么EKS会问世。


微软最终让这艘巨型油轮掉头驶向云,大力支持开源、Linux和Docker以及能够将IT人员吸引到其服务上的所有技术。哦,你可以使用与贵公司网络一样的活动目录(AD),并将微软Windows许可证转移到云端。第一个是免费的。微软不再关心操作系统。没有人关心,连Red Hat这家以支持与Windows竞争的操作系统为生的公司也不关心。操作系统已死,成了提供的剩余价值越来越少的大路货。


Kubernetes会迫使AWS将这艘巨型油轮驶向Kubernetes吗?我们可以预料它会拥抱Istio和Knative以及此后出现的任何框架进入到它的解决方案中吗?


AWS的竞争和成本


我不知道。但下面有另外几个原因解释它可能会这么做。


与Windows操作系统鼎盛时期的微软一样,AWS只有一个竞争对手:私有数据中心。就像微软当时的竞争对手(Linux)一样,接纳这个竞争对手很痛苦,成本昂贵,而且风险颇大。


但那个数据中心的操作系统又是什么呢?在Kubernetes出现之前,答案应该是OpenStack。OpenStack被广泛认为很失败,不过凭我的经验,它在大型企业组织中还活着(即便日子不是过得很滋润)。我不是OpenStack的专家,不过据我所知,它无法满足在它需要运行的所有基础设施上成为一种稳定产品,并成为大众化产品所需要的全部条件。这同样是微软在过去面临的情况:你可以在“任何”PC和“任何”硬件上运行,它会“工作”。苹果以限制和控制硬件(并在此过程中获得可观的利润)来应对。Linux有强大的社区支持,它最终满足了对其使用场合来说足够有用的条件。


OpenStack还没有抵达成功彼岸,它试图一蹴而就,不过它嵌入得足够深,对不想被云提供商锁定的那些企业组织而言已成为Kubernetes安装的默认基础。


值得关注的是,AWS提出私有云失败的原因对它自己来说同样适用:企业无法适当地管理弹性需求,无论在自己的数据中心还是掏钱请别的公司打理。指挥与控制式的财务治理结构根本不会在一夜之间改变,以适应敏捷灵活的资源配置模式。(顺便插一下,如果你想在企业中转变IT,就从财务部门开始。如果能拿下这个部门,就有机会在安全和控制职能部门取得成功。如果你不知道为什么一开始从财务部门开始很重要,必然会失败)。


但企业没有全力投入AWS有其他理由:锁定(见上文)和规模经济。我们前面已经提到Dropbox从AWS迁移到自己的数据中心。


就我使用云服务的经历而言,这里有相似的情况。我本人觉得对我自己的数据而言,云存储仍不是来得更便宜,尽管它有明显的好处(没错,即使我计入了自己的人力和冗余要求)。为什么是这样?有这几个原因:


  • 我拥有设计降低人力成本的解决方案的专长和能力

  • 旋转磁盘的折旧很低(购买2块以上磁盘更是如此),访问速度很快

  • 我有足够多的数据要存储,线性云成本开始显得很昂贵


这些原因(专长、资产价值和数据规模经济)是大企业同样会自己搞的几个原因。这个简略的图表表明了这一点:


640?wx_fmt=png

红线=运行Kubernetes的成本


运行Kubernetes的零日成本很高(左边红线),但随着你扩展服务,该值呈指数级增长。这就是为什么AWS赚了那么多钱:只要未向你透露其非线性特性,对你用户而言的价值就远高于成本。坦率地说,如果你的规模变得足够大,那么AWS会开始压榨你,但你可能不在乎,因为贵公司在扩展规模。你好比是水里煮的青蛙。等你意识到自己的处境,为时太晚――脱身会很难很难。


AWS和“如果贝索斯失去理智会怎样?”因素


大公司鼎力支持,Linux才真正流行起来。与之相仿,Kubernetes一开始就得到了两家大公司的大笔资金:谷歌和Red Hat。


只有企业组织重视AWS的垄断问题,才会真正取得进展。一些企业肯定重视这个问题,因为监管部门已要求:制定计划,万一贝索斯失去理智,或者亚马逊里面安插了众多俄罗斯间谍,可以在合理的时间里设法迁移。其他原因是,不同的云提供商有不同的优势;随着时间的推移,大企业更有可能同时面对多家提供商。


如果足够多的企业组织这么做,那么AWS基本上无力应对这种威胁。


若使用微软产品,如果你想要其软件,除了乖乖交钱外,别无他路;但如果使用Linux,你其实并不真正被一家提供商牢牢锁定。我见过大企业在谈判期间与Red Hat比胆量,并且投入大量资金调查改而使用CentOS。


出现在Linux身上的一幕出现了在Kubernetes的身上。我们已经看到Kubernetes采用Linux的“发行版”模式:构建了这个平台的精选版,以便更容易使用“特定版本”。早期就有RedHat的OpenShift,它后来改名为“OKD”(我猜是“OpenShift Kubernetes发行版”的意思)。


一些企业会为此付费:让一个庞大的Kubernetes垄断性支持者掌管一切,不过(与Linux一样)总是可以选择换成内部支持或另一家提供商,因为核心系统不归任何人所有。


未来


Kubernetes足够庞大、足够独立才能独自生存。


看看OpenShift以及它如何避免被人说成是Kubernetes的分支。无论是什么样的正当理由,RedHat的抗议并非是不真诚的――他们不仅知道可以在开源基础设施的基础上赚钱,还知道自己也得益于开源基础设施的成功。他们不需要对Kubernetes进行分支。值得关注的,他们的确对Docker进行了分支,甚至在OCI分支之前,这有充分的理由,因为Docker做出的决策显然是为了自身求得生存(比如说,由于“一致性”的原因,硬编码的默认注册中心是Docker自己的)。


Kubernetes则没有这个问题。让我(和其他人)担心的是这个:


640?wx_fmt=png

云原生计算基金会“生态圈”


与Linux一样,“用户空间”存在一系列令人眼花缭乱的技术,它们在成熟度和社区接受度方面迥然不同,其中大部分技术可能几年后过时。我几乎不记得各种日志工具派什么用场,更不用说像架构师那样展开整张图了。


如果我使用AWS,就会想:这真让人头大!你也可以试着听听Linux社区底层的声音,或者在决定使用Linux桌面时考虑所有选项(共有45种之多!)。


结束语


我最初的核心观点是,AWS之于Kubernetes,如同Windows之于Linux。如果真是这样,如果将来不想步OpenStack的后尘,业界最好尽快拿出发行版管理方案。


换句话说,数据中心的Debian在哪里?Ubuntu?


原文链接:https://zwischenzugs.com/2019/03/25/aws-vs-k8s-is-the-new-windows-vs-linux/amp/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.Net Core中的静态文件-12

目录本文出自《从零开始学 ASP.NET CORE MVC》目录 推荐文章:配置 ASP.NET Core 请求(Request)处理管道Asp.Net Core 中的静态文件在这个视频中我们将讨论如何使 ASP.NET Core 应用程序,支持静态文件,如 HTML,图像,CSS…

在.net core 中PetaPoco结合EntityFrameworkCore使用codefirst方法进行开发

在.net core开发过程中,使用最多的就是注入方法。但是在.net core使用PetaPoco时,PetaPoco还不支持进行注入方式进行处理一些问题。今天对PetaPoco进行了一些扩展,可以很方便的将PetaPoco进行注入操作,使用和EF很相似,…

F-Pairwise Modulo

d数组是来算(x整除y)*y中y比x小的数 s数组是算(x整除y)*y中y比x大的数 (x整除y)*y 看x对于前面大于他的数是枚举,对于前面小于他的数是d树状数组储存。 d中 x整除y表示x中有多少个y 所以 …

【微服务学习】Polly:熔断降级组件

何为熔断降级“熔断器如同电力过载保护器。它可以实现快速失败,如果它在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器,从而防止应用程序不断地尝试执行可能会失败的操作,使得应…

A - Junk-Mail Filter HDU - 2473

只是这样合并&#xff0c;分割点的时候就不能分了。 这样合并再加上虚拟节点&#xff0c;那么每个你要求的节点就的下面就不连其他节点了&#xff0c;这样就可以进行删除操作了 #include<iostream> #include<algorithm> #include<cstdio> #include<cstr…

为什么不要使用 async void

问题在使用 Abp 框架的后台作业时&#xff0c;当后台作业抛出异常&#xff0c;会导致整个程序崩溃。在 Abp 框架的底层执行后台作业的时候&#xff0c;有 try/catch 语句块用来捕获后台任务执行时的异常&#xff0c;但是在这里没有生效。原始代码如下&#xff1a;public class …

张队长主讲这堂 .NET Core技术培训公开课,太原你约不约

这堂.NET Core技术培训课&#xff0c;你不能错过各位开发者朋友们想必也能体会到&#xff0c;现在市面上关于.NET Core的培训课程少之又少&#xff0c;其中有质量有内容的课程更是凤毛麟角&#xff0c;良师难遇&#xff0c;一课难求。但是现在&#xff0c;机会来了。中微云孵邀…

微软推出新语言Bosque,超越结构化程序设计

微软近期推出了一款全新的编程语言 Bosque&#xff0c;该语言参考了 TypeScript 的语法与类型&#xff0c;还有 ML 和 Node/JavaScript 的语义。作者微软计算机科学家 Mark Marron 致力于消除编程过程中出现的各种复杂情况&#xff0c;创造出了他认为超越主流结构化程序设计的 …

vue 实验报告8 基于Nuxt.js开发一个Vue程序,实现登录和注册切换

一、步骤&#xff1a; 保证node.js版本在14以上 1. 全局安装create-nuxt-app: npm install -g create-nuxt-app2.9.x 2. 创建项目: create-nuxt-app my-nuxt-demo 选项这么选&#xff1a; 然后输入&#xff1a; cd my-nuxt-demo 3. 创建登录和注册页面: 在/pages目录下创建logi…

解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法

以下方法来自于微软github开源项目WinForms:dotnet/winforms - Using the Classic WinForms Designer in WinForms Core, 请放心使用 .目前.net core下的 Windows Forms的可视化设计器(Designer)尚不可用&#xff0c;后续的Visual Studio 2019 Update才会支持该部分的功能。不过…

P2480 [SDOI2010]古代猪文(数论好题)

P2480 [SDOI2010]古代猪文 题意&#xff1a; 给你n和g&#xff0c;求g∑d∣nCndmodpg^{\sum_{d|n}C_{n}^{d}}\bmod pg∑d∣n​Cnd​modp p999911659 题解&#xff1a; 这个一个综合性很强的数论题 涉及到欧拉定理&#xff0c;Lucas定理&#xff0c;中国剩余定理&#xff0c…

ASP.NET Core开发者成长路线图

来源: MoienTajik/AspNetCore-Developer-Roadmap.2019年ASP.NET Core开发者指南:你可以在下面找到一张图&#xff0c;该图展示了你可以选取的路径及你想学习的库&#xff0c;从而成为一名 ASP.NET Core 开发者。“作为 ASP.NET Core 开发者&#xff0c;我接下来应该学习什么&am…

.NET Framework VS .NET Core

本文对应的原文来至 c-sharpcorner 的一篇文章&#xff0c;文末有链接。如有错误&#xff0c;还请指正。前言你会为你的下一个应用程序选择哪一种开发平台 - .NET Framework 或者 .NET Core&#xff1f;在这篇文章中&#xff0c;让我们比较一下这两个开发平台的特点&#xff0c…

解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法

以下方法来自于微软github开源项目WPF:dotnet/samples - WPF Hello World sample with linked files&#xff0c;请放心使用。此篇文章是上篇文章解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法的姊妹篇&#xff0c;但对WPF而言实现起来比WinForms简单很多…

.NET Core 迁移躺坑记

最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core。整体过程&#xff0c;从业务层面说一般般吧(整体还好但还是搞的业务有感&#xff0c;没出严重故障&#xff09;但是技术层面上感觉其实并没有达到要求&#xff0c;不过预期也是应该不会那么顺利&#xff0…

[Abp vNext 源码分析] - 2. 模块系统的变化

一、简要说明本篇文章主要分析 Abp vNext 当中的模块系统&#xff0c;从类型构造层面上来看&#xff0c;Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块&#xff0c;它现在则是 IModuleManager 和 IModuleLoader 来协同工作&#xff0c;其他的代码逻辑并…

P3301 [SDOI2013]方程

P3301 [SDOI2013]方程 题意&#xff1a; 题解&#xff1a; 插板法介绍 首先要先讲组合数学的一个方法&#xff1a;插板法 问题引出&#xff1a;把10个球放进三个盒子&#xff0c;每个箱子至少一个有多少种分法&#xff1f; 10个球就有9个空隙&#xff0c;我们可以考虑在这个…

.NET Framework 4.8发布

原文地址&#xff1a;https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/我们很高兴地宣布今天发布.NET Framework 4.8。它包含在Windows 10 May 2019更新中。.NET Framework 4.8也可在Windows 7和Windows Server 2008 R2 上使用。您可以从我们的 .NET下…

[NewLife.XCode]数据层缓存(网站性能翻10倍)

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netcore&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0c;代…

[NewLife.XCode]高级查询(化繁为简、分页提升性能)

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netcore&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0c;代…