继续阅读我们的系列文章,介绍对企业家有用的应用程序, 现在轮到集装箱了。 尽管它是一种基本上由信息技术领域使用的技术,但与我们讨论的所有其他技术不同,当父亲告诉我必须了解所有内容时,我就很难理解父亲是对的。 鉴于当今的软件是任何企业的关键组成部分,因此对软件的工作原理有一个基本的理解并没有什么坏处。
首先,我会道歉以放置运输集装箱来说明该文章(每个对此主题进行写作的人都这样做)。但是,因为这是最好的类比来解释什么是集装箱以及它们在计算中的用途,我辞职了。冒充任何原创性。
就像运输集装箱的出现是为了适应移动装置的构造上的差异,从而避免浪费时间来容纳货物一样, 其数字版本可避免程序员不得不将其应用程序适应所有可能的配置。
什么是容器
容器包含执行程序所需的一切: 该应用程序及其所有依赖项,库和其他二进制文件,以及运行该应用程序所需的配置文件,所有这些文件均存储在一个软件包中。 通过包含执行它所需的所有内容,不同操作系统之间的差异变得无关紧要。
我们所有人都喜欢某个程序,但是,操作系统的更新使必需的依赖项不再可用。 如果我们知道该怎么做,我们可以创建一个具有必要依赖项和程序的容器,然后运行它而不会出现问题。
与容器相关的另一个概念是微服务。 您可以创建一个容器来实现多个程序需要的功能,而不是打包整个应用程序。 假设您有付费的在线出版物。 发布访问功能和计费功能将共享来自同一数据库的信息。 因此,您可以为后者提供一个单独的容器。
虚拟机和独立软件包的差异
虚拟机的主要区别在于它们模拟硬件,即实际上就像在普通计算机上使用操作系统一样
对于Snap,FlatPak或Appimage等自包含包格式, 尽管它们包含功能的所有依赖关系,但它们仍使用主机操作系统中的组件。
集装箱的优点
- 微服务方法:由于有了容器,可以将应用程序分离为它们的组件功能并重新使用它们。
- 一致性:由于安装在容器中的程序包含执行该程序所需的所有内容,因此无论何时何地执行该程序,其行为都将完全相同
- 可移植性。 只要使用相同的平台来创建和运行容器,该程序就可以运行,而不管它是在Windows,Linux还是Mac上运行。
集装箱技术
可用于部署容器的一些技术是
码头工人
Es 该平台 以创建和运行容器而闻名。
码头工人 允许您在任何公共或私有云或桌面操作系统上打包,运送和运行应用程序。
红帽CodeReady容器
Es 一个工具 通过红帽 它是从虚拟机使用的,可用于容器开发和测试。
LXD
由Canonical开发, 这个管理系统 从容器 给我们的体验非常类似于使用虚拟机。 我们有许多可用的预配置Linux发行映像,我们可以创建自己的映像。
Kubernetes
由于管理多个容器可能有些复杂。 KUbernetes和它是一种工具,使我们可以轻松地在所有使用的容器中实施更改和更新。 如果出现问题,Kubernetes可让您回退到先前的状态,重新启动失败的容器,将其删除并更换它们。
奇异
是一个解决方案 为科学家设计和制造容器的过程。 使用奇异性创建的容器可用于打包完整的科学工作流程,软件和库,甚至数据。
您也可以导入使用Docker创建的映像,而无需安装它。
奇异性可以导入Docker映像,而无需安装Docker或成为超级用户。