摘要:你听说过吗?容器技术是IT救世主。应用开发人员能够检出容器镜像,安装应用,然后重复部署。据容器软件厂商Docker所说,使用容器技术,开发人员能够构建、传输并在任何地方运行任一应用。 |
你听说过吗?容器技术是IT救世主。应用开发人员能够检出容器镜像,安装应用,然后重复部署。据容器软件厂商Docker所说,使用容器技术,开发人员能够构建、传输并在任何地方运行任一应用。
Docker与Java有很多相似之处。Java承诺编译一次后就能够到处运行。这个承诺相当大胆,而且太阳公司(现在是Oracle)几乎是彻头彻尾地失败了。我们常常因Java版本问题陷入困境,向前以及向后都不兼容、平台不兼容、在不同平台间遇到性能问题、安全问题等等。
容器同样会遇到部分相同的问题。尽管承诺抽象自底层操作系统,但仍需要关注底层操作系统。尤其需要升级操作系统或者打补丁,而开发人员几乎不会升级操作系统或者给操作系统打补丁。研究表明很多容器镜像存在严重的、无法调节的安全性问题。进一步说,容器技术存在很大的信任问题。开发人员正在使用互联网上陌生人构建的容器镜像构建应用吗?你怎么知道这些镜像是安全的,没有包括后门或恶意软件?
和Java类似,容器同样存在版本问题。目前有很多不同的容器软件,比如Docker、Rocket、LXC、VMware ThinApp、Solaris Zones等等,两个不同的开发团队选择两种不同的技术是很常见的。每一种容器技术都存在与底层基础设施之间的兼容性问题。开发人员需要X版本的容器技术,但与组织支持并保护的操作系统不兼容,要么就需要重新改造,这违背了对员工的时间承诺。
而且容器几乎没有提供管理接口。Chargback/showback从未听说过,也没有提供安全工具。在常规框架中备份与恢复也无法实现,这对日常操作、灾难恢复以及业务连续性来说都是个大问题,变更管理也被取消。考虑到上述问题,我认为容器是一种为开发人员精心设计的逃避传统职责的方式,尤其就风险管理而言更是如此。尽管开发人员正在享用容器承诺的免费午餐,我总是想知道是谁在付费,因为午餐价格不菲。
那么,我们需要做什么?首先,我们开始思考一直被问到的完全相同的问题。如何处理容器故障?应用数据被保存在哪儿?如何被保护?我们能在一个容器平台上为所有团队提供标准化的容器吗?谁正在构建并维护黄金档容器镜像,如果不是组织自己,那么如何信任这些容器镜像?我们的应用如何进行安全升级?容器如何与变更管理流程紧密配合,如何做容量管理?说到底,世界上并没有免费的午餐。
责任编辑:DJ编辑