首页>微信动态>“熔断”VS容器:一字之差,一个差点送你上天,一个教你如何落地。

“熔断”VS容器:一字之差,一个差点送你上天,一个教你如何落地。

最近两天想必大家都在被“熔断”刷屏吧?就连小编这个没玩过股票、不懂金融的妹纸都被科普了一把啥是熔断,可见互联网之强大。那么,同样在互联网上传的热火朝天,一字之差,一个差点送你上天,一个教你如何落地。看一位开发者的容器之旅(下):

昨天我们聊到容器的配置和管理,今天来聊聊容器的构成和集群。


容器的构成——镜像

当你需要将我们的应用程序构建到容器时,你要编译镜像。镜像代表了你的容器需要完成其工作的容器模板。镜像存储在注册库(registry)中,注册库通过网络访问。

从概念上讲,注册库类似于一个使用 Java 的人眼中的 Maven 仓库、使用 .NET 的人眼中的 NuGet 服务器。你会创建一个列出了你应用程序所需镜像的容器配置文件。然后你使用容器管理器创建一个包括了你的应用程序代码以及从容器注册库中下载的部分资源。


举个例子:

如果你的应用程序包括了一些 PHP 文件,你的容器配置文件会声明你会从注册库中获取 PHP 运行时环境。另外,你还要使用容器配置文件声明需要复制到容器文件系统中的 .php 文件。容器管理器会封装你应用程序的所有东西为一个独立容器,该容器将会在容器管理器的管理下运行在宿主计算机上。
对上图进行简单分析,我们会发现:
1
代表一个定义了你容器所需东西以及你容器如何构建的容器配置文件。当你在主机上运行容器时,容器管理器会读取该配置文件,从云上的注册库中获取你需要的容器镜像
2
将镜像作为层添加到你的容器中。另外,如果组成镜像需要其它镜像,容器管理器也会获取这些镜像并把它们作为层添加进来。
3
容器管理器会将需要的文件复制到容器中。如果你使用了配置(provisioning)服务,你刚刚创建的应用程序容器做成镜像。
4
配置服务会将它部署到你选择的云供应商上,如类似 AWS 和 Rackspace 云供应商。


集群中的容器:

这个不错的例子说明了容器比虚拟机提供了更好的配置灵活性和资源利用率。但是,这并不是全部。

容器真正的灵活是在集群中。记住,每个容器有一个独立的IP 地址。因此,能把它放到负载均衡器后面。将容器放到负载均衡器后面,这就上升了一个层面。你可以在一个负载均衡容器后运行容器集群以获得更高的性能和高可用计算。
举个例子:
假如你开发了一个资源密集型的应用程序,例如图片处理。使用类似  Docker 的容器配置技术,你可以创建一个包括了你图片处理程序以及你图片处理程序需要的所有资源的容器镜像。然后,你可以部署一个或多个容器镜像到主机上的负载均衡器下。一旦创建了容器镜像,你可以随时使用它。当系统繁忙时可以添加更多的容器实例来满足手中的工作。

这里还有更多好消息。每次添加实例到环境中时,你不需要手动配置负载均衡器以便接受你的容器镜像。你可以使用服务发现技术让容器告知均衡器它可用。然后,一旦获知,均衡器就会将流量分发到新的结点。


结语:

容器技术完善了虚机缺失部分,类似 Docker 和 Rocket 的容器管理技术结合起来,使得容器变得日益流行。尽管容器变得更加越来越普遍,掌握它们还是需要一段时间。但是,一旦你懂得了它们的窍门,你可以使用类似 Docker这样的技术使容器创建和部署变得更加简单。从概念上理解容器和进一步实际使用它们完成工作一样重要。但我认为不实际动手把想法付诸实践,概念也难以理解。


那我们的这段旅程暂且告一段落,感谢分享者的观点。PS:部分资料来源于deis ,译文inux - ictlyh




云舒网络官方微信二维码