“来吧,朋友们,这一点都不难。也许你需要进修一下课程。……现在已是滚珠轴承的时代了。”(来源:1985 年影片《古灵侦探》中的 Irwin Fletcher)。

可悲的是,现在和滚珠轴承一点关系都没有了。现在早已进入容器时代了。如果您听说过容器,但是不确定它们是什么,本文正好适合您。这篇博客文章探讨了以下问题:

  • 我为何要关心容器?
  • 容器是什么?
  • 容器和微服务是一回事吗?
  • 微服务应用的例子有哪些?
  • Docker 是什么?
  • 容器编排和 Kubernetes 又是什么?
  • 容器与 VM 镜像之间有何区别?
  • 如何开始使用容器?
  • IBM Cloud Paks 如何提供帮助?
  • 我可以在哪些地方运行容器?
  • Red Hat OpenShift on IBM Cloud 是什么?

船运集装箱来源:Shutterstock

我为何要关心容器?

在各种不同组织中,容器的采用范围都很广泛。许多人都在学习容器。一些公司在他们的容器化之旅中走得更远。如果您终究要考虑进行容器化,那么现在就加入进来吧,一起见证真实的业务成果:

  • 加快产品上市时间:新的应用程序和服务才能让您持续保持竞争优势。组织能够以三倍的速度(300%)交付新服务,并实现开发和运营敏捷性。
  • 部署速度:从开发到部署的速度提高了 60%。容器化为 DevOps 团队加快部署时间和频率扫清了障碍。
  • IT 基础架构缩减:通过提高应用程序工作负载密度,更充分地利用服务器计算密度以及降低软件许可成本,将成本降低了 40%。
  • IT 运营效率:通过自动管理各种应用程序和基础架构并简化为单一运营模型,将运营效率提高了 40%。
  • 享有自由选择权:可在任何公有云或私有云上打包、传送和运行应用程序。

(来源:为何选择 Docker?| Docker.com

容器是什么?

理解容器时,最恰当的比喻莫过于船运集装箱了。正因为如此,在大多数关于容器的文章和博客中,您都会看到一张船运集装箱的照片,当然,本文也不例外。我敢肯定,您看到过那些大型钢铁船运集装箱的运输过程。(我还看到一些与世隔绝的人用这些集装箱来建造房屋和游泳池。)航运业为集装箱的一致尺寸设定了标准。现在,相同的集装箱可以直接从船上转移到火车或卡车上,而无需卸货。集装箱中的物品无关紧要。

就像船运集装箱一样,软件容器就是标准化的软件包。运行软件所需的一切内容统统包含在容器中。软件代码、运行时、系统工具、系统库和设置全都在一个容器中。

容器和微服务是一回事吗?

一旦您开始研究容器,肯定就会阅读有关微服务的内容。(微服务不是您在晚上搭乘的那些小汽车。那些是微型机器。也许我这样说证明我老了?)微服务是一种架构样式。微服务架构通过用作为提供特定业务功能的松散耦合服务的集合来构造应用程序。容器有助于实现这一点。

使用微服务的应用示例有什么?

大约十年前,Netflix 是最早开始广泛使用容器的公司之一。这家公司使用微服务架构重新编写了应用程序来运行整个视频服务。据 Netflix 估计,它采用了约 700 种微服务来控制构成 Netlifx 的众多功能中的每一项功能。我们来看几个例子(并非全部 700 个):

  1. 视频选择:容器中的微服务可为您的手机、平板电脑、计算机或电视提供要播放的视频文件,并根据您的互联网速度提供视频质量。
  2. 查看历史记录:一项微服务会记住您所观看的节目。
  3. 节目推荐:一项微服务会查看您的观看历史记录,并使用分析功能推荐电影。
  4. 主菜单:一项微服务提供了主菜单上显示的这些电影的名称和图像。
  5. 计费:另一项微服务从您的信用卡中扣除月费。

Netflix 每天会产生大约 2.5 亿小时的视频,在 190 个国家/地区拥有大约 1.18 亿订户。在这种规模下,短短几秒钟内提供娱乐内容,让他们的应用程序经受了考验。没错,无论是小型企业还是大型企业,容器统统适用。 (来源:Netflix 的运作方式:每次点击播放时发生的复杂事情(已极大简化) | Mayukh Nair)

Docker 是什么?

既然了解了什么是容器,现在就应该介绍 Docker 了。(我说的不是舒适的星期五休闲裤 Dockers。)Docker 是开源容器化技术的名称,能够创建和使用容器。Docker 的出现不足为奇,但是 IBM 在 Docker 开源社区中非常活跃。

Docker 并不是什么新技术,它实际上自 2008 年起就已悄然出现。虽然还有其他容器候选技术,但大多数人认为 Docker 无疑是这场容器大战中的赢家。(你们中有些人可能还记得几年前的蓝光技术与 HD-DVD 标准之战。蓝光技术取得了胜利。而 Docker 就像是蓝光技术。)Docker 允许您在任何公有云或私有云上打包、传送和运行应用程序。能够随时随地运行应用程序,有助于您避免供应商锁定,并且可随时转移到新环境。

容器编排和 Kubernetes 又是什么?

这里还有一个关键的概念需要介绍,即“编排”。如果您只有一个容器,那么很容易管理。但是,随着您创建更多容器,有效管理这些容器便显得至关重要了。否则,您就有可能陷入一片混乱。(混乱可不是什么好事。)Kubernetes 可以让您避免上述混乱。(趣味小知识:Kubernetes 是希腊语,意为舵手或飞行员。)Kubernetes 是一个开源系统,可以试运行或编排您喜欢的容器化应用程序。Kubernetes 就好比一台起重机,能够移动并控制您的集装箱。与 Docker 一样,IBM 在 Kubernetes 开源社区中非常活跃

如前所述,Kubernetes 可以编排您的容器。这到底是什么意思?Kubernetes 可以扩大或缩小您的应用程序。Kubernetes 可以为您的应用程序实施变更和升级。如果出现问题,Kubernetes 会回滚变更并重新启动出现故障的容器,在节点停止运行时替换容器,并停止运行未响应运行状况检查的容器。这种管理可以节省资源而不牺牲可用性,并实现自动负载均衡。

容器与 VM 镜像之间有何区别?

顾名思义,虚拟机是模拟计算机系统的软件。VM 使团队能够在一台计算机上运行看似是多台计算机的设备。如果需要在其他类型的硬件或操作系统上运行软件,则 VM 可以提供该选项,而无需使用其他硬件。

容器和 VM 之间的主要区别在于,团队使用 VM 可以创建虚拟环境,其中包含操作系统,可以运行不同类型的软件。但是,容器会将软件与环境和操作系统隔离开来,从而使其几乎可以随时随地运行。 (来源:容器与 VM:有何差异?)

如何开始使用容器

古人云:“千里之行,始于足下。”但我并不想这样。因此,最好的方法就是从一个容器开始。应用程序容器化有很多好处,但问题是从何处着手呢?或者说,如何开始呢?

以下是三种着手方法:

  1. 迁移和扩展:“平移”的过程如下:将本地应用程序容器化以便提升(通常是从数据中心),然后将其转移到其他地方,通常是公有云或私有云。要指出的是,“平移”不是重构或分解您的应用程序。它是将应用程序的大部分或整个放入单个容器中。
  2. 应用程序现代化:更激进的方法是将您的整体应用程序重构到微服务容器中。这种方法是从一种开发方法转变为另一种方法。
  3. 新开发:最后,一些组织选择使用容器来启动所有新开发工作。

IBM Cloud Paks 如何提供帮助?

除了容器和 Kubernetes,企业还需要编排生产拓扑,并为应用程序提供管理、安全和治理功能。IBM Cloud Paks 应运而生。

IBM Cloud Paks 是适用于企业的容器化软件解决方案,提供了一种更快、更安全的开放方式,用于将核心业务应用程序迁移到任何云端。每个 IBM Cloud Pak 都在 Red Hat® OpenShift® on IBM Cloud™ 和 Red Hat Enterprise Linux 上运行,并在通用集成层之上包含容器化的 IBM 中间件和用于开发和管理的通用软件服务。该视频解释了相关架构。

要详细了解适用于应用程序、数据、集成、自动化和多云管理的 Cloud Paks,请参阅 IBM Cloud Paks

我可以在哪些地方运行容器?

请记住,Docker 和 IBM Cloud Paks 允许您在任何公有云或私有云上打包、传送和运行应用程序。如今,大多数组织都不会只依赖于一家云供应商。这的确是一种很好的做法。71% 的公司使用三个或更多的云,80% 的公司正在致力于采用多云战略。

可以考虑三种不同类型的云环境:

  1. 公有云:公有云是一个多租户环境,但是完全受到管理,并基于使用情况提供定价。IBM Cloud、AWS 和 Azure 都是公有云。您可以在上述任何云中运行 IBM Cloud Paks。
  2. 专属云:专属云具备公有云的优势,但具有专用的基础架构。专属云可满足许多行业法规要求。此外,您不会与其他人共享计算能力。
  3. 私有云:私有云可为您提供云计算的优势,但位于防火墙之后。IBM 所提供的 Red Hat OpenShift on IBM Cloud 是一项全面的服务,可在高度可扩展且可靠的 IBM Cloud 平台上提供完全托管的 OpenShift 集群。您掌控着相关密钥,而它则在安全的 IBM 数据中心内运行。

Red Hat OpenShift on IBM Cloud 是什么?

容器、Docker、Cloud Paks 和 Kubernetes,全部都有?Red Hat OpenShift on IBM Cloud 为您整合了上述一切内容。它利用了 IBM Cloud,因此您可以专注于应用程序的开发和管理。IBM 负责处理基础结构,而您只需点一下按钮,即可为您提供高度可用、完全托管的 OpenShift 集群。观看视频 Red Hat OpenShift on IBM Cloud 导览,了解更多详细信息。

Red Hat OpenShift on IBM Cloud 直接集成到相同的 Kubernetes 服务中,该服务每天维护 The Weather Company 的 2500 亿次点播预测。数量真是庞大。

通过 Red Hat OpenShift on IBM Cloud 可详细了解相关功能,例如具有本机 OpenShift 体验的仪表板,具有多区域集群的连续可用性,以及更安全地移动工作负载和数据。

结束语

容器是未来的基石。它们不会是昙花一现,而是会持续发展。从更快地交付应用程序、加速开发到部署的流程,到降低基础架构和软件成本,容器为各种规模的企业创造了切实的业务成果。以下链接提供了更多资源,包括视频、动手测试、教程和其他有用的信息,可帮助您立即开始使用。

相关链接

本文翻译自:What are containers and why do you need them?(2019-11-05)

加入讨论