领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 侯伯薇 发布于 2009年11月16日
随着计算机各种硬件以及网络设备的不断更新换代,以及互联网上的Web 2.0形式的网站的出现,大型网站架构的设计和实现方面都有了很多新的变化,在《程序员》杂志官方网站发布的《架构师接龙:黄冬&邓毅》一文中,两位拥有丰富系统架构经验的架构师,国内啄木鸟社区的创始人之一黄冬和网易有道的CTO邓毅,以问答的形式对当前形势下对大型网站的设计和实现方面的问题进行了深入的讨论。
首先是针对如何充分利用服务器的带宽的问题。十年前的网络带宽还只是10M,而现在的网络带宽已经扩展到千兆甚至更高,如果架构仍然采用旧的方法,那么就必然对带宽造成浪费,就好像是已经修好了高速公路,却只允许在上面骑自行车一样。但如何能够充分利用这些带宽呢?一种方法是将多台机器通过网络联合起来,组成分布式的存储系统。另一种方式是让客户端程序来更频繁地与服务器交互。之前的程序经常是让服务器一次完成尽可能多的工作,然后再将结果返回给服务器,采用这种方法的原因就在于网络带宽太窄,如果频繁地进行交互就会造成网络的阻塞。然而,不可避免,这经常会造成服务器的负担过重,而客户端的负载很小的情况。在网络带宽有了极大改善的现在,我们似乎可以尝试改变之前的做法,通过更频繁地在客户端和服务器之间进行数据交换来降低服务器的负担。
在很长的一段时间内,很多网站都是使用基于四层、七层的负载均衡交换作为负载均衡的解决方案,然而,现在随着硬件的发展,服务器的计算能力也有了很大的提升,从而使得这样的解决方案成为架构中的瓶颈,如何解决这个问题呢?这就需要对业务流程和用户访问行为做更细致的分析,先找到瓶颈,然后寻找解决的办法。一般来说,负载均衡带来最大的问题就是为了保证各个负载服务器上数据的一致性而做的运算,有些情况下,这些运算不仅不会提高性能,反而会降低系统的性能,此时可以试着把相关的数据放在缓存当中,从而避免重复、冗余的计算。但是这样的做法也不一定会解决瓶颈问题,在不得已的时候,文中提到了妥协的方法。
再进一步,如果还存在瓶颈,就可能需要在系统架构的层次做妥协,比如通过牺牲一定程度上事务的一致性换取更高的性能。
此外,由于当前的信息不再局限于文字,图片、音频、视频的数据使得当前网站服务器需要存储大量的数据,并且对于这些数据经常会进行复杂的计算,比方说对数据进行分析,以期对今后的形势进行预测。这些都对系统的架构提出了严峻的挑战,而针对具体的情况,也产生了很多优秀的解决方案,比方说最近兴起的NoSQL运动对于解决大数据量的存储和处理就是非常好的方案,它采用的是一种分布式的Key-Value结构,即使对50G的数据进行存取和处理,也能够在很短的时间内完成,而这正是大型网站所需要的。
另外,两位架构师还讨论了垂直搜索引擎的问题,越来越多的网站开始采用这样的搜索引擎来弥补传统搜索引擎的不足。但是它还不能成为网站的核心价值所在,因此可以直接使用网上的一些开源项目,那样就可以用最低的成本达到想要的目的。
随着各种环境的不断变化,系统的架构也必然会随之不断变化,让我们拭目以待。
侯伯薇 是InfoQ中文站架构社区编辑,有多年对日和国内项目开发经验,目前关注企业中技术与实际业务之间的融合和协作。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
2 条回复
关注此讨论 回复