服务器 频道

SACC2013:初创IT技术架构及实践专场

  【IT168 现场报道】2013年9月4日到9月6日,由IT168、ITPUB、ChinaUnix主办的SACC2013第五届中国系统架构师大会在北京福朋喜来登酒店拉开序幕。大会将以“大数据下的IT架构变迁”为主题,邀请国内最牛的IT架构师与工程师们来分享他们最新的技术应用经验与成功案例。据了解,中国系统架构师大会自2009年首次召开以来,已经成功举办了四届,受到了业界的广泛关注和赞誉,并已经成为当前国内最高技术水准的架构师盛会。

  2013中国系统架构师大会继续围绕“云架构、IT基础架构优化、大数据下的IT架构变迁”三个热点话题展开。吸引了来自全国各地的架构师、工程师、开发经理、DBA、运维总监、CTO等的参与,为期三天的大会议程包含了14个专场的主题探讨,给大家更宽裕的学习交流空间和时间。本届大会也为大家安排了主题为《初创IT技术架构及实践》的专场。

  董成城:解读知乎网技术体系

解读知乎网技术体系

  知乎是一个真实的网络问答社区,社区氛围友好、理性、认真,连接了各行各业的精英。他们分享着彼此的专业知识、经验、见解,为中文互联网源源不断地提供高质量的信息。“在这里,发现更大的世界。”

  一个人大脑中从未分享过的知识、经验、见解和判断力,总是另一群人非常想知道的东西。知乎的使命是把人们大脑里的知识经验、见解搬上互联网,让彼此更好地连接。“知乎(ZhiHu)”一词本意“你知道么”,不仅生动的体现了其问答属性,而且取词文言文,显得古典优雅,大方得体。知乎网不同于百度知道或者新浪爱问这类即问即答网站,而是建立起了社会网络,期望以关系社区形式来帮助用户找到更好的问题和答案。

解读知乎网技术体系

  为了让大家很好了解知乎网是什么,演讲将按平台导航信息,从“首页”、“话题”、“通知”、“个人主页”和具体问题页面五个方面谈。

  首页:知乎首页,大致有四个功能区。在左侧,是“最新动态”,大约占到首页70%版面,主要呈现用户所关注人的最新提问及回答等信息。用户在这一板块,除了查看最新问题及回答之外,也可以通过“设置”、“关注问题”、“添加评论”“分享”、“感谢”、“收藏”功能参与到自己感兴趣的问题中。如利用“设置”功能,用户可以选择屏蔽话题。在所关注用户关注问题下,也可以对该问题添加关注、添加评论等行为。

  话题页:知乎话题页,可以分为两个板块,一个是“话题动态”,一个是“常去话题”.在左侧为“话题动态”信息,占到版面大约70%.在这一板块中,用户可以对所关注话题下问题(按时间顺序呈现)点击查看,也可以对所关注话题进行“固定”和“取消关注”操作。

  通知页:知乎通知页,可以分为四个版面。左侧“全部通知”为用户关注问题为其他用户回答信息(按时间先后顺序呈现)。右侧,用户行为数据汇总、“邀请好友加入知乎”、话题、话题推荐版面等,和首页介绍一样,这里不再赘述。

  准确地讲,知乎更像一个论坛:用户围绕着某一感兴趣的话题进行相关的讨论,同时你可以关注和你兴趣一致的人。对于概念性的解释,网络百科几乎涵盖了你所有的疑问;但是对于发散思维的整合,却是知乎的一大特色。知乎鼓励在问答过程中进行讨论,以拓宽问题的发散性。鼓励答案的非针对性,鼓励答案的Wiki可参考性。

  物理分离webserver和数据库

  最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候 已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速度了,并且支撑住了更高的流量,并且不会因为数据库和应用形成互相的影响。

  <!--[if !vml]-->

  <!--[endif]-->

  这一步涉及到了这些知识体系:

  这一步架构演变对技术上的知识体系基本没有要求。

  <!--[if !supportLineBreakNewLine]-->

  <!--[endif]-->

  说起来确实不怎么费力,整个网站架构的经典演变过程都和上面比较的类似,当然,每步采取的方案,演变的步骤有可能有不同,另外,由于网站的业务不同,会有不同的专业技术的需求。

  邵海杨:又拍云存储自建CDN技术探秘

又拍云存储自建CDN技术探秘

  又拍云存储是通用的大规模存储服务。开放高度可扩展的API,开发人员可轻松使用,帮助互联网企业以极其低的价格,获得可靠、安全、快速的基础存储系统。

  又拍云存储架构采用各地方缓存节点、核心缓存层、中心数据机房,3层结构部署,前端智能DNS调度用户到该用户访问最快的节点,地方缓存节点会保持连接2个核心缓存机房做负载均衡及相互备用,避免单路网络问题,核心缓存机房通过多条线路互备到数据机房读取文件。

  在整个云存储系统中,采用了比较多的开源技术,主要开发语言有:C、PHP、Erlang、Python,用的比较多的开源产品有:Nginx、GraphicsMagick、MySQL、Memcached、Hadoop、Redis、Squid、Heartbeat、IPVS BIND.

  在安全性方面,又拍云通过哪些策略或技术手段来保证托管的图片的保密性的?

  针对互联网站图片存储的实际需求和特性,在安全性方面做了比较多的工作,

  文件操作接口和文件读取接口(只读,无操作权限)分离,客户网站用户只能访问读取接口,文件操作接口只对客户开放,需凭客户密钥授权操作。并且,文件读取接口可以单独设置关闭。

  帐号系统分离,空间管理员可设多个操作员帐号给不同部门或项目组的人员,并且权限分离,空间管理员只有空间设置权限,无文件操作权限。操作员只有授权空间的文件操作权限,无空间设置权限。最大程度分离帐号的权限。

又拍云存储自建CDN技术探秘

  很多网站会允许用户浏览处理过的缩略图,但不允许或需要授权用户才能下载此图片的原图,又拍云存储有原图Secret功能,每个图片原图都可以设置Secret key.

  Token防盗链,用户可以给每个Url生成Token签名,也就是只有获得网站允许授权的用户才能访问这个图片,并且该授权还可以设置过期时间,精确到秒。

  保证图片的快速存储和读取

  不同于传统CDN服务源站在各地各个机房,又拍云存储源站分布在CDN网络核心机房,在回源这条回路上做了最大优化,保证快速读取。

  国内网络环境非常复杂,今天通畅的网络没法保证明天还是这么通畅,为了适应复杂的网络变化,又拍云存储有专门的技术人员,结合自身及第3方的各地速度监控系统,不断更新速度表格,将用户优化到访问最快的机房。

又拍云存储自建CDN技术探秘

  每个缓存节点投入更多的资源,目前所有节点的部署的缓存容量规模均在10T以上,保障客户文件能长期缓存在各地节点。

  缓存节点机房服务器集群做LVS4层负载,7层Nginx进行一致性Hash提高缓存命中率,冷热文件调度将热门文件调度到SSD存储。

  开发者可采用直传API,让用户通过云存储网络直接上传到云存储,而不需要经过用户服务器,存储速度更快。

  通过又拍云服务,减少了大量的基础工作研发,专于自己的产品业务,降低互联网企业做规模产品的门槛。比较典型的案例iWeekly周末画报,所有图片存储在又拍云上,从2010年发布iOS客户端到读者突破百万,带宽从几十M到几G,一直专注于产品业务的优化,未受服务器和带宽资源紧张分担精力,甚至没有配备专职的系统工程师。未来一些小而精的产品团队,会不断的开发出上规模的应用,如:花瓣、堆糖、Markzhi、驴评网等。

  姚欣宇:GIT分布式代码版本管理时代

  Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git.例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了Git 上。

GIT分布式代码版本管理时代

  分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库。

  Git的功能特性:

  从一般开发者的角度来看git有以下功能:

  1:从服务器上克隆数据库(包括代码和版本信息)到单机上。

  2:在自己的机器上创建分支,修改代码。

  3:在单机上自己创建的分支上提交代码。

  4:在单机上合并分支。

  5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

  6:生成补丁(patch),把补丁发送给主开发者。

  7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

  8:一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

  Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

  实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的着名项目采用 Git 来管理项目开发。

  为什么选择Git

  实际上,相对于 CVS、SVN 等主流版本控制软件,Git 的学习成本甚至会更高。比如,对于 Subversion 用户而言,如果能理解什么是文件、工作目录、资源库、版本、分支和标签等概念,差不多就够用了。而对于 Git 用户,需要理解更多更复杂的概念,包括文件、快照、工作树、索引、本地资源库、远程资源库、远程、提交、分支和 Stash 等。那么,为什么软件开发者对 Git 还是趋之若鹜呢?相比于 CVS 与 SVN,Git 的优势到底体现在哪里?

  关于 Git 的各种优势,互联网以及各种 Git 书籍都给出了自己的答案。笔者认为,存储快照与分布式的设计思想是 Git 的 2 大看点,理由如下:

  第一,Git 底层自行维护的存储文件系统是一大亮点。CVS、SVN 底层采用的为增量式文件系统,增量式文件系统的特点是:当文件变动发生提交时,该文件系统存储的是文件的差异信息。

  第二,Git 版本控制系统的设计思想是“去中心化”.传统的 CVS 、SVN 等工具采用的是 C/S 架构,只有一个中心代码仓库,位于服务器端。而一旦由于服务器系统宕机、网络不通等各种原因造成中心仓库不可用,整个 CVS 、SVN 系统的代码检入与检出就瘫痪了。即便考虑到高可用性,通过迁移另一个中心仓库继续代码提交操作,相应的运营维护成本也会随之上升。

  分布式版本控制工具--Git,通过我的讲解能够使大家得知为什么使用Git,Git的安装,Git的工作原理,Git的使用方法,CVS与SVN向Git迁移等。

  刁士涵:美团数据仓库的演进

美团数据仓库的演进

  2010年3月4日成立的团购网站。美团网:每天团购一次,为消费者发现最值得信赖的商家,让消费者享受超低折扣的优质服务。为商家找到最合适的消费者,给商家提供最大收益的互联网推广,为消费者能享受到最全面的团购资讯。美团网致力于做中国团购的领军企业,服务好消费者,服务好商家,这是美团的使命。

  美团是一家数据驱动公司,每天运行job20000+;每天新增数百GB原始数据;1000多个ETL流程;十几条业务线,2000多个业务指标;几十个专职数据分析与研究人员。数据仓库是一套完整的软件环境,包括数据抽取、存储、计算、查询、展示,以及管理这些过程的工具。

  美团团购客户端是美团网精心打造提供浏览、支付、消费凭借等一体化服务的的移动应用程序。美团团购客户端浏览顺畅、操作简单,并且针对移动终端做了一系列专享功能和体验。美团团购Android版是美团网精心打造的手机客户端,简单顺畅的操作体验让手机用户随时随地享受便捷的。

  演进过程:Pre数据仓库→引入ETL→构建完整的数据仓库→开放和协作

美团数据仓库的演进

  Pre数据仓库:

  工程师写一段PHP或者Shell统计脚本

  自己连接业务DB,提取数据

  在内存中完成统计计算

  将结果写入报表DB

  写一个PHP页面作为报表给需求方

  很多重复劳动和代码中间数据缺失,中间结果不能共享程序语言五花八门,方法各异很难管理清洗和转换没有统一方法,容易出错不同数据源的数据很难综合使用。

  引入ETL:使用独立DB,集中数据,复用中间结果;以ETL作为数据处理的核心,简化操作用数据表示逻辑;规范数据命名和组织方式;进入数据仓库时完成清洗;独立出日志收集系统。

  针对问题开发工具

  流程注册、管理、查看工具

  流程依赖关系解析,画出依赖关系图

  开发调度系统,根据关系图调度ETL执行

  抽象报表工具,屏蔽报表页面开发

  报表=SQL+配置

  建立数据字典,解释概念和指标计算过程

  美团的高速发

  展对数据的需求也高速发展,数据提取和分析需求增长,数据分析人员的增加,数据分析复杂度增加,数据团队疲于应付,大量重复性工作,迫切需要需求方自助获取数据并分析。

美团数据仓库的演进
专题地址:2013中国系统架构师大会

2
相关文章