短生命周期容器在生产环境中的应用实践

简介:

本文是东京OpenStack Summit大会系列采访的一部分,被采访者是Ian Lewis,谷歌云平台工程师,主要阐述了短生命周期容器的概念,作用和如何将它应用到生产环境当中。

原生云计算(Cloud-native computing)依赖于短生命周期的容器而不是固定的服务器。在短生命周期的容器中运行应用,解决了资源困乏的挑战,但同时也引入了需要新的实践和工具去匹配这个动态环境的问题。谷歌的Ian Lewis将在这个月东京举办的OpenStack Summit上分享如何在短生命周期的容器中记录并追踪它们。

我们联系了Ian,学习了DevOp团队是如何将短生命周期容器应用到实践中,如何采用新的架构模型并且将应用迁移到容器中,Ian提供了一些很好的点子,包括如何存储数据、为什么服务发现是必要的、OpenStack开发了什么新的开源项目和如何帮助团队实现将应用转移到短生命周期的容器中。

Q: 为什么容器应该是短生命周期的,短生命周期的容器可以解决什么问题?

使用容器一个最主要的好处是在集群中它们可以很容易的运行和管理,而不用考虑它们在什么样的实体机上运行。这就允许你在运维需要时,透明的将一个正在运行的应用迁移到不同的硬件上。这种迁移容器的灵活性意味着你不能在本地一台特定的机器上存储状态,因为移动的过程可能会在任何时候发生。你需要做到无论应用在什么地方运行都可以访问到存储状态信息。

Q: 实践中什么是短生命周期?

通常来说,短生命周期的意思是你的应用不能在本地存储数据,数据包括从应用数据到日志数据。你的应用应该可以重启并工作在一个新的容器镜像中。数据需要被存储在容器外部,意味着存储需要使用专门的服务。

Q: 可任意支配和短生命周期的容器听起来很酷,只需要运行、迁移和撤销操作,但如果内容已经存储在容器中并且一些端点(Endpoint)已经被容器暴露,怎么办呢,例如:会话状态、API路径和数据库连接端点。那会话状态和数据库连接也消失了?

容器本身并不是管理状态、API路径和连接的银弹。你仍然需要容器的编排管理系统和网络来使它满足高可用性。这也是为什么谷歌发明Kubernetes来解决这些问题的原因。

Q: 传统的部署方式依赖于持久化服务器,那应该如何重构服务器和应用来实现迁移型的容器呢?

我认为有两个比较大的变化。第一是在主机外和容器外存储状态。第二是应用应该有方法完成服务发现。容器迁移意味着需要一种方式,实现无论服务端实际在哪里运行,客户端都能连接到它。

Q: 你有什么好的架构模型推荐吗?

使用容器时,我会推荐面向服务的架构。好处在于当这个服务运行得足够小,并且能够互相独立地扩展或收缩时,容器会非常容易被感知到。

Q: 我该如何创建一个短生命周期的容器环境而不是持久化的容器环境呢,什么基础设施和开发框架可以使用来安全的部署、迁移和处理容器?

可以尝试使用集群管理工具如Kubernetes(或者Container Engine)。Kubernetes是一个容器编排管理工具,它在集群的服务端调度容器,让容器知道它们适合的运行时间,这些时间可能不会和服务端在同一个时间点。使用Kubernetes也许是不错的选择。

Q: 容器如何在OpenStack中执行?

容器编排管理引擎如Docker Swarm和Kubernetes将会在OpenStack中成为一等重要的资源,通过一个叫Magnum的API服务来实现。Magnum会创建服务端集群如同虚拟机安装了一个集群管理工具,使用Magnum来操控容器就容易很多。

Q: 在OpenStack最新的发布版本和路径中,有没有关于容器管理编排和调度的?

关于这块还有很多开发仍在进行中,还有很多新的特性。Magnum会被包括在OpenStack Liberty中,在这个月发布。其他工具如Kolla,它用于在容器中部署OpenStack,还有通过Application Catalog服务使应用开发更容易的Murano,同样值得期待。


本文作者:何炜

来源:51CTO

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1511 108
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
921 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
772 59
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
1637 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
数据可视化 API UED
126. [HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 进阶篇
在基础篇中,我们已经实现了电商应用商品筛选侧边栏的基本布局和功能。在本篇教程中,我们将深入探讨如何通过状态管理和数据绑定,实现更加复杂的交互功能,提升用户体验。
251 2
126. [HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 进阶篇
|
UED 容器
125.[HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 基础篇
在现代电商应用中,商品筛选功能是提升用户购物体验的关键元素。HarmonyOS NEXT提供的`SideBarContainer`组件非常适合实现这类功能,它可以创建一个可显示和隐藏的侧边栏,用于放置各种筛选条件,帮助用户快速找到心仪的商品。
304 1
125.[HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 基础篇
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
569 1
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
943 57