架构、设计、演化
2012年应朋友之约参加QCon北京技术大会,主持“优化你的架构设计”主题,成文一篇,大家还有哪些点想在这个主题里听到,可以直接回复评论,包括希望听到哪些公司的分享,将勉力满足。
设计是软件之源,架构是软件之本,本主题主要介绍如何进行现代复杂系统的架构设计和优化。
软件架构是用来描述软件系统框架的语义,它包含了软件系统主要的决策信息,包括软件元素的如何组织,如何实现预期的功能、性能、可靠性和质量等,还包括技术选型,集成性,扩展性,一致性等内容。
随着技术的发展,架构的含义变得更加丰富起来,远远超过早期定义。MDA(模型驱动架构)是一种架构、SOA(面向服务的架构)是一种架构,云计算平台也是一种架构。到了2012年,架构变得前所未有的复杂,各种技术和应用纷至沓来。除了功能性需求之外,客户对于安全,性能,大容量,大并发等特性愈发关注,架构设计将以数据为中心、以用户为中心、以服务为中心形成全新的生态环境。如何处理复杂的业务逻辑?如何处理超大容量和超大并发的需求?这些都是对现代架构师的巨大挑战!
架构设计演化到今天,有一点没有改变,那就是架构是基础设施,可以通过各种方式为该领域的上层建筑提供服务。设计需要关注效用和功能,同时也需要关注效率和优雅的实现方式。
同时,也没有哪个架构是一成不变的,架构与变化相伴而生。没有一蹴而就的架构设计,架构的演化从架构诞生之日起就开始了,无论是国外的Facebook、Twitter,还是国内的淘宝、微博,他们的架构无时不刻不在调整和优化,一代又一代的架构变迁支撑了他们复杂的业务和容量的不断增加。
我们试图回答的问题包括:
1、如何从架构设计层面支持复杂业务逻辑系统的要求?
2、如何设计一个能够应对超大容量和并发的系统架构?
3、企业应用架构和互联网应用架构有什么不同?
4、在云计算和大数据时代,系统架构设计如何演变?
5、大数据胜于好算法,更多的数据总能带了来更好的应用效果,如何从架构层面管理这些数据?
6、分布式存储,Hadoop还是NoSql?
7、海量视频网站如何从应用服务器、视频技术和存储技术层面设计自己的系统架构?
8、金融类企业的系统架构设计要求?稳定还是发展?
还有那些问题或领域是您要关注的,请告诉我。
身边越来越多的人开始使用Mac,经常被问道Mac的使用问题和技术问题。遂决定,每天发布一则#Mac技巧#。同时发布于微博和微信公众账号“Mac技巧”,微信号sagacity-mac,有微信账号的童鞋扫描下图片或搜索微信号即可