QCon 上海 2015全球软件开发大会 10 月 16 日的 Solution Track 专场以“公有云服务与基础设施建设”为主题,主要厂商包括:亚马逊、SpeedyCloud、微软中国、灵雀云、青云 QingCloud、UnitedStack、腾讯和七牛。各厂商在此充分展示了各自在行业里的领先位置,不管是到现场聆听的还是没能去现场的,都可以再来温故一遍技术美文!
获取互联网数据技术实践与云端爬虫养成
关于信息获取,通俗点说就是如何在互联网时代写一个自己的网络爬虫。亚马逊 AWS 首席云计算技术顾问费良宏老师讲的是在 Web 上如何通过搜索引擎或浏览器来获得精确数据,又有哪些问题需要解决和回避?我们为什么要通过 Web 获取数据,其实主要是因为这不同于搜索引擎,网络爬虫是可以从特定站点获取精确数据,而且是计算机可以处理的结构化数据。
写一个完整的网络爬虫之前,选择什么样的框架比较好呢?现在有很多开源框架, Scrapy 就是伦敦一家公司的项目,这是一个非常棒的框架,发展历史非常久, Scrapy 有一个核心引擎,来调度相关的处理,这个引擎包括重要的部件,它的拓展性是 Middiewares 决定的,支持压缩等等。
除此之外遇到的麻烦就是如何解决 IP 地址的问题,费良宏给出的推荐是实现匿名通信的自由软件 Tor(The Onion Router,洋葱路由器),这是第二代洋葱路由的一种实现,用户通过 Tor 可以在因特网上进行匿名交流,专门防范流量过滤、嗅探分析,可以匿名进行 TCP 传输,加密信息在路由器间层层传递。通过 Scrapy-Haproxy-Polipo-Tor 这样的方式将 Tor 与 Scrapy 结合起来即能更好的处理传输问题。但是 Tor 也并不是终极解决方案,因为 Tor 也有很多局限:网络延迟大、稳定性能无法保障、Tor 控制协议需要二次开发、屏蔽 Tor 的技术风险始终存在。
最后,费老师给出的分布式爬虫解决方案总结:运行环境 AWS EC2、多 IP 环境 AWS Elactics IP、爬虫框架 Scrapy、开发语言 Python 2.7、数据列队 AWS Elactic Cache、支持 Ajax/Javascript、中文分词、数据流(Strem)处理。
深度解析容器云平台趋势,架构与实践
灵雀云 CTO 陈恺目前是微软的云架构师,主要负责云平台的操作系统,他主要是介绍容器云平台:首先是容器在云里的应用方式,其次就是从云平台角度来看如何为实现容器化的交互模式。最后部分是分享搭建灵雀云的架构细节。
容器在云里该怎么用?陈恺说,容器和云计算都是为应用而生,以电商类的应用为例,其下有常见的三层架构,表示层、业务逻辑层和数据访问层,业务逻辑层还可以划分不同的逻辑的组建和模块。然后这个应用是使用一个应用之外的数据库的服务。这其中的 Docker 可以分两个来看,一个是动态的容器是一种轻量级的虚拟化的技术,另外是静态镜像是一个交付的标准,最大的贡献它形成了一个软件的集装箱,它的好处是开发者继续使用这个 IS 平台的功能,前端的负载均衡和后端的数据库,它产生的风险也很低,在 Docker 里的应用不需要做改动。
灵雀云架构与实践,灵雀云是通过和国内外一些比较常用的代码托管服务的对接,开发者只需要做一个代码的提交,就可以通过一些机制自动的进行镜像构建。镜像生成之后就保存在镜像中心,按照生产环境一模一样的地方部署到测试环节,然后进行一个滚动式的策略确保它的准确性。部署之后它会全部屏蔽云主机,帮助开发者实现基础设施方面的免运维。灵雀云的核心在于它的托管平台,接下来聚焦到这个平台架构上,这是灵雀云单个集群的架构,在这个集群当中,最主要的最关键核心组,就是利用我们的一个网络组建对负载均衡器做配置,为容器在这个环境下提供网络,它会对有状态的服务来做提供。
灵雀云亦被称之为云上云,这是我们通过的 CloudManger 实现的,它管理这个应用的目标状态,另外还会做一个跨集群跨区和跨云的调度,最后把每个应用都部署到 Cloud 上面。
基础设施建设实战:云之大数据平台架构设计
大数据解决方案最大、最重要的决定是平台的选择,Hadoop、Spark、HBase 等等,一旦选择错了平台,那带来的损失是巨大的。所以一开始做解决方案的时候就明白什么样的平台才可以满足你的需求是很重要的。至于怎么选择平台,青云 QingCloud 系统工程师及大数据平台负责人周小四认为要从实际需求出发(要考虑实时处理、离线处理、结构化数据、非结构化数据、CRUD、事务性、数量大小等等),平台能力(能满足实际需求的平台才是好平台)和不确定性(规模大小)来进行选择。
数据从它的生命周期来说,分为数据采集、数据传输、数据存储和数据计算几个阶段。存储的话就是 IaaS,然后就是中间计算,其中的技术包括 Spark、SparkSQL 还有 Hive。Hadoop 框架在云上系统架构上默认 3 个副本因子,事实上根本不需要 3 个,主要原因是系统架构需要传输功能,而只能用 Hadoop 提供的这个功能加进去:Kafka、分布式、可分区、多副本、高吞吐量、低延迟消息。
其实在整个云数据平台架构设计上的挑战还是很多的,主要体现在物理世界上出现的一些稳定性、性能和迁移的一些问题。数据格式的选择需要很慎重,数据格式选择错误的话不但性能会下降,空间和使用率也会下降,怎么选择数据格式呢,就是把握几点原则,第一是不是条块分割的,意思就是说你每一块是不是有意义;第二就是是不是可压缩的。因此在选择格式的时候一定要知道这个原则,选择你想用的格式,最大化的节省出平台里的空间和资源。
通过本次“公有云服务与基础设施建设”专场的分享,让与会者更加了解公有云和大数据的最新状态和一些技术难点,演讲内容得到了与会者的好评,在最后的 Q&A 环节里,讲师精彩细心的回复为提问者答疑解惑,这也充分体现了 QCon 大会的主旨和目的。
评论