亚马逊AWS官方博客

AWS Team

Author: AWS Team

AWS Kinesis的Javascript交互方法

一.介绍 Amazon Kinesis 是一种托管的弹性可扩展服务,能实时处理大规模的流数据。在该服务收集大数据记录流后,可用多种数据处理应用程序实时处理该数据流。Amazon Kinesis Streams 每小时可从数十万种来源中连续捕获和存储数 TB 数据,如网站点击流、财务交易、社交媒体源、IT 日志和定位追踪事件。Amazon Kinesis Streams 数据流的吞吐量每小时可从数 MB 扩展到数 TB,PUT 记录每秒钟可从数千次扩展到数百万。您可以随时根据您的输入数据量动态调节数据流的吞吐量。 AWS为旗下的服务提供了多种开发工具包,支持包括Java、PHP、Python、Ruby、浏览器端等语言或平台。对于Amazon Kinesis,我们除了使用上述的Stream API进行开发外,AWS还提供了Amazon Kinesis Client Library (KCL) 开发适用于 Amazon Kinesis Streams 的使用器应用程序。在本文当中,我们展示如何使用Javascript在浏览器端与Amazon Kinesis进行交互,包括把记录Put到Kinesis,和从Kinesis读取记录。 二.基本概念与限制 在阐述如何AWS Kinesis的Javascript交互方法前,我们有必要对Kinesis Stream当中的关键概念——“分片”和“数据记录”作初步的了解。 分片 分片Share是流中数据记录的唯一标识组。一个流由一个或多个分片组成,每个分片提供一个固定的容量单位。流的总容量是其分片容量的总和。每个分片对应提供 1 MB/s 的写入容量和 2 MB/s 的读取容量。需要注意的是,每个分片可支持最多1000条记录/s的写入,和5个事务/s的读取。用户需要根据上述的容量和数目的限制,为流添加足够多的分片数目,以满足自身需求。 数据记录 数据记录是存储在 Amazon Kinesis Stream中的数据单位。数据记录由序列号、分区键和数据 Blob 组成。 每个数据记录都有一个唯一的序列号。当应用程序对Amazon Kinesis Stream进行写入记录时,Streams将自动为其分配序列号。同一分区键的序列号通常会随时间变化增加;写入请求之间的时间段越长,序列号则越大。但需要注意的是,序列号不能用作相同流中的数据集的索引。用户如果需要在逻辑上分隔数据集,请使用分区键或为每个数据集创建单独的流。 分区键Partition Key用于按分片对流中的数据进行分组。Streams 服务使用与每条数据记录关联的分区键将属于流的数据记录分为多个分片,以便确定给定的数据记录所属的分片。分区键是最大长度限制为 […]

Read More

算法改变世界 - 从Prisma 的走红说开去

假设你是一个摄影爱好者,估计最近这几天应该正忙着用一款热门的手机App去修图并晒到朋友圈里面。原因很简单,用这款软件提供的滤镜处理过的照片看起来更像是个艺术品,而不是那种常见的苍白的脸蛋和色彩失真的风景。这款爆红的程度可媲美Pokémon Go 的App的名字叫做Prisma。对于这个现象级的App,一个笑话是这样说的,“全球有一半的人正在用Pokémon GO抓皮卡丘玩,另一半的人则用Prisma在修图”。 6月24日,俄罗斯总理梅德韦杰夫在自己拥有230万粉丝的Instagram上传了一张莫斯科风景照,解说文字是“滤镜里的莫斯科”。这张照片使用了Prisma的其中一款滤镜,让整张照片呈现出浓郁的铅笔画效果,获得了超过7.8万个点赞。 Prisma 面世是在今年的6月11日,是由一个不足9人的名为Prisma Lab的俄罗斯团队在一个半月以内开发出来。一经面世就引起了轰动,在发布短短4天后就成了年轻人的新宠,10个国家的App Store榜首,两周内下载量超过160万。这个数字也创造了一个App下载的新的记录。   包括我在内的许多人喜欢这款应用的原因是因为它所提供的30多款滤镜完全不同于VSCO、Snapseed 以及Instagram 这些成名已久的的软件,经它处理过的图片看起来就像是我们熟悉的毕加索、梵高、爱德华.蒙克的作品,或者是强烈的线条、简洁概括夸张的造型,或者是用色阴暗的紫、绿色调的蚀刻风格,又或者是粗旷而狂野的印象派。总之,一幅色彩暗淡、构图不佳的照片一经处理就变成了大师范的艺术品。这样的软件如何不让像我这样的低级别的摄友痴狂呢。   如果仅仅是几个还算不错的滤镜也难逃昙花一现的结局,就如同曾经大热过许多款软件一样。但是如果你可以了解这些滤镜的来源,恐怕你会和我一样会大吃一惊了。不同与传统的设计出来的滤镜,Prisma 有自己一套独特的方法。当用户上传照片时,Prisma系统会使用基于神经网络的人工智能算法,获取著名绘画大师和主要流派的艺术风格,然后对你的照片进行智能化处理。也就是说,它所提供的每一个滤镜,都是模仿过去伟大艺术家的风格而对你的照片进行智能分析和重绘而产生的。   作为一个程序员,这个励志故事却有着不一样的味道。通常情况下,我们总是习惯于在我们熟悉的领域去捕捉灵感,并将这种灵光乍现的想法都过程序变成一个个具体的应用。但是如果你已经读过上面的故事,你应该也会与我一样蹦出来这样的一个想法,人工智能或许可以可以让我们跳出这样的思维的局限。让我们可以在跟更广阔的领域去发掘新的需求。   为了验证这个想法,我打算复制Prisma 核心算法的实现。当然,这种实现并不是你想像的那么高深莫测。在一篇名为“Neural networks with artistic talent” 的博客文章里面,我大致梳理出来了这个算法的脉络。早在2015年9月在ariV 上面就刊出了德国学者的一篇名为”A Neural Algorithm of Artistic Style“论文。在这片文章里面,了如何使用神经网络学习一副画的绘画风格,并把这种风格用于处理一幅照片使之具有了该种艺术风格。而这篇论文所提出的算法据说所就是Prisma 的核心。 看到这里我想许多人都会产生实现这个算法的冲动。且慢下手,因为有意境找到了一个更简洁的方法。斯坦福大学的Justin Johnson 已经在github 上面为我们提供了一个很好的框架,而基于这个项目的成果实现这个算法就变得轻而易举。 实现这个深度学习的算法需要具备一定的条件,重要的就是计算的性能。而目前解决这个问题的通常思路就是使用GPU来提高处理能力。对于普通程序员来说,我们通常并不具备这一类的资源。但解决问题的思路已经有人给出了。早在2014年2月Netflix 久通过他们的技术博客分享过一篇实现分布式神经网络的文章,文章的题目是“Distributed Neural Networks with GPUs in the AWS Cloud“。 于是我的尝试就从AWS 提供的云计算的环境 。我需要的仅仅是启动一个AWS EC2 的实例,EC2这个服务可以理解为一个托管的虚拟服务器。 Amazon EC2 提供多种经过优化,适用于不同使用案例的实例类型,而适合于深度计算的类型无疑就是G2这个 […]

Read More

我喜欢我的Amazon WorkSpaces

去年年初,我的同事 Steve Mueller 来到我的办公室,告诉我一项他认为我会感兴趣的内部试点计划。他解释说,他们正准备在 Amazon 上运行 Amazon WorkSpaces,并提出把我加入候选名单。我是一个喜欢生活在最前沿的人,自然接受了他的提议。 开始使用 此后不久,我开始在办公室的桌面上运行 WorkSpaces 客户端,那台电脑配置非常好,有两台显示器,内存充足。当时,我在工作日使用该桌面,出差或者在家办公时有一台单独的笔记本电脑。虽然我使用 Amazon WorkDocs 在两个环境之间共享文件,但切换环境时还是有些不顺畅。我得到了两组不同的浏览器标签、书签,诸如此类。无论我如何尝试,就是没有办法在各环境之间保持办公应用程序的同步。 在办公室使用 WorkSpaces 两周后,我意识到它的速度和响应能力与我的桌面相当。从此之后,我开始使用 WorkSpaces 作为我的主要工作环境,并慢慢脱离我曾经信赖的桌面。 我每周有两到三天在家办公。我家里的桌面配备了两个大屏幕显示器、大量内存、顶级的机械键盘,并运行 Ubuntu Linux。我在 Linux 系统上运行 VirtualBox 和 Windows 7。换句话说,我有一个快速且像素丰富的环境。 在我习惯了办公室的 WorkSpaces 之后,我在家里也安装了客户端并开始使用。这对我来说是向前迈进了一大步,瞬间开启了新的世界。现在,我能够使用快速而像素丰富的家用环境去访问我的工作环境。 此刻,您可能在想,客户端虚拟化和服务器虚拟化的组合一定很慢、有延迟,或者响应能力不如本地设备。但事实并非如此。我是一个非常苛刻的用户。我敲键盘速度飞快,我会同时打开大量窗口并频繁快速在窗口间切换,而且我绝对不能忍受被系统拖后腿。我的 WorkSpaces 速度快、响应能力强,让我拥有更高的工作效率。 移至零客户端 在我使用 WorkSpaces 几个月后,Steve 发消息跟我谈到了他的计划,他想要给试点计划的成员提供一些零客户端设备。我很喜欢他的想法,并同意参与。他和他的帮手 Michael Garza 帮我设置了 Dell 零客户端,并从 Steve 的办公桌下面搬来两台全新的显示器。此时,我的办公室桌面对我已经不再有用处了。我拔掉它的接线,向它的精诚服务表示敬意,然后把它送到复印室的硬件回收架。现在,我已经没有退路,只能完全依赖我的 WorkSpaces 和我的零客户端了。 零客户端是一个小巧而安静的设备。它没有风扇,也没有内部存储。它简单地连接至本地外围设备(显示器、键盘、鼠标、音箱和耳机)以及网络。它的发热量极小,并且与整套桌面相比可大量节能。 那时,我也经常需要到国内外各地出差。我开始在路上登录我的 WorkSpaces。这样做之后,我意识到我现在实现了一件非常酷的事,我拥有一个统一的工作环境,它可以横跨我的办公室、我的家庭和我的笔记本电脑。我有一套文件和一套应用程序,我可以从任意设备访问它们。现在我拥有一个便携式桌面,并且几乎可以从任何地点访问它。 我在使用远程 WorkSpaces 而不是本地计算能力的事实,很快就变得可以忽略不计。有一天早上,我用带有刺激性的标题给团队发了一封电子邮件说“我的 […]

Read More

如何使用AWS 命令行分段上传大文件

1.S3上传文件介绍 使用亚马逊云的朋友经常需要上传文件到S3存储,亚马逊S3提供了在单个操作中上传文件和分段上传文件两种方式。使用单个操作上传,每次可以上传最大5GB的文件。如果使用分段上传来上传文件,可以 上传最大大小为5TB的文件。 2.分段上传的概念及其优势 分段上传允许将一个文件分割成多个分段 ,您可以按任意顺序上传这些文件分段。如果任意分段传输失败,可以重新传输该分段且不会影响其他分段。当对象的所有段都上传后,S3 可以使用这些分段创建对象。一般而言,如果您的文件大小达到了 100 MB,您应该考虑使用分段上传,而不是在单个操作中上传文件。 分段上传的优势主要有以下几点: 提高吞吐量 如果需要上传的文件比较大,使用直接上传方式,效率很低。而使用亚马逊S3分段上传功能,通过并行上传分段以提高吞吐量,能充分利用当前的带宽,提高了上传效率。 从网络问题中快速恢复 如果使用分段上传,某个分段失败了,你只需要重新上传这个分段,将上传文件时由于网络错误所产生的影响降至最低。  突破S3单文件上传限制 当文件大于5GB,你只能将文件分片,然后分段上传。 3.S3分段上传的核心规范 S3分段上传的部分指标如下表所示: 4. S3分段上传的权限配置 使用S3分段上传需要适当的权限配置,相比于S3的单文件上传,S3在分段上传时需要部分额外的权限,最低的S3分段上传权限配置如下所示: {     “Version”: “2012-10-17”,     “Statement”: [         {             “Effect”: “Allow”,             “Action”: [                 “s3:AbortMultipartUpload”,                 “s3:GetObject”,                 “s3:ListBucketMultipartUploads”,                 “s3:ListMultipartUploadParts”,                 “s3:PutObject”             ],             “Resource”: [                 “*”             ] […]

Read More

为员工进行云培训时的11条箴言

Tell me and I forget. Teach me and I remember. Involve me and I learn.      – Benjamin Franklin (告诉我,我会忘记;演示给我,我会记住;但让我参与其中,我才能真正学会。      – 本杰明﹒富兰克林) 作为一个CCMO,培训你的员工就能使他们加快你的上云历程吗?每个组织的培训历程都是独一无二的,但我发现在这方面做得很好的一些组织中,它们是有一些共性的。从这些共性中我们可总结出11条箴言: 1.从基础的但有意义的事情开始。当你的团队完成一些业务相关的重要事情时,他们将很快意识到云技术的实际好处。我见过很多公司的项目进展慢于预期,因为他们过于注重细枝末节。你肯定不想把全部身家赌在前几个项目上,你将会想从几个能很好阐明业务好处的项目开始做起。其实有很多适合刚开始着手进行的项目,例如一个简单的网站、一个移动应用、一个可以便捷访问数据的API或者一个文件备份及灾难恢复的改进。如果你的员工培训基于实际的应用,那你的团队将能够更快地把他们所学的东西应用于更多项目。 2.利用Amazon Web Services Training(AWS Training)。AWS可提供良好的培训计划。这些计划已经帮助了上千家公司增强它们的云技能。AWS将每一个培训视为一次提升的机会,并且开发了不同的课程和一系列交付机制以便客户能定制培训计划来满足他们的具体需求。当我在Dow Jones时,我们使用现在称为AWS Technical Fundamentals的课程来培训我们团队的几乎每一个技术人员。除了让我们的员工具备新的能力之外,这个培训也消除了员工对一些项目开始时的未知的恐惧。 3.给团队时间去尝试。构建一种探索文化是这段旅途中的下一个最佳实践,这在激励你的员工去学习时尤其重要。创新来源于尝试,因为云消除了尝试新事物时的前期投入,所以没有什么能够阻止你的团队创造你行业中的新产品。给你的团队足够的自由空间来以全新的方式实现已有的项目。 4.设置目标来鼓励学习和实践。大部分公司为员工设定目标或KPI并将此与员工绩效挂钩。使用这些现有机制来巩固你的策略,并形成以后的行为。你可以设定相关培训课程的完成目标,多少预算被释放,或者通过利用适当的云架构如何改善你的卓越运营。这样做表明,领导很注重让每个人都有机会尝试和学习。 5.设置时间限制,跟上步伐。当你向实验文化转变时这一点尤其重要。每天结束时,以结果为导向。你可以通过为每个项目设定最后期限帮助你的团队成员平衡试验和他们的现有知识。有时候你的团队会因为这些约束而做出一些折衷,随着项目的进行,你需要制定一个如何应对这些折衷的机制。但是你的团队会在将来的项目中不断学习并提高能力。 6.定位并处理变革阻力。所有这些因素都旨在通过给予你的员工成功所需的工具来抑制他们对变革的抵触。但是即使有这些机会,你的组织中也可能会有对此持续抵触的人。观察并理解来自你的团队的担忧,以开放的心态对待有效的和无效的,迅速处理不必要的摩擦。这也是我下一个要谈的。 7.别害怕给人新的角色。以有意义的方式迁移到云不仅是技术变革更是文化变革。我发现给人一个担当新角色的机会将帮助他们克服对变革的抵抗。我倾向于首先观察公司的内部,因为习以为常的知识是一种昂贵的且不必要的损失。在我在Bloomberg任职的11年间,我担任了6个不同且差异很大的角色。有数不清的机会是我在那里呆了那么久的原因之一。想方设法给员工新的机会将让他们保持参与并帮助留住员工。 8.向你的员工展示他们应该如何融入伟大的构想。当你知道你的工作是如何融入组织的大局时,会很容易激发你对工作的热情。确保你考虑到了每个角色并且沟通过他对你的团队有多大意义。再次强调,我期待看到你的组织如何权衡部门和/或个人目标与大局的关系,并设法为每个人量身定做。 9.深入行业活动,看看别人在做什么。大多数人从别人的成功和失败中学到很多。至今我已经为大公司开发基于云的策略有五年时间了,现在我也惊异于我参加AWS re:Invent、 AWS Summits或其他技术竞赛所学到的知识。给你员工时间来让他们组织并带着新的想法回去。设想许多的、甚至有一些你根本不会去实施的想法,这是创造有教育意义的时刻并强化你策略的好方法。 10.向你的搭档学习。在AWS Partner Network中有数以万计的不同组织。他们中许多可能已经和你们是稳定的合作伙伴关系,但那可能也有值得你们学习的新的合作伙伴。我很惊异于看到很多大公司正转变成小的、年轻的、诞生于云的,像系统集成商Cloudreach、2nd Watch、Minjar,加速推进云策略并改变它们的IT文化。 11.在你的组织中制度化具有你特色的培训。当你推进云进程时,你会希望看到你的组织中的一些团队或个人想与他人分享他们所学到的。这将来自你卓越的云中心。我在Dow Jones时我们的DevOps团队定期举行DevOps日,在那里他们相互分享他们开发的云的实践、架构、管理模型等。跟我谈过的其他几家世界500强企业也已经建立了专门针对他们组织的类似的计划。   作者介绍 史蒂芬﹒奥本 史蒂芬·奥本 (Stephen Orban) 于 […]

Read More

协同合作伙伴 合力加速上云战略

“You can do what I cannot do. I can do what you cannot do. Together we can do great things.” -Mother Teresa (你能做我所不及的,我能做你所不及的。双方合力,我们可以做些伟大的事情。– 修女特蕾莎) 不同的组织采取不同的方法与第三方进行专业技术合作。有些组织偏向于构建自己的技术;而另一些则将部分或全部研发工作外包,并将他们的技术运营交给第三方。不论你的组织处于什么位置,几乎可以肯定的是你与少数硬件、工具及云服务提供商合作开发针对内部和外部客户的产品和服务。 我已经与数百名在过去几年中不断发展其组织技术战略的高管交谈过,许多人开始重新审视自己的合作方式,因为他们开始了解云计算如何能够帮助他们改变自己的业务。这篇文章探讨了一些我观察到的云技术是如何改变整个技术圈的以及关于吸引合作伙伴的话题。 关注快速增长的生态系统 云生态系统的快速增长不断的令我感到惊讶。最近四年我参加了AWS re:Invent,每次我都对比前一年更大的合作伙伴规模感到惊讶。从全局来看,从2012年到2015年,合作伙伴的展位数量增长了一倍多,全部走完去了解最新的工具和技术从原来需要一个小时增长到了一天时间。没有更好的领域更适合风投来投资这一市场了。 貌似在这种快速增长的生态系统中寻找适合你的合作伙伴很难,但有多个供应商争夺你的业务对你也会是有利的。你的AWS客户经理和我们的AWS合作伙伴目录可以帮助你缩小选择范围,AWS Marketplace能够帮助你在几秒内从广泛的供应商和类别中发现并部署解决方案。 改变你的文化 现如今看到大型组织变得乐意与资金缺乏的、 “不可靠”的小型组织合作,来创建面向企业的工具、专业服务和管理服务等,这种现象是令人鼓舞的。当我在十五年前开始代表我的组织购买技术时,我被告知只能与规模大的公司长期合作。现在我看到很多财富500强公司与那些比我四岁女儿还年轻的公司合作,帮助他们处理最繁杂的问题。在一些情况下,这样做会帮助企业改变它们的整个业务。 当许多技术主管带领它们的组织走向数字化和客户至上的方向时,他们意识到如果可以接受年轻的基于云的供应商的一些文化,他们将可以实现更加迅速地反应。当我在Dow Jones担任CIO时,我和AWS合作的主要动机是吸收一些亚马逊的文化。我想要的是使亚马逊具备能够快速定位顾客、迅速反应的工具。我也迫切想构建一个DevOps文化来鼓励尝试。许多年轻的供应商—2nd Watch, Cloudreach, Cloud Technology Partners, Minjar, New Relic, App Dynamics, Chef, Puppet, CloudEndure,也出于同样的原因在发掘新的业务。 这并不是说现存的大型工具和服务提供商不能快速利用这种转变的优势。在许多情况下,它更适合利用现有的关系来改造业务或文化。 在你关注的领域寻找可靠的合作伙伴 你应该始终致力于与你业务目标相一致的组织合作。如果你正想具有DevOps能力,并且希望你的团队学会怎样“运行他们所构建的”,例如,确保你的合作伙伴能够帮助你具有像他们所展示的那样的能力。这也是AWS开发了AWS认证计划的原因之一。我们希望确保你在我们的平台上能成功,这个计划会协助你找到能帮你在这些领域取得成功的合作伙伴,这些领域也是你的组织特别关注的。我们现在正在这个生态系统中的一些领域开发认证系统,如DevOps、移动、安全、数字媒体、市场和商务、大数据、存储、健康管理、生命科学、微软工作负载、SAP、Oracle等。 不论你的组织处于什么合作状态,我们都乐于帮助你找到合适的合作伙伴来实现你的目标。 作者介绍 史蒂芬·奥本 […]

Read More

畅谈CIO该如何合并业务和技术

“以始为终。” — 史蒂芬·柯维(Stephen R. Covey) 与以往相比,现在成功的技术管理人员必须帮助其负责执行的同事了解技术如何融入——或者,更好地促进——他们的业务。向组织阐明这样的思考,其实就是向你的执行同事阐明你有关于组织的业务目标的指令,以及你是这个执行团队的关键成员。 目前的商业格局正在被一些公司打破。因为创建和运营这些公司的管理人员不仅懂得如何让技术融入业务,而且定义了技术在他们整个行业中扮演的角色:酒店行业的AirBnb,叫车服务行业的Uber,智能家居行业的Nest Labs,存储领域的Dropbox就是几个相关的例子。这对传统行业跟上步伐造成了压力,同时也给IT管理人员提供了无处不在的机会。没有人能比那些整个职业生涯都在从事技术工作的人更适合来阐述如何使用技术来满足日益增长的市场需求。这对我们这些已经在大公司度过了大部分职业生涯的人尤其如此。我们讲企业术语,了解哪些约束是硬性的,哪些是弹性的,以及对于每个C级同行你必须做什么。让它们的技术主管在幕后工作的企业已经不可能成功了。 而且,因为云带走了很多传统上与企业IT相关联的未分化繁重负担,所以现在的IT管理人员可以投入更多的时间和资源来从事那些驱动业务和保持组织竞争力的活动。云正是这些颠覆性力量的关键因素。使用相同的要素不一定会带给你拓展业务的想法,但它会为开放竞争环境提供了更多的可能性。 对于那些希望带领自己的组织使用云的人们,我提供以下一些观点: 与你的同事换位思考(Empathize with your peers) 云不仅仅是一个技术转变。它更是每一个管理层人员应该关注的业务转变。你的职责是来考虑云会如何影响你的执行团队的职责或者考虑它可能会带来什么影响。 我不可能在一篇文章里覆盖所有类型的管理者,但是: 首席财务官(CFO)通常被较低的前期成本以及只支付你所使用的东西所吸引。我见过很多因为逐月变化的成本导致的不和谐,但我总是发现特别是当你从容量规划和维护活动的负担中解脱出来时,总的成本会是很低的。随着时间的增长,在产品研发(资产创造)过程中,能够每个月与管理者紧密合作、了解更多成本预期的环境、管理资源的使用、交错购买RI、考虑如何核算劳动力成本等,正在成为关注的焦点。 首席营销官(CMO)通常希望保持公司的品牌新颖,并对不断变化的市场情况做出反应。把品牌网站从每月更新一次变成一天更新几次会带来什么影响?一个可无限扩展的数据仓库将如何帮助CMO更好地了解他们的客户?如果几乎没有什么代价,他们会在一小部分用户身上做什么尝试? 人力资源副总裁(VPs of HR)想看到的是你能照顾好你的员工以及你如何招聘新的人才。充分利用AWS培训与认证(AWS Training and Certification),并随时让我们的专业知识培训成为你的培训课程的一部分。我将在后续有关这个话题的文章中探讨如何教育你的员工。而且只要愿意去学习,你的团队的任何人都可以帮助你去完成这种培训。此外,还能了解参与此培训的其他公司是如何招聘新员工及如何管理老员工的过渡。比如,如何让DevOps融入你的组织,以及“运行你所构建的(run-what-you-build)”意味着什么? CEO关注所有这些事情,以及如何让公司保持竞争力。用你从其他高管所学的东西来帮助塑造一个完整的视界,并用现代科技展示如何实现。如此一来,你将可以在同样的限制下做一些不可能完成的事情。 在Dow Jones,我设立了一个目标,每个月与几个管理者共餐。在这段时间里,我只听取他们的受挫经历。我用我所学的来调整我们的策略,并且确保我向他们反馈了他们的影响力是如何改变了我们的方向。这是一个简单的关于如何迎合他们需求、构建信任并获取支持的例子。这里的关键是不仅要聆听,还要根据你所学的来采取行动。 谋求帮助(Enlist help)           你不必单独做这件事。你可以考虑在培训中把你的客户经理当成你的导师。他们乐意与你以及你的管理团队一起工作,帮助塑造周围的信息及迁移到云的好处,使之与你的业务接轨。如果影响已经超出了客户经理的专业知识范围,他们将寻找到合适的人选,不管是AWS的内部或外部人员。我们乐意为你创造与有同样想法的人沟通的机会。而且这不只是在我们的活动中,而是在培训的任何时刻。在最近一次活动中我和其他公司有过几个参考电话,从其他管理者学习既是一种教育也是一种验证。 AWS合作伙伴网络(AWS Partner Network)以及AWS培训和认证(AWS Training and Certification)也是重要的资源,它们能帮助你加快你的培训进程。我多次强调它们是最佳实践,但我发现很多企业与他们的HR部门合作把AWS培训作为我们整个培训的首要部分。在Dow Jones,DevOps团队与HR合作并定期举行DevOps日,来交付优化的工具和最佳实践。这是在分布全球的团队中分享技能的好方法。再次强调,你的客户经理可以帮助你很好地连接这些领域。 发展IT品牌(Evolve the IT brand) 我跟很多渴望提高自己部门品牌的IT主管交谈过。我在Bloomberg花了超过十年的职业生涯来开发促进业务的软件。我去Dow Jones的原因之一是帮助他们转变一种观念 – IT部门是一个成本中心。其实,IT部门也是驱动和赋能业务的部门。我觉得我对我的部门中辛勤工作和奉献的每个人有所亏欠,他们对我们正在推动的改变是很有帮助的。 AWS是作出这些转变的基础的一部分,但大部分在执行层面的工作在于了解每一个管理者的痛点,了解他们在IT中不想要什么,以便调整技术帮助他们实现自己的目标。在使用云提供的更好和更快的结果的几个月后,我们花了几个月再培训管理者团队和他们的部门来使用我们的技术而不是IT。这看似微妙,但它为我们之间的沟通带来有了有意义的变化,并且对由部门到公司整体的变化做出了贡献。 作者介绍 史蒂芬﹒奥本 史蒂芬·奥本 (Stephen Orban) 于 2014 年9月加入亚马逊AWS 担任企业战略总经理。奥本与多名企业技术高管合作,在云如何实现业务成果、加快创新和简化流程方面进行经验和战略分享。在加入亚马逊AWS 之前,奥本曾在道琼斯担任首席信息官 (CIO)一职,他通过借力 […]

Read More

在云端试验时的“有所为和有所不为”

“The best way to show that a stick is crooked is not to argue about it or to spend time denouncing it, but to lay a straight stick alongside it” ― D.L. Moody (“验证一根木棒是弯曲的最好的方法不是争论或花时间去抨击,而是放一根笔直的木棒在它旁边” – 慕迪) 现在越来越多的公司意识到,正确的、科学的使用云可以让入云试验更简单、经济和低风险。而且有这种试验文化的公司会在今天的市场有更多的竞争筹码。试验带来创新,这是实现新想法的史无前例的好时机。那么应该从哪里着手呢?当你在你的组织中创建试验文化时,四类“有所为和有所不为”是值得你去考量的。 1.管理预期 不是每次尝试的结果都符合你的预期,但是每次尝试都是学习和提高你运营能力的机会。如果你的组织未形成一个“从失败中学习”的习惯,那就从小事做起,确保让每个人知道你把哪些项目当作试验项目。你可以通过以下方式来管理你的项目利益相关方的预期 – 清楚地了解试验的意图、你期望什么样的产出、你怎样测试和衡量结果、你想从中学习到什么。据我所知,如果管理者知道他的组织会从试验中学到什么或使它变得更好的话,即使这个试验没有什么确定地产出,他们也会对这个试验心存感激。 不要从每个人都要求有产出的项目着手 如果你是一个试图创建实验文化的变革推动者,在你的变革旅程中不要从每个人都要求有产出的项目着手。例如我不会建议你在年终预算上做试验。我曾经合作的一个CEO告诉过我失败是可以有的,除非当它不可以失败的时候。接受一个增长的过程,慢慢增加你进行的试验,不要超出你的组织的可接受范围。 2.鼓励你的团队计划试验 每个组织都有自己的方式来决定哪些项目获得技术资源。不幸的是,一些组织现在把技术或IT部门当成成本中心并且想象与实际相去甚远。好的想法可以来自任何地方,当然当它来自于项目之外的时候,大部分的技术专家都有其独特的观点。对于那些刚开始使用云的组织来说情况尤其如此——把云应用于项目上的人处于实施试验的最佳位置,这些试验利用了使业务从云中受益的独一无二的能力。协助维护你的团队的提议,将你的员工置于可以影响执行团队投资的项目上。 在你知道怎样评价这个试验时再开始它 你期望把时间花在正确的试验上,确保从中学到的内容可以提高你的运营能力和产品。在让你的团队进行一个试验之前,你应该知道他们会评测什么以及怎样去评测。如果你在测试你的网站新功能,什么样的指标意味着成功?页面浏览量?点击量?放弃量?这种小但重要的尽职的调查行为将迫使你的团队首先去思考为什么他们要进行这个试验。这也将迫使你的团队优先进行正确的试验。 3.考虑DevOps的制度化试验 一个DevOps的文化也许是把试验制度化带到您组织的有力途径。将运行所构建的与自动化结合起来可以大大减少发布改变的时间,允许你更频繁地发布并在失效时更快回滚。成熟的DevOps组织也制定A / B测试框架,让他们同时尝试不同的用户体验和不同的用户群,看看哪一个效果最好。 不要怀疑你的团队 怀疑是阻碍你团队的“最有力”的方法,并且打开了失败之门。当你学会适当地预期试验、评测它们,并对它们进行快速迭代,你会发现在你开始怀疑之前你会接受你的方法。确保你的团队在思考正确的评测试验方式,并且提出尖锐的问题是十分必要的。但是与其质疑他们交付的能力不如帮助团队解决问题。人们倾向于跟随相信他们能成功的领导者。 4.鼓励整个组织参与 当你通过试验开始快速交付的时候,组织的其它成员将会被你的方式所吸引。那就拉他们进来。尝试进行覆盖不同业务领域的编程马拉松,让你的股东帮助确定怎样测评试验,向你的组织询问他们想进行哪个领域的试验。但并不是每个公司选择给他们员工时间来试验,他们通常吹捧这个为竞争优势。至少这种活动能提高员工们的士气和黏性。在我在亚马逊任职期间里,我发现任何人只要能够通过思考和书面形式表达试验,通常能得到机会尝试一下。这是我们特殊的文化的一部分,也是一个用来吸引和留住创新者和创造者的重要手段。 […]

Read More

专线直连AWS建立混合IT环境实务指南

AWS Direct Connect简介 云计算已经走入到每个企业中。然而,一些大型企业过去都是自建数据中心,购买了大量的基础设施,在使用公有云服务时又不能抛弃原有的设备,因此采用混合云的方式,既可以保护原有的投资,又可以通过公有云的方式来随时按需使用。很多企业都正在通过混合云的方式来逐步走上全方位采用云的道路。 过去,用户需要通过在传统的公网架设VPN(Virtual Private Network,虚拟专用网络),来保障数据传输的安全性,但是,这种方式无法完全保证带宽、低延迟、时效性。而AWS Direct Connect可以实现低带宽的成本,更稳定的网络性能,更可靠的网络效果,并且可以兼容AWS其他的云计算服务帮助用户实现混合云的架构。 AWS Direct Connect服务使用标准的802.1q VLAN标准,可将连接客户数据中心和AWS的单个专线连接逻辑分割成多个虚接口(Virtual Interface)。这样客户可以通过同一个连接访问共享资源(如通过公有IP 地址空间提供服务的Amazon S3中的对象)和专有资源(如使用私有IP空间在VPC中运行的Amazon EC2实例),同时又能在公有和专用环境之间保持网络隔离。 如下图所示,从客户路由器到AWS Direct Connect路由器的以太网连接上的不同VLAN与不同的虚接口相关联,客户可以通过Public VIF访问诸如S3,DynamoDB、AWS API端点等在公共地址空间中的服务,也可以通过Private VIF与绑定到VPC的VGW相连接,实现对多个VPC的访问。 AWS Direct Connect有 1Gbps 和 10Gbps 两种端口可用。客户可以通过建立多个连接来实现更大的带宽和更高的冗余。而对于带宽要求不高的客户也可向支持 AWS Direct Connect 的 APN 合作伙伴预定带宽粒度更细的托管连接。需要注意的是每个托管连接仅能支持访问单个VPC,或者只能访问公有地址空间的AWS服务端点。当然客户可以通过多个托管连接用于访问多个VPC。 常见的接入场景及分工界面 场景一: 客户网络边界已经到达特定Direct Connect 节点 如图所示,客户在特定的Direct Connect 节点(图中虚框所示位置)所在的机房已经部署了网络边界设备,那么可以向运营该节点的运营商订购 到AWS Direct Connect路由器的楼内跳线即可完成连接。 此场景下,分工界面较为简单: 各部分的技术要求分解如下: 场景二: 客户通过以太网专线 与AWS Direct Connect互联 如图所示,客户数据中心的网络边界通过AWS合作伙伴或者独立第三方提供的以太网专线相互连接。 […]

Read More

手把手教你调校AWS PB级数据仓库

什么是一个好的数据仓库? Redshift是AWS云计算中的一个完全托管的,PB级别规模的数据仓库服务。即使在数据量非常小的时候(比如几百个GB的数据)你就可以开始使用Redshift,Redshift集群可以随着你数据的增加而不断扩容,甚至达到PB级。云计算中数据仓库的优势非常明显,不需要license,不需要预先配置非常大的数据仓库集群,扩容简单,仅仅需要为你实际所使用的数据仓库付费。 Redshift作为一个企业级数据仓库完全支持SQL语法,无学习成本,支持很多种客户端连接,包括各种市场上的BI工具,报表以及数据分析工具。 Redshift的概览 Redshift通过支持大规模并行处理(MPP),列式存储,对不同列数据使用不同数据压缩算法,关系型数据仓库(SQL),灵活的扩容管理等众多优点,兼顾了数仓性能,同时也考虑学习成本及使用成本。 Redshift系统架构及要点 图1,Redshift系统架构图 主节点负责客户端与计算节点之间的所有通讯,编译代码并负责将编译好的代码分发给各个计算节点处理,负责分配数据到不同的计算节点,主节点对客户不可见的,无需客户管理主节点的压力,更重要的是主节点免费。 计算节点是具体的干活的,并处理好的任务送给主节点进行合并后返回给客户端应用程序。每个计算节点都有自己独立的CPU,内存以及直连存储。Redshift集群规模大小通常就是指计算节点的个数以及计算节点机器类型。 节点分片是指将计算节点被分成若干的分片,根据计算节点类型不同,每个节点包含的分片数量不同,通常1个vCPU对应一个分片,ds2的机型除外。每个分片都会分配独立的内存及存储资源,接受来自主节点分配的任务。分片跟另外一个重要概念Dist Key紧密相关, 这里先提一下,接下来会具体介绍Dist Key。 排序键(Sort Key)是一个顺序键,即Redshift会根据这个键来将数据按顺序存储在硬盘上。Redshift的查询优化程序(只要理解有这么个东西存在就好,客户不需要任何维护,对客户也是透明的)也会根据这个排序来进行执行查询优化计划。这是Redshift性能调优的一个非常重要的参数。 分配键(Distribution Key)是控制加载到表的数据如何分布在各个计算节点的一个键,有好几种分布的风格,接下来会重点讲到,这是Redshift调优的非常重要的另外一个参数。 Redshift的几个常用最佳实践 选择最佳排序键 如果最近使用的数据查询频率最高,则指定时间戳列作为排序键的第一列; 如果您经常对某列进行范围筛选或相等性筛选,则指定该列作为排序键; 如果您频繁联接表,则指定联接列作为排序键和分配键; 熟悉Redshift的朋友可能知道可以指定多列作为排序键,而且排序键还有两种方式,组合式和交叉式。限于篇幅的原因,在接下来的调优测试中我们采用的是某一列作为排序键,如果有对其他排序键风格感兴趣的朋友,可以单独联系我们进行讨论。 选择最佳分配键 选择表分配方式的目的是通过在执行查询前将数据放在需要的位置来最大程度地减小重新分配步骤的影响,最好这个查询不需要二次移动数据。 分配键有三种风格,均匀分布(Even),键分布(Key),全分布(All),默认是均匀分布。 根据共同列分配事实数据表和一个维度表; 事实数据表只能有一个分配键。任何通过其他键联接的表都不能与事实数据表并置。根据联接频率和联接行的大小选择一个要并置的维度。将维度表的主键和事实数据表对应的外键指定为 DISTKEY。 根据筛选的数据集的大小选择最大的维度; 只有用于联接的行需要分配,因此需要考虑筛选后的数据集的大小,而不是表的大小。 在筛选结果集中选择基数高的列; 例如,如果您在日期列上分配了一个销售表,您可能获得非常均匀的数据分配,除非您的大多数销售都是季节性的。但是,如果您通常使用范围受限谓词进行筛选以缩小日期期间的范围,则大多数筛选行将位于有限的一组切片上并且查询工作负载将偏斜。 将一些维度表改为使用 ALL 分配; 如果一个维度表不能与事实数据表或其他重要的联接表并置,您可以通过将整个表分配到所有节点来大大提高查询性能。使用 ALL 分配会使存储空间需求成倍增长,并且会增加加载时间和维护操作,所以在选择 ALL 分配前应权衡所有因素。 优化COPY,提高数据加载速度 当你将要数据加载到Redshift的某个表时,不要让单个输入文件过大,最好是将这些输入文件切成多份,具体数量最好是跟分片数量匹配,这样可以充分利用所有分片,配合分配键能达到最佳效果。 图2,COPY输入的最优方式 让COPY选择自动压缩 作为数据仓库,Redshift通常会需要大量导入数据,这时使用做多的,效率最好的是COPY命令。在使用COPY时建议将COMPUPDATE参数设置为ON,这样数据在加载进库时是自动压缩的,好处是可以节省存储空间,提高查询的速度,不过这会增加数据加载进表的时间,这个可以根据你的业务需求,再具体衡量。 Redshift调优实战 测试结论 选择合适的排序键,分配键,及自动压缩对表的查询速度,存储效率很大提升。本次测试中,优化后查询速度有高达75%的提升,存储空间节省50%。 相同节点类型情况下,多节点性能比单节点性能提升明显。本次测试中,采用了4节点与单节点对比,4节点查询速度比单节点提升75%。 节点数量相同的情况下,dc系列节点的查询速度比ds系列节点的查询速度要快。本次测试中,采用了dc1.large和ds1.xlarge两种节点类型进行对比,dc系列节点的查询速度比ds系列快20% 。 使用JOIN与不使用JOIN查询速度无明显差别。本次测试中,三个不同的查询及对应的JOIN查询,在查询速度上的差别非常小。这部分的详细测试结果,请参见附录一。 查询速度达到一定值时,再增加节点对查询优化的效果有限。本次测试中,在相同环境中,将节点数量从8个dc1.large节点增加到12个dc1.large节点,三个查询只有一个查询的速度有一定提升,其他2个查询速度基本没有太大变化。这部分的详细测试结果,请参见附录二。 图3,调优前后性能对比图 […]

Read More