如何正确选择一个云服务商?

自从2005年 Etsy 网站开始运营,Etsy.com 和大多数相关的服务就被部署在自托管的数据中心。今年早些时候,我们决定评估是否要把所有服务部署到云上。

当时,在我们自己的硬件上运营数据中心是一个正确的决定,基础设施即服务(IaaS)和平台即服务(PaaS)在这些年里已经发生了戏剧性的变化。是时候重新评估我们的决定了。

我们最近宣布选择谷歌云平台(GCP)作为我们的云提供商,而且这是个明智的决定。这标志着Etsy从自托管转为选择了一流的提供商。

这使得我们在维护基础设施上节省了时间,而可以在战略特性和服务上投入更多的精力,从而巩固了Etsy市场。

尽管我们在提到云提供商时用到了“厂商”的概念,但这不像一个简单的厂商选择的过程。我们会进入一个长期合作伙伴的关系。他们是我们在迁移前期得以成功的重要部分,也是网站和服务可以长期保持可伸缩性和可用性的合作伙伴。这是我们认真考虑和分析后的决定。本文将会带你一起看我们审查并最终选择合作伙伴的过程。但不会包括我们为什么要迁移到云上以及商业目标,主要是如何衡量这个项目的成功。

从少到多

而迁移到云托管提供商可以被认为是单一项目,但它确实是由很多较小的项目组成的非常大的项目。为了能够正确、合理地评估每个提供商,我们需要识别出每个子项目,了解它们的特殊需求,并以此作为评估的依据。而且,为了确定整个项目的范围,我们需要确定顺序、工作量、依赖和每个子项目的时机。

我们确定了八个主要的项目,包括网站的生产路径,搜索服务,日志等生产支持系统,像Jira这样的一级业务系统。然后,我们把这些工程更进一步拆分成组件,例如:MySQL和Memcached作为生产路径。通过这样的实践,我们最终确定了30个子项目。为了确定每个子项目的需求,我们需要向各个组织收集专业知识。

没人或者项目团队可以准确及时地收集所有需求。例如:我们不仅仅需要知道MySQL数据库的延时容忍度还包括新增和删除数据API对数据仓库的需求。为了方便收集所有的需求,我们使用RACI模型来确定子项目的关系。

RACI

RACI模型用来确定责任、义务、咨询和通知每个子项目的人员。我们采用如下的定义:

责任 - 对项目的完成或者发起最终负责的人。 义务 - 也就是R的负责人,他批准后才算完成。 咨询 - 这些人可能会对项目的完成有有用的数据。 通知 - 应该通知这些人项目的进度,而不需要他们的批准。

每个负责人都拥有对他们项目需求的收集和依赖关系的责任。义务人要确保责任人有时间、资源和完成项目所需要的信息,并最终确认完成。

架构审查

Etsy长期以来都有架构审查的过程,重要的环境改变——不管是技术、架构还是设计,都需要经过同级审查。由于这需要高级工程师贡献大量的时间,因此准备工作不能掉以轻心。组织之间的专家合作下,不同的观点在架构审核中通常会产生30多页内容。

我们发现想要合理地评估很多云服务商,需要明白我们的系统最终要达到的状态。例如:在我们的服务器托管中心,已经通过一套工具实现了自动化构建裸服务器和虚拟机。

我们还使用Chef管理和配置裸服务器和虚拟机。我们定义了一些关键指标用于选择在云环境中创建基础设施的工具,包括:高灵活性、可靠性、安全性和集中访问控制。我们的预备团队借助这些指标评估了几个工具,在架构审查中讨论并提出了新的流程。根据提议,我们决定使用Terraform中的Packer来做基础操作系统镜像的编排构建。

最终,对我们系统和环境的主要组件做了25次架构审查。而且对认为需要深入审查的八个组件做了研讨。特别地,我们审查了etsy.com生成页面的后端系统,主要关注的是延时约束和故障模式。这些审查和研讨会得出了一套用于评估不同云服务商的需求。

如何做整合

一旦我们有了系统主要组件的需求,就开始规划迁移的顺序。为了做到这一点,需要确定这些组件之间是如何关联的。这需要我们相关的工程师一起讨论系统和子系统之间的交互并在白板上画出依赖关系。

画依赖的过程有助于我们识别并记录每个主要组件的支撑部分,例如:调度和监控工具、缓存池和流式服务。这些会议最终得出了项目工作和时间的高层预估,并印射到了甘特式的项目计划中。

实验

在今年早些时候,我们在云服务商提供的服务上运行了一些Hadoop任务,这有助于我们理解迁移的需求以及在伸缩时面临的挑战。然而,在这次实验中,我们没有使用GCP,因此没有对云服务商最终选择上得出一致的理解。

因此,我们做了一项实验,基于 GCP 利用 Dataproc 和 Dataflow 运行批量任务。通过这次实验,我们了解到一些 GCP 服务仍然在测试阶段,并不适合我们要求的工作负载和 SLAs。这是我们将会做出的很多相似决定的第一个:使用云服务还是构建自己的工具。在这个情况下,我们选择在 GCP 虚拟机上实现 Airflow。为了帮助我们做出这些决定,我们评估了各种标准的优先级,例如:厂商支持的服务,厂商的自主性,以及这些决定对其他团队的影响。

这些问题没有标准答案。我们相信这些问题和标准,需要每个团队根据各自的情况考虑,并尽可能作出最好的选择。我们不希望当得到更多信息或者测试版本的项目转到 GA 版本后再次做这些决定。

会议

在过去五个月的时间里,我们和谷歌的团队进行了多次会议。每次会议都有明确的目标,从简单的团队成员介绍到整天多个话题的讨论,例如在云上使用容器服务。

除了提供关键信息外,这些会议还加强了 Etsy 和谷歌工程师文化交流。

我们还和相关客户讨论了他们在向云迁移时学习到的经验,并探索自己的方向。和这些公司在一起的时间是非常值得的,并且在纽约的科技公司里这种开放的文化是非常普遍的。

我们还和 Etsy 内部的相关利益人交流,使他们了解我们的进展情况,并邀请他们在关键问题上发表意见,例如如何平衡缓解财务风险与成本的时间贴现。

决定

基于我们已经从相关利益人、厂商和工程师团队获得了成千上万的点子。我们使用决策矩阵的方法来评估有多个判断条件的问题。这个工具帮助组织和优化每个厂商的提议,并作出公平的评估。我们的决策矩阵包括200多个因子,优先级为1400个权重,并评估了超过400的分数。

这个过程是从识别重要的功能性需求开始的。我们确定了关系、成本、易用性、服务增值、安全、位置以及连接七个顶层功能的需求。我们列出了200多个客户的每个需求(客户指的是工程师团队和相关利益人),并通过如何很好地支持全部的功能性需求作为权重。我们用0、1、3、9来标识:

支持的级别。例如:“自动伸缩”需求的权重是9(通过自动伸缩我们的集群启动和关闭有助于降低成本),易用性也是9(这可以让我们手动启动和关闭虚拟机),服务增值是3(作为增值服务只是提供基本的计算和存储,并不是特别复杂),其他功能性需求则是0。多个工程师团队对这些因素做了深入的评估和权衡。明确优先的事项并不是以线性增长的,这使得在决定哪些事情是真正重要的时显得比较困难。

然后,我们利用这些加权对每个厂商的产品进行排名。我们还是利用0、1、3、9来对每个云厂商在需求的实现上做评分。继续以我们的“自动伸缩”为例,我们给每个完整地实现了自动伸缩计算资源的厂商打9分。每个厂商的总分分数都超过了50,000点,并且 GCP 超过了其他的10%。

很明显,根据上文 Etsy 的决策矩阵应该只适用于 Etsy(根据 Etsy 的需求填写,由 Etsy 的工程师做权重排名)。我们不认为这个决定对于你或者你们组织是正确的,但是我们尝试给你提供我们的决策过程,这些对我们来说是战略而且重要。

只是开始

现在,乐趣和工作开始了。这个过程我们花费了五个月,是一个全职的技术项目。数十名工程师和项目管理人员,还有几个律师、财务人员在一些情况下会全职做这些工作。不必说,这不是无关紧要的工作,而是一个转移到 GCP 的多年项目的开始。

我们有一个积极的时间表,要在两年内实现我们的目标。我们会继续关注创新的产品特色上这么做,并在过度期间最小化风险。我们期待迁移到 GCP 后带来的机遇,尤其兴奋的是,在转型过程中允许我们更多地关注核心,通过和一流的服务提供商在 Etsy 市场上的战略服务。

原文发布于微信公众号 - DevOps时代(DevOpsTimes)

原文发表时间:2018-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏即时通讯技术

新浪微博技术分享:微博短视频服务的优化实践之路

本文来自新浪微博视频转码平台技术负责人李成亚在LiveVideoStackCon 2017上的分享,由LiveVideoStack整理成文。李成亚分享了微博短视...

4552
来自专栏技巅

毕业工作五年的总结和感悟(中)

2345
来自专栏DevOps时代的专栏

云时代软件研发的终局猜想

2015 年到 2016 年,是业界普遍认为的容器技术爆发的一年,短短几年时间,我们看到容器技术星火燎原。但是容器毕竟是个底层产品,距离业务还很远。对云上客户来...

1423
来自专栏Data Analysis & Viz

“中国年轻人正带领国家走向危机”,这锅背是不背?

前些天在微博看到新浪财经的《中国年轻人正带领国家走向危机?》 一文,立马就被标题震惊到了,文章内容大家可自行阅读,在此不做评价。

1224
来自专栏开源优测

[大数据测试]ETL测试工具和面试常见的问题及答案

概述 商业信息和数据对于任何一个企业而言都是至关重要的。现在很多公司都投入了大量的人力、资金和时间对这些信息、数据进行分析和整理。 数据的分析...

3838
来自专栏WeTest质量开放平台团队的专栏

远离服务器宕机,腾讯WeTest正式推出服务器深度性能测试服务

原文链接:https://wetest.qq.com/lab/view/415.html

1652
来自专栏喔家ArchiSelf

老曹眼中的CRM 图解

CRM 是企业“以客户为中心”价值观的核心体现之一, 各种2B的应用都无可避免,而企业应用具有一定的复杂性,理解CRM系统也不是轻而易举的事情。在老码农的眼中,...

1474
来自专栏PPV课数据科学社区

【学习】公司的大数据业务为什么都基于Hadoop方案

选择Hadoop的原因主要有以下三点:1.降低成本;2.生态圈成熟;3.可以解决问题。 ?   一、可以帮助我们解决什么问题   现在不管是在国内外的大公司,对...

2647
来自专栏速成应用小程序开发平台

微信小程序又曝流量新入口,这次居然出现在了QQ空间里

腾讯公布的数据显示:QQ空间拥有活跃账户5.68亿,6成以上的用户为90后年轻用户。之前也有相关的调查表明,QQ空间里的很多年轻用户并不喜欢在微信上聊天,更倾向...

2463
来自专栏京东技术

京东技术沙龙系列之二 | 深度解析京东微服务组件平台

2024

扫码关注云+社区

领取腾讯云代金券