说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

亚马逊云平台的迁移过程

HTML文档下载 WORD文档下载 PDF文档下载
文章分别从成熟老系统的常见问题、迁移过程需要考虑的问题以及迁移后带来的收益说起,详细介绍了亚马逊云平台的的迁移过程及注意事项。

【导读】本文转自Bruce Dou的博客,作者分别从成熟老系统的常见问题、迁移过程需要考虑的问题以及迁移后带来的收益谈起,详细介绍了亚马逊云平台的的迁移过程及注意事项。

最近3个月变化很多,离开呆了5年多的北京,开始英国的工作和生活。到这之后基本在做系统向亚马逊云平台的迁移,踩了不少坑,收获也很多。由于系统的迁移涉及各个常见的架构组件,边边角角的细节很多。和大部分系统一样,长时间野蛮成长积累了很多问题。这样的老系统迁移到新平台意味着你需要处理所有之前埋下的问题。公司之前聘请了亚马逊推荐的第三方咨询服务工作在做迁移,但是由于问题太多,拖了很长时间没有完成。

成熟老系统常见的问题:

1. 缺乏文档

这应该是大小公司都存在的问题。文档会极大降低开发效率,并且互联网项目的特点是易变和追求速度,详细文档不是很好的方案。这就要求方案和细节设计上的合理性和不要做 “精巧”方案。结构化设计,不要零散的组成,这样其他人即使没有文档也可以理解。

2. 项目中临时方案太多

导致后来看起来很别扭而且不容易理解,半截工程。系统中存在大量“精巧”的设计,导致后来者难以理解。这也告诉我们做设计的时候尽量简单通俗易懂,项目设计的可沟通性也是很重要的一方面。某位工程师说自己花了1周的时间才搞明白Postfix的收邮件并自动解析的过程是怎么运行的。

3. 代码质量参差不齐

代码质量问题每个大点的团队都没法保证,保持代码库的干净很重要。

4. 繁杂的业务

5. 代码的Bug和代码对环境的兼容性

之前的系统使用配置文件做主从读写分离,配置文件由其他系统控制。但是配置文件确保留在代码库中,这意味着假如代码回滚或者 check 分支出错,配置文件会发生改变。不该发生的全会发生,这样的事情确实发生了。导致部分操作写入从库,从库与主库同步失败,典型的脑裂问题。最后只好花了很长时间重做从库的同步。这样的问题处理并不复杂,复杂的在于如何发现这个问题的原因。业务系统各种奇怪的表现,有时候很难想到问题的根源。

迁移过程需要考虑的问题:

1. 完善测试

性能测试可以采取流量镜像复制,读操作有很多简单可靠的流量复制工具,有时候根本不需要一个高大上的流量复制系统。并且大部分系统都是读多写少,测试不是什么难题。

功能性测试只能尽量做足,让熟悉系统的用户进行。

2. 无缝迁移

整个过程基本实现了平滑无缝迁移,系统的没有停止 1 分钟运行。由于项目的特点,比较少写操作,重点是读,暂停写操作后作将 HaProxy 后端逐步指向新集群,等全部流量导入新集群后修改 DNS 指向新集群。这里还涉及到 DNS TTL 从长变短再变长的修改过程。

缓存预热很重要,尤其是数据库的预热,这就要求新集群流量导入逐步进行,防止对整站延迟的影响。

3. 回退方案

由于暂时停止写操作,即使流量导入到新集群后测试发现问题仍然可以指回旧集群。

4. 改进还是保持原状

由于架构组件的选择余地很大,之前的各个组件的配置是否合理需要很长时间 Review。这里就要权衡保持原状还是一次性做好优化。比较好的方案是如果不是 BUG 则保持原状,等系统完成迁移再进行改进。

5. 性能的持续监控和对比测试

性能监控工具已经非常成熟了,比如 AppNeta 和 New Relic , 基本可以把控各个组件的性能。在迁移之前也可以进行镜像流量复制对比测试新旧集群的性能。

迁移带来的收益

1. 重新设计的发布自动化

业务代码、系统配置、云架构配置的分离,任何操作的版本化,可回退。

2. 弹性扩展,总体成本的降低

迁移到亚马逊的主要原因就是高低峰流量差异很大。迁移后低峰期可以节约 1 半的机器成本。

3. 跨区域容灾,无单点故障

实现了 Multi-AZ,任意单点故障不影响业务运行。Web 前端服务器可以随手关掉,数据库的升级,配置改动也无任何影响,当然这归功于 RDS Multi-AZ 功能。

4. 运维难度的降低,无需运维

系统会自动根据负载进行增减机器,所以无需担心压力大把机器打垮,单机器的各种故障也无需人工处理。

来自:Bruce Dou Blog

果断Mark!国外程序员收集整理的PHP资源大全 Google 2015项目前瞻:智能隐形眼镜、Google X、Ara Swift的坑:如何实现enum的多选? Swift,其实没那么任性 如何利用单台服务器实现10万多个Git仓库托管 Swift的初始化方法 TIOBE 2015年1月编程语言排行榜:JavaScript成大赢家 为什么iOS开发不需要Storyboard? 仅有纽扣大小的开发板 Intel Curie “撒娇”的豌豆荚?被百度手机助手屏蔽太糟心! 【工具推荐】Pgcli—自动完成和语法高亮的Postgres命令行工具 CES 2015:挑一款机器人带回家? 夜行、睡眠与健康:CES 2015十款酷炫的可穿戴产品 Java 9中新的货币API 唯“简”不破,Apple Watch App的设计之道 Google Glass从X labs“毕业”,更换项目负责人 不进化,则消亡——互联网时代企业管理的十项实践 RedMonk 2015年1月编程语言排行榜:进击的Swift! 微信开放JS SDK,这场web巨变意味着什么? 盘点一些iOS开发技巧:Swift和Objective-C 2014年,那些“颜值”爆表的UI动画 《近匠》爱加密:谁说iOS应用不需要保护? SwiftColorArt:开源易用的Swift图片类库 人气爆棚 干货满满 中国电信天翼开放平台开放日圆满落幕 必须Mark!43个优秀的Swift开源项目推荐 治拖延、疗懒癌!安利12款提高工作效率工具 把ES6带进Node社区 Io.js 1.0.0正式发布 Java 2014:10个最热门、最具争议性的话题 回顾:2014年最流行前端开发框架对比评测 实例讲解SQL注入攻击 调试大规模服务器集群的五大策略 我要用delphi作个学生管理系统,大家给点意见 有声卡,为何没有声音,具体操作如何?一定加分!!!! What a country ! 交流交流多线程程序的开发经验好吗? 谁有关于ejb方面的书或者资料推荐??一定给分 Women over 50 谁编个例程给我,这50分就是谁的了。题目不难,相信高手5分钟就能做完。 jdk1.3+jswdk1.0.1 的JAVAbeans .class文件要放哪啊????? God painted it 提问:猪真的很幸福吗?要求 wywq(幸福如猪) 回答。 哪位高手做过可视电话的? VB能不能实现“一个结构体类型的数组当参数传递 Forgotten Birthd Husbands Overheard Fine 有个在多线程中使用ADO的问题。请高手们帮忙。 Suede jacket 可能是installshield的Bug! 我想去北京找个工作,请大家帮帮忙,提供点信息! 装了“猫”为何还有630错误(电话线也接了)? excel 問題 各位:数据窗口有一检索变量,现在想retrieve出所有的记录,检索变量应该怎样赋值?谢谢! linux和windows是不是只能分别装在两个分区中 关于图像处理:如何使图像锐化与柔化? 帮帮我啦! 我在使用jdbc读取数据的时候,碰到了内存溢出的问题,怎么回事呀 哪里有餐饮系统的介绍?90不够的话,先欠着,多谢了! 在两个ASP程序之间怎么传递参数? ccl2000(不帅不酷的Goblin):其实你真的很酷很帅的。 大侠帮帮我啦(关于SQL语句的问题) 关于Vxd的编译问题 用VC编的程序,一运行就说“执行非法操作”,问题出在哪里?? SQL Server有病 一个关于api的简单问题 《易佳自定义报表》用后很失望 请教各位高手一个有关报表控件的问题? 小妹向大家请教!可不可以直接在本页的代码中改变该页面浏览时的属性? 家菲猫:惊悉你昨晚惨遭不幸,被窃大量钱物,今日一天无法和你联系上,估计手机和通信录已全部丢失,如果今晚无法来我处,明早8点以前请务必携猫 MM 赶到上海南站!!! MDI文档模板和应用程序调用问题请教,大侠请进! 一个c++问题???? 请问各位高手,sqlserver2k加密的存储过程是否能解密,看到它的实际的语句?可否能跟踪加密的存储过程? 我下载了一个formula one ,发现她的界面跟excel差不多,在pb中怎么用? 高分求XML 高级编程(足本)[01.pdf到10.pdf]!!!! 招聘汇编程序员 ie 中true dbgrid 的问题 急招聘汇编程序员 关于WINDONWS文件夹 WIN2000有关用户管理的问题 谁可以告诉我怎么调用已有的EXE文件。 有谁知道广州或南海的高级程序员考试的辅导点 如何把系统时间作为一个文件的保存名? 异丙醇 和 正丙醇 都能用来制造 丙烯 吗?制法相同?用硫酸的!制丙烯啊!!!! 溴水加入到直馏汽油这个会发生反应吗.发生反应是使溴水褪色么..还是说他们是萃取的关系... 常减压蒸馏产品质量调节 由丙烯转化为异丙醇 裂解和裂化哪个是深度裂化 加氢裂化工艺提供商 求2-丙醇制丙烯的方程式 环烷烃是不是饱和烃?如果是,为什么他有一个不饱和度? 加氢裂化过程主要发生哪几种化学反应? 丙烯和丙炔怎样鉴别最好能有化学反应式, 由丙烯制甘油 链状烷烃叫烷烃?环状烷烃叫环烷烃? 怎样区别丙炔和丙稀 由丙烯制备丙三醇.需要经过取代,加成,取代.三步.为什么第二步和第一步不能调换. 既然饱和烃就是烷烃,而环烷烃不是烷烃,为什么环烷烃是饱和烃? 丙炔与一分子溴化氢反应制2-溴丙烯为什么用HgBr2作催化剂 用丙烯为原料制配聚丙烯腈的化学方程式,选用必要的无机试剂 含有5个碳原子的烷烃,经催化裂化后生成的烷烃最多有几种 丙酮如何生成2-羧基丙烯 用丙烯为原料制配聚丙烯腈的化学方程式,可以选用必要的无机试剂 环烷烃是饱和烃吗 丙烯醛和丙酮在NaoH作用下生成什么 丙烯制备丙三醇的化学反应方程式 催化裂化反应为什么原料性质变重,反应温度上升 NaOH能与哪些官能团反应?rt,我一直搞不懂NaOH会和哪些官能团发生怎样的反应,快高考了, 丙烯、淀粉、醋酸钠、乙酸乙酯谁和水反应只生成一种物质 催化裂化分馏塔顶压控多少有什么决定 有机化学中哪些官能团和氢氧化钠反应哪些官能团和氢氧化钠反应,和钠反应,和碳酸钠反应,和碳酸氢钠反应? 苯丙烯和水反应生成什么 水溶液中R值是什么意思? 有机化学中,能与氢氧化钠溶液反应的官能团有哪些? 丙烯与水发生加成反应需要什么条件? Excel添加趋势线中的R平方值和截距分别是什么意思? 高中有机化学中,那些能和NaOH发生水解反应 丙烯与水反应 用R语言估计参数值 请帮忙解释下面这段R语言程序每句的含义,> N x1 x2 n pai for(i in 1:N){+ x1 苯和丙烯制苯酚和丙酮的化学方程式 丙烯和氧气反应方程式,它们会反应么、生成水和二氧化碳 已知定义在R上的奇函数f(x)满足f(x+2)=-f(x),求f(6)的值 有机化学系统命名 :CH3CH2C(CH3)2C(CH3)=CHCH2CH(CH3)CH3我命名的是:2,5,6,6-四甲基-4-辛烯 (不用考虑Z和E的情况) 书上的答案是3,3,5,7-四甲基-4-锌烯.请问我错在哪里了?我是按照最低序列取的 在保 下列物质的制取中,不能直接用乙烯作原料的是?聚乙烯 聚氯乙烯 二氯乙烷 溴乙烯 f(x)是定义在R上的奇函数,对任意∈R,总有f(x+3/2)=-f(x),则(-3/2)的值为多少 丙酮怎么合成(CH3)3CCOOH的? 制取下列物质时,不能用乙烯做原料的是 A.聚乙烯 B.聚氯乙烯 C.氯乙烷 D.1,2-二溴乙烷 对于碳二加氢脱炔过程,为什么把催化剂用于前加氢 如何给有机物 CH3CH2C(CH3)2C(CH3)(C2H5)H 正确命名呢? 制取下列物质时,不能用乙烯作原料的是 A.CH3CH2CL B.聚氯乙烯 C.聚乙烯 D.CH2Br-CH2Br答案是选B 为什么? 对于碳二加氢脱过程,为什么把催化剂不能用于前加氢 丙烯合成聚丙烯的反应方程式是这样写nCH3-CH2=CH2→—〔-CH2-CH2〕n—然后再ch2的下面加个甲基这样写对不对?nCH2=CHCH3→[ch2-ch]n|ch3但是也有这么写的?究竟哪个是对的 请问由于工作需要经常接触液化气,重芳烃,汽油,轻芳烃等化工原料,对身体有什么伤害?请问由于工作需要经常接触液化气,C4,石脑油,重芳烃,汽油,富气,干气,轻芳烃等化工原料,对身 什么叫加氢裂化? 丙烯加聚反应生成聚丙烯化学方程式是什么? 我骑摩托车 不加汽油 ,直接用轻芳烃代替 行么 “加氢裂化装置”如何翻译成英语 转化 异丙醇为什么消去反应后,丙烯与HCI加成,再与NaOH取代.而不与水直接加成 直流汽油中的芳香烃是什么样的?能使酸性高锰酸钾褪色吗,能使溴水褪色吗? 什么是催化裂化汽油求答案 怎样用丙烯制作正异丙醇?最好把过方程式写下! 请教一个汽油芳香烃的问题我想问一下,比如93#汽油和0#柴油相比,哪个芳香烃含量更低些,大概能低多少呢? 常减压蒸馏汽油、柴油与焦化汽油与柴油的区别
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn