V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AlaudaCloud
V2EX  ›  Docker

Coursera 如何用 Docker 完成批处理作业?

  •  
  •   AlaudaCloud · 2016-01-04 17:00:40 +08:00 · 2945 次点击
    这是一个创建于 3278 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ECS ( Amazon EC2 Container Service )服务是 AWS 专门为用户提供的容器服务, ECS 服务又细分为了 containers , tasks , container instances 和 clusters 四种模式,其中 Tasks 主要面向在短时间内,或固定周期内需要大量计算资源的批处理作业。‌‌

    ETL ,图片格式转换, 图片调整, OCR , PDF 生成,天气预报,日志分析,特征抽取,自动化测试,以及搜索引擎爬虫等都是常见的批处理作业。本文将通过 Coursera 的案例带你了解这种特殊的容器服务。

    Coursera 是由美国斯坦福大学两名计算机科学教授创办的在线教育平台,它与全世界最顶尖的大学和机构合作,通过在线公开课的形式为所有人,提供在以往只有精英人群才能享受到的教育资源。

    Coursera 目前有超过 1300 万的注册用户,来自 190 个国家,课程内容从编程到写诗无所不包。为了应对如此大的用户量和课程量, Coursera 的后台中有很多批处理作业,比如批量邮件发送,课堂测验批改,成绩单导出,数据核对等。

    最初, Coursera 使用一个 PHP 框架 Cascade 来实现,遇到了很多问题:

    • 很难运行,部署和扩展;
    • 每当一个新作业到来时,一个新的线程会被创建,每个作业所占用的内存和 CPU 资源也不尽相同,很难实现持续地创建;
    • 由于缺乏资源隔离,内存限制的错误,会让整个应用都宕掉

    后来,基础设施工程师团队想要通过 Docker 容器实现微服务架构,但是在使用 Mesos 管理集群和容器的过程中遇到了很多问题, Mesos 的启动很复杂, Coursera 没有专业的人和时间去管理一个 Mesos 集群。

    最后, Coursera 开始使用 ECS 的服务:

    • ECS 帮助 Coursera 非常简单地实现了微服务架构;
    • 每个作业都被创建为一个容器,交由 Amazon ECS 来管理这些容器;
    • Amazon ECS 提供所有的集群管理和容器调度服务,容器提供必要的资源隔离。

    ECS 显著降低了 Coursera 运行批处理作业的成本,提高了 IT 效率:

    • 使用简单: Amazon ECS 启动简单,为用户屏蔽了集群底层的细节;
    • 速度和灵活性:软件更新的部署过程,从几个小时缩短到了几分钟,目前每个团队都可以独立开发和更新自己的模块,因为应用的资源是隔离的,没有相互依赖;
    • 弹性扩容:计算资源可以快速地动态申请;
    • 运维效率:运维人员不再需要去做安装软件和维护集群的工作, Amazon ECS 做了从集群管理到容器编排的所有事情。

    是不是觉得以上场景很适合你?

    但是 ECS 还没进中国肿么办?

    试试灵雀云最新的批量计算服务——任务( Job )吧!

    这是灵雀云为中国用户独家推出的云端功能,帮您执行一次性或重复性的短时作业,如 ETL ,图片格式转换, 图片调整, OCR , PDF 生成,天气预报,日志分析,特征抽取,自动化测试,以及搜索引擎爬虫等。您可以设置每个任务的关键参数,例如环境变量、执行时间、执行周期和次数。 在线教程: http://docs.alauda.cn/feature/job/intro.html


    在此,我们对最新的批量计算功能开放试用邀请,您只需填写问卷(不超过两分钟),就可以试用该新功能。我们会在反馈者中抽取 10 位给予新年贺礼!(活动截至 2016 年 1 月 12 日)

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1464 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:19 · PVG 01:19 · LAX 09:19 · JFK 12:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.