领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 黄璜 发布于 2011年12月31日
赵钟秋,又拍网核心开发人员,关注多种计算机语言、Web技术和开源技术。他在QCon杭州2011大会的开放平台专题做了名为《又拍网架构中的消息/任务系统》的讲座,并和参会者做了热烈的讨论。会后,InfoQ中文站对赵钟秋做了采访。
InfoQ:又拍的图片云计算平台与一般的CDN有什么区别与优势?
又拍图片云计算平台是Amazon S3 + CloudFront 模式,因为源数据机房包含在整个CDN系统中(一般CDN服务源服务器往往在客户各自的机房),所以网络优化更彻底,达到整个CDN最佳效果。并且面对国内各省市之间复杂的网络结构,可以不断调整优化最佳链路(一般CDN服务,回源链路一旦确定,很少会再去为客户做变动)。另外,又拍在提供文件存储加速外,利用公司本身图片方面的技术积累,还提供一些特色功能:比如针对图片文件类型生成缩略图的功能,在线管理功能,防盗链功能等等。
InfoQ:又拍从什么时候开始使用Erlang,目前开发团队有多大规模,除了消息系统,Erlang还用在什么地方?给又拍带来了什么优势?
又拍从2010年初开始使用Erlang,我们并没有专门的Erlang开发团队(需要的时候由团队中1-2个人负责Erlang相关开发)。除了消息系统,我们的文件存储系统也是使用Erlang开发。我们喜欢用最合适、最方便的工具解决问题,我们认为目前在分布式系统的开发中,Erlang就是这样的工具。Erlang的引入也的确为又拍这样的小团队快速地开发高效的、稳固的分布式系统带来了可能性。
InfoQ:选用RabbitMQ的时候,与其它的消息系统比如ZMQ等等,怎么确定造型的呢,是否有实际的Benchmark例子?
选择RabbitMQ是2009年的事了,当时网站架构在做比较大的变迁。又拍原来的架构是基于Java的,那次的迁移是打算减轻对Java体系的依赖,而开源消息队列中比较有名的Apache ActiveMQ是基于Java的实现,显得太厚重,所以被排除在我们的考虑之外。另外,那个时候ZMQ还没推出。没有具体了解过ZMQ,以目前地认识来看,我认为它们之间也存在很大的差异。例如RabbitMQ比较完整的实现了AMQP协议,而ZMQ则提供了简单的接口,相比之下,前者显然比后者偏重。如果是比较性能,ZMQ会胜出是无庸置疑。后面我们会对ZMQ作进一步了解,因为它可能能和YPTask有一个很好的结合。目前我们也没有再使用RabbitMQ。
InfoQ: YPTask是在RabbitMQ上的包装吗?有哪些自己独特的地方,是否回馈开源社区?
YPTask和RabbitMQ没有任何关系,实际上YPTask并不是消息系统,确切地讲应该是一个基于消息的远程方法调用系统。YPTask是基于Erlang的OTP实现的,本身就是一个很健壮的分布式系统。它具备管理、配置外部工作进程的功能,而简化了消息队列地实现。外部工作进程不是通过网络接口与YPTask通信的,而是通过标准输入/输出。所以理论上后端的工作进程可以用任何语言实现,只要它支持Erlang的序列化方式BERT。事实上,BERT的其它语言实现已经非常丰富。更重要的是,YPTask作为一个中间层次的系统,把大多数的配置和管理工作统一起来,极大地减少了业务代码需要处理的事,使得业务逻辑的开发和管理都变得很简单。我们会将这个工具进行进一步的调整和完善,并在合适的时候将其开源。
InfoQ::Erlang与Python、PHP的通信是怎么做的呢,RPC是使用Thrift还是其它的例子?
目前Erlang与工作进程(主要由Python开发)是通过Erlang的内置序列化方式BERT进行通信的,与PHP则是通过JSON-RPC通信的。考虑到我们系统的迁移,目前只实现了这两个对我们来说最合适的通信方式。不过我们打算加入更多的外部通信协议,比如msgpack,protobuf等等。
InfoQ:之前知乎使用又拍时曾出现一些故障,现在在安全性可靠性上,主要有哪些保障?
知乎在使用过程中出现的故障是由于他们对API的使用不当造成的。他们将需要认证的API请求放到客户端发送,导致向客户端泄漏了API的认证信息。从又拍的角度看,这也反映出之前的API功能还不够丰富,调用不够方便等问题。我们也会在这个方面投入更多的精力。
InfoQ:又拍的消息系统的规模有多大,下一步会怎么发展呢?
目前又拍的消息系统规模不算太大,每天由5个节点处理大约500万条消息。目前这些节点的压力并不大。下一步的发展还要看网站的发展情况来确定。
InfoQ:除了消息系统外,整个又拍架构中还有哪些优秀的地方想和读者分享?(又拍曾分享过分库设计)
又拍也是较早在架构中引入Redis的站点,可能的话可以分享一下相关经验。
黄璜 糊口靠的是Java Web,赶过SOA的潮,追过Cloud的风,真正欢喜的是Linux,向往的事情是研究网格计算。
在实施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 条回复
关注此讨论 回复