{"value":"### **福利:白嫖多种亚马逊云服务**\n亚马逊云科技提供了100余种产品免费套餐。其中,计算资源 [Amazon EC2 ](https://aws.amazon.com/cn/ec2/?trk=cndc-detail)首年12个月免费,750小时/月;存储资源 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 首年12个月免费,5GB 标准存储容量;数据库资源 [Amazon RDS](https://aws.amazon.com/cn/rds/?trk=cndc-detail) 首年12个月免费,750小时;[Amazon DynamoDB](https://aws.amazon.com/cn/dynamodb/?trk=cndc-detail) 25GB 存储容量 永久免费。\n[点击直达](https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all&trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&sc_channel=el)\n### **背景**\n此前公司想搭建一个在线的系统来方便产品在进行存储和销售的过程中实现可溯源的\"一物一码\"机制,经部门多次讨论之后敲定了技术方案,其中数据库选型使用的就是亚马逊云科技的云原生数据库产品:**[Amazon DynamoDB](https://aws.amazon.com/cn/dynamodb/?trk=cndc-detail)**。\n在介绍 DynamoDB 之前,先来了解一下云原生数据库的前身。\n### **传统数据库**\n传统数据库是依照某种数据模型组织起来的数据集合。\n这种数据集合具有如下特点:数据尽量不重复,以存储最优的数据结构来存放数据,通常都是计算和存储耦合在一起。\n#### **缺点**\n1、无法满足海量数据的管理需求\n2、无法满足高并发的需求\n3、无法满足高可扩展性和高可用性的需求\n### **云原生数据库的概念**\n如果要问一个业务部署在公有云上的开发者数据库选型,收到的答案一定不限于 MySQL、Redis 和 MongoDB 等数据库,随着时代的发展与进步,云原生数据库也慢慢走进了大众的视野。\n#### **定义**\n简单来说,云原生数据库,是一种通过云平台进行构建、部署和维护的服务。这种云原生属性是它相比于传统数据库最大的特点。\n作为一种云平台,云原生数据库以 PaaS (平台即服务, Platform-as-a-Service) 的形式提供使用,也经常被称作 DBaaS (数据库即服务, DataBase-as-a-Service)。\n用户可以将该平台用于多种目的,例如存储,管理和提取数据。\n\n在云原生数据库出现之前,数据的存储都是放在本地硬盘或者公司搭建的服务器上的,并且还需要根据产品的用户量,访问量等等去对服务器做好配置,甚至淡季旺季也需要修改成不同的配置,这大大提高了一家公司对数据存储上所花费的时间与金钱,而随着云原生数据库的出现,这一个问题也迎刃而解。\n云原生数据库,可以开箱即用,在预估好资源使用后,可以在十分短的时间上完成部署。而成本完全可以依据公司所需的资源申请,在不同的时间点可以升级到较高规格亦或者降级到较低规格,从而避免资源的浪费、实现成本的一定程度降低。\n\n#### **优点**\n云原生数据库的优点:\n- 易处置性简单来讲,易处置性是指数据库发生宕机等故障的情况下,即时处理崩溃或启动进程的能力。尽管现在有先进的技术,但是像磁盘故障、网络隔离故障,以及虚拟机异常等,仍然不可避免。\n- 对于传统数据库,这些故障尤其有害,因为用单个机器运行整个数据库,即便一个很小的问题都可能影响所有功能。而云原生数据库的设计具有显著的易处置性,即允许虚拟机在事件通知下立即重启或重新调度。实际上,易处置性已从单个虚拟机扩展到了整个数据中心。随着我们的环境持续朝着更加稳定的方向发展,云原生数据库将发展到对此类故障无感知的状态。\n- 增强的安全性,DBaaS 运行在受高度监控和安全的环境里,受到反恶意软件、反病毒软件和防火墙的保护。除了全天候的监控和定期的软件升级以外,云环境还提供了额外的安全性。相反,传统数据库容易遭受攻击产生数据丢失或者不可访问的问题。基于服务提供商通过即时快照提供的数据备份能力,用户可以达成“RPO=0,RTO<60秒”的目标。\\n- 可扩展性让应用获得按需扩展的能力,使开发运维工程师专注于业务而无需担心实例容量的限制。\\n- 在本地建设一个可靠安全的数据中心是一项巨大的工程,你需要投入巨大资金来保证资源的冗余性,而且还需要维护一个专业的运维团队,持续的运维和运营的成本给公司财务带来巨大的压力。而使用云上的 DBaaS 平台,你只需以很低的成本就能获得安全,高可用和可扩展的数据库,让你实现更优的资源分配。\\n### **Amazon DynamoDB 是什么?**\\nAmazon DynamoDB 是亚马逊云提供的一种全托管 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。DynamoDB 可以免除操作和扩展分布式数据库的管理工作负担,因而无需担心硬件预置、复制、软件修补或集群扩展等问题。\\n此外,DynamoDB 提供了静态数据加密功能,其本身与云平台深度融合,无需复杂的配置和运维。\\n### **传统关系数据库与 Amazon DynamoDB 的部分对比**\\n\\n![image.png](https://dev-media.amazoncloud.cn/6ed6d285c9af43debfa0cd8658ab20ba_image.png)\\n\\n### **仓储系统实战**\\n#### **需求**\\n需要一个在线的管理系统,可供仓库工人手持扫码设备对仓库物料进行严格把控,运用“一物一码”的机制,保证物料可溯源,可查出入库时间。\\n#### **功能分析**\\n物料在进出入仓库的时候,都会由云端系统生成独特的一个条形码,这个码就是物料的编号信息,仓库人员可在电脑中通过手持设备扫描条形码在云端数据库中查询相应的物料信息来核对,或者是对物料进行出入库的登记管理,这一切都需要一个庞大且可拓展的云端数据库进行支持。\\n#### **选择 Amazon DynamoDB 的理由**\\n1.仓库需要一个数据空间大、方便拓展且响应及时的数据库。\\n2.Amazon DynamoDB 是 NoSQL 数据库,没有固定的 schema,给业务带来很好的灵活性\\n3.Amazon DynamoDB 是云端数据库,所以存储空间等性能可以根据需求进行实时改变。\\n#### **仓储物料增加流程示意图**\\n\\n![image.png](https://dev-media.amazoncloud.cn/c8d0623026c444d49f9cbaa3bbb354a5_image.png)\\n\\n#### **仓储物料减少流程示意图**\\n\\n![image.png](https://dev-media.amazoncloud.cn/fac18a9e362c44dd9b26b67766def6a7_image.png)\\n\\n这里也能看出,如果使用传统数据库会出现可用性、可靠性无法兼顾的问题,因为传统 mysql 数据库基于 binlog 的主从逻辑复制,复制延迟较大,存在数据丢失的风险。备机同步日志之后需串行回放,HA 时间不可控,导致业务的可用性受损。\\n而 Amazon DynamoDB 数据在云中分片存储,分片相互独立,基于云盘的快照机制,实现快速的并行备份和回档,在速度方面有巨幅提升。\\n#### **成果**\\n使用 Amazon DynamoDB 作为系统数据库之后,仓储系统在日常运行中表现的十分出色,日均1000+的物料进出入库,信息登记方便快捷,在“一物一码”的机制下,平均物料进出入库不超过30s,整体性能十分出色。\\n### **总结**\\n本次使用亚马逊云的 Amazon DynamoDB 数据库来搭建公司的仓储管理系统让我学到了很多的东西,我是一名前端开发人员,平时接触数据库会比较少,但是从入手 Amazon DynamoDB 到使用,我也仅仅花费了几天的时间,这一切也都得益于亚马逊云对于自家产品的严格要求,从文档到示例教程,字字珠玑,因为我也是受益匪浅,以后也会更多的使用亚马逊云相关的产品。","render":"<h3><a id=\\"_0\\"></a><strong>福利:白嫖多种亚马逊云服务</strong></h3>\\n<p>亚马逊云科技提供了100余种产品免费套餐。其中,计算资源 Amazon EC2 首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB 标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon DynamoDB 25GB 存储容量 永久免费。<br />\\n<a href=\\"https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all&trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&sc_channel=el\\" target=\\"_blank\\">点击直达</a></p>\\n<h3><a id=\\"_3\\"></a><strong>背景</strong></h3>\\n<p>此前公司想搭建一个在线的系统来方便产品在进行存储和销售的过程中实现可溯源的"一物一码"机制,经部门多次讨论之后敲定了技术方案,其中数据库选型使用的就是亚马逊云科技的云原生数据库产品:<strong>Amazon DynamoDB</strong>。<br />\\n在介绍 DynamoDB 之前,先来了解一下云原生数据库的前身。</p>\n<h3><a id=\\"_6\\"></a><strong>传统数据库</strong></h3>\\n<p>传统数据库是依照某种数据模型组织起来的数据集合。<br />\\n这种数据集合具有如下特点:数据尽量不重复,以存储最优的数据结构来存放数据,通常都是计算和存储耦合在一起。</p>\n<h4><a id=\\"_9\\"></a><strong>缺点</strong></h4>\\n<p>1、无法满足海量数据的管理需求<br />\\n2、无法满足高并发的需求<br />\\n3、无法满足高可扩展性和高可用性的需求</p>\n<h3><a id=\\"_13\\"></a><strong>云原生数据库的概念</strong></h3>\\n<p>如果要问一个业务部署在公有云上的开发者数据库选型,收到的答案一定不限于 MySQL、Redis 和 MongoDB 等数据库,随着时代的发展与进步,云原生数据库也慢慢走进了大众的视野。</p>\n<h4><a id=\\"_15\\"></a><strong>定义</strong></h4>\\n<p>简单来说,云原生数据库,是一种通过云平台进行构建、部署和维护的服务。这种云原生属性是它相比于传统数据库最大的特点。<br />\\n作为一种云平台,云原生数据库以 PaaS (平台即服务, Platform-as-a-Service) 的形式提供使用,也经常被称作 DBaaS (数据库即服务, DataBase-as-a-Service)。<br />\\n用户可以将该平台用于多种目的,例如存储,管理和提取数据。</p>\n<p>在云原生数据库出现之前,数据的存储都是放在本地硬盘或者公司搭建的服务器上的,并且还需要根据产品的用户量,访问量等等去对服务器做好配置,甚至淡季旺季也需要修改成不同的配置,这大大提高了一家公司对数据存储上所花费的时间与金钱,而随着云原生数据库的出现,这一个问题也迎刃而解。<br />\\n云原生数据库,可以开箱即用,在预估好资源使用后,可以在十分短的时间上完成部署。而成本完全可以依据公司所需的资源申请,在不同的时间点可以升级到较高规格亦或者降级到较低规格,从而避免资源的浪费、实现成本的一定程度降低。</p>\n<h4><a id=\\"_23\\"></a><strong>优点</strong></h4>\\n<p>云原生数据库的优点:</p>\n<ul>\\n<li>易处置性简单来讲,易处置性是指数据库发生宕机等故障的情况下,即时处理崩溃或启动进程的能力。尽管现在有先进的技术,但是像磁盘故障、网络隔离故障,以及虚拟机异常等,仍然不可避免。</li>\n<li>对于传统数据库,这些故障尤其有害,因为用单个机器运行整个数据库,即便一个很小的问题都可能影响所有功能。而云原生数据库的设计具有显著的易处置性,即允许虚拟机在事件通知下立即重启或重新调度。实际上,易处置性已从单个虚拟机扩展到了整个数据中心。随着我们的环境持续朝着更加稳定的方向发展,云原生数据库将发展到对此类故障无感知的状态。</li>\n<li>增强的安全性,DBaaS 运行在受高度监控和安全的环境里,受到反恶意软件、反病毒软件和防火墙的保护。除了全天候的监控和定期的软件升级以外,云环境还提供了额外的安全性。相反,传统数据库容易遭受攻击产生数据丢失或者不可访问的问题。基于服务提供商通过即时快照提供的数据备份能力,用户可以达成“RPO=0,RTO<60秒”的目标。</li>\n<li>可扩展性让应用获得按需扩展的能力,使开发运维工程师专注于业务而无需担心实例容量的限制。</li>\n<li>在本地建设一个可靠安全的数据中心是一项巨大的工程,你需要投入巨大资金来保证资源的冗余性,而且还需要维护一个专业的运维团队,持续的运维和运营的成本给公司财务带来巨大的压力。而使用云上的 DBaaS 平台,你只需以很低的成本就能获得安全,高可用和可扩展的数据库,让你实现更优的资源分配。</li>\n</ul>\\n<h3><a id=\\"Amazon_DynamoDB__30\\"></a><strong>Amazon DynamoDB 是什么?</strong></h3>\\n<p>Amazon DynamoDB 是亚马逊云提供的一种全托管 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。DynamoDB 可以免除操作和扩展分布式数据库的管理工作负担,因而无需担心硬件预置、复制、软件修补或集群扩展等问题。<br />\\n此外,DynamoDB 提供了静态数据加密功能,其本身与云平台深度融合,无需复杂的配置和运维。</p>\n<h3><a id=\\"_Amazon_DynamoDB__33\\"></a><strong>传统关系数据库与 Amazon DynamoDB 的部分对比</strong></h3>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/6ed6d285c9af43debfa0cd8658ab20ba_image.png\\" alt=\\"image.png\\" /></p>\n<h3><a id=\\"_37\\"></a><strong>仓储系统实战</strong></h3>\\n<h4><a id=\\"_38\\"></a><strong>需求</strong></h4>\\n<p>需要一个在线的管理系统,可供仓库工人手持扫码设备对仓库物料进行严格把控,运用“一物一码”的机制,保证物料可溯源,可查出入库时间。</p>\n<h4><a id=\\"_40\\"></a><strong>功能分析</strong></h4>\\n<p>物料在进出入仓库的时候,都会由云端系统生成独特的一个条形码,这个码就是物料的编号信息,仓库人员可在电脑中通过手持设备扫描条形码在云端数据库中查询相应的物料信息来核对,或者是对物料进行出入库的登记管理,这一切都需要一个庞大且可拓展的云端数据库进行支持。</p>\n<h4><a id=\\"_Amazon_DynamoDB__42\\"></a><strong>选择 Amazon DynamoDB 的理由</strong></h4>\\n<p>1.仓库需要一个数据空间大、方便拓展且响应及时的数据库。<br />\\n2.Amazon DynamoDB 是 NoSQL 数据库,没有固定的 schema,给业务带来很好的灵活性<br />\\n3.Amazon DynamoDB 是云端数据库,所以存储空间等性能可以根据需求进行实时改变。</p>\n<h4><a id=\\"_46\\"></a><strong>仓储物料增加流程示意图</strong></h4>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/c8d0623026c444d49f9cbaa3bbb354a5_image.png\\" alt=\\"image.png\\" /></p>\n<h4><a id=\\"_50\\"></a><strong>仓储物料减少流程示意图</strong></h4>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/fac18a9e362c44dd9b26b67766def6a7_image.png\\" alt=\\"image.png\\" /></p>\n<p>这里也能看出,如果使用传统数据库会出现可用性、可靠性无法兼顾的问题,因为传统 mysql 数据库基于 binlog 的主从逻辑复制,复制延迟较大,存在数据丢失的风险。备机同步日志之后需串行回放,HA 时间不可控,导致业务的可用性受损。<br />\\n而 Amazon DynamoDB 数据在云中分片存储,分片相互独立,基于云盘的快照机制,实现快速的并行备份和回档,在速度方面有巨幅提升。</p>\n<h4><a id=\\"_56\\"></a><strong>成果</strong></h4>\\n<p>使用 Amazon DynamoDB 作为系统数据库之后,仓储系统在日常运行中表现的十分出色,日均1000+的物料进出入库,信息登记方便快捷,在“一物一码”的机制下,平均物料进出入库不超过30s,整体性能十分出色。</p>\n<h3><a id=\\"_58\\"></a><strong>总结</strong></h3>\\n<p>本次使用亚马逊云的 Amazon DynamoDB 数据库来搭建公司的仓储管理系统让我学到了很多的东西,我是一名前端开发人员,平时接触数据库会比较少,但是从入手 Amazon DynamoDB 到使用,我也仅仅花费了几天的时间,这一切也都得益于亚马逊云对于自家产品的严格要求,从文档到示例教程,字字珠玑,因为我也是受益匪浅,以后也会更多的使用亚马逊云相关的产品。</p>\n"}