“铃——”29岁的腾讯云架构师林杰在睡梦中被手机铃声吵醒。
他赶紧接起电话。号码显示,这是一通来自美国的越洋电话。
对方是印象笔记的工作人员,语气急促,告诉他,印象笔记的打开速度突然变慢,影响用户的使用体验,需要尽快给出解决方案。
此时,美国时间约为上午11点左右,而中国差不多是凌晨。作为印象笔记迁移上云项目的负责架构师,林杰赶紧将团队的几个技术人员纷纷叫起来,和印象笔记的技术团队一起,排查问题,商量对策。
“后来,我们确定原因是单条专线带宽导致的内部数据通信受阻。”林杰说。
2018年3月中旬,印象笔记按计划将部署于自己IDC数据中心的近百台服务器,分批迁移至腾讯云虚拟主机上。由于这近百台服务器之间有非常频繁的网络通信,且同时在进行用户数据的同步上云,因此大约半数服务器完成了向腾讯云迁移后,整个印象笔记服务对于 IDC 到腾讯云间的带宽需求峰值已经超过单条专线的2Gbps 限制,进而导致用户访问印象笔记服务时响应速度变慢、等待时间变长。
在排查清楚原因之后,双方团队决定紧急修改原有网络路由配置,启用备用专线分担流量,印象笔记很快又恢复到了原有的服务质量。
林杰清晰地记得那天是3月15号,因为这也是印象笔记迁移上云全程为数不多的“插曲”,而且由于事先已经在 IDC 和腾讯云之间架设好一主一备两根带宽各为2Gbps的专线,这个“插曲”也没造成多少影响。
由始至终,由于印象笔记和腾讯云团队双方前期的周密准备以及默契配合,整个迁移进程一直是“静悄悄”的。
迁移方案标准对标AWS
作为一款强大的跨平台、多终端同步的知识管理工具,Evernote在全球拥有超过2.2亿用户,平台积累近100亿条笔记,已成为全球最大的非结构化数据平台之一。
2012年5月,Evernote进入中国,建立印象笔记。2018年,它重组为一家独立的中方控股的合资公司。印象笔记在中国本土化之初就将服务和数据部署在本地,自建了IDC(数据中心)。随着用户的增长和用户笔记数据量的几何级膨胀——入华6年,印象笔记已拥有数千万用户以及高达几百TB的数据,而云部署凭借在产品灵活性、数据安全、AI等工具的应用和长期成本方面的优势,成为印象笔记未来持续快速发展的必然选择。
经过对整个公有云市场为期1个月的评估,印象笔记最终选择腾讯云作为“上云”伙伴。
这是个谨慎的决定——有了“上云”意向以后,印象笔记汇聚公司技术团队与美国Evernote的技术力量,开始对腾讯云进行比较深入的技术“考验”,比如实际地去操作一些腾讯云上的方案。
印象笔记基础构架与架构副总裁岳峰回忆道:“随着技术验证的推进,我们逐步熟悉了腾讯云的各个产品,也跟腾讯云北京售前团队和深圳架构师团队,有了一个紧密的交流。我们有电话会议,也在微信群上讨论,我跟开发人员也去深圳拜访过。我们原本存在疑虑的一些点,在这个过程中慢慢被澄清了。两个月后,我们正式跟腾讯云确认了合作。”
而对负责印象笔记迁移项目的腾讯云架构师林杰而言,整个过程不亚于一场“大考”。“印象笔记和我们签订的合同中就已经写明,某项规定动作必须在某月某日之前完成,日期非常具体,我们的方案不容有一丝闪失。”
除此之外,印象笔记所有经过中方团队验证过的方案同时还会经过美国技术团队的交叉验证,共同确认方可实施。而美方是按全球最顶级云服务商的标准,诸如亚马逊AWS来衡量腾讯云的方案。
“比如在合规方面,涉及API(Application Programming Interface,应用程序编程接口)字段的大小写都要统一修改。”林杰说。
还有关于对象存储(Cloud Object Storage,COS,能容纳海量数据并保证用户对带宽和容量扩充无感知),印象笔记也提出了一些自己的要求,但腾讯云团队通过技术引导的方式告诉他们,自己的方式在腾讯云上面运用会更加顺畅。同时,为了保证迁移过程的数据一致性及高可用,需制定详细的数据迁移写入同步方案。
*印象笔记存储迁移上COS方案,在原主备存储节点,通过开启同步写入COS、同步存储节点与COS节点的读数据响应等方式实现数据一致性迁移
这是一个双方不断磨合、技术不断优化验证的过程,目标也很明确:平滑迁移。
林杰,腾讯云架构师,负责印象笔记上云项目
加密加密再加密
迁移上云并非只是转移数据那么简单,最具挑战性的地方在于安全。
由于笔记类服务商的业务特性,大量用户会把自己的文本、图片等信息保存在笔记里,数据的安全性就显得尤为重要——一方面,用户上传的信息不能被泄露;另一方面,要避免用户资料丢失。同时在数据迁移过程中,还要尽可能不影响用户正常使用笔记服务。
一下子面对这么多需求,林杰和团队一起首先在迁移方式上做出优化。技术人员从印象笔记原来的数据中心拉了两根2Gbps的专线,通道都是印象笔记独有的。相较于网络传输,专线能够实现更快速安全的接入,迁移更有保障。
但这种安全性对于印象笔记来说,还远远不够,他们仍有更高、更细化的安全需求。
印象笔记希望,不只是针对公网,针对内网也要有限制。使得内部资源比如公司网站,跟用户的数据做到完全隔离。虽然都是在腾讯云的账户里面,也同时在印象笔记的私有网络里面,但是这部分服务器是不可以访问用户数据的。
最终要达到什么样的效果才行呢?“即便是印象笔记自己内部的运维人员和管理员,想要访问到这部分用户资源,也需要经过VPN的准入控制、访问日志的保护机制,以及安全部门的定期审核。简单来说,只有受限的来源,才能够接触到用户的数据信息。”印象笔记基础构架与架构副总裁岳峰说。
不仅如此,印象笔记对于数据的存储,也有非常高的要求。但这没有难倒腾讯云的技术人员,团队紧急做了非常多的开发准备,最终帮客户实现了想要的功能和效果。
林杰说:“存储方面,我们使用了腾讯云CBS块存储,还有COS。块存储需要所有数据落盘都是可以加密的,当时我们是不支持的。所以为了支持这个特性,产品、方案还有研发人员都是直接待命。所有需求紧急评估,上线过程也要去做一些确认和测试。同时我们通过DRBD机制来实现印象笔记数据的同城双活高可用。”
印象笔记数据存储同城双区高可用方案
“还有一些是特性类的,就比如说印象笔记需要所有到COS的访问经过腾讯云私有网络(Virtual Private Cloud,VPC)的时候,都要做访控制。我们当时也是没有这种能力的,而且架构上会比较复杂,因为从VPC到COS中间是要通过很多网关去做转化。所有接入层的内核都要升级,整个大网内核升级的影响是非常大的。这个我们也单独帮他们搭了一套,满足他们的要求,再去开发一个新的特性区域做支持。”林杰继续解释。
在印象笔记的数据中,一部分是笔记本身,比如文本、标题、笔记属性等;一部分是笔记的附件,比如照片或PDF文件等,而这部分占到整个数据量的90%以上。
其中,附件部分使用了腾讯云的对象存储功能,这也是业界标准的、高强度的加密机制。这就保证了从存储硬件设备上,即在数据写入硬盘的时候,就已经是经过加密的了。
“就算是有人偷偷溜进腾讯云的机房,把这个硬盘拔走,也恢复不出用户存上去的数据。”岳峰说。
控制和加密成为整个方案的关键,也是双方技术团队使用的高频词汇。
“数据从客户侧传输上来的时候,都要经过一套加密机制。所有的客户信息加密之后,再传到腾讯云的存储上面。另外,所有的访问都要先通过VPC再到COS,在这个过程里所有到VPC的数据,都会先到密钥管理系统里面去做一个密钥分发。加密完之后,再把这些数据放到COS里面。”林杰说。
他还强调,团队专门针对印象笔记做了落盘加密,避免存储于硬件设备中的数据被非法窃取或被恶意篡改,保证所有数据只要传输到网络里面,都是具有加密特性的。
印象笔记数据写入加密方式,所有数据均需通过腾讯云的密钥管理服务,获取密钥加密后再写入存储
同时,林杰和团队跟岳峰团队一起对账号系统之间的访问进行设计控制。
印象笔记拥有很多的子账号,不同部门之间的访问控制策略也做得非常细,特别是印象笔记与Evernote知识产权共享,要支持Evernote管理团队的使用习惯。腾讯云帮印象笔记做了定制化的开发,类似于强制的MFA多因素认证(MFA,Multi-Factor Authentication 多因子认证),实现了在用户名和密码之外再对账号增加一层保护。
印象笔记基础构架与架构副总裁
这里的战斗静悄悄
从2018年1月底方案实施到5月,印象笔记上云过程持续了大约4个月时间。岳峰说,这大约是印象笔记入华以来面临的最大一次挑战。但事实上,它是“静悄悄”地完成的,用户几乎完全不受影响。
在没有正式迁移的时候,腾讯云和印象笔记双方团队一起做测试、验证,包括专线的能力和性能,也包括加密之后各种性能可能存在的问题,还有后端存储的时候涉及到的特性支持,以及上线之后能否真正满足客户的要求。
战斗打响一般是在凌晨时分,用户使用的低峰期。在正式迁移的过程中,腾讯云需要做好资源的准备,以及整个上量过程中可用性的保障。最后印象笔记正式迁移过来之后,要看用户是否能正常访问。这一系列的工作,都离不开双方技术人员的配合和努力。
“正式上云之前,我们跟腾讯云的架构师进行了交流,预告我们将要做哪些事情,一周五天每一天做什么,每一天结束的时候它会有一个怎么样的结构,可能每天都会变。他(林杰)很快帮我们画了一张图出来,问我们是不是这样。他能够真正站在我们的角度,理解我们将要实施的计划,包括我们在实施的过程中,腾讯云售后团队也是24小时待命,有时候可能都是北京时间凌晨两三点钟,我们的问题也基本上能很快得到解答。”岳峰说。
一场涉及到数千万用户、高达数百TB数据的迁移就这样“悄悄”地完成了。目前为止,印象笔记已经在腾讯云上运作了一年,平滑依旧。
“迁移至今的一年时间里,运营整体非常稳定流畅,数据安全得到妥善保障。印象笔记也在快速发展,全新发布独立App,数据量不断增长的同时,稳定性和响应速度也在不断提升。”岳峰说。