【ArchSummit 北京 2015】大数据下基础架构的演进之路

  • 薛梁

2015 年 12 月 18 日

话题:大数据语言 & 开发架构AI

ArchSummit 北京 2015 全球架构师峰会于 2015 年 12 月 18-19 日在北京国际会议中心举办。19 日的“基础架构之技术演进”专场里,参加演讲的各厂商架构师及数据专家着重介绍了技术上的最新实践以及案例,同时也在 Q&A 环节为听众答疑解惑,提供了架构技术、大数据处理、Docker 等领域的参考意见。参与分享的 IT 公司有:蘑菇街、途牛旅游、个推、FreeWheel、永洪科技、野狗和 Coding。

蘑菇街-社会化电商平台技术架构探索与实践

作为当天第一位出场的讲师,阮小明主要分享了作为电商平台,在不同时间段蘑菇街的基础架构所经历的演变过程,演进中产生的核心组件,以及未来要做的事情。在导购时期、电商时期、电商+社交时期,蘑菇街的业务架构和技术架构都经历着脱胎换骨的演变。

在导购时期遇到的问题很多,例如:Redis、MySQL 容易出现抖动,但很难定位原因;图片尺寸多样造成的性能问题、页面打开速度慢等等。解决方案 A:开始研发并引入中间层,针对中间层添加报警、监控;方案 B:访问时动态生成图片,使用 CDN 技术。在电商时期,经历了两次双 11 的考验也暴露出不少问题:环境隔离不彻底,无法做全链路压测;缺少自研的核心组件,出现问题时较难定位;PHP 与 Java 共存的问题等等。而这个时候的解决方案是采用面向服务的体系架构 SOA 技术,页面静态化以及根据现实需求将应用拆分开来。而在未来,蘑菇街的结构系统会更加倾向于平台化,在功能上力求支持多渠道、平台级监控、流程编排、模块组装、团队共建等等。在业务上,能够在促销优惠、商品管理等任务上有所优化。

途牛旅游网-供应链系统的架构演进

途牛旅游副总经理李源幽默诙谐,讲述了途牛旅游网在早期人手不够,经验不足的情况下遇到的那些坑:架构系统简单宕过机,服务器被雷劈过等等。但是成功之路都是在磕磕绊绊上走过来的。在 2012 年的时候,途牛旅游网升级到 V2.0,进行了系统重构分层模型,实现中心化,并对供应链进行侧拆分,支持多业务形态,采用 Nginx+Java+Tomcat+MySQL 集群部署。

V3.0 阶段,为了解决中心化系统开发效率和框架稳定性低,系统压力大、DB 瓶颈突出等问题,途牛架构采用了从同步到异步并发分布式的过度,实现资源冷热分离。起重要作用的 TSP 系统把内部后台系统的接口服务化,TSP 采用了类似于 dubbo 的架构设计,服务端和客户端均嵌入 TSP 提供的组件包,可实现服务自动发现、注册、变更通知,现已接入 4000 个左右的服务。TSP 服务中心监控服务的状态并实时通知客户端,监控中心负责收集调用的日志,记录调用的实际情况供后续分析。日志由客户端发送至日志中心,采用 elasticSearch 做日志存储和查询;通过 Kibana 的来构建服务质量面板。

FreeWheel-SQL-on-Hadoop 方案在 FreeWheel 的实践

在下午的第一场演讲里,来自 FreeWheel 的数据中心主任林明介绍了 FreeWheel 的主要业务以及广告投放应用技术。FreeWheel 是一家专门提供互联网视频广告投放、监测、预测、增值等关键解决方案的外商独资公司。单日投放近 10 亿次广告,生成 2TB 广告投放数据。面对如此庞大的数据量,FreeWheel 的架构系统采用的是 Ad-Hoc(点对点)模式。应用场景包括:咨询团队分析客户业务、客户服务团队解决客户问题、工程师团队分析线上问题。在业务需求上:可以同时分析多个数据源、获取多维度和多时间跨度的分析结果、在几分钟甚至几秒内完成等需求。

而 SQL-on-Hadoop 解决方案同样可以解决数据分析的难题,MPP 查询引擎使用 Presto 数据查询引擎的原因在于:非常快的查询速度、支持对不同的数据源进行 join 操作、方便二次开发等优势。采用 Parquet 存储格式主要在于它支持复杂的嵌套数据结构、高效的记录碎片化与装配、高效的压缩、开发社区活跃。

Coding-Docker 架构下私有云的机遇与挑战

Coding 架构师王振威之所以要讲 Docker 技术,主要是在于云技术的普及,不管是公有云还是私有云,Docker 作为一门新兴的容器技术,在云服务平台的建设过程中所起到的作用是不可替代的,尤其是在私有云方面。那么 Docker 为什么适合用于构建私有云?主要在于它构建快:应用 + 运行环境 = 镜像;启动快:容器相比于虚机,更轻量级;迁移快:应用以容器的方式标准化交付,标准化运行。

那么为什么要正是因为传统的架构无法满足业务的增长需求,所以才要将新型架构迁移到 Docker 这种私有云环境上。而架构迁移需要遵循以下三个原则:平滑演进,向后兼容;微服务,无状态化;多实例,硬件分离。步骤也很简单,第一步:Dockerize。无状态化应用,构建脚本和 Dockerfile,装入容器即可。第二步:正确管理容器。使用Docker run/start/stop/restart 更直接;使用Docker Remote API 更灵活;使用编排系统则更强大。第三步:釜底抽薪。使用Dockerize 的容器逐步替换系统中所有基础,包括监控系统,负载均衡系统,服务发现,日志中心,消息中心等等基础业务组件。使计算存储分离,多实例,高可用,等这些概念有机结合。

写在最后

当前绝大部分企业都或多或少的对内部 IT 基础架构进行了升级,而纵观企业的 IT 基础架构体系也在不断的更新换代,能够满足企业信息化应用和管理的IT 基础架构体系是每一个企业不断追求的目标。这也足见基础架构的重要性。更多本届 ArchSummit 架构师峰会的讲师内容可以看这里:http://www.stuq.org/ppt/

大数据语言 & 开发架构AI