写点什么

纽约公共图书馆的云旅程

  • 2019-11-08
  • 本文字数:3812 字

    阅读完需:约 13 分钟

纽约公共图书馆的云旅程

“图书馆是思想的产房,是历史苏醒的地方。”-Norman Cousins


几年前,我有幸与 Jay Haque 见面,那是他已经开始领导纽约公共图书馆的 (NYPL) 云旅程。我在 Dow Jones 正在经历类似的旅程,所以我们有机会分享我们的故事。几周前,我高兴地看到 Jay 对我的一篇文章进行了评论,在更多地了解了一些他在 NYPL 的旅程的进展之后,我觉得他对最佳实践的看法可以让更广阔的市场受益。原来我并不孤单,今天 Jay 和他的团队成为了 2016 AWS City on a Cloud 创新挑战赛的获胜者。谢谢你,Jay,我期待着与您的见面,也希望看到 NYPL 继续变革为客户提供技术的方式!


(像这个故事一样基于真实经验的故事往往是最有价值的,我愿意介绍更多这种类型的文章。如果您有想要分享的故事,让我们来谈谈如何发布在我的博客上!)


-Stephen


orbans@amazon.com


@stephenorban


当 Stephen 邀请我就我的培育出色的云中心的经验写点文字时,我再次拜读了他的“企业云旅程的 7 个最佳实践”这篇文章,发现我所在公司的经验与这些实践是一致的。


纽约公共图书馆的旅程直接证明了扩展的概念。大型团队或大型项目不必开始企业云旅程,您可以从小范围的集中工作开始,在建立您的实践并为扩展做准备的过程中加以调整。通过无比强烈的愿景和“空中掩护”带来的大量自上而下的支持与财政支援是任何技术专家梦寐以求的,但我们知道这种情况很少发生。如果没有这样的条件,可以从某个小地方开始,无论有多小。


我们的旅程从一个简单的想法开始:在云中构建一个配置管理平台,以证明我们的主要网站的重新设计和我们著名的 Digital Collections 网站的发布会从中获得巨大的好处。我们很快意识到云 (具体的说是 AWS) 通过提高自动化水平加快了项目完成速度,通过合理调整大小降低了成本,提供了冗余,并支持其他方法因受制于成本而无法实施的无缝扩展功能。我们的旅程低调地起步,但取得的成功却十分惊人;我们世界一流的开发、产品、项目和开发运营团队使用 AWS 为我们赢得了 2016 AWS City on a Cloud 创新挑战赛最佳实践类别优胜者的荣誉。


我们与 AWS 合作伙伴 Control Group 合作制定了一项计划,该计划不仅为 Web 资产提供了必要的基础设施,还提供了一个配置管理平台,这将加快未来项目的速度。这里的核心理念是,虽然 Web 资产总有一天会停用,但管理平台将根据需求扩展并将无数站点的基础设施构建过程自动化。通过不到 50% 的团队时间分配,项目将在不超过 12 周的时间内完成。


为了最清楚地说明我们的项目与 Stephen 的七个最佳实践如何保持一致,我将采用相同格式呈现我的经验。(如果您还没有阅读这篇文章,我非常建议您转到此处进行阅读。)

1. 提供高管支持

自上而下的高管支持将为您的计划提供目标和重要地位。至于扩展,从您可以获得的开始,即使只是一位高管或一个项目。在不断获胜之路上注重获得更多高管支持。这将帮助您获得系统性的支持。


我们最初讨论旅程时,图书馆有两个正在进行的主要 SaaS 项目、一位新任命的首席技术官、有限的人力资源且面临潜在的预算缩减。可想而知,启动大规模、集中式云计划的需求很低。


但我们知道,我们必须从某个地方开始,否则就有落后于行业趋势的风险。我们的首席技术官支持在云中构建一个配置管理系统,作为一个可以快速完成的低风险、低资源利用率的项目。一旦该项目体现了云的价值,首席技术官和其他高管的兴趣就会显著增加,成为支持剩余的云旅程的基础。


为了获取对项目的必要支持,我专注于以下五个因素:


  1. 利用现有项目。我们将该配置管理平台定位为一种用来加快未来高优先级项目速度的手段。通过构建提议的平台,我们会加快需要基础设施的未来项目的执行速度。

  2. 从小处着手。这使剩下的三个因素起到对我们有益的作用:

  3. 最大程度地提高成功的可能性并降低风险。项目小到以至于几乎不可能失败。万一真的失败了,成本和业务影响也很低。

  4. 快速执行。拖延的小项目会成为麻烦事。重点是立即展现出成果并逐步向更大的项目过渡。

  5. 讨论可扩展性。虽然项目很小,但我们重点强调了它的不同组件如何扩展以实现未来的成功。

2. 教育员工

技术人员一直在不停学习 — 这是很自然的。在扩展方面,应关注用于学习的力量或可用时间。然后,激励您的团队,并提供任何您可以提供的资源。集中精力学习能提供最大即时回报的核心元素。对我们来说,安排、配置管理和代码是重中之重,因此我们集中精力首先学习这些元素。


在配置管理平台项目的开始阶段,团队充分意识到了我们的宏伟目标。启动我们的第一个 AWS 项目之前的几周排满了有关该服务的讨论:我们可能在何处如何利用它、合作伙伴演示,以及有关其他组织正在进行的工作的学习。这建立了兴奋感和强烈的学习意愿。随着项目的开始,通过在我们的 PMO 实践中对资源时间的分配和首席技术官层级的支持获得了足够的“空中掩护”。最后,在没有 AWS 提供的课程的情况下,我们参加了合作伙伴提供的研讨会。

3. 打造试验文化

在利用合作伙伴帮助启动旅程的过程中,我们专注于打造试验文化。


合作伙伴在实施前很好地展示了技术理念,为系统工程团队提供了充足的时间来探索技术并在我们的 AWS 沙盒环境中进行测试。沙盒提供了一个灵活的环境,可让系统工程师快速地构建和拆解堆栈,并对复杂问题的各种解决方案进行试验。我们通过各种方法探索了 Web 基础设施的实例化,这些方法包括使用 AMI、使用 Puppet 的完整安排,以及从外部存储库或 S3 同步代码。这种级别的试验以及与合作伙伴的深入讨论提供了一个论坛,将我们的理念与日益涌现的最佳实践进行融合,确保我们有效地权衡各种竞争技术。


在我们旅程的早期播种的试验文化现已生根发芽。我们鼓励不同专业的支持工程师和开发人员对云的各个方面进行试验。在为期一天的内部黑客马拉松上,我们利用 Elastic Transcoder 设计并酝酿出一个媒体转码管道。如果没有 AWS,我们不可能实现这种级别的试验自治,AWS 为组织提供了无需大量资金投入便可以进行试验的手段。

4. 吸引合作伙伴

如果没有控制组,我们不可能取得如此快的


进展。在扩展方面,人员扩充为我们的小型系统工程团队注入了经过证实的 AWS 专业知识。控制组为客户提供了既有的最佳实践,用于将在云中进行系统构建和部署的过程自动化,他们在自己的软件开发操作中也使用这些最佳实践。他们作为服务提供商和作为用户获得的有关 AWS 的实践经验大幅缩短了我们的学习曲线,从而帮助加快了我们的旅程。


旅程早期阶段的合作伙伴参与为教育我们的团队、内部试验和最佳实践在我们工作中的应用提供了支持。这种密切关系带来了持续的成功。

5. 创建云卓越中心

随着我们最初的 AWS 项目接近完成,我们会专注于“下一步工作”这个元素。在扩展方面,我们专注于进一步扩大工作。这需要大量支持。


开发和系统工程团队讨论了如何在 AWS 上构建未来的项目。这让我们开始理解角色将如何改变、我们将如何合作和意识到这种工作方式将对总体速度产生多大影响。在我们将主要网站迁移到 AWS 以及随后独立处理在该平台上发布备受期待的 Digital Collections 网站的工作的过程中,我们保留了合作伙伴支持。Digital Collections 网站很大且很复杂,足以真正检验我们在云中运营的能力。我们的系统工程和开发团队在发布之前的几个月已经积累了足够的专业知识,而且控制组可随时在一旁提供帮助,这让我们对自己为高要求的网站设计出正确的解决方案的能力充满了信心。


我们仍在非常努力地实践 CCoE,甚至在实践开发运营的概念。我们正在了解竞争力要素有哪些,并提出有关如何平衡这些竞争力要素的难题。例如,我们想要速度,但不想牺牲系统的完整性。我们想要标准化,但不想要太大的开销。这些问题均从优化的角度提出:我们已将交付基础设施的速度从数月缩短到了仅仅几天,然而我们仍在不停地询问“如何才能做得更快、更好?”

6. 实施混合架构

这对纽约公共图书馆来说必不可少,因为我们有一个必须继续运营的重要的本地基础设施。我们的主要重点是在 AWS 中构建新产品并将这些站点 (轻松地) 迁移到平台上。组织对于将既有内容迁移到云的需求正在增长;然而,执行迁移所需的资源有时可以更好地利用到推进新产品上。在扩展方面,我们必须明智地挑选我们的迁移目标,并考虑针对既有系统的各种选项。迁移是一个选项,弃用是另一个选项。同时,我们积极地支持混合架构。

7. 实施云优先策略

我们已经做到了一部分。我们在 AWS 上构建以 Web 为中心的系统的工作很出色,而这些系统几乎都是在云中构建的。事实上,我们在本地部署新的 Web 解决方案一定有迫不得已的技术原因。我们仍然需要学习如何在云中部署其他类型的业务应用程序,甚至在这些情况下,我们通常也会问 SaaS 产品是否是可行的选择。旅程中获得的成功为云优先策略铺平了道路;成本和效率方面的好处说明了一切并让人意识到云优先是最佳策略。

总结

Stephen 和我第一次见面分享我们的故事时,NYPL 刚刚开始其云旅程。自那时以来,我们取得了长足的进步,成功模式比当时更为清晰。Stephen 通过七个最佳实践对此所做的精湛阐述对任何组织的旅程的任何阶段都有好处。我希望这篇文章对正在考虑如何以及从何处开始旅程的人有帮助。我很愿意听你们讲自己的故事,并将你们的故事添加到成功案例集合库,每一个故事都是一个学习的机会。


Jay Haque


开发运营和企业计算总监 | 纽约公共图书馆 | 关注 NYPL:NYPL 存档


jayhaque@nypl.org | 关注我:@jayhaque


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/new-york-public-librarys-cloud-journey/


2019-11-08 08:00613

评论

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

开源依赖项管理指南

SEAL安全

12 月 PK 榜 依赖管理 传递依赖 开源依赖项

【其他】快出数量级的性能是怎样炼成的

No8g攻城狮

MySQL sql 数据库·

Java开发如何通过IoT边缘ModuleSDK进行协议转换

华为云开发者联盟

Java 开发 华为云 12 月 PK 榜

聚焦技术创新!旺链科技荣获“宝山区企业技术中心”认定

旺链科技

区块链 产业区块链 技术创新 12 月 PK 榜

带你实现react源码的核心功能

flyzz177

React

react源码分析:实现react时间分片

flyzz177

React

跳板攻击中如何追踪定位攻击者主机(上)

郑州埃文科技

数据安全 网络攻击 跳板攻击

从React源码来学hooks是不是更香呢

flyzz177

React

超1800万累计观看,多次占据热榜前列……“无障碍字幕直播间”带来的远不止这些!

猿始人

BEVFormer-accelerate:基于EasyCV加速BEVFormer

阿里云大数据AI技术

深度学习 算法 计算机视觉 12 月 PK 榜

GaussDB(DWS)运维 :遇到truncate执行慢,怎么办

华为云开发者联盟

数据库 后端 华为云 12 月 PK 榜

为什么 OpenCV 计算的视频 FPS 是错的

百度Geek说

OpenCV ffmpeg 12 月 PK 榜 帧率

Mybatis源码解析之执行SQL语句

京东科技开发者

缓存 mybatis sql 源码学习 数据库·

星环科技TDS 2.4.0 发布: 数据开发、数据治理、数据运营套件能力再次升级

星环科技

使用Spring Data Redis 发布订阅消息

码语者

redis Spring Boot message

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

真希望你也明白runtime.Map和sync.Map

面向加薪学习

面试 并发 源码阅读 go语言 Map集合

ArgoDB 5.1 正式发布:多模融合、实时分析和数据安全多重升级

星环科技

从React源码角度看useCallback,useMemo,useContext

flyzz177

React

react源码中的生命周期和事件系统

flyzz177

React

云智慧蝉联中国IT统一运维ITSM软件市场第一!

云智慧AIOps社区

ITSM IT运维 运维管理

react源码分析:babel如何解析jsx

flyzz177

React

云原生时代数据库运维体系演进

vivo互联网技术

数据库 运维 故障自愈

四步骤打造银行智能标签体系,助力银行精准营销

袋鼠云数栈

智能标签 数据画像

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

你可能需要的6个React开发小技巧

千锋IT教育

FL Studio2024永久免费版音乐程序

茶色酒

FL Studio FL Studio2023 FL Studio21

MatrixOne 0.6.0 :首个云原生架构的HTAP数据库发布!

MatrixOrigin

分布式数据库 云原生数据库 国产数据库 MatrixOrigin MatrixOne

JavaScript刷LeetCode心得

js2030code

JavaScript LeetCode

教你用JavaScript实现点击支付框

小院里的霍大侠

JavaScript 小白 编程开发 实战案例 初学者

想做长期的 AB 实验?快来看看这些坑你踩了没

京东科技开发者

测试 测试原则 复盘归因 A/B 测试

纽约公共图书馆的云旅程_其他_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章