Docker多容器业务流程实时迁移和Jelastic中微服务的高可用性

凭借其轻量级,更高的密度和灵活性,以及快速部署的特性,容器技术震惊了整个IT界,并为云计算的PaaS和IaaS提供了一种新的虚拟化解决方案。

在公有云,私有云或混合云中使用容器技术可以让用户在任何时间碰到负载高峰,维护窗口期或是数据中心可达性问题使更自由的配置服务负载或是迁移至其他地点。相比虚拟机(VM),容器要更加小一些,所以从云与云之间的迁移要容易很多。这一特性让云环境下的应用更加灵活,同时也让DevOps团队可以花费更少的时间和精力来进行管理。

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

elastic云的容器系统与微服务架构模式是齐头并进的。任何一个大规模,复杂的企业级应用环境都代表着一个可以被独立调整,配置和监控的服务。并且如果项目需求有任何改变,则可以轻松的在特定服务中进行更改,而无需重构或者重新部署整个项目(这在单体应用中往往是必要的)。有了这样的结构,应用程序甚至可以由不同的团队来管理,每个团队只负责某个部分。

近来最接近微服务的技术是Docker,这种技术主要用来打包应用程序并将它们部署在容器中。事实上,微服务和Docker的完美匹配促使我们在Jelastic中实现了对Docker模板的支持。

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

Parallels Virtuozzo Containers是一款面向大型同类服务器环境和数据中心的操作系统级虚拟化产品。Parallels的前母公司SWsoft首次发布了Parallels Virtuozzo Containers。Linux版本于2001年发布,而Windows版本则于2005年发布。

目前Docker默认使用LXC和libcontainer来创建Docker容器。这些容器基于名称空间和cgroups来运行。Jelastci也使用了与之相同的内核隔离机制。这就是为什么我们可以确保Docker标准所需的所有进程都可以通过Docker接口来进行合理的本地替换。

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

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

在我们系列博客的第一部分,我们将详细描述使用Jelastic上的Docker能获得的两个重要优势:高可用性和实时迁移。

高可用性

Jelastic在两个层面上为微服务提供高可用性:

  • 应用拓扑
  • 容器虚拟化

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

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

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

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

实时迁移和离线迁移

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

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

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

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

这些应用程序生命周期工作流程需要更深入的分析和说明,我们将单独编写与此主题相关的不同问题的博客。

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

你已经体验过Jelastic之上的Docker吗?请在下面的评论中进行反馈。

本文的版权归 用户1206729 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磨磨谈

基于发行版本内核打造自己的内核

Linux当中最核心的部分就是内核,这个也是最基础,最可能被忽视的一部分,随便找一个刚入职的运维,学习个两三天,网上找些资料也能能自己安装编译内核了,很多运维的...

11920
来自专栏SDNLAB

Kubernetes正式支持Containerd 1.1版

20140
来自专栏SDNLAB

新型云基础设施项目Airship 介绍

AT&T正在与SK电信(SKT),Intel和OpenStack基金会合作推出一个名为Airship的新型云开放基础设施项目。Airship的宣传语是“声明式地...

24520
来自专栏喵了个咪的博客空间

Kubernetes(一) - Docker管理工具

20730
来自专栏云计算D1net

想要使用容器技术 这5类遗留工具就应该被淘汰

充分利用容器并不只是安装Dockers和激活容器应用程序那么简单。你需要改进的同样还有监控方法、安全性能等。 这么做的理由是,容器并不只是对你过去工作中使用到的...

35680
来自专栏Rainbond开源「容器云平台」

当微服务遇上Docker系列之构建、实践与颠覆

18150
来自专栏美团技术团队

美团容器平台架构及容器技术实践

美团的容器集群管理平台叫做HULK。漫威动画里的HULK在发怒时会变成“绿巨人”,它的这个特性和容器的“弹性伸缩”很像,所以我们给这个平台起名为HULK。貌似有...

22550

Docker 的五大优点:持续部署、版本控制、可移植性、隔离性和安全性

我相信 Docker 不需要我过多介绍,它是目前最热门的开源项目之一。您可以使用 Docker 在容器中添加一个抽象层以部署不同的应用程序。在 Docker 生...

49580
来自专栏Albert陈凯

5分钟弄懂Docker

尽管之前久闻Docker的大名了,但是天资愚钝,对其到底是个啥东西一直摸不清,最近花了一段时间整理了一下,算是整理出一点头绪来。 官网的介绍是这样的: Do...

35150
来自专栏DevOps时代的专栏

E2E 测试容器化实践

在互联网最初之时,没有任何容器化的概念,那么刚开始的时候是怎样开发软件或者是网站的吗?那时就是计算机便是服务器,就是一个简单的静态网页,没有复杂的业务逻辑。

15220

扫码关注云+社区

领取腾讯云代金券