实时迁移以及Jelastic中微服务的高可用性的Docker多容器编配


容器震动了IT世界,由于其轻量级的虚拟化,更高的密度,弹性和快速配置,为云PaaS和IaaS提供了全新的虚拟化解决方案。

在公共云,私有云或混合云中使用容器可为用户在负载峰值,维护时段或数据中心可用性问题期间随时放置工作负载和更改位置提供新的自由度。容器的尺寸比虚拟机(VM)小得多,因此将它们从一个云移动到另一个容易得多。这使得应用程序在云设置中更具移动性,易于管理,节省了DevOps团队的时间和精力。

在这个由三部分组成的博客系列中,我们将探讨Jelastic平台中Docker模板实现的主要优点。我们将阐述Jelastic 自2011年以来如何使用容器,以及为什么我们相信我们的解决方案提供了先进的容器编排,这可能是目前市场上最好的。



Jelastic Cloud中的容器系统与微服务体系结构模式并行不悖。每一个庞大的,复杂的,为企业准备就绪的应用程序代表一个可以被分别调整,配置和监视的服务。如果在项目中需要进行任何更改,则可以轻松地在特定服务中进行更改,而无需重新构建和重新部署整个应用程序(由于它是单一庞大的应用程序中的要求)。有了这样的结构,应用程序甚至可以由不同的团队来管理,每个团队只负责某个特定的部分。



Docker是微服务的最新技术之一,一种用于打包应用程序并将其部署在容器中的技术。微服务和Docker成为完美搭配的事实激发了我们使用Jelastic实现Docker模板支持

基本上,Docker解决了应用程序的组装,交付和可移植性问题,而Jelastic则为托管应用程序提供编排和管理。为了满足企业生产应用的需求,Jelastic在高度安全和稳定的Virtuozzo容器之上提供了Docker模板支持。

Parallels Virtuozzo Containers是一款为大型同类服务器环境和数据中心设计的操作系统级虚拟化产品。Parallels Virtuozzo Containers起初在Parallels的前母公司SWsoft下发布。Linux版本于2001年发布,而Windows版本于2005年发布。



目前Docker默认使用LXC和libcontainer来创建Docker容器。这些容器基于名称空间和cgroups工作。容器将相同的内核隔离机制用于Jelastic。这就是为什么我们可以确保Docker标准所需的所有进程都是通过Docker实现提供的适当“本地”方式进行覆盖。

通过使用Jelastic实现Docker,用户现在可以在使用公共Docker Hub Registry或基于Quay Enterprise Registry 的私有注册表安装任何堆栈,应用程序或系统时拥有更多的灵活性和选项。当一个新的Docker被请求安装时,它被放置到一个特殊的共享缓存存储(为了使其更容易和快速地进行进一步的安装),之后,已经作为独立和隔离的Virtuozzo容器分布在硬件节点中。因此,每个Docker都在安全容器虚拟化中进行配置,可以使用完全SSH根访问或通过Jelastic控制面板轻松进行管理。



另外,Jelastic技术在密度,管理工具,恢复等方面提供了改进和额外的功能。下面介绍Jelastic Cloud托管的Docker化应用程序的一些优点。



在我们的博客系列的第一部分,我们提供了在Jelastic中使用Docker获得的两个重要优势的详细信息:高可用性和实时迁移。

高可用性

Jelastic在两个层面上为微服务提供高可用性:
  • 应用拓扑
  • 容器虚拟化


应用程序内的负载平衡通过跨多个组件分配工作负载来确保高可用性。使用具有负载平衡的多个组件,而不是单个组件,可以通过冗余来提高可靠性。Jelastic使用两种类型的负载均衡:TCP和HTTP。



另外,Jelastic提供了在Web服务器实例之间使用多播会话复制的能力。当会话复制在集群环境中启用,整个会话数据被复制在副本实例。会话复制提供高可靠性,可伸缩性和完美的故障转移功能。

Jelastic Cloud可让您轻松设置两种不同类型的数据库复制(主从式主控式主机),以解决许多性能不同的问题,支持数据库备份,减轻系统故障等等。

另外,集成的软件定义存储专门为集群中的容器虚拟化的高可用性而设计。具有内置复制和灾难恢复功能的分布式存储可确保在硬件节点故障的情况下实现快速自动恢复。换句话说,如果任何硬件节点失败,所有的容器将在其他现有的硬件节点上自动恢复。

实时迁移和离线迁移

这是企业级云平台非常重要的关键功能之一。云服务提供商可以轻松地将Docker化应用程序的容器从一台物理服务器迁移到另一台物理服务器,而无需停机,这是保持整体性能和质量的关键要求。这提高了硬件维护期间的运营效率,提供了更好的负载平衡和数据中心利用率,并允许将客户转移到功能更强大的节点,而不会中断服务。

Jelastic独特的自动垂直缩放使用实时迁移来确保应用程序可以在服务器内进行扩展,而无需停机。随着应用程序在服务器中的扩展,其他应用程序可以自动迁移到另一台服务器以腾出空间。实时迁移允许Jelastic为应用程序提供所有必需的资源,而无需重新启动容器并导致应用程序停机。



另外,在硬件的维护或其他计划停机期间,实时迁移功能可以将容器从一个硬件节点自动撤出到另一个硬件节点。这使Jelastic平台成为托管有状态应用程序的正确选择。在实时迁移过程中,应用程序可以不停机工作,并获得所需的资源。

此外,迁移容器的能力为开发运维团队提供了更多不同的,在许多情况下,更有效的Docker化应用程序生命周期流。在原始版本中要经历交付生命周期的所有步骤,所有管道交付阶段都应连接到Hub注册中心。每一次你应该重新创建容器,有时甚至是整个多容器环境。换句话说,您在迁移过程中每次重新打包和重建容器Dev => Test,Test => Stage,Stage => Prod。在Jelastic中,通过容器的实时或离线迁移,您可以轻松地将应用程序从一个生命周期阶段迁移到另一个生命周期阶段,无需重新构建容器并重新部署应用程序,而且无需在初始化之后将每个阶段连接到Hub Registry Docker配置。



这些应用程序生命周期工作流程需要更深入的分析和澄清,我们将为与本话题相关的不同问题编写单独的博客文章。

高可用性和实时迁移只是在Jelastic平台上使用Docker化应用程序时获得的前两个好处。在我们的下一个出版物中,您将了解到更多关于隔离和安全性,Docker容器在物理服务器之间的智能分发,服务器资源的高密度和最大化利用以及您在系统中获得的休眠和重复数据删除技术。

你已经尝试过Jelastic之上的Docker吗?请在下面的评论中提供您的反馈。


翻译人:alicture,该成员来自云 社区翻译社
原文链接:https://dzone.com/articles/docker-multi-containers
原文作者:Tetiana Fydorenchyk

相关阅读

在Docker环境中开发Java 8 Spring Boot应用程序
如何使用docker开发
揭秘微信小程序解决方案:开发者提升效率的利器

此文已由作者授权云+社区发布,转载请注明原文出处

0 个评论

要回复文章请先登录注册