http://www.infoq.com/cn/news/2015/11/Elastisys-cloud
Elastisys云平台诞生于瑞典默奥大学的分布式系统研究小组。它由一组以预测性扩展引擎为中心的工具组成,可以自动扩展云部署。近日,其官方网站发表了一篇文章,介绍他们在高可扩展分布式应用程序设计和开发方面的经验。
他们将可扩展性分成了如下四个维度:
性能可扩展:性能无法完全实现线性扩展,但要尽量使用具有并发性和异步性的组件。具备完成通知功能的工作队列要优于同步连接到数据库。
可用性可扩展:CAP理论表明,分布式系统无法同时提供一致性、可用性和分区容错性保证。许多大规模Web应用程序都为了可用性和分区容错性而牺牲了强一致性,而后者则有赖于最终一致性来保证。
维护可扩展:软件和服务器都需要维护。在使用平台&工具监控和更新应用程序时,要尽可能地自动化。
成本可扩展:总拥有成本包括开发、维护和运营支出。在设计一个系统时,要在重用现有组件和完全新开发组件之间进行权衡。现有组件很少能完全满足需求,但修改现有组件的成本还是可能低于开发一个完全不同的方案。另外,使用符合行业标准的技术使组织更容易聘到专家,而发布独有的开源方案则可能帮助组织从社区中挖掘人才。
以上各项,他们在设计应用程序时都会考虑和权衡。下面是他们根据上述内容总结出的10个设计原则:
避免单点故障:任何东西都要有两个。这增加了成本和复杂度,但却能在可用性和负载性能上获益。而且,这有助于设计者采用一种分布式优先的思维。
横向扩展,而不是纵向扩展:升级服务器(纵向)的成本是指数增长的,而增加另一台商用服务器(横向)的成本是线性增长的。
尽量减少应用程序核心所需要完成的工作。
API优先:将应用程序视为一个提供API的服务,而且,不假定服务的客户端类型(手机应用、Web站点、桌面应用程序)。
总是缓存。
提供尽可能新的数据:用户可能不需要立即看到最新的数据,最终一致性可以带来更高的可用性。
设计时要考虑维护和自动化:不要低估应用程序维护所需要的时间和工作量。软件首次公开发布是一个值得称赞的里程碑,但也标志着真正的工作要开始了。
宁异步,不同步。
努力实现无状态:状态信息要保存在尽可能少的地方,而且要保存在专门设计的组件中。
为故障做好准备:将故障对终端用户的影响最小化。
分享到:
相关推荐
另外,本书介绍了 Actor 模型的一个实现框架 Akka 以及它的工具,而后讨论了在充分利用 actor 架构的基础上使用 Akka 框架来设计软件系统的方法,以及使用它来开发并发性和分布式应用程序的方怯。本书还介绍了领域 ...
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...
分布式架构的核心思想是采用大量廉价的PC Server,构建一个低成本、高可用、高可扩展、高吞吐的集群系统,以支撑海量的用户访问和数据存储,理论上具备无限的扩展能力。分布式系统的设计,是一门复杂的学问,它涉及...
构建高可扩Web架构和分布式系统实战
#资源达人分享计划#
本文从 Hadoop 分布式 文件系统架构的建模入手,通过对模型各组成部分进行分析,并将其与传统的分布式文件系统进 行比较,总结出 Hadoop 分布式文件系统具有的海量、高可扩展性、高可靠性、高性能等面向云计算 ...
highdsa-分布式系统架构基于Spring,Dubbo,Spring MVC,ELK,ActiveMQ,Redis,FastDFS,Nginx,Zookeeper,RESTful,Maven,Mybatis,Druid等的一套高可用,高性能,高可扩展的分布式系统架构。
基于Dubbo、SSM、Shiro、ELK、ActiveMQ、Redis等实现的一套高可用、高性能、高可扩展的分布式系统架构,实现可支持业务的基础公共服务,API使用Restful风格对外暴露。已经实现的包括:发送邮件服务、….zip
应用架构之魂设计模式实战演练应用架构之魂设计模式实战演练 揭开springAOP神秘面纱(动态代理) Mysql性能优化之索引优化 写实现Tomcat服务器 移动后台端框架设计 公司级框架原理解析 解密公司内部框架开发(打造属于...
本文来自于csdn,介绍了Hadoop的原理,HBase的特点,HBase 的高并发和实时处理数据,数据模型...它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Lar
可以支持IOS,Android,websocket,PC 等多平台通信现如今只有多进程的架构才能达到支撑较多在线用户,降低服务器压力,降低单点故障所带来的影响等要求,因此一个真正高可扩展的游戏运行架构必须是多进程的。...
密钥放在独立服务器中,算法放在应用程序中。 信息过滤与反垃圾 文本匹配_敏感词过滤 正则表达式 trie树 双数组trie树 多级Hash表 信息降噪 分类算法_内容识别 黑名单 电子商务风险控制 ...
岑文初:淘宝开放平台架构设计与实践.pdf 丁伟:广域网优化、应用加速降低IT运维成本.pdf 李晓栋:探寻架构设计中的第六感.pdf 章文嵩:使用LVS集群架设高可扩展的网络服务.pdf 朱晓东:广域网加速的最佳实践.pdf
近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相 协调、互相配合,为用户提供最终价值.每个服务运行在其独立的...
近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互 相协调、互相配合,为用户提供最终价值。每个服务运行在其...
TDSS是一个高可扩展、高可用、高性能、面向互联网服务的分布式存储系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。它采用了HA架构和平滑扩容,保证了...
毕设项目,已更新所有开发和部署文档。基于Dubbo、SSM、Shiro、ELK、ActiveMQ、Redis等实现的一套高可用、高性能、高可扩展的分布式系统架构,实现可支持业务的基础公共服务,API使用Restful风格
采用多进程单线程的运行架构,扩展服务器非常方便, node.js的网络io优势提供了高可伸缩性。 使用非常容易, 开发模型与web应用的开发类似,基于convention over configuration的理念, 几乎零配置, api的设计也...