OmniTI(web架构和工程公司)的首席执行官罗伯特·特里特认为AWS基础设施越来越流行为企业APP后端配置NoSQL数据库。企业架构师在开发能够从云计算中收益最多的数据库结构的时候,需要考虑各种各样的挑战并找寻最佳方案,这些挑战包括AWS的短暂性、Noisy Neighbors带来的问题、潜在的AWS托管基础设施之间的细微差别、以及NoSQL软件实现的差异。
Aerospike(数据库软件供应商)的创始人兼首席技术官Brian Bulkowski宣称尽管存在这些挑战,但是AWS拓展性非常好,公司依然决定使用NoSQL。他表示,最近在公司运行一个亚马逊C3.8x大型实例仅需1.68美元/小时的Aerospike数据库服务器上,内存每秒能够处理100万个事务。“这是一个令人难以置信的取得高绩效的实惠模型,这为初创企业和大型企业都推出新的实时响应的网络和移动app提供了一个机会”。
但是Bulkowski发现虚拟化运行和与Noisy Neighbors共享基础设施成为亚马逊最大的挑战之一。这将导致共享基础设施上的其他应用程序性能不一致。开发者也面临可靠性的挑战,这需要在不同的数据中心维护服务器,以确保正常运行时间。
Starcounter(数据库软件供应商)的开发主管Dan Skatov表示AWS平台提供了大量构建数据库应用程序的服务。开发人员面临选择一个合适的服务组合的挑战。例如,开发人员需要理解AWS SimpleDB和AWS DynamoDB之间的差异,并能够在开发初期弄清楚这些细节。
短暂的云
Couchbase(NoSQL数据库软件公司)的高级产品营销经理Shane Johnson认为使用AWS的另一个挑战是实例依赖短暂、高性能存储。如果一个实例停止了,那么它的数据会丢失。如果没有合适的工具,添加新的实例到现有的部署中就需要手动进行操作了。
用户可以复制数据到多个实例以确保数据不会因故障丢失。Ansible和AWS CloudFormation能自动添加新实例到现有配置。Couchbase服务器备份工具(cbbackup、cbrestore和cbepctl)能创建数据快照。快照可以放在亚马逊固块弹性存储卷用于数据灾难恢复。
动态的云
Redis Labs(数据库软件服务公司)的联合创始人兼首席执行官Ofer Bengal认为使用AWS的好处之一是它为开发和配置应用程序提供了一个简单的抽象层。因为很难看到底层是怎么回事,这可能为操作和性能制造问题。每一个云都是异构的,尽管普遍认为分布式数据库运行在非专业化,相同商品的计算节点。
为资源调优系统是必不可少的,但非常耗时。每一个云是独一无二的,并提供不同的计算、存储、网络和其他服务。同样重要的是要明白AWS基础设施是由分布式数据中心组成的,即使是相同的数据中心,他们也可能不同。
“为了获得最佳结果,你真的需要知道你在做什么。”Bengal补充道。解决数据中心差异的一种方法是解决他们和企业内部IT资源的问题。这是推荐的保守路线。此外,许多NoSQL管理服务和产品可以将这些复杂性作为服务问题解决。
尽可能自动化
OmniTI公司的Treat表示,在像AWS一样动态的环境中工作的一个最重要的技术是使用脚本和自动化技术来设置新环境。这包括在非生产环境中开发工具集来重建环境,这样开发人员可以看到系统怎样一起运作。
此外,深度监测建议提高每个架构不同组件的可视性,特别是对故障诊断目的。如果架构设计正确,应该可以完全可视这些变化的任何影响,转入和转出新节点和更新代码到系统。该功能可以帮助工程师们对他们做出的这些变化更有信心并最小化生产服务损坏。
自动化一直是系统管理员最喜欢的技术,像chef和ansible这样的工具产生了显著的效果。给系统工程师一个共同的平台来开发。这些工具不仅有利于自动化,还提供实际文档,包括在GitHub可用的工作代码片段(以代码的形式),以及在需要的时候为创建新环境提供强大的重复性。
在监控方面,类似Circonus这样的新工具以及statsd(一个数据聚合的守护进程)和ganglia(一个可伸缩的分布式监控系统)这样的开源工具,正专注于让应用程序开发人员更容易编写更可操作的代码,可使用的开放度量,提醒监测和故障诊断问题。这些工具集成系统监控来提供一个更全方位了解幕后,同时最小化对生产系统影响的视图。
注意NoSQL工具之间的差异
Orchestrate.io(可在AWS运行的数据库服务供应商)的首席运营官兼联合创始人Matt Heitzenroder说,现在有超过20个NoSQL数据库,每个都有自己的优势和特色。在特定需求中,新手很难区分使用哪个数据库。每个数据库都需要一定程度的专业知识来有效地构建和管理。
重要的是要了解什么问题需要数据。大多数需求要求全文搜索,时间序列(基于时间的数据分析),结构图,地理空间分析和专门报告。除了查询类型,确定哪个数据库如特定应用一样拥有最多的生产用例同样重要。另一个需要考虑的是每个数据库失效模式的风险,以及这将如何将影响业务。
原文链接:http://searchaws.techtarget.com/tip/What-to-consider-when-provisioning-NoSQL-databases-on-AWS
如您需要了解AWS最新资讯或是技术文档可访问AWS中文技术社区;如您有更多的疑问请在AWS技术论坛提出,稍后会有专家进行答疑。
订阅“AWS中文技术社区”微信公众号,实时掌握AWS技术及产品消息!
AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯、技术视频、技术文档、精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术。
(译者/王扬帆 责编/王玉平)