Author: AWS Team


向员工传授云知识时需要考虑的 11 个注意事项

告诉我,我会忘掉。教导我,我会记住。让我参与,我能掌握。- Benjamin Franklin

我在上一篇文章中提到,只要让员工接受适当的教育,您就拥有了充分发挥云技术优势所需的资源。

那么,您 (首席变更管理官) 该如何教育员工,以便他们能够加快您的云之旅?每个组织的云之旅都将是独一无二的,但根据我的观察,取得成功的组织还是有一些共通之处的。以下是有关这些共通之处的 11 个注意事项:

1. 从有意义但很基本的事情做起。

当您的团队完成对业务至关重要的事情后,他们会即刻明白云技术的实际优势。我见过有些公司将工作重点放在了无足轻重的小事上面,结果,他们取得的进展比预想的要慢。当然,您肯定不希望在头几个项目上冒太大的风险,但您需要从足够重要、能够展示业务收益的项目开始。这样的项目有很多 — 简单的网站、移动应用程序、简化数据访问的 API 或文件备份/灾难恢复改进项目。如果将团队教育扎根于实际应用之中,他们就能更快地将学到的知识应用于更多的项目。

2. 利用 AWS 培训

我在以前的文章中提到过 AWS 提供的几个很好的培训项目。这些项目帮助了成百上千家公司掌握了云技能。AWS 将每次培训合作都当成是改进的机会,开发了多样化的课程和各种授课机制,允许组织定制满足其特定需求的培训。我在道琼斯工作时,我们团队里的几乎每一位技术人员都接受过培训,这些培训内容后来汇总成了 AWS 技术基础知识课程。除了帮助我们的员工获得新技能以外,这些培训还打消了他们刚刚踏上云之旅时出现的莫名恐惧感。

3. 给团队一些时间进行试验。

营造试验文化是云之旅的下一条最佳实践,在激励员工学习时,这一点非常有用。创新来自于试验。借助云技术,您不必进行大量前期投资就能尝试各种新想法,这可帮助您的团队创造出颠覆性的行业产品。给您的团队一些自由度,让他们以新的方式实现现有项目。

4. 设定鼓励学习和试验的目标。

大多数公司会为员工设定目标和/或关键绩效指标,并将这些目标与绩效挂钩。这些现有机制是强化您的策略并产生您所期望的行为的良好途径。您可以围绕各种主题设置目标,例如:相关培训课程的完成度、释放了多少预算、采用适当的云架构后运营卓越性有多大改善等。这样做可以传递“领导层真心希望为每个人创造试验和学习机会”的信号。

5. 设定时间限制和前进步伐。

当您转向试验文化时,这一点尤为重要。毕竟,结果才是最重要的。您可以通过设定每个项目的截止日期来帮助团队成员在试验和运用其已学到的知识之间取得平衡。有时,您的团队可能会因为这些约束而作出妥协。随着云之旅进程的深入,您需要制定一个应对此类妥协的机制。但是,您的团队将一刻不停地学习和提高技能,以便为下一个项目做好准备。

6. 发现并消除变革阻力。

所有这些注意事项都旨在为员工提供帮助他们获得成功所需的工具,以减少员工对变革的抵制。但即使做好所有这一切,您的组织中还是会有人继续抵制变革。在阐明目的一文中,我对这一挑战作了说明。您需要理解团队的忧虑,心平气和地看待做得好和做得不好的地方,并迅速消除不必要的摩擦。这引出了我要讲述的下一个要点。

7. 不要害怕赋予员工新的角色。

以有意义的方式迁移到云不仅仅是技术转型,同样也是一场文化变革。我发现,给予员工担任新角色的机会可以帮助他们克服对变革的抵制。我一直偏向于首先检视公司内部,因为系统知识非常宝贵,通常是不必要的损失。在 Bloomberg 的 11 年任期里,我担任过六种差异极大的角色。拥有如此多的机会是我一直呆在 Bloomberg 的主要原因之一。寻找为员工提供新机会的方法可加强他们的参与感,有助于留住员工。

8. 向员工指明其在组织整体蓝图中的作用。

当您知道自己在组织大局中的作用时,很容易对自己的工作感到兴奋。请务必考虑到每一个角色,并传达其在团队中的重要作用。我再强调一下,了解组织如何将其目标与部门和/或个人目标协调一致,并找到一种方法来针对每个角色进行调整。

9. 参加行业活动,了解他人在做些什么。

大多数人可从他人的成功和失败经历中学到很多东西。到目前为止,我从事为大型公司制定云支持技术战略的工作已经五年多了。但令我惊讶的是,每次出席 AWS re:Invent、AWS 峰会及其他技术活动,我还是能学到不少的知识。请给您的员工一些时间,让他们梳理知识、了解新思想。了解各种各样的想法 (即使是您确定不会赞同的想法) 是创造教育机会和加强您的策略的良好途径。

10. 向您的合作伙伴学习。

AWS 合作伙伴网络中有成千上万家组织。您可能已经与其中的许多组织建立了稳定的合作伙伴关系,但总会有一些新的合作伙伴值得您学习。据我观察,有非常多的大型企业越来越倾向于与“在云中诞生”的小型、新创办的系统集成商 (如 Cloudreach2nd Watch  Minjar) 合作,以加快自身的云战略进程并革新其 IT 文化。

接下来是最后一个要点。

11. 在组织中建立适合自身的培训制度。

随着云迁移进程的逐步深入,您会发现组织中的一些团队或个人希望与他人分享自己学到的知识。理想情况下,这个组织会是您的云卓越中心 (这是云之旅的另一条最佳实践,稍后我会详细解释这一点)。我在道琼斯工作时,我们的 DevOps 团队会定期举办“DevOps Days”交流会,以便该团队与组织中的其他人分享其开发的云最佳实践、框架和管理模式。我曾与其他几家“财富 500 强”企业交流过,他们也都制定了适合自己组织的类似计划。

您认为还有什么需要补充的吗?请一定告诉我!

不断前进
-Stephen
orbans@amazon.com
@stephenorban
http://aws.amazon.com/enterprise/

 

产品更新 – Amazon EC2 P3 实例多达 8 个 NVIDIA Tesla V100 GPUs 提供支持

自从我们于 2006 年发布最初的 m1.small 实例以来,在客户需求的推动以及不断发展的先进技术的支持下,我们后续推出了各种强调计算能力、超频性能、内存大小、本地存储和加速计算的实例。

新的 P3
现在,我们正在打造下一代 GPU 加速的 EC2 实例,这些实例将会在 4 个 AWS 区域提供。P3 实例由多达 8 个 NVIDIA Tesla V100 GPU 提供支持,可用于处理计算密集型的机器学习、深度学习、计算流体动力学、计算金融学、地震分析、分子模拟和基因组学工作负载。

P3 实例使用运行速度可高达 2.7 GHz 的 Intel Xeon E5-2686v4 定制处理器。有三种大小的实例可供选择 (所有均仅限 VPC 和 EBS):

模型 NVIDIA Tesla V100 GPU GPU 内存 NVIDIA NVLink vCPU 主内存 网络带宽 EBS 带宽
p3.2xlarge 1 16 GiB 不适用 8 61 GiB 最高 10 Gbps 1.5 Gbps
p3.8xlarge 4 64 GiB 200 GBps 32 244 GiB 10 Gbps 7 Gbps
p3.16xlarge 8 128 GiB 300 GBps 64 488 GiB 25 Gbps 14 Gbps

每个 NVIDIA GPU 都封装了 5,120 个 CUDA 核心和另外 640 个 Tensor 核心,最高可以提供 125 TFLOPS 的混合精度浮点、15.7 TFLOPS 的单精度浮点和 7.8 TFLOPS 的双精度浮点。在两种较大的实例上,GPU 通过以高达 300 GBps 的总数据速率运行的 NVIDIA NVLink 2.0 连接在一起。 这使 GPU 可以高速交换中间结果和其他数据,而不必使其通过 CPU 或 PCI-Express 结构进行。

什么是 Tensor 核心?
我在开始写这篇文章之前,从未听说过“Tensor 核心”这个词。根据 NVIDIA 博客上的这篇非常有帮助的文章的介绍,Tensor 核心是专为加快大型、深度神经网络的训练和推理而设计的。每个核心可以快速高效地将两个 4×4 半精度 (也称为 FP16) 矩阵相乘,然后将得到的 4×4 矩阵与另一个半精度或单精度 (FP32) 矩阵相加,最后将得到的 4×4 矩阵以半精度或单精度的形式存储起来。下面是摘自 NVIDIA 博客文章中的示意图:

此运算发生在深度神经网络训练进程的最内层循环中,这个出色的示例展示了如今的 NVIDIA GPU 硬件是如何为应对非常具体的市场需求而专门打造的。顺便提一下,有关 Tensor 核心性能的混合精度这个限定词意味着,它非常灵活,完全可以处理 16 位和 32 位浮点值组合使用的情况。

性能视角
我总是喜欢将原始的性能数字放入到实际生活视角中,这样,这些数字与生活的关系就会更加密切,并且更有意义 (希望如此)。考虑到单个 p3.16xlarge 上的 8 个 NVIDIA Tesla V100 GPU 可以每秒执行 125 万亿次单精度浮点乘法,要将它与现实相联系就变得异乎寻常地困难。

让我们回到微处理器时代之初,想想我在 1977 年夏天购买的 MITS Altair 中的 Intel 8080A 芯片。该芯片使用 2 MHz 时钟频率,每秒可以执行大约 832 次乘法 (我使用了此处的数据并更正为更快的时钟速度)。p3.16xlarge 比该芯片快了大约 1500 亿倍。然而,从那年夏天到现在才过去了 12 亿秒。换言之,我现在一秒钟所做的计算,比我的 Altair 在过去 40 年里可以完成的计算的 100 倍还要多!

1981 年夏季发布的 IBM PC 有一种可选配件,那就是创新型 8087 算术协同处理器,它的情况又如何呢?该处理器使用 5 MHz 时钟频率和专门打造的硬件,每秒可以执行大约 52,632 次乘法。从那时到现在已经过去了 11.4 亿秒,而 p3.16xlarge 要比它快 23.7 亿倍,因此,这台可怜的小 PC 在过去 36 年里完成的计算量勉强才达到现在 1 秒钟可完成的计算量的一半。

好了,Cray-1 又如何呢? 这台超级计算机最早出现在 1976 年,执行矢量运算的速度为 160 MFLOPS,p3.x16xlarge 比它快了 781,000 倍。在推出以后的这些年中,这台计算机针对某些有意思的问题迭代改进了 1500 次。

考虑到您可以将 P3 视作一台超级计算机中可以根据需要启动的分步重复组件,因此更难将 P3 与现在的横向扩展型超级计算机进行比较。

立即运行一个实例
要充分利用 NVIDIA Tesla V100 GPU 和 Tensor 核心,您需要使用 CUDA 9cuDNN7。这些驱动程序和库已经添加到最新版本的 Windows AMI 中,并且将会包含在计划于 11 月 7 日发布的更新的 Amazon Linux AMI 中。新的程序包已经在我们的存储库中提供,如果需要,您可以在您现有的 Amazon Linux AMI 上安装它们。

最新的 AWS Deep Learning AMI 将会预装在最新版本的 Apache MxNet、Caffe2 和 Tensorflow 中 (均支持 NVIDIA Tesla V100 GPU),并且在 Microsoft Cognitive Toolkit 和 PyTorch 等其他机器学习框架发布对 NVIDIA Tesla V100 GPU 的支持之后,AWS Deep Learning AMI 将会进行更新,以使用这些框架来支持 P3 实例。您也可以针对 NGC 使用 NVIDIA Volta Deep Learning AMI。

美国东部 (弗吉尼亚北部)美国西部 (俄勒冈)欧洲 (爱尔兰) 亚太地区 (东京) 区域,P3 实例以按需、竞价、预留实例和专用主机的形式提供。

Jeff

现已推出 – 兼容 PostgreSQL 的 Amazon Aurora

去年年底,我提到过我们向 Amazon Aurora 添加 PostgreSQL 兼容性的计划。公告发布后不久,我们推出了封闭测试版,并于今年年初发布了一个公开预览版。在测试版和预览版期间,我们收到了很多极好的反馈,我们将倾尽全力确保产品满足乃至超出大家的期望!

现已正式发布
非常高兴告诉大家:兼容 PostgreSQL 的 Amazon Aurora 现已正式发布,您现在就可以在四个 AWS 区域 (将在更多区域发布) 使用它。它兼容 PostgreSQL 9.6.3,可自动扩展为支持高达 64 TB 的存储 (后台采用 6 路复制技术以提升性能和可用性)。

与兼容 MySQL 的 Amazon Aurora 一样,这是一个完全托管版本,非常容易设置和使用。在性能方面,吞吐量最高可达您自己运行 PostgreSQL 时的 3 倍 (可以参阅 Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases 了解我们如何做到这一点)。

您可以从 RDS 控制台启动兼容 PostgreSQL 的 Amazon Aurora 实例:引擎选择 Amazon Aurora,版本选择 PostgreSQL 兼容版,然后单击 Next

然后选择实例类、单可用区还是多可用区部署 (分别适用于开发/测试环境和生产环境)、设置实例名称和管理员凭证,然后单击 Next

有六个实例类 (2 到 64 个 vCPU/15.25 到 488 GiB 内存) 供您选择:

db.r4 是 Aurora 和 RDS 新增的实例类,在高端类别提供更大的规模。db.r4.16xlarge 具备更高的写入性能,让您能够使用单一 Aurora 数据库代替两个或更多的分片数据库。

在下一页上,还能设置许多高级选项,从网络选项 (如 VPC 和公开可用性) 开始:

可以设置群集名称及其他数据库选项。加密功能很方便使用,默认为启用;您可以使用内置默认主密钥或选择自己的密钥:

还可以设置故障转移行为、快照备份保留周期、启用“增强监控”功能以收集详细的 (操作系统级别) 指标:

根据自己的偏好设置完成后,单击 Launch DB Instance 继续!

新实例 (指定多可用区后的主实例和辅助实例) 将在几分钟内启动和运行:

每个 PostgreSQL 兼容实例都自动向 CloudWatch 发布 44 个指标:

启用增强监控功能后,每个实例都会收集额外的每实例和每进程指标。此功能可在启动实例时启用,也可在启动实例后通过 Modify Instance 启用。下面是启用增强监控功能后收集的部分指标:

单击“Manage Graphs”可以选择要显示的指标:

此外还提供了每进程指标:

通过创建 Aurora 副本 (最多 15 个) 可以扩展读取容量:

群集提供可供您访问的单一读取器终端节点,以便在副本间实现请求的负载平衡:

Performance Insights
我之前提到过,Performance Insights 是自动启用的。此 Amazon Aurora 功能直接连接数据库引擎,让您能够深入了解每个查询、查看查询使用的数据库资源及其在总体响应时间中的占比。初始视图如下:

可以按 SQL 查询分割视图,以便查看每个查询有多少并发副本在运行:

除此以外,Performance Insights 还有很多其他的视图和选项,此处无法全部列出;有关更多信息,请参阅使用 Performance Insights

迁移到兼容 PostgreSQL 的 Amazon Aurora
AWS Database Migration ServiceSchema Conversion Tool 随时可以帮助您将存储在商用和开源数据库中的数据迁移到 Amazon Aurora。Schema Conversion Tool 快速评估您的数据库架构和代码,帮助您在 MySQL 和 PostgreSQL 之间作出选择。我们新推出的限时免费 DMS 计划允许您免费使用 DMS 和 SCT 迁移到 Aurora,并可在 6 个月内访问多种类型的 DMS 实例。

如果您已在使用 PostgreSQL,应该会乐于知道我们支持大量扩展 (包括 PostGISdblink)。

现已推出
兼容 PostgreSQL 的 Amazon Aurora 已在美国东部 (弗吉尼亚北部)欧洲 (爱尔兰)美国东部 (俄勒冈)美国东部 (俄亥俄) 区域正式发布,并将尽快在其他区域发布。

Jeff

研究热点:基于 Apache MXNet 的开源 BNN (二值神经网络) 库 – BMXNet

这是一篇由德国波茨坦 Hasso Plattner 研究所的 Haojin Yang、Martin Fritzsche、Christian Bartz 和 Christoph Meinel 发布的客座文章。我们很高兴看到研究工作促进了深度学习在低功耗设备上的实际实施。这项工作在将强大的智能功能拓展到我们日常生活的过程中发挥着举足轻重的作用。

近年来,深度学习技术在学术界和行业里取得了良好的业绩和众多突破。但是,最先进的深度模型计算成本高昂、占用大量存储空间。移动平台、可穿戴设备、自主机器人、IoT 设备等领域的众多应用也对深度学习有着强烈的需求。如何在这样的低功耗设备上有效实施深度模型成了一大难题。

最近提出的二值神经网络 (BNN) 使用位运算代替标准算术运算,大大降低了存储器大小和访问要求。通过显著提高运行时效率和降低能耗,我们得以在低功耗设备上实施最先进的深度学习模型。这项技术与对开发人员友好 (相比 VHDL/Verilog 而言) 的 OpenCL 相结合,也使 FPGA 成为了深度学习的可行选择。

在这篇文章中,我们将为大家介绍一种基于 Apache MXNet 的开源 BNN (二值神经网络) 库 – BMXNet。开发完成的 BNN 层可以无缝应用于其他标准库组件,并且在 GPU 和 CPU 模式下均可工作。BMXNet 由 Hasso Plattner 研究所的多媒体研究小组维护和开发,在 Apache 许可证下发布。https://github.com/hpi-xnor 提供了该程序库以及一些示例项目和预训练二值模型等下载资源。

框架

BMXNet 提供支持输入数据和权重二值化的激活、卷积和全连接层。这些层称作 QActivationQConvolutionQFullyConnected,经过专门设计,可直接替换相应的 MXNet 变体。它们提供了一个附加参数 act_bit,用于控制层计算的位宽。列表 1 和列表 2 显示了提议的二值层的 Python 使用示例,并与 MXNet 做了对比。我们不为网络中的第一层和最后一层使用二值层,因为这可能会大幅降低准确性。BMXNet 中 BNN 的标准块结构实现为以下列表中显示的 QActivation-QConvolution 或 QFullyConnected-BatchNorm-Pooling。

在传统的深度学习模型中,全连接和卷积层严重依赖于矩阵点积,后者需要进行大量的浮点运算。相比之下,使用二值化权重和输入数据可借助 CPU 指令 xnorpopcount 实现高性能矩阵乘法。大多数现代 CPU 都对此类运算做了优化。计算两个二元矩阵 A◦B 的点积时不再需要乘法运算。可通过以下方法求得 A 中每行与 B 中每列元素的乘积和求和近似值:首先使用 xnor 运算组合这些值,然后统计结果中设置为 1 的位数,这称作位图计数。这样我们就可以充分利用位运算拥有硬件支持这一优势。支持 SSE4.2 的 x86 和 x64 CPU 都提供了位图计数指令;在 ARM 架构中,此指令包含在 NEON 指令集中。列表 3 显示了一个使用这些指令的未优化的 GEMM (通用矩阵乘法) 实现:

(more…)

使用 Astro 如何构建 Astrobot Voice —— 电子邮件语音辅助工具

这是 Astro Technology, Inc. 首席技术官 Roland Schemers 撰写的一篇客座文章。用他们自己的话说,Astro “在人工智能的支持下,为人员和团队创建适用于 Mac、iOS 和 Android 的现代电子邮件应用程序。现在,使用应用内电子邮件语音辅助工具 Astrobot Voice,您不用离开 Astro 的应用程序即可阅读、管理和回复电子邮件。”

最近,Astro 发布了 Astrobot Voice,这是第一款应用内电子邮件语音辅助工具。这意味着,现在,您不用离开 Astro 的 iOSAndroid 应用程序即可阅读、管理和回复电子邮件。

在 6 月份 Astro 发布 Amazon Alexa 技能后,我们期待让更多人能够通过语音管理电子邮件。在这篇文章中,我们从技术角度详细介绍了我们为何选择这条路、我们如何完成目标以及我们所使用的技术。

为何要构建应用内语音?

我们是 Amazon Echo 的所有者和粉丝,为了表示欢迎和对我们自己的 Alexa 技能进行 dogfood 测试,我们实际上为每位 Astro 新员工提供了 Echo Dot。我们看到技能获得了成功,并想出了多种与更多人在更多场合进行互动的方法。因此,我们决定探索构建应用内语音的可行性。

选择软件

在确定如何构建应用内语音时,我们考虑了一些选项,但同时谨记以下几点目标:

  1. 尽可能重复使用我们基于文本的辅助功能 (在 api.ai 上运行) 或 Alexa 技能中的代码和逻辑。
  2. 通过精准的语音识别打造流畅的用户体验。
  3. 让服务器来处理繁重的工作。

考虑到时间表和工程资源,第一个目标非常重要。我们是小型初创公司,像这样节省时间对我们非常有帮助。

第二个目标,打造流畅用户体验,极具挑战性。Amazon Alexa 因其规模在自然语言处理方面肯定能够提供帮助。因此,我们知道,在尝试打造精确体验的过程中,我们希望利用 AWS 服务及其背后的深度学习技术。

对于第三个目标,我们知道,Astrobot Voice 需要将操作系统级 API 和服务器端开发相结合。对于初始实施,我们决定确保由服务器来完成大部分繁重工作,同时谨记成本问题。由服务器完成大部分工作的好处包括可为 iOS 和 Android 应用提供共享代码,并且无需将 Astro 应用程序的更新版本推送到应用商店即可更改服务器上的流。

堆栈

iOS

对于用于语音识别的 iOS API,我们使用了 AVSpeechSynthesizerSFSpeechRecognizer。SFSpeechRecognizer 仅对 iOS 10 或更高版本可用,因此 Astrobot Voice 只在 iOS 10 和 11 上可用。这一点对于某些应用程序开发人员而言可能是一个限制因素,但并不影响我们的使用。

Android

对于 Android,我们将标准 Android API 用于语音识别,它包含语音识别器文本到语音转换功能。

我们为 iOS 和 Android 都提供了发送服务器记录的文本或文本字符串的选项。由于成本、时间限制和延迟问题,我们决定选择后者。

服务器

在服务器端,我们使用了 Amazon Lex。通过选择 Amazon Lex 而舍弃 api.ai,我们可以重复使用和共享大量已经用于 Alexa 的相同逻辑。虽然我们可以在基于文本的 Astrobot 版本中重复使用一些逻辑,但我们最后决定使用 Amazon Lex 来节约更多时间并提供更好的体验。我们预计,这样可帮助一位开发人员节省 2 至 4 周的时间。随着进一步开发 Astrobot Voice 和 Alexa 技能,这一决策将继续帮助我们节省时间。

将来,当我们提供 Astro 的付费版本 (目前我们的应用程序是免费的) 时,我们计划用适用于语音输入的 Amazon Lex 以及适用于语音输出的 Amazon Polly 来代替设备上语音识别功能,从而利用更多 AWS 服务。这将提升自动程序体验的品质。

下面是这些服务如何协作以创建 Astrobot Voice 体验的流程和架构图:

(more…)

使用 Amazon Rekognition 快速构建智能照片库

简介

在数据爆炸式增长的今天,数据在给生活的方方面面提供了便利的同时,也造成了一些困扰。以照片为例,过去以胶卷相框存储的形式被大量电子设备存储逐渐取代,现代虽然提供了更大容量的存储性能,却更难在短时间内找到指定的照片,我们不得不一页页的翻动照片库寻找某一张特定的照片。 AWS 提供了丰富的人工智能服务,在文本处理、语音、图像等方面解决了这些困扰。对于照片的例子而言,Amazon Rekognition 能快速有效的解决这样的问题。

Amazon Rekognition 是一种让您能够轻松为应用程序添加图像分析功能的服务。利用 Rekognition,您可以检测对象、场景和面孔;识别名人;还可以识别图像中的不当内容。您还可以搜索和比较面孔。借助 Rekognition 的 API,您可以快速为应用程序添加基于深度学习的复杂视觉搜索和图像分类功能。

应用场景

  1. 图像审核。在部分场景下,需要鉴定图片是否包含明显和暗示性的内容。例如自动审核提供给幼儿的读物,自动审核影片镜头的合规性。
  2. 对象场景检测。Rekognition 可识别数千种对象 (如车辆、宠物或家具) 并提供置信度。Rekognition 还可以检测出图像内的场景,如日落或沙滩。这可以应用在以图搜图、关键字搜图、图片自动分类等场景中。
  3. 其余图像处理场景。Rekognition 面部分析功能可以定位到图像中的面孔并分析面孔特征;Rekognition 面孔比较功能可以衡量两张图像中的面孔是否属于同一个人;Rekognition 面部识别功能可以在海量图像中找出相似的面部;Rekognition 名人识别功能可以识别出图像中名人的面孔并显示他们的名字。上述四个场景主要涉及到图像中面部元素的识别处理,可以应用在智能家居主客识别、人脸密码、酒店快捷入住等场景中。

效果展示

上传图片。

图一

显示图片,标签均自动生成。

图二

搜索标签。

图三

整体架构

您将使用到 Amazon S3, Amazon Cognito, Amazon Elasticsearch Service, Amazon Rekognition 以及用于生成以上资源的 AWS CloudFormation 来构建智能照片库。整体架构为无服务(Serverless)架构,简要工作流程如下:

  1. 终端用户使用 S3 静态网站功能运行前端静态网站。
  2. 使用 Cognito Federated Identities Pool 验证静态网站登录,生成临时证书赋予静态网站合适的访问后端资源权限。
  3. 静态网站获取存储在 S3 存储桶中的照片对象。
  4. 当上传照片操作触发,先通过 Rekognition 图像审核功能,通过后把照片上传至 S3 存储桶,并通过 Rekognition 对象场景检测功能分析出照片的标签归类,最后把存储信息和标签信息保存在Elasticsearch 中。
  5. 当检索照片操作触发,根据检索的标签调用 Elasticsearch ,根据返回信息显示相应的图片。

图四

构建步骤

在开始之前,请先确保您具有登录 AWS 全球区控制台的账号,并具备管理员权限,您可以先登录控制台并保持窗口开启。

一、   构建照片库环境

在这一模块中,我们将动手搭建照片库的运行环境。

1.  打开 Github 网址: https://github.com/finishy1995/photos-library/archive/v1.4.zip,下载ZIP压缩文件。

2.  解压缩刚下载的ZIP压缩文件。

3.  在AWS 全球区控制台中,在右上角的区域列表里选择 us-east-1 (弗吉尼亚北部)。

图五

4.  在所有服务列表中点击 CloudFormation ,在 CloudFormation 管理控制台上点击“创建新堆栈”。

5.  在“选择一个模版”中,选择“将模版上传到 Amazon S3”,打开刚下载并解压缩好的文件,选择“template”文件并上传。

图六

6.  点击下一步,输入:

a)    堆栈名称: photos-library

b)    照片存储桶: 请输入可以辨识的唯一存储桶名,并记录下来,例: david-test-library

c)    网站存储桶: 请输入可以辨识的唯一存储桶名,并记录下来,例: david-test-library-web

7.  点击下一步,再点击下一步。

8.  勾上“我确认,AWS CloudFormation 可能创建具有自定义名称的 IAM 资源”,点击创建。

9.  请等待堆栈创建完成,这大约需要花费10分钟的时间。在此期间,您可以先阅读 Recognition 的相关信息,了解更多的应用场景:

https://aws.amazon.com/cn/rekognition/

图七

二、   配置照片库

在上一模块中,我们已成功动手搭建了照片库的运行环境;在这一模块中,我们将配置照片库,并显示在网页中。

10.确认堆栈创建成功,把输出值填入下载下来的配置文件中,文件地址为website/js/configuration.js 。其中,AWS_BUCKET_NAME为第6步b的存储桶名,例: david-test-library。

图八

图九

11.记录下输出中的 WebsiteURL,例:
http://david-test-library-web.s3-website-us-east-1.amazonaws.com
12.点击AWS 控制台左上方的服务,选择存储类别下的 S3。点击第6步c的存储桶名,例: david-test-library-web 。

13.将下载下来的 website 文件夹内的文件拖拽到AWS 控制台下,请注意不包含website自身。

图十

14.点击上传,并等待文件上传完成。

15.全选所有文件,点击更多中的公开,弹出的对话框中再次点击公开。

图十一

16.在浏览器中打开第11步记录的URL,您应该可以看到如下页面

图十二

三、   智能化照片库

在上一模块中,我们已成功配置了照片库,并在网页上显示出来;在这一模块中,我们将使用 Rekognition 使其智能化。您可以选择自行编写少量代码来体验 Rekognition 的方便简洁,也可以直接复制我们提供的示例代码。

17.添加代码,文件地址为website/js/common.js ,代码可以添加在文件128行下。示例代码可以直接从 example-code.txt 文件中拷贝,也可以结合代码注释内容并参考 SDK 文档自行编写:
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Rekognition.html
对于标签,我们默认采用颜色来区分不同的置信度。您也可以通过285行下的代码修改这一设计。

18.在第15步的存储桶中,打开 js 文件夹,点击左侧的上传按钮,将第17步中修改好的 common.js文件添加并上传。

图十三

四、   测试照片库

19.在浏览器中打开第11步记录的URL,点击照片上传按钮 “Browse…”,上传若干张照片,您也可以上传一些不符合鉴定标准的照片。注意,每张照片的上传均需等待页面弹出 Upload Successful 后执行其他操作,您可以在img文件夹下找到示例照片。

20.刷新页面,可以看到刚刚上传的照片和打好的标签已经展示在了页面下方。尝试输入一些标签名称,如“People”等,测试搜索功能。

五、   删除照片库

21.在第15步的存储桶中,全选所有的桶内文件,点击“更多”中的删除,在弹出的对话框中点击删除

图十四

22.类似于第21步的方法,删除另一个创建的存储桶内的所有文件。例:删除存储桶 david-test-library 中的所有文件。

23.在所有服务列表中点击 CloudFormation ,在 CloudFormation 管理控制台上勾选 photos-library 堆栈,在“操作”中选择删除堆栈。

图十五

24.在堆栈成功删除后,智能照片库已完全从您的 AWS 环境中移除。

更多信息

Amazon Rekognition 作为基于深度学习的图像识别服务,能够轻松的适应数百万张图像的搜索、验证和整理工作,在审核图像、员工证扫描、顾客情绪分析、社交网络朋友查询、名人自动识别等场景下具有完善的解决方案和客户案例。同时,通过上面的例子可以发现,使用 Rekignition 仅需要数十行代码即可获取到图像中的信息,可以轻松的将强大的图像识别功能集成到应用程序中,不再需要投入大量的算法研究和改善成本,为图像识别的应用提供了无限的可能和创造力。

获取更多关于 Amazon Rekognition 的信息,请访问:

https://aws.amazon.com/cn/documentation/rekognitio

作者介绍

王元恺

AWS解决方案架构师,有数年C++程序开发以及一年PHP前后端开发经验,同时致力于AWS云服务在国内的应用和推广。熟悉网站架设与网络应用开发,对于TCP/IP及网络协议有自己的理解和实践经验。

Amazon SQS 成本分配标签

您在很早以前就能够标记 AWS 资源并逐个标签地查看费用细分。训练营、认证和认证考试成本分配功能于 2012 年发布 (参阅客户账单的 AWS 成本分配),此后我们不断地添加更多服务支持,最新支持的服务为 DynamoDB (Amazon DynamoDB 成本分配标签简介)、Lambda (AWS Lambda 支持标签和成本分配) 和 EBS (全新 – AWS 快照的成本分配)。

现在,我们将发布适用于 Amazon Simple Queue Service (SQS) 的基于标签的成本分配。您现在可以将标签分配到您的队列并使用它们在任何需要的级别管理您的成本:应用程序、应用程序阶段 (针对通过队列进行通信的松散耦合的应用程序)、项目、部门或开发人员。在标记您的队列后,您可以使用 AWS 标签编辑器来搜索具有相关标签的队列。

下面是我要将三个标签 (应用程序阶段部门) 添加到我的一个队列的方法:

此功能现已在所有 AWS 区域推出,您可以立即开始使用!要了解有关标记的更多信息,请阅读标记您的 Amazon SQS 队列。要了解有关通过标签进行成本分配的更多信息,请阅读使用成本分配标签。要详细了解如何使用消息队列为现代应用程序构建松散耦合的微服务,请阅读我们的博客文章 (利用 Amazon SQS 和 Amazon SNS 构建松散耦合、可扩展的 C# 应用程序),并观看我们最近的网络研讨会使用 Amazon SQS 和 Amazon SNS 解耦和扩展应用程序的录像。

如果您要参加 AWS re:Invent,请安排好时间参加会议 ARC 330:BBC 如何使用微服务构建大型媒体渠道。在此访谈中,您将了解它们如何使用 SNS 和 SQS 来提高 BBC iPlayer 架构的弹性和可靠性。

Jeff

为 AWS re:Invent 2017 做好准备

AWS re:Invent 召开只有短短 40 天了,我的同事和我希望分享一些提示,帮助您充分利用在拉斯维加斯停留的这段时间。与往常一样,我们的侧重点是培训和教育,但我们会穿插一些业余时间的娱乐和休闲活动,让您适当放松心情。

地点,地点,地点
re:Invent Campus 将覆盖整个拉斯维加斯大道,在美高梅大酒店 (MGM Grand,)、阿里亚酒店 (Aria)、梦幻酒店 (Mirage)、威尼斯人酒店 (Venetian)、宫殿酒店 (Palazzo)、金沙博览馆 (Sands Expo Hall)、林尼克酒店 (Linq Lot) 和安可酒店 (Encore) 举行活动。每个场地都会举办特定主题的活动:

美高梅大酒店 (MGM Grand,) – 业务应用程序、企业、安全性、合规性、身份和 Windows。

阿里亚酒店 (Aria) – 分析与大数据、Alexa、容器、物联网、人工智能与机器学习以及无服务器。

梦幻酒店 (Mirage) – 训练营、认证和认证考试。

威尼斯人酒店 (Venetian) / 宫殿酒店 (Palazzo) / 金沙博览馆 (Sands Expo Hall) – 架构、AWS Marketplace 和服务目录、计算、内容分发、数据库、开发运营、移动、网络和存储。

林尼克酒店 (Linq Lot) – Alexa 黑客马拉松、欢乐日、即兴演出、re:Play 聚会、演讲者见面会和欢迎会。

安可酒店 (Encore)可预订会议场地

如果您的兴趣涵盖多个主题,请安排好时间利用 re:Invent 摆渡车,带您在各个场馆之间穿梭。

大量内容
re:Invent 会议目录现已确定,您应该即刻开始选择自己感兴趣的会议。

根据日程,将会有 1100 多场会议,因此提前做好规划很重要!其中一些最热门的“深入探究”会议将会举办多场,其他会议则将分流到其他会场的会议室,那里可能同样人员爆满。我们已经分析了大量数据并运行了一些模拟,正在尽最大努力为您提供更多机会来制定一个内容丰富的时间表。

我们很快即可让您预订会议席位 (在 Twitter 上关注和/或 @awscloud 以获取预告)。根据前些年的反馈,我们已经调整了我们的席位预订模式。今年,每场会议 75% 的席位将接受预订,剩下 25% 的席位将留给未预约到会者。我们将在会议开始前 10 分钟开始接受未预约到会者。

拉斯维加斯夜不眠,您也应会如此!今年,我们准备了很多深夜会议、研讨会、技战术讲解和动手实验室,让您在入夜后依然兴致盎然。

要详细了解我们有关会议和内容的计划,请观看“为 re:Invent 2017 做好准备”内容概述视频。

享受乐趣
在一天中完成了足够的培训和学习之后,可安排时间参加串酒吧re:Play 聚会Tatonka 挑战赛 (今年有两个举办地)、我们的动手实践 LEGO 活动以及哈雷骑行。通过我们的 4000 米赛跑旋转挑战赛健身训练营冰上扫帚球 (美国的一项历史悠久的传统活动) 保持身材。

拉斯维加斯见
与往常一样,我期待与尽可能多的 AWS 用户和博客读者见面。随时随地拦下我,跟我打招呼吧!

Jeff

如今的首席信息官正在合并业务和技术

“成竹在胸。” — Stephen R. Covey

上一篇文章中,我断言今天的技术执行官需要扮演首席变革管理官 (CCMO™) 的角色,领导其组织完成企业云之旅。本文将探讨与该职责相关的三个主题中的第一个:合并业务与技术 (统一管理)。另两个是提供明确的目的 (对下管理) 和制定 (或打破) 新的规则 (管理执行),我将在后续文章中进行讨论。

今天,成功的技术高管必须帮助他们的行政助理了解技术如何适应 — 甚至推动 — 其业务发展。如果组织理解这一点,您的执行团队就会意识到您对组织的业务目标负有领导责任,您是执行团队的重要成员。

当前的业务领域受到一些新兴公司的冲击,创建和运营这些公司的高管和企业家不仅了解如何将技术应用于其业务,还将确定在整个行业中发挥作用的角色技术。例如,运营酒店业务的 AirBnb、提供汽车相关服务的 Uber、实现家庭自动化的 Nest Labs、提供存储服务的 Dropbox 等。虽然这给传统企业带来了压力,但也为世界各地的 IT 高管们创造了机会。与从事技术工作的人员相比,没有人比他们更了解如何运用技术来满足市场日益增长的需求。对于大部分职业生涯都是在大公司中度过的我们来说,这一点尤其正确。我们说着相同的企业术语,了解哪些限制条件是硬性的,哪些是可变通的,也知道如何跟您的每位高管沟通。公司不能再指望让技术高管们在幕后默默工作就能取得成功。

而且,由于云承担了传统上与企业 IT 相关的许多千篇一律的繁重工作,今天的 IT 主管可以将更多的时间和资源投入到推动业务发展和保持组织竞争力的活动中。云是这些新兴颠覆性力量使用的关键工具。使用这种工具不意味着为您提供发展业务所需的想法,但这样可为所有人提供更多的可能性,让竞争环境更加公平。

下面是一些提示,供准备引领组织踏上云之旅的您参考:

关爱同事

迁移到云并不只是一次技术转变。它是一次业务变革,管理层的所有人都应该关心这一点。您的工作是考虑执行团队及其职能会受到哪些影响,或可能会受到云之旅的哪些影响。

我无法在一篇文章里介绍太多类型的高管,但是:

首席财务官通常关注如何降低前期成本以及只支付所用费用的能力。我发现每月成本变化时常会引起一些摩擦,但总拥有成本始终较低,特别是当您摆脱了容量规划和维护活动的负担时。与您的财务主管密切合作,预测支出、管理资源利用率、错开预留实例 (RI) 的购买时机 (因为您更熟悉自己的环境),并考虑如何利用劳动力成本 (因为随着时间的推移,您的资源会越来越多地专注于产品开发和创造资产)。

首席营销官通常关注如何保持公司品牌的新鲜度,以及应对不断变化的市场形势。如果您的品牌网站能够一天更新数次而不是一月才更新一次,会产生什么样的影响?能够无限扩展的数据仓库如何帮助首席财务官更好地了解客户?如果试错成本很低甚至不需要付出成本,他们可以对一小部分用户尝试哪些试验?

人力资源副总裁希望看到您适当地关爱员工,了解您如何聘用具有新技能的员工。充分利用 AWS 培训和认证,在您自己培训课程中采用我们的培训专业知识。在关于该主题的后续文章中,将探讨如何指导您的员工 – 小心剧透 – 只要愿意学习,您团队中的每一个人都能为您的云之旅做出贡献。此外,请与其他要迁移到云的公司建立合作关系,了解他们如何聘用新角色以及如何管理现有员工的职责转变。例如,DevOps 文化如何融入您的组织,运行您构建的内容意味着什么?

首席执行官关注以上所有事务,以及公司如何保持竞争力。运用您从其他高管处获得的信息塑造完整的愿景,并展示如何利用现代技术在同样的限制条件下完成以前无法实现的任务。

在道琼斯,我设定了一个目标:每个月邀请几名高管一起就餐。就餐期间,我什么都不做,只听他们有什么抱怨。然后,我根据掌握的信息调整我们的策略,并确保向他们传达其影响力会如何改变我们的方向。这是一个展现对高管需求的关心、建立信任并获得他们支持的简单愉悦 (如果您喜欢社交和美食) 方法。运用这个方法的关键在于:您不仅要倾听,还要根据获得的信息采取行动。

寻求帮助

您不必独负重担。您可以将客户经理看作旅途中的领队。他们会很乐意与您及您的执行团队合作,帮助传达讯息并从迁移到云的过程中获益,使其与您的业务保持一致。如果您需要的影响力超出了客户经理的专长范围,他们会寻找合适的人员,不管是在 AWS 内部还是外部。我们很乐意为您创造机会,让您能够与志同道合的人同行 — 不只是在我们倡导的活动中,而是您旅途中的任意时刻。我在担任上一个职位时,跟其他公司做过一些交流,与其他高管交流不仅能够获得启发,还可验证自己的想法。

AWS 合作伙伴网络 AWS 培训和认证也是加快您的云之旅的绝佳资源。在讲述最佳实践时,我会更详细地介绍。但是,我发现很多公司会与人力资源部门合作,将基于我们计划的 AWS 培训制度化。在道琼斯,我们的 DevOps 团队与人力资源部门合作设定了 DevOps 日,定期推广我们不断改进的工具和最佳实践。这是向地理位置分散的大型团队扩展技能的好办法。同样,您的客户经理可以帮助您在这些区域之间建立适当的联系。

提升 IT 品牌形象

我与许多希望提高部门品牌形象的 IT 主管交谈过。我在彭博花了十多年的时间开发业务拓展软件。我到道琼斯的原因之一是想帮助他们改变 IT 是成本中心的心态,我想要将 IT 建成一个推动业务发展的部门。我必须得感谢我们部门里的每一个人,谢谢他们的辛勤工作和奉献精神,是大家齐心协力才实现了我们所要达成的变革。

AWS 是实现这一转变的基础之一,但执行层面的大部分努力的核心是:了解每位高管的痛点、他们想要解决的 IT 问题,然后调整技术来帮助他们实现目标。在使用云技术更快地交付更好的结果几个月后,我们花了几个月的时间重新培训执行团队及其部门,使他们将我们看作是技术而不是 IT。这看似无足轻重,但它使我们对话的语调和生产力发生了重大的变化,体现了该部门对整个公司变革的贡献。

这与您的经验是否相符?我们很乐意倾听。

不断前进
-Stephen
orbans@amazon.com
@stephenorban
http://aws.amazon.com/enterprise/

注:提供执行支持是我在新的企业云之旅系列文章中撰写的七条最佳实践中的第一条。其余六条是:教育员工、培育试验文化、寻找合作伙伴、创建云卓越中心、实施混合架构和实施云优先策略。请保持关注以获得每条最佳实践的更新。