计算机语言中容器的解释--小七知识库第一期

什么是容器?

容器是一种轻量级的虚拟化技术,用于封装应用程序及其所有依赖项和配置,以便在不同的计算机环境中运行‌。容器提供了一种便携性、隔离性、一致性和可重复性的运行环境,使得应用程序在开发、测试和部署时更加可移植和可靠‌。

背景

计算世界有各种各样的环境。计算环境包括计算机机器、数据存储设备、客户端设备、软件应用程序、操作系统、支持处理的网络,以及软件应用程序所需的数据和信息交换。细分下来,计算环境包括个人计算、客户端-服务器计算、分布式计算、云(网格/集群)计算。各种平台有助于满足不同的处理和操作要求,同时它们的使用也表明了IT环境的复杂性。最初,传统的方法是将应用程序隔离到为其编写的特定环境中,并构建到其他环境的连接器。 

图片

API 到 SOA / SOAP 到微服务

从 API 到 SOA / 从 SOAP 到微服务 —— 应用程序编程接口(API)是上述所提及的连接器的一个示例。API 是一组定义和协议,其设立旨在允许不同的应用程序相互交互。在应用程序较为庞大且体积较大,并且是为利用计算能力、操作及安全需求而在特定环境中编写时,这种解决方案是高效的。随着基于网络的技术出现,连接器的方式从传统的 API 以及 HTTP、JSON、URL、XML 的使用,演变到简单对象访问协议(SOAP)以及 HTTP 和 XML 的使用,再发展到面向服务的架构(SOA)。随着基于网络的技术向云原生应用发展,无服务器和虚拟计算应运而生。由于需要在多个环境(包括云端以及处理能力较低的设备上)中运行,应用程序已变得更具面向特定服务的特性,并且是用更少的代码行开发而成。这就导致了微服务架构的出现以及向面向服务架构(SOA)的演进。微服务将一个应用程序编排为一组松耦合的服务 —— 这是向面向服务架构(SOA)的一种演进。微服务将一个应用程序编排为一组松耦合的服务。

容器的经典案例

容器有助于解决许多开发人员在不断发展的基于云原生应用的机遇中所面临的一个典型困境:不同的计算环境意味着使用 Python 2.x 进行测试的应用程序可能会出现问题,因为生产环境运行的是 Python 3.x或者应用程序是基于某个安全套接层(SSL)库进行测试的,而生产环境中安装的却是另一个 SSL 库。此外,安全设置、文件存储配置以及网络配置方面的差异都可能导致应用程序出现故障。

容器的出现

为了让诸如微服务之类的应用程序能够在不同的计算环境中运行,容器的概念应运而生。虽然在容器出现之前虚拟机(VM)就已投入使用,但用于微服务的虚拟机由于其内部包含操作系统镜像而显得较为臃肿。容器是对应用程序进行的一种逻辑打包,使其与运行环境相互隔离。这使得基于容器的应用程序能够轻松部署,无论目标环境是私有数据中心、公有云,甚至是个人计算机。

容器早在 10 多年前就已出现,通过 LXC 内置于 Linux 系统中。随后也出现了其他版本,比如 Solaris 容器、FreeBSD Jail(监狱机制)以及 AIX 工作负载分区等。不过,大多数开发者认为是 Docker 开启了现代容器时代。

单个容器可用于运行一个微服务,甚至是大型应用程序中的一个软件进程。容器包含了所有必需的可执行文件、二进制代码、库以及配置文件。

由 Linux 基金会运营的开放容器倡议(OCI)有助于为跨平台的容器格式和容器运行时软件制定行业标准。最初的标准是以 Docker 技术为基础的,而 Docker 是早期的容器开发者之一。

OCI 的发起者包括亚马逊网络服务(AWS)、谷歌、IBM、惠普、微软、威睿(VMware)、红帽(Red Hat)、甲骨文(Oracle)、推特(Twitter)以及惠普,还有 Docker 和 CoreOS。

图片

总结

为了让诸如微服务之类的应用程序能够在不同的计算环境中运行,容器的概念应运而生。容器是对应用程序进行的一种逻辑打包,使其与运行环境相隔离。这使得基于容器的应用程序能够轻松部署,无论目标环境是私有数据中心、公有云,甚至是个人计算机。容器通过微服务封装应用逻辑中独立的组件,并且仅配备完成其任务所需的最少资源。

下期介绍

为什么我们使用容器?及主要容器介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值