写点什么

开发者可能低估了容器部署的复杂性

  • 2019-04-10
  • 本文字数:2510 字

    阅读完需:约 8 分钟

开发者可能低估了容器部署的复杂性

上一篇文章中,我认为,在谈论 Kubernetes 时,炒作成分可能已经大于实际采用。对该文章的回应不一而足,从有关容器的基本问题,到非常坚定的观点:许多人已经在运行多集群、多云容器化的基础设施。关于后一种观点,根据我的经验,小型的、更敏捷的公司往往低估了大型企业对变革的缓慢反应背后的复杂性(在拆解大集团的缓慢动作方面, Ian Miell 在《为什么大集团行动这么慢?》一文中做了绝佳解读)。因此,本文将尝试解决以下三件事:


  • 一些非技术人员可能还想了解容器是什么,因此本文尝试简化相关基本定义

  • 很多公司已经成功采用容器技术,就此提出这些公司的共有属性是什么

  • 解释为什么迁移到容器只是面临的 IT 问题的冰山一角


问题:应用在 VMware 的容器中运行,它是云原生的吗?


很遗憾地说,不一定。我们要记住,容器只是一个可以在基础架构上运行的软件包,并且(至少)有两种类型的容器。


自从 LXC(2008) 或者可以说是之前的 Solaris Zones 时代以来,系统容器就已经存在很长时间。简单来说,这些就是行为类似于虚拟机的小型、高效的单元。它们可以支持多个可执行应用程序、提供隔离功能,同时还有系统管理员可以安全使用的其他功能,例如易管理性。如果希望在不彻底改变 IT 实践的情况下实现容器化,这对传统应用程序是非常理想的,而且好处很简单:与虚拟机相比,每台服务器的应用程序密度提高了 10 倍以上。


应用程序容器只有一个要执行的应用程序。这是 Docker 图像格式(与 Docker Engine,Docker Swarm 或 Docker Inc. 不同)和 OCI 的世界,也是大多数人在提到“容器”一词时所指的世界。从 IT 角度来看,这带来的好处是,运行微服务应用程序的应用程序容器可以实现云原生的全部优势:高交付速度、几乎无限的可扩展性和更高的弹性。这些戏剧性的成果需要重大的文化和技术转变,稍后会详细提及。


容器只是外表,更广泛地讲,只会做被告知要做的事情;微服务是编写软件应用程序的架构方法;云原生是一种提供应用程序的方法。回答前面的问题:抛弃现有资源、忽略商业产出以追求理想,可能不是好的实践,所以,如果有一个 VMware 环境可用,那对现状而言已经足够云原生了( 从这个角度来看,VMware 收购 Heptio 对于未来的用例而言是很有趣的)。 最重要的是,想通过最简单的项目(也就是容器)来解决前述一大串问题的想法是常见的错误。

IT 中没有雷神之锤

我最近和一家英国大型金融服务公司的云服务部门负责人见面,他告诉我,公司的前任 CIO 因为未能实现“直接无服务”战略而不得不离职。“直接无服务”战略即直接越过云和容器的革命技术,从而在公司运转良好的私有数据中心直接运行无服务技术。 CIO 不得不离开并不意外:在任何工作中,都需要使用合适的工具来完成合适的工作,特别是当这些工作很复杂的时候。在云中,这意味着,在大多数情况下,用户可能会在私有服务器、私有云或公有云的任意组合上综合使用裸机、虚拟机、容器和无服务器。


毫无疑问,据我所知,成功的 IT 转型过程的第一步是:不要过度简化本就十分庞杂的 IT 革命或进化(®evolution)。相反,从整体上理解它,并根据业务成果和目标进行判断。能努力做到这一点已经很好,但并非所有公司都拥有成为云原生纯粹主义者的资源。即使不完全实现云原生,只是采取较小的步骤,也有明显的好处,例如允许更多时间去分析技术的影响,或实现更好的风险管理。(来自容器公司 Cloud 66 的这篇文章很好地描述了将单个 APP 迁移到容器的短期效率和长期洞察。)

已知和未知问题

但最终,如果容器只是容纳了更多的单个应用程序,用户就不会对容器革命感到如此兴奋了。一个在容器中运行的微服务应用程序,是在多个基板上编排的,而这一切都基于云原生原则 - 后者才是值得奋斗的东西。大多数人想要的是一个可以快速又可靠地扩展、运行资源少、能够快速适应客户和竞争动态并可以自我修复的应用程序。


再次重申,容器只是其中的一部分而已。考虑一下技术方面的挑战:编排如何操作?而网络又当如何?状态服务又当如何?云原生管道工具呢?


更重要的是文化方面的挑战:在推行开发实践时,需要改变什么东西?如何才能找到并留住合适的人才?如何重新培养年长的成员、在新人和老人之间架起桥梁?风险平衡又将如何变化?

开源已经融入战略

事实证明,云和开源的兴起已经相互联系起来,这也带来了一些有趣的现象,正如我在之前的文章中探讨的那样。在容器中,这种协同作用似乎比以往更加剧烈。 Kubernetes 和许多相关的开源项目,包括云原生计算基金会(CNCF) ,背后的主宰都是 Linux 基金会的一部分。CNCF 基金会章程明确了自身意图:旨在促进和维持一种开源的、厂商中立的项目的生态系统。因此,自 2014 年成立以来,通过大量开源项目的交叉混合, CNCF 基金会在管理复杂的云原生堆栈方面变得越来越轻车熟路(参见基金会年度报告中的一些有趣数据)。简单来说,使用容器本地化方法的次数越多,用到的开源项目也就越多。


另一方面,开源软件包构成了大量免费和专有应用程序 - 虽然整个应用程序可能是专有的,但团队实际编写的内容占比可能非常低。正如开源安全状态报告所示,开源项目的使用与数字化变革是紧密结合的,因此对业务越来越关键;但是,只有 17% 的维护人员将安全专业知识排在高优先级,这意味着很多这些软件包都存在运维风险。


另一个方面是社区:使用更多的开源使得组织成为社区的利益相关者,因此这些组织应该与相关社区保持联系,以了解可以如何做出贡献、如何参与到项目路线图中并尽可能快地响应安全警报问题。

结语

总结一下,关于加入容器浪潮的“简单”决定将固有并明显地增加组织从开源软件中的获益能力和曝光能力。该软件可能会也可能不会得到大型赞助商的支持,可能会在很大程度上由志愿者维护,并且可能会有一个充满活力的社区 - 所有这些人都需要依赖这些项目的用户参与。


换句话说,容器是数字化转型的关键部分,但只是其中一部分。数字化转型的一部分问题将会在毫无预期的情况下出现在软件交付系统中,如果与开源的开放性、成熟性和责任正确组合的话,整个数字化转型可以为应用程序提供优质的东西。


原文链接:https://www.forbes.com/sites/udinachmany/2019/02/11/these-are-not-the-containers-youre-looking-for/#1a6b31083a89


2019-04-10 09:2410203

评论

发布
暂无评论
发现更多内容

Flink CDC 系列 - Flink MongoDB CDC 在 XTransfer 的生产实践

XTransfer技术

flink 分布式数据库mongodb

并发场景加锁优化小技巧

程序员小航

jdk 并发

Babel 学习日记(0)

恒生LIGHT云社区

前端 babel

盘点 2021|从零开始,向前出发

Middleware

生涯规划 个人成长 盘点2021 2021年终总结

SphereEx 亮相 openGauss Summit 2021,同云和恩墨签订战略合作协议

SphereEx

开源 ShardingSphere SphereEx 云和恩墨 战略合作

Linux云计算之使用rsync+sersync 实现数据实时同步

学神来啦

Linux centos linux运维 rsync linux云计算

面向 web 开发人员的免费托管服务

开源之巅

带你了解家居智能的心脏:物联网关

华为云开发者联盟

物联网 智能家居 物联网关 智能网关 家庭网络

Hoo虎符研究院 | Mir Protocol 调研报告

区块链前沿News

Hoo虎符 虎符交易所 好项目

在线JSON转MySQL建表语句工具

入门小站

工具

新官网心体验,腾讯WeTest全新产品功能与解决方案发布!

WeTest

【鲲鹏 DevKit黑科技揭秘】│如何实现全链路系统问题90%精准诊断?

华为云开发者联盟

内存 性能分析 内存泄漏 鲲鹏 鲲鹏 DevKit

网络编程懒人入门(十三):一泡尿的时间,快速搞懂TCP和UDP的区别

JackJiang

TCP 网络编程 udp 即时通讯 IM

【Netty技术专题】「原理分析系列」Netty强大特性之ByteBuf零拷贝技术原理分析

洛神灬殇

Netty 零拷贝 zero copy 12月日更

面试官:this和super有什么区别?this能调用到父类吗?

王磊

大数据开发之Spark SQL及基础引擎知识分享

@零度

大数据 spark SQL

PingCode 技术架构揭秘

PingCode研发中心

架构 技术架构 研发 PingCode

持续创新·驱动计算:英特尔2021年技术发展大盘点

科技新消息

四款常见IT自动化运维工具简单介绍-行云管家

行云管家

运维 IT运维 自动化运维

FFmpeg的一些应用实践-补充

为自己带盐

ffmpeg 28天写作 12月日更

QCon-小布助手对话系统工程实践

安第斯智能云

检索、问答、情感分析场景前沿技术方案分享!

百度开发者中心

自然语言处理

中国联通、欧莱雅和钉钉都在争相打造的秘密武器?虚拟IP未来还有怎样的可能

行者AI

人工智能 虚拟

如何在 Go 中将 []byte 转换为 io.Reader?

AlwaysBeta

golang Go 语言

SLICK: Facebook基于SLO的可靠性保障实践

俞凡

facebook 架构 大厂实践

TiDB Hackathon 项目白皮书—LotusDB

roseduan

TiDB KV存储引擎 kv

Dubbo的预热与停机实践

快看工程技术中心

dubbo 优雅停机 服务预热

Linux之find常用命令汇总

入门小站

近百万条数据、3秒查询,TDengine助力北微云平台的搭建

TDengine

数据库 tdengine 物联网

RandomAccessFile 解决多线程下载及断点续传

码农架构

微服务架构 断点续传 大文件断点续传 RandomAccessFile 微服务附件

等保五级怎么划分?适用于哪些系统?

行云管家

网络安全 等级保护 等保测评 信息安全等级保护

开发者可能低估了容器部署的复杂性_云原生_Udi Nachmany_InfoQ精选文章