系统管理员的容器时代之殇

系统管理现在处于一个癫狂的时代,一片混乱。

我并不是抱怨老式系统管理员们,他们还是知道如何让系统工作起来,知道怎么更新系统和如何升级扩容。

这篇吐槽是关于容器、预构建虚拟机镜像的,它们真是令人难以置信的混乱,它们的脑子里面就根本没有“可信”和“升级”的概念。

举个 Hadoop 的例子,似乎就没有人知道如何从头构建一份 Hadoop,它那令人头昏眼花的依赖关系、版本需求和构建工具让人云山雾罩。所有这些“神奇”的工具仍然是通过传统的 make 命令构建的,每个工具都是它自己带的,彼此不兼容,你得按照没有复用意义的“当日路线图”来构建。因为没有人能从头构建,所以现在大家都从一些不定是哪个的网站去下载已经编译好的二进制,基本上没有任何认证和签名。

这是 NSA 和病毒们的天堂啊!不需要搞什么破解和漏洞挖掘,只需要弄个“APP”、虚拟机或 Docker 镜像,人们就会把这些恶意代码弄到他们的网络里面去。

Debian 的 Hadoop 维基页就是一个典型的例子,基本上,从 2010 年开始人们就已经放弃了从源代码构建一个 Debian 上可用的 Hadoop 包了。

要构建 Apache Bigtop,你首先需要安装 puppet3,然后用它从互联网上下载一些魔法般数据。以 sudo 的权限启动 puppet ,顺便给 NSA 开个后门(举个例子,它会下载和安装一个过期的预编译的 JDK——因为它认为你太笨了,不会安装 Java),然后期待它能顺利构建而不是抛出200行的毫无用处的报错跟踪。

我没有开玩笑,它会试着执行像下面这样的脚本:


  1. /bin/bash -c "wget http://www.scala-lang.org/files/archive/scala-2.10.3.deb ; dpkg -x ./scala-2.10.3.deb /" 

注意,甚至这并没有正常的安装这个包,而只是将其解压缩到你的根目录下!下载时也没有检查任何签名、没有通过 SSL(脚本来自 Bigtop 的 puppet 清单)。

即便你的构建正常工作了,它也会通过 Maven 下载来自互联网的没有签名的二进制代码,并用这些来构建。

不再写一些干净的、模块化的架构,所有这些现在都牵扯在混乱的依赖里面。我上次看到, hadoop 的类路径已经有 100 多个 jar 了,现在?我打赌它肯定有 150 个了。那些 HBaseGiraphFlumeCrunchPigHiveMahoutSolrSparkElasticsearch 以及 Apache 家族的其它东东都是这样混乱。

所谓软件栈,现在的意思是“我也不知道我实际上用的是啥”。

Maven 、ivy 和 sbt 这些即用的工具其实就是让你的系统从互联网下载那些无签名的二进制数据并运行在你的计算机上。

再加上容器,哦天哪,更乱了。

是否想过给容器进行安全更新?

基本上,Docker 的思路就是下载一个未签名的二进制并运行它,然后期望它不要将任何后门放到你的公司网络里面去。

这就像是我在90年代时在 Windows 上下载的共享软件一样。什么时候会出现第一个带有 Ask 工具条的 Docker 镜像呢?第一个通过 Docker 镜像传播的互联网蠕虫呢?

回到前些年,Linux 发行版努力着提供一个安全的操作系统,带有签名的软件包、可信的网络、甚至还能完全的重新构建。

而现在呢?什么东西都已经 Windows 化了,到处是疯狂的“App”,你下载,你运行,根本不管是否安全,是否能升级到下个版本。因为你就是“过把瘾就死”!

更新:其实在 Docker 之前就有这样的作法了,Docker 只是一个新的 'curl | sudo bash' 而已。是的,这就是主流的、在你的数据中心下载并运行一个不可信软件的方法。这太糟糕了,真的。之前,系统管理员还在努力的防御安全漏洞,现在,他们自称 “devops”了,然后很 happy 地把这些东西弄到他们的网络里面了!

本文作者: wxy

来源:51CTO

时间: 2024-07-28 17:46:53

系统管理员的容器时代之殇的相关文章

企业应用快速跨向容器时代的正确姿势

本文讲的是企业应用快速跨向容器时代的正确姿势[编者的话]文章以通俗易懂的方式详细解读容器的诞生.容器的管理以及容器如何对应打包等问题. 云计算的发展脉络 云计算整个发展过程,用一句话来形容,就是"分久必合,合久必分". 容器的诞生 云计算解决了基础资源层的弹性伸缩,却没有解决 PaaS层应用随基础资源层弹性伸缩而带来的批量.快速部署问题.于是容器应运而生. 容器是 Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱.集装箱的特点,一是打包

容器时代的DevOps部署

本文目录: 一.企业应用的部署发展 二.普元容器云与DevOps的部署设计 三.面向微服务的部署设计 四.容器组装化部署 五.容器云集成之路 六.结语 一.企业应用的部署发展 本文讲的是容器时代的DevOps部署,企业应用,指的是那些部署在企业的服务器上,为企业的生产与运作提供支撑的核心系统.随着IT技术的发展,企业应用的部署环境不断地发生着变化.最初,大家用的都是物理机,后来出现了虚拟机,再到IAAS平台的兴起,到现在,大家都在忙着往容器迁移.环境的变化,也促使部署模式发生着变化.部署环境,我

容器时代的分布式日志架构

本文讲的是容器时代的分布式日志架构, 微服务与宏观问题 现代的科技公司强调微服务架构,容器也越来越重要.在需要为多种平台和应用提供服务的世界里,微服务是必不可少的.容器,比如 Docker,相比于它的近亲,虚拟机, 拥有更高的资源利用率,更好的隔离性和更棒的可移植性,这使其成为了微服务的理想选择. 但微服务和容器也会带来问题.可以将它已过时的前代单体架构与现代的微服务框架对比来思考. 单体架构也许不具备可扩展性和灵活性,但它有统一性的优势.要理解为什么统一性非常重要,想象你也许需要根据你的业务需

容器时代,难道这就是我们想要的未来?

以下完整的对话记录,U 为提问者,P为Paul Biggar(Founder of CircleCI). U:Hi,我老板让我采访你,我听说你是个Web专家? P:是啊,我现在专攻分布式系统.我刚从ContainerCamp和Gluecon回来,打算下周参加DockerCon.真的很兴奋,整个行业正朝着 - 让一切更简单,更可靠的方式前进.这就是未来! U:Cool,我现在构建一个简单的Web应用程序 -- 一个使用Rails的普通CRUD应用程序,将会部署到Heroku的.给我提些建议? P:

透过微信应用号,看HTML5与Native进入融合时代

本文作者:邹达,APICloud CTO,10年来一直专注于移动浏览器引擎研究,参与过国内外多个浏览器引擎,Javascript引擎和跨平台应用引擎架构和开发. 如果说以前的微信公众号还是一个媒体化的平台,那么2016年的公众号会有一种新的形态,叫应用号.应用号预示着比公众号更强大的功能.更优质的体验以及更丰富的服务.应用号的出现是微信产品的一次重大升级,无论是为了体现用户价值观?还是追求产品商业化?作为一名技术人员,我不想过多讨论,而是更愿意从技术的角度来分析一些其中Web技术的发展. 微信做

美团点评容器平台HULK的调度系统

本文讲的是美团点评容器平台HULK的调度系统[编者的话]美团点评作为国内最大的O2O平台,业务热度的高峰低谷非常显著且规律,如果遇到节假日或促销活动,流量还会在短时间内出现成倍的增长.过去传统虚拟机的服务运行及部署机制在应对服务快速扩容.缩容需求中存在诸多不足: 资源实例创建慢,需要预先安装好运行所需的环境,比如JDK等. 扩容后的实例,需要经过代码部署流程,一些情况下还需要修改配置后才能承接流量. 资源申请容易回收难,促销活动后做相关资源的回收下线会比较漫长. 由于业务存在典型的高峰低谷,为保

DockOne微信分享(一二〇):基于Kubernetes的私有容器云建设实践

本文讲的是DockOne微信分享(一二〇):基于Kubernetes的私有容器云建设实践[编者的话]本次分享将为大家介绍易宝支付私有容器云从0到1的建设之路.包括技术选型.理论基础.基于Kubernetes的容器云和CI/CD落地过程中的挑战和踩过的坑. 建设背景及目标 在Docker技术流行开来之前,保证软件交付的质量和速度对于大多数企业来说都是困难的.业务的复杂性带来了应用的复杂性,面对成千上万的不同应用,运维部门需要时刻应对来自不同应用.不同环境的挑战.特别是在自动化运维程度不高的企业,"

【DockerCon2017最新技术解读】使用Moby工具和Linuxkit定制容器系统

摘要:在云栖TechDay34期:DockerCon2017最新的技术解读中,阿里巴巴技术专家王炳燊为大家解读了在DockerCon2017中新发布的Moby项目和Linuxkit项目,为大家详细地介绍了Moby与Docker的区别,以及Linuxkit的优势所在,并通过示例介绍了如何利用Moby工具和Linuxkit定制容器系统. 以下内容根据演讲嘉宾现场视频以及速记整理而成. 演讲嘉宾介绍: 王炳燊(花名:溪恒),具有丰富的Linux开发经验,对Docker技术有深入研究,多次提交Docke

DockOne微信分享(一一三):从一个实际案例来谈容器落地的问题

本文讲的是DockOne微信分享(一一三):从一个实际案例来谈容器落地的问题[编者的话]容器是这两年最热的一个话题,去年大家都在谈Mesos.Kubernetes.Swarm,究竟哪家的挖掘技术强,今年容器技术的进一步普及,更多的人更关心容器技术如何落地,下面我们就基于一个实际的案例来聊一下容器落地遇到的问题. [深圳站|3天烧脑式Kubernetes训练营]培训内容包括:Kubernetes概述和架构.部署和核心机制分析.进阶篇--Kubernetes调工作原理及源码分析等. 背景:某银行数据