【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

  • 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:2410071

评论

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

云原生(十三) | Kubernetes篇之深入Kubernetes(k8s)概念

Lansonli

云原生 k8s 8月月更

Open Office XML 格式中的 Style 设计原理

Jerry Wang

xml 微软 Office 8月月更 openOffice

canvas

Jason199

canvas 8月月更

Kubernetes 计算CPU 使用率

CTO技术共享

开源 签约计划第三季 8月月更

开源一夏 | 参与开源能让人更幸福

石云升

开源 开源社区 8月月更

学习Apache ShardingSphere解析器源码(一)

我不吃六安茶

ANTLR Apache ShardingSphere

鲲鹏编译调试及原生开发工具基础知识

乌龟哥哥

8月月更

API服务网关

阿泽🧸

API网关 8月月更

Spring 全家桶之 Spring Data JPA(一)

小白

8月月更

vue高频面试题合集(一)附答案

helloworld1024fd

Vue

vue高频面试题合集(二)附答案

helloworld1024fd

Vue

Linux配置SSH免密码登录(非root账号)

程序员欣宸

SSH 8月月更

软件定制开发——企业定制开发app软件的优势

开源直播系统源码

软件开发 直播系统源码 app定制开发 软件定制开发

Android进阶(一)Android 发邮件与几种网络请求方式详解

No Silver Bullet

android 8月月更 邮件发送

【LeetCode】重新格式化字符串Java题解

Albert

LeetCode 8月月更

全新FIDE 编译简单评测

Geek_99967b

小程序

Kubernetes 维护技术分享

CTO技术共享

开源 签约计划第三季 8月月更

C++运算符重载(三)之递增运算符重载

CtrlX

c c++ 代码 进阶员进阶 8月月更

Kubernetes你不知道的事

CTO技术共享

开源 签约计划第三季 8月月更

前端面试 | 必知必会的10道Promise题!

千锋IT教育

数据库 SQL 优化大总结之:百万级数据库优化方案

TimeFriends

8月月更

【精通内核】计算机程序的本质、内存组成与ELF格式

小明Java问道之路

编译原理 ELF 链接 签约计划第三季 8月月更

OAuth Client默认配置加载

阿提说说

Spring Security OAuth

开源一夏 | 粗暴项目监控,快速上手Spring家族的亲儿子SpringAdmin监控项目

知识浅谈

spring 开源 8月月更

开源一夏 | 盘点 GitHub 那些标星超过 20 K 的 Golang 优质开源项目

宇宙之一粟

GitHub 开源 Go 语言 gopher 8月月更

Kubernetes 选举机制HA

CTO技术共享

开源 签约计划第三季 8月月更

开源一夏|OpenHarmony如何选择图片在Image组件上显示(eTS)

坚果

开源 OpenHarmony 8月月更

React Redux 组件更新/渲染原理 connect 中的 mapStateToProps

HullQin

CSS JavaScript html 前端 8月月更

开源一夏|5分钟快速为OpenHarmony提交PR(Web)

坚果

开源 OpenHarmony 8月月更

STM32入门开发 LWIP网络协议栈移植(网卡采用DM9000)

DS小龙哥

8月月更

数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口

FinClip

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