15

文/曹文斌

Native App和Web App孰强孰弱?Web App是否在将来能取代Native App?这一直是移动互联网从业者讨论的话题,本文将从架构的角度来进行分析。 阅读全文 »

标签:
阅读:18,615 次
14

文 / 杨丰盛

游戏是一门综合的艺术,作者以铸剑为喻,形象地展示了移动游戏架构的艺术之美。

艺术是人的知识、情感、理想、意念综合心理活动的有机产物,是人们现实生活和精神世界的形象表现。文学可以是艺术,雕塑可以是艺术,音乐可以是艺术,电影可以是艺术……那么游戏呢?

游戏是一门综合的艺术

无论是单机游戏还是网络游戏、PC游戏还是手机游戏,都需经过如图1所示的逐步进化的过程。pic1

图1  游戏研发的流程

任何一款游戏,都有故事情节、人物、场景、音乐和音效等内容,因此其中每一部分内容都需要追求以艺术化的手段,将游戏的意象情景更生动地展现给用户。作为程序员的我们,之前可能只是以为只有策划人员需要通过艺术来表达游戏的内容、测试人员需要带着艺术去欣赏并完善游戏的体验,那么程序员对游戏的架构和艺术之间又是怎么挂上钩的呢? 阅读全文 »

标签:
阅读:13,565 次
23

主持人:冯大辉,现任丁香园 (http://www.dxy.cn)网站CTO。曾历任支付宝架构师、数据库团队负责人等职。

jiagoushi张宴:在项目的架构设计中,对于未来可能发生的需求变更,你是如何考虑的?如何应对?

岑文初:需求变更可以分为业务性和非业务性两类。

对于业务性需求变更,思维方式应当按如下顺序进行:

第一,是否已经有类似功能,需要做些改进就可以满足需求;

第二,没有类似功能,是否可以抽取部分已有功能,再做部分封装即可实现;

第三,完全没有可以复用的内容,考虑一下后续可能的业务需求。

也许上面的内容比较虚,但业务一定是根据场景来做出实际判断,而这三点其实就是一个理念——不断优化业务代码,复用的思考会促进不断地合理化结构(因为大部分情况下,复用性越小的代码其结构本身存在耦合性过强的问题)。

阅读全文 »

标签:
阅读:35,088 次
16

作者:Steve Mushero  译者:侯伯薇

总结了国内网络和游戏公司运行后端服务器过程中所得到的实践经验和教训。这些规则适用于日访问量从一万到上百万的大型系统。

在我们公司ChinaNetCloud,见过多种不同类型的网站和系统,有好也有差。其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 ;然而一般的系统都会有安全和性能上的问题,不能良好运行,也无法变得更流行。

在中国,开源的LAMP栈是最流行的网络架构,它使用PHP开发,运行在Apache服务器上,以MySQL作为数据库,所有这些都运行在Linux上。它是个可靠的平台,运行良好,是现在全球最流行的Internet系统架构。然而,我们很难对其规模进行正确的扩展并保持安全性,因为每个应用层都有其自身的问题、缺陷和最佳实践。我们的工作就是帮助企业用最低的操作成本来创建并运行高性能的、可伸缩的、安全的系统,因此对于这类问题我们有很丰富的经验。 阅读全文 »

标签:
阅读:14,185 次
22

提问嘉宾:

盛国军盛国军,上海麦考林信息科技有限公司首席架构师。曾历任8848软件架构师、光芒国际磊客中国技术总监。具有10年互联网和电子商务开发经验,5年软件架构师经验,3年两千万美金投资的大型网站技术总监管理经验。


回答嘉宾:

栾义来栾义来,凡客诚品(北京)科技有限公司项目管理&架构总监,领导技术项目管理部门和架构师团队。曾在金山软件、我有网、FastMobile中国担任技术总监、资深架构师等职位。在电子商务、移动互联网、ERP等领域有丰富的架构和技术管理经验。


盛国军:我们知道缓存能够提升性能,但缓存有个致命的问题,就是对事实数据的改变不敏感。如何保持和协调缓存数据和事实数据的一致性?


栾义来:首先要理解“业务敏感度”的问题,也就是说从业务的角度对于缓存和事实数据不一致的容忍程度,不同数据对于一致性的要求是不同的。举例来讲,用户评论对不一致是不敏感的,可以容忍相对较长时间的不一致,这种不一致并不会影响交易和用户体验。而产品价格数据则是非常敏感的,通常不能容忍超过10秒的价格不一致。

阅读全文 »

标签:
阅读:16,674 次
07

林昊(1)提问嘉宾:

林昊,网名BlueDavy,China OSGi User Group Director,淘宝网平台架构部架构师,个人的研究方向主要为Java模块化、动态化系统的构建以及高性能的大型分布式Java系统的构建。曾编写《OSGi实战》和《OSGi进阶》两篇Opendoc,为OSGi在中国的推广起到了很大的作用。


回答嘉宾:黄东(1)

黄冬,有多年软件开发、系统架构、系统运营的经验验。长期关注于高可用性、高可扩展性的系统架构设计。主持设计和运行过多个大型高容量产品和系统,也是中国FreeBSD、Python社区的发起者和积极参与者,也是国内啄木鸟(http://www.woodpecker.org.cn)社区的创始人之一。现在正在北京从事系统架构咨询及系统运营外包的的创业之路。


林昊:随着数据量的不断增长以及前端应用的不断水平扩充,数据库的压力会成为明显的问题,这个时候常用的方案是数据拆分,在数据拆分时有些什么较好的拆分方式,以及如何能够做到数据拆分后对已有程序不产生影响或产生很小的影响?

黄冬:这个拆分以应用的特性为主,从业务的特性出发更为重要,不是一个技术层面的通用解决方案,一般来讲先会从业务自身分析,已经有人总结过数据库做拆分的几种方式: 阅读全文 »

标签:
阅读:17,456 次
29

作者:Zee

这几天在考虑这么一个问题:测试被慢慢认可了之后,为什么测试的价值还得不到体现?为什么测试体系还是得不到广泛的推广?以下是我个人的一些分析。

测试体系的整体概念

一直以来,我都觉得这个问题挺概念化的,就是说出来后让人抓不住重点的感觉。要说某个具体的技术细节,很明确。比如说Weblogic的调优,可能会有人很快联想到:连接池、JVM、线程数等等。但是测试体系是什么?有点虚。

在多次听测试人员的报怨之后,我觉得现有规范可能是影响测试体系建设的第一要素。当然,领导还要强力支持。先说测试规范,后面再说其他因素的影响。 阅读全文 »

标签:
阅读:11,939 次
29

不久前,我们发表了支付宝架构师冯大辉提出的问题,并邀请了腾讯的研发总监王速瑜先生做出回答,下面登出本次问答的节选,希望广大网友和读者们积极参与,提出你们想要问的问题。

WSY

王速瑜,腾讯 R&D研发总监,从事产品研发和管理工作,对互联网产品发展趋势、管理理念、技术架构有浓厚的兴趣和深入研究实践。目前主要关注敏捷开发、大规模应用架构、企业SAAS、Web2.0产品的相关技术和趋势。博客地址:http://blog.thinklet.net/mantian/

冯大辉:假设一家C2C 网站,DB中某表存储买卖双方交易的数据信息,对于一条交易来说,买卖双方数据具有一定程度的耦合性,比如卖家的状态更新对应买家的状态也会更新,对于一个中大规模的电子商务网站,架构师在设计中如何考虑数据分片的问题(假定该表随着数据的膨胀必须拆分)?

王速瑜:对于一个中大规模的电子商务网站,随着网站的不断发展,其相应的数据规模会不断膨胀。数据分片技术是使网站得于实现可扩展性的一种常用解决方案。对于C2C类型的网站,由于交易记录不容易进行水平的数据分割,因此对于这样的应用处理要在进行细分:

  1. 买卖双方交易的信息,具备较高的时效性,即交易全部完成后就不会再有更新,因此这部分数据可以与正在交易中的数据区分开来,并可以单独分表,定时归纳。具体的做法可以采用水平分割的数据分片技术,比如可以根据用户号码段范围进行切片,把不同的群体划分到不同的 DB 上,这样可以很好的进行横向水平扩展(Scale Out)。它可以很好的突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。
  2. 对于正在交易中的数据,主要根据时间进行分表。如果分的更细,则可以分三个表,但是这样在事务保证方面则要复杂很多,不建议这样做

冯大辉:技术团队在开发过程中是否进行集成测试? 进行与否的理由各是什么? 对于集成测试你是否有其他补充? 阅读全文 »

标签:
阅读:31,422 次
28

【独家专访】从20台服务器到5000台服务器,应该说,校内网的IT基础设施的变迁是与其自身的业务发展成正比的,而每一次的业务突破实际上也是对数据中心的一个挑战。传统的IT基础建设模式,现在、将来又当如何适应SNS类网站的发展?从记者此次与校内网技术总监黄晶的对话中,也许我们可以了解一二。

【嘉宾简介】

黄晶
千橡集团校内网高级技术总监

工作背景:
高级技术总监,校内网技术总监,猫扑网
教育背景:
清华大学计算机系
简介:
投身Web2.0和SNS事业,秉承以用户价值为核心的理念,坚信社交网络将像空气和水无所不在
推崇以简约架构取得最大收益的技术路线,积极推动互联网开放平台和开源项目的发展和应用
带领校内网技术团队,实现校内网的稳健、高速发展

从20台到5000台服务器

       作为校内网的CTO,黄晶对过去几年校内网IT基础建设的过程历历在目。

       “如果要把这个历程分成几个阶段,那么在我看来,校内网的IT基础设施建设目前经历了三个阶段”。

       黄晶对Csdn记者谈到,第一个阶段是校内网创业的阶段,那时候,校内网的主要推广对象是国内比较好的一些高校,但数量很有限,用户数不太多,访问量也不大,因此,当时选择了一个IDC并租赁了20台左右的服务器。

       “随着业务的发展,校内逐渐把业务覆盖到了全国,与此同时,数据量可以呈现几何式的增大,带宽与存储迎来了瓶颈,因此在那时候,公司开始寻找新的IT基础架构解决方案,并因此而找到了世纪互联做服务器的托管,几年的时间,服务器的数量从几十台上升到了近5000台。”

       “但问题也随之出现,虽然带宽够大,但是找IDC托管的这种运营方式成本太高了,尤其是对校内这种已经有一定规模的SNS网站来说,因此,后来直接找到了网通与电信的机房,将服务器托管到这里,以DNS访问流的形式来解决。

数据集中与分散的问题

       “从目前来看,异地数据中心之间的联系是个很大的发展瓶颈”,黄晶表示道,目前校内的两个主力机房,一个在电信一个在网通,从服务质量来说,目前是非常好的,但是也有发展的局限性,“比如现在对一些象视频、图片的服务内容,目前是通过CDN的解决方案,在全国各地建点,这样全国各地的用户都能够体验到SNS的高速服务,但这当中有很多还可以优化的空间,比如带宽量太大、数据集中化的问题等等。” 阅读全文 »

标签:
阅读:20,749 次
28

本文来自http://www.luanxiang.org/blog/archives/605.html,作者 余晟

 

beta技术沙龙越办越有意思了,上次错过了阙宏宇的mod_cache(还有关于线程进程的讨论)就很可惜,这次关于Lucene的演讲,是无论如何不应该错过了。

到目前为止,全文检索已经完全不算高技术门槛了,记得以前看过一本书里面写:“今天,任何程序员,都可以很容易地构造一个全文检索应用”。是的,全文检索的基本原理大家都知道差不多了,剩下的只是实践。我见过纯粹自己开发的,具有AS(Advanced Search)、BS(Basic Search)、DI(Digest)等结构,“像模像样”的全文检索架构,不过应用更多的,却是在开源项目上完善、定制而来的,Apache的Lucene就是众多开源全文检索项目中,名气最大、资格最老、应用也最广泛的一个。本期beta技术沙龙,讲的就是大型网站中lucene的应用,主讲人是手机之家团队的唐福林(“手机之家”总是有些东东来共享,比如上次的DAL,这真是不错)。

众所周知,用Lucene构造一个“索引-查询”的应用是非常简单的,搭好环境,参照(修改)示范代码,很容易就可以成功。但是,要构造一个真正大规模、稳定、可靠的应用,就不说这么简单。程序的编写、模块的分布、架构的设计,都有许多费心思的讲究。按照PPT提供的数据,手机之家目前的Lucene应用,采用的是Lucene 2.4.1 + JDK 1.6的组合,运行在8 CPU, 32G内存的机器上,数据量超过3300万条,原始数据文件超过14G,每天需要支持超过35万次的查询,高峰时期QPS超过20。单看这些数据可能并没有大的亮点,但它的重建和更新都是自动化完成,而且两项任务可以同时运行,另一方面,在不影响服务可靠性的前提下,尽可能快地更新数据(如果两者发生冲突,则优先保证可用性,延迟更新),其中的工作量还是非常大的。 阅读全文 »

标签:
阅读:10,883 次
preload preload preload
京ICP备06065162