V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
Mrexamo
V2EX  ›  云计算

赢得 Docker 挑战最佳实践

  •  
  •   Mrexamo · 2015-09-09 17:49:37 +08:00 · 2200 次点击
    这是一个创建于 3388 天前的主题,其中的信息可能已经有所发展或是发生改变。

    alt 文本

    难怪 Docker 正在迅速发展。 Docker ,一个开源项目。仅仅两年, Docker 价值近 10 亿美元,最近获得了 9500 万美元的资金。令人激动的是,我们看到有这么多开发者对这个项目的热情。然而,我将在下面讨论企业使用 Docker 本身是不够的。

    现代 IT 问题

    许多企业 IT 团队解决这两个问题:首先,开发者和运维者在优先级上并不能总是达成一致。企业必须应对的挑战将来自开发人员的代码和运维团队的代码切换。这两个团队之间的关系很难和谐相处。

    第二,将代码从一个地方迁移到另一个可以是很困难的。因为你没有简单的方法打包应用程序代码,包括你的系统依赖性。你在不同的操作系统,不同的虚拟机或不同的 IaaS 上处理代码。

    Docker 的好处

    Docker 最激动人心之处就是可以解决企业的这两个问题。第一个问题似乎是确定的,因为开发人员和运维人员之间有着清楚的界限。开发人员考虑 Docker 容器内部发生的一切,运维人员思考容器外面发生了什么。 Docker 让这一切变得更加简单和方便,这是一个非常便携式的解决方案。

    至于第二个问题, Docker 通过使你在单个应用程序进程打包一切与你相关的应用程序。但这只是部分解决了这些问题。

    Docker 缺少什么

    Docker 可以形象化的比喻为像可叠起堆放的乐高积木。每个容器是一个乐高。乐高玩具的美丽之处是可以组装的砖块和建立各种各样的奇妙的东西。同样的概念也适用于 Docker 的容器中。利用 Docker ,诸如编排、监控、日志记录和扩展可能成为企业关注的问题。 Docker 容器可以为企业运行几个容器,但如果你运行成百上千的呢?这些都是需要考虑的一些问题,它们超出了 Docker 容器本身可以提供的范围,为什么 PaaS 平台是对 Docker 的补充。
    让我们看看容器本身三个特定的缺陷:

    1 . 装载容器

    应用程序开发人员如何让一款应用进入容器?对于开发者来说构建 Docker image 也有一些负担,谁需要关注代码,不依赖于不同的系统的操作系统。这个问题的解决方案被称为 buildpacks ——对于 PaaS 是最好和最便携的选择。大多数 PaaS 生态系统正在让其标准化。 Buildpacks 允许你建立你的栈,包括在容器内部的所有系统依赖关系,以及配置应用程序的环境。开发人员只需要考虑他们的应用程序代码。他们不需要担心什么。 Buildpacks 配置你的应用程序。

    2 . 编排运输过程

    假设开发人员创建大量的 Docker 的容器。然后他们与运维团队通信:“ Ship these. Deploy these to production ”。 IT 运维人员如何传输这些容器并且以系统的方法来管理这些容器性能、安全性和遵从性?容器有很多乐高积木。他们如何管理?

    这个问题的答案是 Docker Schedulers 。如今在市场上有大量的调度器,它们为你编排和运行的容器并且跨集群分发它们——而不用考虑你的云计算集群是什么。调度器是有弹性的,所以如果一个容器或机器或应用程序宕机,它会重新分配这些容器。从用户的角度来看,根本感觉没有停机时间。虽然这些调度器解决一部分运输问题是有帮助的,但是还有另一个重要的问题,企业仍然面临一个调度器不能解决的问题。

    3 . 开发自助服务

    企业文化当中对于自助服务似乎有着天然的缺陷。开发人员和 IT 运维之间也存在的天然的鸿沟。在某些方面,你可以说他们之间存在着一堵墙。经常发生的是,开发人员将构建一个应用程序,然后把它扔在墙那边给运维人员,并且希望应用能够一切运行正常。因此,将应用程序部署到生产需要数周或数月。所以听到开发者抱怨他们需要多长多长时间在生产环境中部署应用就不难理解了。

    这种文化上的差异遭遇到破旧的基础设施时,后果就会更严重,因为一些企业仍使用过时的票务系统获取虚拟机,计算周期可能需要数周时间。

    开发人员可以解决这个分歧,但他们需要特殊的工具。他们需要一种自助的方式为企业工作。给开发人员自由的部署在他们的应用,但是这些工具也必须满足安全性和遵企业的需求,包括多租户管理。开发人员可以专注于他或她的应用程序,但是企业需要考虑所有由不同的开发人员提交的应用程序。怎么处理这个?如何打破这堵存在与开发者和运维者之间的墙?

    PaaS 平台也有闪光的地方,它提供了一个介于你的应用程序和基础设施之间的平台。这个平台是一样的,从开发到生产,提供一个无缝应用交付体验。

    一个新的开发方法

    Docker 的承诺是真正伟大的,帮助开发人员解决构建新应用时的重大问题。它将改变应用程序开发过程,但某些挑战必须克服从而使得企业获得最大好处。 PaaS 平台将促进 Docker 的发展,并且帮助其履行自己的承诺。

    2 条回复    2015-09-13 16:09:39 +08:00
    adrianzhang
        1
    adrianzhang  
       2015-09-09 19:49:11 +08:00
    so what?
    itfanr
        2
    itfanr  
       2015-09-13 16:09:39 +08:00
    作者要表达的是?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.