另一种声音:容器是不是未来?

作者 | Ian Eyberg

译者 | 天道酬勤 责编 | 徐威龙

封图| CSDN 下载于视觉中国

CSDN 云计算旨在为读者提供更多角度的声音,本文仅代表作者个人观点,不代表CSDN云计算任何立场。

前几天作者看到了这则推文,可以这么说,是它促使我开始就本文主题进行了更多思考。       

正如我将在下文中提到的那样,表达任何事情时不能太过绝对,因为会引起其他人的反感。

我读了hackernews,我非常努力地避免打开评论部分,然而,我时不时地屈服于这种诱惑,我会看到有人抱怨他们由于安全性,性能或其他原因而将容器从生产中剥离出来。原因是(只有10,000个原因)。然而,我时不时地屈服于这种诱惑,我会看到有人抱怨他们是出于安全性或性能或其他原因(只有10,000个原因)如何将容器从生产中剥离出来。

然而,有趣的是,当这些观点被表达出来的时候,最近,我开始看到一些问题,比如“我真的很好奇——还有其他的选择吗?” 

有一段时间,我完全不知道问这个问题的人实际上在问什么。你的意思是有什么替代方案?你打开一个Linux机器,结束一天的工作。

从那时起,我意识到已经有整整一代的软件工程师在这种疯狂中成长起来的。想象一下,如果你在2013年(才7年前)是22岁或23岁,但是在一个软件世界中,这几乎是一生。如此漫长的时间足以让你从大学毕业,并获得你的“高级工程师”头衔。你可以在20多岁的时候只部署容器,甚至都不知道存在任何其他方法。例如,术语“ingress”在k8s社区中使用,就好像它是某种产品类别,而loand - see nginx被用作主要组件。你会看到人们问这样的问题:“你会用什么来进入?”他们问的是如何将nginx配置为反向代理。 

我不知道是否缺少教育,或者市场营销是否遮住了阳光,还是什么,但是,现在很明显,我们未能教会这批工程师某些技能。

简历驱动开发

 

发生的一个非常有趣的悖论是,许多kubernetes用户正在通过简历驱动开发来学习部署kubernetes集群,并且工程部门的副总裁和其他领导允许他们这样做,这样他们就可以留住他们,做一项已经非常困难的工作——招聘工程师。 

董事、副总裁和其他领导人实际上是在给他们点好处,让他们留在自己的公司工作——不一定是出于技术/成本利益。许多管理人员私下也承认这一点。

这种“特权”已经开始明显破坏软件工程生态系统。如果企业不采取正确的做法,这种对Linux技能的剥离将在未来对企业造成很大的伤害。

西蒙(Simon)有先见之明地注意到这是在两年前发生的。     

我认为我们最近开始看到这种加速。部落分裂是真实存在的。

 

安全是容器的丧钟吗?

容器和kubernetes在安全性方面的口碑比较一般。如最近在RSA会议上有关kubernetes中的高级持续性威胁的视频所展示的那样,很明显kubernetes是攻击者的一个未曾预料的目标。你拥有一个主机——即使是最次要的应用程序,你也可以完成。你的整个基础架构都准备好了。       

视频地址:https://youtu.be/CH7S5rE3j8w 

我们多年前就已经知道安全性最终将摧毁容器生态系统。默认情况下,它只是被破坏了,无法通过任何工具或体系结构更改来修复。

在最近的FOSDEM视频中,Kris Nova进入了kubernetes集群,来展示它是多么容易,然后展示了如何审计入侵:       

当你听到人们在推特或Linkedin上谈论有关“ devsecops”以及安全性的信息时,这是一个彻头彻尾的笑话。  Kubernetes和安全根本不属于同一句话。

补充说明,我认为人们应该真正了解Kris是k8s社区中的开发人员的这个事实,并且(至少)这是她第二次在演讲标题中将kubernetes称为“ clusterfuck”。如果他们自己的开发人员会参加会议并将该软件称为“ clusterfuck”,那么为什么要将这个clusterfuck带入你的组织呢?

  • 你到底为什么要把此ClusterFuck带入你的组织?

这里的问题是容器和扩展的k8s架构在默认情况下是被破坏的。不管任何供应商怎么说,都没有办法保证kubernetes集群的安全。首先,它从没有设计上的安全性。那是一间用纸牌搭成的房子,地基是沙子,到处是狂欢节上叫卖的小贩。

事实上,今年在FOSDEM上有很多推特上的引用,比如在这个演讲的最后几分钟里:“内核开发人员对docker社区的看法是,在极少数情况下,他们实际上可以正确地表达问题,而他们通常不理解答案。”

 

都是游戏

 

假设你没有读过前面的段落。经过多年的调整,他们的观众在“正确”的方式上提供和使用kubernetes集群的方式来调节受众群体之后,大型G公司引入了新的定价变化,引起了轰动。       

谷歌通过排除新的SLA, Anthos,提高了K8s集群管理费用的回报,但是客户并不满意。这是一个没人想要也没人要求的回归:

https://www.theregister.co.uk/2020/03/05/google_reintroduces_management_fee_for_kubernetes_clusters/

可以预见,这导致那些已经对GKE药物上瘾的公司彻底垮台。我不知道为什么每个人都被这个搞得措手不及——也许是因为谷歌承诺他们永远不会这么做。

摩擦

 

这就是问题所在,大多数容器和k8s人员都非常反对将其他任何东西作为基础结构范例的一部分。问题是,这些人花了至少5年或更长的时间,围绕着k8s神话建立自己的个人品牌,告诉每个人和他们的母亲,这就是阿尔法和欧米伽的全部归宿。

MicroVM和NanoVM

 

Google和AWS都知道并承认容器和kubernetes已损坏。 

这就是为什么他们努力通过市场营销改善工作的原因。我的意思是“开源”,例如firecracker和gVisor。当然,firecracker只能在非常昂贵的“裸机”实例(不是真正的裸机)和gVisor上运行。gVisor是另一个项目,在这个项目中,布道者声称谷歌已经在生产环境中运行了许多年,而在生产环境中,它最明显的替代了内部存在的某种类似的东西。

真相与谎言

显然,一段时间以来,我们一直在宣扬这种通用设计模式,即在独立的虚拟机上运行单个程序,以至于我们认为有必要创建自己的内核。有很多关于“简化系统”的说法,比如bottlerocket,但有更多关于剥离系统组件的说法,这些组件根本不属于2020年虚拟化世界的系统组件。用户是谁?谁需要他们?有多个进程么? 你的目的只有一个么? 可以交互式远程登录吗?

现在要完全清楚,我们所有的工程师都很高兴,并且大量Linux用户已经使用了相当长的时间。这个内核并不是为了取代Linux而设计的,因为Linux被用于许多内核从未试图解决的许多事情。

例如,我们绝不会在实际计算机上直接配置Nanos。我们也不会向它添加ssh支持(即使我们能够做到)。我们也不会将其作为台式机运行。今年不是开局之年。它存在的唯一目的是将其部署在服务器环境中。 

容器是不是未来?每一种技术都拥有两种不同的声音,一种支持,一种质疑。我们不能抹去他人质疑的权利,但也可以坚持自己的信念,各自为证,用结果来说话。

如果有不清楚的地方或其他意见,欢迎评论告诉我们。

原文:https://www.linkedin.com/pulse/containers-future-ian-eyberg/ 

2020 AI 开发者万人大会将于6月26日通过线上直播形式,让开发者们一站式学习了解当下 AI 的前沿技术研究、核心技术与应用以及企业案例的实践经验,同时还可以在线参加精彩多样的开发者沙龙与编程项目。参与前瞻系列活动、在线直播互动,不仅可以与上万名开发者们一起交流,还有机会赢取直播专属好礼,与技术大咖连麦。

今日福利:评论区留言入选,都可获得价值299元的「2020 AI开发者万人大会」在线直播门票一张。  快来动动手指,写下你想说的话吧!

推荐阅读:为何你的 SaaS 想法总是失败?没想清楚这 4 个原因可能会继续失败!
如何给女朋友解释什么是撞库、脱库和洗库?
开源的未来 10 年:中国开源社区建立是关键
万字好文:智能合约编写之Solidity的编程攻略,建议收藏!
Python 爬取疫情期间全球股市走向,笑不出来......
无代码时代来临,程序员如何保住饭碗?
真香,朕在看了!

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

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

相关文章

Java-稀疏数组

public class ArrayDemo08 {public static void main(String[] args) {// 1. 创建一个二维数组 11*11 0: 没有棋子 1: 黑棋 2: 白棋int[][] array1 new int[11][11];array1[1][2] 1;array1[2][3] 2;// 输出原始的数组System.out.println("输出原始的数组");for…

揭秘|每秒千万级的实时数据处理是怎么实现的?

1、设计背景 闲鱼目前实际生产部署环境越来越复杂,横向依赖各种服务盘宗错节,纵向依赖的运行环境也越来越复杂。当服务出现问题的时候,能否及时在海量的数据中定位到问题根因,成为考验闲鱼服务能力的一个严峻挑战。 线上出现问题…

Vue3.x 使用ref和reactive、toRef

文章目录一、使用ref1. 引入2. 定义ref变量3. 赋值.value4. return 返回值5. 将数据渲染到页面二、使用reactive 和 toRef1. 引入2. 定义reactive变量3. 赋值变量.对象4. return 返回值5. 将数据渲染到页面三、效果图源码3.1. 效果图3.2. 源码一、使用ref 1. 引入 从vue里面引…

同学,要不要来挑战双11零点流量洪峰?

阿里妹导读:双十一的零点,整个电商系统的请求速率到达峰值。如果将这些请求流量只分配给少部分 server,这些机器接收到的请求速率会远超过处理速率,新来的任务来不及处理,就会产生请求任务堆积。 今年的中间件性能挑战…

GitHub 疑遭中间人攻击,最大暗网托管商再被黑!

整理 | 伍杏玲出品 | 程序人生(ID:coder_life)近期,在全球关注新冠肺炎疫情之际,黑客却频频动作,发动攻击:GitHub 疑遭中间人攻击,无法访问从26日下午开始,有网友表示国内…

Java-什么是面向对象

https://www.bilibili.com/video/BV12J41137hu?p60

Jenkins Pipeline脚本优化:为Kubernetes应用部署增加状态检测

引言 在软件部署的世界中,Jenkins已经成为自动化流程的代名词。不断变化的技术环境要求我们持续改进部署流程以满足现代应用部署的需要。在本篇博客中,作为一位资深运维工程师,我将分享如何将Jenkins Pipeline进化至不仅能支持部署应用直至R…

Apache Flink 结合 Kafka 构建端到端的 Exactly-Once 处理

文章目录: Apache Flink 应用程序中的 Exactly-Once 语义Flink 应用程序端到端的 Exactly-Once 语义示例 Flink 应用程序启动预提交阶段在 Flink 中实现两阶段提交 Operator总结 Apache Flink 自2017年12月发布的1.4.0版本开始,为流计算引入了一个重要的…

一文教你如何使用 MongoDB 和 HATEOAS 创建 REST Web 服务

作者 | Ion Pascari译者 | 天道酬勤 责编 | 徐威龙封图| CSDN 下载于视觉中国最近,作者在把HATEOAS实现到REST Web服务时遇到了一件有趣的事情,而且他也很幸运地尝试了一个名为MongoDB的NoSQL数据库,他发现该数据库在许多不需要管理实务的不同…

使用NGINX作为HTTPS正向代理服务器

NGINX主要设计作为反向代理服务器,但随着NGINX的发展,它同样能作为正向代理的选项之一。正向代理本身并不复杂,而如何代理加密的HTTPS流量是正向代理需要解决的主要问题。本文将介绍利用NGINX来正向代理HTTPS流量两种方案,及其使用…

IoT SaaS加速器——助力阿尔茨海默病人护理

场景介绍 阿尔茨海默病,是导致中老年人认知功能障碍的最常见疾病之一,是发生在老年期及老年前期的一种原发性退行性脑病。据估计,全世界痴呆症患者数量为4700万,到2030年将达到7500万人。痴呆症患者数量到2050年预计将是现在的近…

一个数据科学家需要哪些核心工具包?

作者 | Rebecca Vickery译者 | 天道酬勤 责编 | 徐威龙封图| CSDN 下载于视觉中国数据科学家的主要作用是将机器学习、统计方法和探索性分析应用到数据中,来提取见解并帮助制定决策。 编程和计算工具的使用对该角色来说必不可少。 实际上,许多人都用这句…

Java-静态方法、非静态方法

// 学生类 public class Student {// 静态方法 staticpublic static void say01(){System.out.println("学生01 静态方法说话了");}// 非静态方法public void say02(){System.out.println("学生02 非静态方法说话了");} }静态方法、非静态方法 public cla…

SpringBoot2.x Flowable 6.4.2 开源项目

文章目录一、项目服务端初始化1. 创建数据库2. 初始化表结构.3. 表结构补充4. 配置文件修改5. 下载依赖6. 异常解决7. 启动服务端二、前端初始化2.1. 安装Node(V12.x.x以上)和NPM(V6.x.x以上)2.2. 安装淘宝镜像2.2. 初始化前端项目2.3. 启动项目2.4. web登录页面2.5. 效果图三、…

MongoDB 4.2 新特性解读

云数据库 MongoDB 版 基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。并提供专业的数据库在线扩容、备份回滚、性能优化等解决方案。 了解更多 MongoDB World 2019 上发布新版本 MongoDB 4.2…

Java-类与对象的创建

// 学生类 public class Student {// 属性String name; // 默认 nullint age; // 默认 0// 方法public void study(){System.out.println(this.name " 在学习");} }public class Application {public static void main(String[] args) {// 实例化后会返回一个自己…

Spark3.0发布了,代码拉过来,打个包,跑起来!| 附源码编译

作者 | 敏叔V587责编 | 徐威龙封图| CSDN 下载于视觉中国Spark3.0已经发布有一阵子了,官方发布了预览版,带来了一大波更新,对于我们程序员来说,首先当然是代码拉过来,打个包,跑起来!&#xff01…

MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行。那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个说法&#xff1…

Java-构造器

一个类即使什么都不写,它也会存在一个方法 package oop.demo02;/*** author blake.wang* date 2021-04-19 18:58*/ public class Person {// 一个类即使什么都不写,它也会存在一个方法,具体可以看一个空 类 的编译后的class文件// 显示的定…

IntelliJ IDEA 2020 基础设置

文章目录1. 字体设置2. 编码设置3. jdk设置4. 自动引入包和删除无用引入的包5. 打开文件左右联动定位1. 字体设置 菜单字体 编辑区 控制台 收缩自如 2. 编码设置 3. jdk设置 4. 自动引入包和删除无用引入的包 5. 打开文件左右联动定位