现代应用程序

以应用程序设计创造价值

Infinity_Fish

无论什么行业,各个组织都在力求提高自己的敏捷性,以便更快地创新和响应变化。组织需要更快速地构建应用程序,以快速扩展支持潜在的数百万用户、需要实现全球可用性、需要管理 PB 甚至 EB 级数据,并需要实现毫秒级响应。我们把这种应用程序称为现代应用程序,其使用场景涵盖 Web 和移动后端、物联网、AI/ML 工作负载、批量处理、共享服务平台和微服务后端等。现代应用程序的构建结合了模块化架构模式、无服务器运营模式和敏捷的开发人员流程,让企业能够加速创新、降低风险、加快上市速度并降低总体拥有成本。

如果您管理了应用程序和工作负载组合资源包,现在,您有机会为每个选项作出选择:我们将您的选项分类为 7R — 保留、停用、重新定位、重新托管、重新购买、重新搭建平台到重构。针对您保留的应用程序,您可迁移至云端而无需变更(重新托管)。现代化是指重新搭建平台,将您自己的容器、数据库或消息代理移至托管云服务,或重构 - 重写至云原生架构。您的选择受多种因素影响,包括对开源解决方案可移植性的偏好,或对 AWS 本机架构操作和敏捷性优势的偏好。应用程序对您的组织和客户越重要,您从现代化获得的受益就越多。

Dunelm 以无服务器方式支持英国业务增长
寻找您迁移的动力
了解组织迁移至云的原因以及 AWS 如何帮助您实现独特目标。
开始您的 AWS 迁移 
migration_site_merch_icon
如何开始现代化
通过构建现代应用程序来建立竞争优势。
获取电子书 
Serverless_2up_workshop_site_merch_3 copy 4

现代应用程序的要素

  • 应用程序架构 >>
  • 软件交付 >>
  • 数据策略 >>
  • 运维 >>
  • 管理与监管 >>
  • 应用程序架构 >>
  • 应用程序架构:模块化微服务

    整体式应用程序的开发速度快,因此很受欢迎。但是因为这种应用程序的各个方面都紧密结合在一起,所以难以随着代码库的扩大而扩展和更新。而使用微服务这种模块化独立组件来构建应用程序,对任何组件的更改都可以轻松进行,因此能够提高发布速度。微服务让应用程序更易于扩展、开发速度更快,从而实现创新并缩短上市时间。
    J200877_AWS_MAD_Refresh_Webpage_Microservices_Diagram_Thumbnail
    J200877_AWS_MAD_Refresh_Webpage_Microservices_2_Diagram_v2
    在本架构中,我们使用 3 种不同的服务来管理一个简单的 Web 应用程序。Amazon Amplify Console 可以通过 S3 来托管静态 Web 资源,包括用户浏览器中加载的 HTML、CSS、JavaScript 及图像文件。浏览器中执行的 JavaScript 可以发送数据,也可以从使用 AWS Lambda 和 Amazon API Gateway 构建的公共后端 API 接收数据。Amazon Cognito 可以提供用户管理和身份验证功能,以便保护后端 API。最后,DynamoDB 可以提供一个持久层,而数据可以通过 API 的 Lambda 函数存储在该层中。
    利用微服务实现扩展
    将应用程序分解并构建为独立的微服务。
    阅读指南 
    重构整体式架构:汇量科技
    移动广告和营销服务技术供应商汇量科技采用微服务架构提升其平台的可扩展性和可靠性。2013 年以来,汇量科技的业务迅速扩大,平均日广告请求量从 2017 年 180 亿的飙升至 2019 年的 1000 亿。通过将其整体式应用程序重构为微服务架构,它们可以轻松识别瓶颈,并将资源分配到主要扩展区域。
    了解更多 
  • 软件交付 >>
  • 软件交付:自动化、抽象化和标准化

    前端和后端开发人员需要能使其快速、安全地将新功能交付给客户的工具、框架和流程 – 通常是每日交付或更为频繁。框架和工具摘要免除了预置和配置资源的复杂性。自动化发布管道以及持续集成与持续部署 (CI/CD) 让团队能够快速测试和发布大量代码,同时尽可能减少错误。通过基础设施即代码模板实现标准化,可以利用代码为应用程序提供全部技术,同时确保团队满足核心需求。
    J200877_AWS_MAD_Refresh_Webpage_ReleasePipeline_Diagram_Thumbnail
    J200877_AWS_MAD_Refresh_Webpage_ReleasePipeline_Diagram_v2(1)

    在本架构中,我们使用针对 Fargate 使用 CI/CD 堆栈以便发布应用程序(要了解完整的应用程序架构,请参阅入门教程)。我们会使用 AWS 命令行界面来执行用于创建所需基础设施组件的命令,这些组件中包含一个使用 AWS CodeCommit、CodeBuild 和 CodePipeline 并且完全托管的 CI/CD 堆栈。我们还会使用 AWS Cloud9 这种基于云的 IDE 在浏览器中完成需要的所有开发任务。 

    测试、发布、重复
    将开发运营转移到云中,改进您的开发流程。
    阅读指南 
    Release_pipelines_carousel_sitemerch1
    缩短开发时间:Bank al Etihad
    Bank al Etihad 现在的部署速度提升了 10 倍,并采用基础设施即代码的方式使资本支出减少了 50%。Bank al Etihad 一直在寻求在竞争日益激烈的市场中变得更为灵敏,因此银行选择了由基础设施即代码支持的开发运维模式作为现代化计划的一部分。
    阅读全文 
  • 数据策略 >>
  • 数据策略:分离、专用

    与整体式应用程序一样,单个数据库也难以扩展。单个数据库可能成为 SPOF,且在容错能力方面也是个挑战。现代应用程序使用分离的数据存储,数据库和微服务在其中一一对应。将数据分离并使用微服务,团队可以选择最符合服务需求的数据库,即任务专用数据库。
    J200877_AWS_MAD_Refresh_Webpage_Database_Diagram_Thumbnail
    J200877_AWS_MAD_Refresh_Webpage_Database_Diagram_v2
    在本架构中,游戏公司使用两个数据库在游戏应用程序的不同组件中执行不同的功能。Amazon DynamoDB 负责保存玩家数据并实现可扩展性,而 Amazon Aurora 负责优化微事务的效率。
    为作业选择合适的工具
    使用满足应用程序需求的数据库。
    阅读指南 
    Databases_carousel_site_merch1
    削减数据库成本:宝可梦公司
    通过迁移到 Amazon Aurora,宝可梦公司在每秒处理超过 300 个登录时可每月削减数万美元的成本。自 2016 年推出精灵宝可梦之后,需要访问此系统的用户数量在两年内增加到超过 3 亿,而 Amazon Aurora 可以低成本支持该规模。
    阅读全文 
  • 运维 >>
  • 运维:尽可能无服务器

    现代应用程序有很多活动的组件 – 包括大量使用独特数据库并频繁发布功能的微服务。无服务器技术减轻了这一负担,因为不需要预置和扩展基础设施就可以运行,内置了可用性和安全性。另外,它们还有按价值付费的计费模式。整个应用程序都可以使用包含计算、存储和集成服务在内的无服务器服务。
    J200877_AWS_MAD_Refresh_Webpage_Operational_Diagram_Thumbnail
    J200877_AWS_MAD_Refresh_Webpage_Operational_Diagram_v2
    在本架构中,我们使用无服务器技术来实时处理数据并将其可视化。我们会使用 AWS Lambda 来处理实时数据流、使用 Amazon DynamoDB 来保存数据、使用 Amazon Kinesis Data Analytics 来构建汇总数据的无服务器应用程序、使用 Amazon Kinesis Data Firehose 将原始数据存档到 Amazon S3 中,并使用 AWS Athena 针对原始数据运行临时查询。
    减轻管理基础设施的负担
    采用无服务器运行模式,减轻运行负担。
    阅读指南 
    Serverless_carousel_site_merch_1
    以无服务器的方式更快移动:Amazon F3
    Amazon F3 将 Prime Now、Amazon Fresh 和 Amazon Restaurants 融合,以无服务器产品管理解决方案每周节省 250 小时。Amazon F3 现在可以在 30 秒内查询有 800 万产品的目录,而非耗时输入供应商数据,信赖其关于潜在商业违规的自动警告,可降低手动错误风险。
    阅读全文 
  • 管理与监管 >>
  • 管理与监管:程序化护栏

    牢固、合法、安全地管理您的组织是第一优先事项,但通常严格的管理会导致出现减缓创新进程的检查点。组织会愈发以护栏理念机制处理此问题,例如能同时减低不受欢迎应用程序行为的出现和影响的实践流程。护栏通常以代码表示,可使监管、预置、部署、成本管理和应用程序的安全性流程和实践得以标准化,而不会产生瓶颈或减缓创新。
    J200877_AWS_MAD_Refresh_Webpage_Security_Diagram_Thumbnail
    J200877_AWS_MAD_Refresh_Webpage_Security_Diagram_v2
    在本架构中,我们使用 AWS WAF 筛选规则来控制进入无服务器 Web 应用程序的流量。利用 WAF,我们可以创建自定义规则来防范常见攻击,例如 SQL 注入或跨站脚本执行。
    在云端的监管
    了解监管可如何同时控制和启用。
    阅读指南 
    确保合规性并加快速度:Travelex
    Travelex 使用 AWS 快速追踪产品到市场,同时保持严格的金融合规标准。组织需要发布新服务和遵循现有标准,通过利用 AWS,流程更简单、更迅速,因为没有第三方云提供商处理。未来,所有 Travelex 产品和服务将沿用此安全模式。
    阅读全文 

现代应用程序开发的优势

Homestate_box1_icon

加快上市速度

通过加快构建和发布周期以及减少运营开销,开发人员可以快速构建新功能。自动化测试和发布流程可以降低错误率,因此产品能够更快地进入市场。
Homestate_box2_icon

增加创新

利用模块化架构,开发人员可以快速更改任何单个应用程序组件,并降低整个应用程序面临的风险,因此团队可以更频繁地试验新想法。
Homestate_box3_icon

提高可靠性

自动化测试过程和监控开发过程的每个阶段可以保证现代应用程序在部署时的可靠性。任何问题都可以实时分析和解决。
Homestate_box4_icon

降低成本

利用按价值付费的定价模式,现代应用程序可以减少过度配置和闲置资源,从而降低成本。消除了基础设施管理工作,维护成本也变得更低。
企业现代化
IDC 探索了现代化的架构、运营和交付影响。
阅读报告:企业的应用程序现代化 
IDC_1up_icon

关于现代化的客户案例

fender_logo
Fender 减轻了运营负担
Fender 采用无服务器优先的策略以减少人工流程和基础设施管理,从而可使其聚焦于客户体验,无需担心停机和午夜维修。
aldo_logo
Aldo 加速开发新应用程序
Aldo 用 AWS AppSync 构建应用程序,AWS 在三个月内完全托管 GraphQL 服务,而之前使用多个 API 时则需要 6-12 个月。
siemens_logo
西门子降低了基础设施成本
通过利用无服务器基础设施,西门子的客户控制系统警报减少了 90%,并减少了 85% 的基础设施成本,且在 18 个月内未发生意外停机。
snap_logo
Snap Inc. 促使开发人员重视创新
通过结束其整体化应用程序并采用 Amazon EKS 和 ECR,Snap Inc 开发人员发布新服务的时间间隔降低了 77%。它们现在每秒处理超过 200 万项事务。
通过无服务器方式降低总体拥有成本
阅读德勤的报告对比无服务器和传统应用程序的拥有总成本。
获取报告  阅读指南 
deloitte_2up_icon
函数即服务与容器的行业之首
Forrester 对函数即服务和企业容器平台提供商进行了评估,AWS 名列前茅。
获取报告 
forrester_2up_icon

了解我们的合作伙伴如何帮助组织建立现代应用程序开发流程

来自 APN 咨询合作伙伴的可定制服务包括:帮助您评定现有应用程序组合资源包、分析您的组织结构、识别理想工作负载和开发首个现代化应用程序、构建商业案例和路线图,以确保您的现代化之路获得成功。
就对应用程序产品组合如何进行现代化的相关事宜,与 AWS 联系。