报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

使用 Docker 从 Heroku 迁移到 AWS

  • 2015-04-09
  • 本文字数:1357 字

    阅读完需:约 4 分钟

DoorDash 是一家按需提供快速物流服务的公司。最近,他们发现其基于 Heroku 的基础设施已经无法满足需求,于是便迁移到了 Amazon Web Services。其间,Docker 技术的引入为他们节省了大量的时间。近日,DoorDash 官方博客发文介绍了迁移过程。

DoorDash 最初选择 Heroku 是因为它简单方便。但随着流量增加,Heroku 显现出以下几个方面的问题和局限:

  • 性能:Heroku 服务器实例(又称为“dynos”)性能表现欠佳。每个 dyno 的 CPU 性能和内存资源均非常有限。即使在对 Django 应用进行了大量优化之后,他们仍然不得不增加许多 dyno,这使他们觉得目前的基础设施不具备持续可扩展性。
  • 成本效益:Heroku dynos 的计算资源非常昂贵,租用一个 Heroku “2x” dyno(内存 1GB)的费用可以租用一个 Amazon c3.large EC2 实例(内存 3.75GB)。
  • 可靠性:Heroku 部署 API 一到两周就会出现一次问题。
  • 控制:在 Heroku 环境中,无法对服务器进行细粒度的控制,比如,安装自定义软件时无法通过 SSH 登录服务器调试 CPU 或内存问题。

为了克服这些问题,他们选择了 Amazon Web Services。Amazon EC2 实例 CPU 内存配置丰富多样,允许以 root 权限访问,并且性价比更高,看上去是个理想的解决方案。但是,迁移工作量很大。为了自动化服务器配置过程,需要安装“配置管理”软件(Chef 或 Puppet),而且还需要学习相应的领域专属语言,编写脚本执行第三方依赖安装任务及配置服务器栈中的所有软件。之后,为了测试,还需要使用 Vagrant 建立一个本地开发环境。因此,他们希望有一种更简单的方式帮助他们完成这项工作。经过研究,他们选择了 Docker,迁移计划变成了将运行 Django 应用的 Docker 容器部署到 Amazon EC2 实例上,这样就不需要将大量的时间花费在 EC2 主机配置上,从而将这种复杂性转移到了 Docker 容器环境中。迁移过程主要包含以下两个方面的工作:

  • 使用 Dockerfile 创建 Docker 镜像:与 Chef 或 Puppet 脚本相比,Dockerfile 更容易编写和理解。对 Django 而言,这一部分主要是指出如何安装第三方 Python 依赖以及配置复杂的软件组件(如 Web 服务器或数据库连接池)。
  • 准备 Docker 环境:为了节省时间,他们决定使用 AWS Opsworks ,这是一个内置了 Chef 的服务,可以帮助他们管理 EC2 实例。虽然最终没能避免使用 Chef,但由于绝大多数的系统配置工作都已经在创建 Docker 镜像时完成了,所以这里并没有很多工作要做。

下图是迁移完成后的代码部署流程:

两名 DoorDash 工程师用大约一个月的时间完成迁移,其中还包括学习 Docker、AWS 和 Chef。新环境的性能提升了 2 倍多,DoorDash 的平均 API 响应时间由 220 毫秒降到了 100 毫秒以下,后台任务执行时间也降低了一半。而且,所需服务器的数量也减少了一半,大大降低了托管成本。此外,由于有更多的控制权限,他们还安装了 Nginx 作为反向代理,提高 Web API 吞吐量。毋庸置疑,他们非常高兴迁移到 AWS,而 Docker 是他们能够快速完成迁移的关键原因。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流。

立即免费注册 AWS 账号,获得 12 个月免费套餐:点击注册

有云计算问题?立刻联系 AWS 云计算专家:立即联系

2015-04-09 21:512215
用户头像

发布了 1008 篇内容, 共 407.8 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

陆陆小科普:让你做黑龙江等保测评整改,少走弯路

黑龙江陆陆信息测评部

等保测评 网络安全信息安全、 哈尔滨 黑龙江

「DeepSeek-V3 技术解析」:多头潜在注意力机制(MLA)

Baihai IDP

程序员 AI LLM DeepSeek v3 MLA

《Operating System Concepts》阅读笔记:p389-p407

codists

操作系统

AI技术赋能企业财务管理,用友BIP创新五大智能财务场景

用友智能财务

AI 财经 数智化 会计

AI Agent成大模型落地“接盘侠”,百度、智谱AI等国内巨头齐发力,你了解多少?

Techinsight

阿里云 AI 搜索产品荣获 Elastic Innovation Award 2024

阿里云大数据AI技术

人工智能 elastic GenAI AI搜索

2025杭州国际智慧城市,物联网展览会

AIOTE智博会

物联网展 智慧城市展

工厂安全审计系统(源码+文档+讲解+演示)

深圳亥时科技

高效通过等保:哈尔滨等保整改方案,70分合格一键落地

黑龙江陆陆信息测评部

互联网技术 等保评测 黑龙江

虾皮(shopee)商品详情API接口详解

tbapi

Shopee shopee API shopee商品详情接口 shopee商品列表接口 shopee数据采集

“满血版AI”如何进入智慧家庭?答案在华为FTTR星光F60

脑极体

AI

央国企数字化转型难点重重,如何破局?

Techinsight

边缘计算学习资料,边缘计算架构设计和技术应用

金陵老街

边缘计算

投诉问题处理系统(源码+文档+讲解+演示)

深圳亥时科技

Shopify对接API开发的主要功能

北京木奇移动技术有限公司

跨境电商 软件外包公司 shopify开发

DataWorks :Data+AI 一体化开发实战图谱

阿里云大数据AI技术

大数据 AI gpu 数据处理 Dataworks

实验室辅助管理系统(源码+文档+讲解+演示)

深圳亥时科技

虾皮(shopee)商品列表API接口详解

tbapi

shopee API shopee商品详情接口 shopee商品列表接口

BOE(京东方)位列2024年PCT国际专利申请榜全球第6 创新引擎推动产业高质发展

科技热闻

干货!传统工厂数字化转型,从规划到落地的实战要点

Techinsight

助力出海!德国铁路与宝马车厂应用IoTDB数字化解决方案

Apache IoTDB

【GreatSQL优化器-17】DYNAMIC RANGE

GreatSQL

人工智能丨35岁危机码农如何靠AI翻盘?这波浪潮不跟就淘汰!

测试人

人工智能

爬虫+动态代理助力 AI 训练数据采集

袁袁袁袁满

代理IP Python爬虫 爬虫实战 免费代理

数据分析与AI丨利用知识图谱实现 AI Fabric 治理

Altair RapidMiner

人工智能 AI 数据分析 知识图谱 RapidMiner

Shopify API对接的测试

北京木奇移动技术有限公司

跨境电商 软件外包公司 shopify开发

传统零售行业数字化转型,如何破局电商冲击与多变需求?

Techinsight

Shopify API对接的注意事项

北京木奇移动技术有限公司

跨境电商 软件外包公司 shopify开发

使用Docker从Heroku迁移到AWS_亚马逊云科技_谢丽_InfoQ精选文章