十一 30

程序员1012封面-da本期封面报道:10年
2000至2010年,CSDN从一个普通的技术支持论坛成长为全球最大的IT中文知识服务集团,而在这10年的时间里,中国的IT产业格局、IT技术对人类社会的影响也发生了翻天覆地的变化。为此,本期封面报道聚焦“十年”,特邀来自业界顶尖的专家和研究者,沿着CSDN的成长脉络,向您勾勒过去10年来,中国软件产业的内在运行规律和生态链特征,并预测未来10年的全新发展趋势。
(1)十年
(2)CSDN十年
(3)中国网站十年
(4)企业信息化十年
(5)个人软件这十年
(6)十大最具技术影响力产品(国外)
(7)十大最具技术影响力产品(国内)
(8)十大最具技术影响力人物
(9)未来十年的软件研发
(10)云计算未来展望:云计算,谁的机会?
(11)产业融合将成为主流——记未来10年的移动互联网
(12)游戏开发者的觉醒——看未来10年的中国游戏产业 阅读全文 »

标签:
阅读:152,327 次
十一 24

文/余庆

FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google FS以及FastDFS、mogileFS、HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

FastDFS的设计理念

FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。和现有的类Google FS分布式文件系统相比,FastDFS的架构和设计理念有其独到之处,主要体现在轻量级、分组方式和对等结构三个方面。

轻量级

FastDFS只有两个角色:Tracker server和Storage server。Tracker server作为中心结点,其主要作用是负载均衡和调度。Tracker server在内存中记录分组和Storage server的状态等信息,不记录文件索引信息,占用的内存量很少。另外,客户端(应用)和Storage server访问Tracker server时,Tracker server扫描内存中的分组和Storage server信息,然后给出应答。由此可以看出Tracker server非常轻量化,不会成为系统瓶颈。 阅读全文 »

标签:
阅读:114,406 次
十一 24

文 / 李晓栋

记得上大学时,我和好友老郭讨论最多的话题便是:“像新浪这样的网站是如何支撑如此巨大的访问量?”也曾通过各种手段,猜测新浪服务器的数量、操作系统和应用软件的版本……一切都是那么神秘。毕业那年,有幸加入新浪,终于一点点地揭开了这层神秘的面纱。2004年某厂商设备介绍会上,我初次接触到了负载均衡技术。之后的几年时间,可以说是负载均衡设备在网站推广的黄金爆发期。

发展到今天,一方面硬件设备依然保持了强劲的实力,另一方面以LVS、Haproxy为代表的软件负载均衡也异军突起,被人们所认可。在新浪,软、硬件负载均衡并存的格局已有三年多的历史了,除了既往积累的经验外,近一年来,我们也看到了负载均衡所面临的一些新挑战,在此跟大家分享。

挑战一:Web应用对七层交换的依赖度越来越大,显著增加了负载均衡器的压力。

七层交换技术的引入,极大地解放了架构师和程序开发人员,同时也使我们越来越习惯依赖于它,甚至直呼上瘾。很难想象,如果没有负载均衡器的话,现有Web架构中的大量需求应该如何实现? 在充分享受其便利性的同时,我们也看到了一些隐忧。一方面越来越多的流量正从四层交换转为七层交换;另一方面七层交换的规则也越来越趋于复杂。在双重作用下,负载均衡器的压力急剧上升。对于任何一台负载均衡器来说:支撑相同的请求量,七层交换所消耗的CPU要远远高于四层交换。特别是在瞬间高并发连接的突发流量面前,负载均衡器面临着严峻的挑战。 阅读全文 »

标签:
阅读:34,182 次
十一 24

历史

随着Google Chrome浏览器攻城略地,市场份额逐步提升,其使用的WebKit网页渲染引擎也逐渐步入开发者的视野。在国内越来越多的第三方浏览器厂商开始尝试使用WebKit渲染引擎,并结合中国的具体国情(网银插件使用ActiveX,网页使用大量的IE专有技术扩展)提出了双核(双渲染引擎)浏览器的概念。双核浏览器通过巧妙的技术手段绕过了切换浏览器带来的用户身份的重新认证等诸多问题,在速度与兼容性方面实现了平衡。

双核浏览器并非新概念,早在2005年,浏览器大战烽火重新燃时,WebKit引擎还是Apple和Linux以及移动设备上的小众渲染引擎,而Mozilla的Gecko引擎是唯一成熟的开源浏览器渲染引擎。 日本就有一家浏览器厂商Sleipnir推出了基于Gecko渲染引擎的双核浏览器。在Firefox方面,则有IE Tab等扩展,可以在Firefox浏览器中使用IE的Trident渲染引擎。在某种意义上,国内一些爱好者打包的包含IE Tab扩展的Firefox发行版,也是一种双核浏览器。

随着Google Chrome 在2008年的推出,WebKit引擎在Windows的系统兼容性和稳定性有了非常明显的提升,使用WebKit引擎作为普通用户日常工作使用的浏览器渲染引擎渐渐成为了一个可能的选择。国内也涌现出了很多以WebKit为主要渲染引擎的浏览器,主要的有Maxthon 3、Sogou浏览器、QQ浏览器(测试版)等。在技术架构上,这些基于Chrome或WebKit的浏览器都或多或少地参考借鉴了Chrome设计的多进程架构。默认都支持多进程浏览、崩溃恢复和防假死等特性。 阅读全文 »

标签:
阅读:16,491 次
十一 19

■ 文 / Peter Seibel 译 / 郝培强

本文是Commmon Lisp专家Peter Seibel对Google公司首席Java架构师Joshua Bloch的访谈,谈到程序员应该看什么书、如何能快速熟悉一种新语言以及为什么说选择编程语言就像选择酒吧。

Joshua-BlochSeibel:你是怎么开始编程的?

Bloch:我想这是受益于我的家庭影响。我父亲是Brookhaven国家实验室的化学家。当我上小学四年级的时候,他参加了一个程序设计培训班。当然在那个时候,电脑都是放在玻璃窗背后的大型机,你只能把写好的程序卡片交给操作员。虽然没法儿亲自动手,但我还是被电子计算机可以帮助你做事儿这一点震撼了。所以,我在父亲上课的那段时间,跟他学了一点儿Fortran。

Seibel:那大概是哪一年?

Bloch:我想是1971年。直到很多年以后我才真的对程序产生了强烈的兴趣。让我产生兴趣的当然是分时系统。长岛有一台DEC system-10电脑,供Suffolk县内所有的学校使用。Nassau县也有一台。很神奇的是,很多著名人物的事业都是从这两台DEC system-10电脑开始的。

你的程序一旦有交互,就会有Bug。大概是从1973~1976年,那时候我跟其他人一样,在写BASIC程序。我就是从那时开始正式写程序的。你知道吗,我还保存着当年写的程序,是印在电信打印纸上的。如今回头再看这些程序的时候我发现,我代码风格中的某些部分从那个时候起就一直没变过。 阅读全文 »

标签:
阅读:28,675 次
十一 18

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

架构师2邝宇恒:在架构设计上,你们是否已形成某种设计风格或设计惯性?如何评价这种风格或惯性的影响?

侯震宇:设计风格不敢妄谈,不过我们在设计上确实存在一定的惯性思维。比如哪些类型的服务应该使用数据库,哪些不应该使用。惯性思维是建立在成功经验积累之上的,这在很大程度上简化了我们的设计工作并降低了引入新技术(这里指与习惯不同的技术)可能带来的风险。

但惯性思维往往阻碍了我们的技术发展。比如长期以来我们认为数据库的性能是相对比较差的,不足以满足很多业务的大压力的读请求,于是我们在一开始系统设计时就对服务架构设计了拆库拆表的支持,增加了系统的复杂度。这时惯性思维会让我们认为这样设计合情合理,不会进一步考虑是否有更好、更简单的设计。但在SSD引入可以解决高并发的随机读问题后,原先的系统认识已经不存在了,设计可以大大简化了,这时我们的惯性思维是必须打破的了。

所以作为一个架构师,我们要非常清楚,所有的设计都是建立在一些假设条件和系统规模之上的。当系统规模变得超出早期设计的假设条件,或者一些外部新技术打破我们早期的一些认识时(如SSD的引入对存储系统的冲击),惯性思维就必须打破。

邝宇恒:对某个特殊需求,是采用修改定制已有开源软件,还是采用从头自主开发的方式实现,应如何权衡考虑?

侯震宇:这个还是要具体情况具体分析。要根据需求的重要性、紧迫性和特殊性以及可能适用的开源软件的成熟度、复杂度以及我们的开发人员的熟悉程度等方面综合考虑。特别是开源软件的成熟度和社区的活跃程度,如果这两项比较差的话,那我们对此开源软件仅仅会是关注。

这里我只谈谈我们对开源软件的态度和使用情况。一般来说,我们的工作思路是首先明确自己的需求是什么,然后再调研是否有合适的开源软件可以满足或部分满足我们的需求。如果完全满足,我们会再看这个开源软件的成熟度和社区的活跃度,都没有问题的话我们就会直接使用。如果只是部分满足需求,我们会根据实际情况选择引入修改代码或参考重新设计的思路,这要从此软件与需求的差距点具体来看。 阅读全文 »

标签:
阅读:27,496 次
十一 18

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

架构师侯震宇:在编程模型上,您认为如何能够更好地利用多核以及多机环境?

潘晓良:我是把它分成两个问题来看的:一个是多核问题,另一个是多机问题。

对于多核问题,我是一个实用主义者,真的不想在上面有所投入。我把多核环境认为是操作系统应该完成的事情,相信微软和Linux的那些内核朋友们都在为此而努力,因为他们是专家。但看着几个核的资源分布严重不均,一颗累死,十一颗闲死,资源实在太浪费了,怎么办?让系统工程师来搞定吧,就是多跑几个进程,最简单的例子就是一个机器上起多个Memcached、多个Search、多个MySQL,既然操作系统无法把一个进程很好地分到多个核上去,那么我们就用人为的方式来做一些,这虽然不能彻底解决多核效率的问题,但是至少缓解了一点。而且据我所知,很多公司都是这么做的。

对于多机环境,按我的理解,问题只有一个,就是数据访问必须是共享的,对于一个Pool中的Web服务器,它不能使用Session,也不能把数据放到本地文件中,因为不知道下一次访问会不会命中自己,包括本地缓存,随着Pool中服务器数量的增加,命中率随之下降。虽然以上的问题可以通过负载均衡的固定Session方式或者URL映射的方式来做,但是它可能造成服务器的压力分配不均,后面带来的问题可能更多。所以我们的方式就是禁止直接使用Session等本地资源,使用上面一层的虚拟对象,由虚拟对象来控制数据访问,而使用共享的Cache来实现Session的基本功能。

侯震宇:在纯代码层面上,您的团队是否有规范以确保大范围的代码组织结构是统一的。比如有项目的lib、include目录和基础库等。你们是否实现了一个统一的编码编译环境?有什么困难?

潘晓良:对于百姓网来说,因为我们只有一个产品,基本上还没有多项目的问题,但是我想这个问题的关键还是在编码规范上,在于代码的质量和不断增长的代码数量之间的矛盾的问题。关于这个我们做了以下几个事情。

由Developer们讨论出来的编码规范。规范的事情是这么写也对,那么写也对,但就是要争取大多数一致,所以我们的规范是Developer们一起讨论出来的。

标明代码责任人。以前我们的代码是按照模块划分的,但是人会换模块,后来就会多出来很多无主代码,这些无人维护的代码,不仅容易出现Bug,而且增加了阅读成本,所以必须清理掉。

每日上线的时候把每个人的代码数量统计发出来。我们认为代码的少就是多,每个人有责任控制自己代码的数量,是多是少大家都要看见。 阅读全文 »

标签:
阅读:28,917 次
十一 17

每次微软高层抱怨中国的盗版问题给他们带来了巨额损失的时候,就会有人站出来说,微软的产品被盗版是因为价格太高,中国的盗版率一直在大幅下降等。每当有这样的新闻的时候,很多人想的也许是,多好啊,我们每年省了多少钱啊。

不光是普通民众,甚至可以说是绝大多数IT人士也都持有类似的观点,甚至可以说绝大多数的软件开发人员也是如此。那么这种便宜美事儿真的没有任何后果吗?

我不这么认为。表面上看,盗版对微软的伤害最大,从绝对数值上看,每年至少是上亿美元的损失。但是,对于微软这样的企业来说,少了这些钱真不是大事儿,而且在中国的高盗版率不会影响微软产品在美国及世界其他主要市场的销量。

实际上,盗版对中国软件厂商的打击才是最大的。最典型的例子就是金山,这家一直致力于民族软件的公司,从来就没有从国内市场获得过应得的回报。这么多年风风雨雨下来,金山终于上市了,但是上市是靠网游,而不是软件。

前些日子的一个无聊新闻是这种悲惨实现的最好写照:有传闻金山在日本免费发行金山毒霸,有人称金山用中国挣的钱补贴日本用户是卖国。 阅读全文 »

标签:
阅读:23,655 次
十一 16

2000至2010年,CSDN从一普通的技术支持论坛成长为全球最大的IT中文知识服务集团,而在经历的这10年左右的时间里,中国的IT产业格局、IT技术对人类社会的影响也发生了翻天覆地的变化。

为此,《程序员》杂志2010年12期封面报道将以“10年”为主题,勾勒过去10年里,中国软件产业的生态链,并预测未来10年的全新发展趋势。

本次报道的主要内容如下:

一、CSDN发展历程综述

包括CSDN、《程序员》的发展史、标志事件、对业界的影响等等。

二、软件10年生态链

1. 网站10年

2. 软件10年(企业、个人软件)

3. 风险投资10年

4. 十大产品\十大人物评选 阅读全文 »

阅读:8,459 次
十一 16

从神州数码网络研发中心副总经理、质量管理部总经理,到现任联合永道副总裁兼CTO,冯国馨在产品研发、项目管理与团队管理工作具有丰富的经验。此外,作为美国PMI协会PMP认证专家,他对项目经理这一职位保持着持续关注。在他眼中,项目经理的角色像一名保姆,呵护着团队的健康成长。

记者:您认为做好项目管理的关键是什么?

冯国馨:我觉得,一个优秀的组织在项目管理方面需要有三个层次的建设:组织级、项目级和人员级。组织级指公司的监控体系,解决“如何管理多个项目”的问题;过程级指公司的过程规范,解决“如何做好一个项目”的问题;人员级指公司的培训体系,解决“如何提高人员效率”的问题。

首先,做好项目管理需要找到合格的项目经理,也就是在项目级找到合适的项目负责人。项目经理成功以后,自然会上升到组织级项目管理。在项目管理过程中,他会带动团队成员的工作,提升人员级的项目管理能力。第二,要找到适合自己公司的项目管理方法和体系。目前,国内充斥着CMM/CMMI、ISO、PMP等相关管理体系认证,而大多认证企业趋于形式化,真正有效落地实践的凤毛麟角。我通过和一些接受培训的企业界朋友沟通,发现他们非常认同这些体系模型的思想,同时更关注这些好的思想怎样落地和因地制宜裁剪。这个落地其实就是管理体系的建设。

记者:在项目管理中,目前一般会存在哪些误区?

冯国馨:首先,很多人错误地认为项目管理是项目管理部的事情。事实上,解决问题的关键在于找合适的人和方法。第二,趋向于某个认证,认为通过CMMI或ISO认证就能提高项目管理水平,拿过来就能帮助公司实现形象、能力上的提升。资质认证是有效果,但是一定要做适合本公司的裁减。第三,认为只需注重产品的开发和交付就可以。其实作为一个合格的项目经理,首先要有经营意识,要了解项目的由来、目标,以及如何实现这个目标。 阅读全文 »

标签:
阅读:13,013 次
preload preload preload
京ICP备06065162