11月16日,QCon全球软件开发大会将在美国旧金山隆重开幕,17日这天,由极客邦科技及InfoQ中国组织策划的中国技术开放日(ChinaTech Day)也将亮相大会,来自阿里巴巴、京东、腾讯、百度等国内一线互联网公司的技术专家,将作为中国技术力量的代表,向国外的参会者分享中国互联网的顶尖技术。京东商城技术副总裁兼首席科学家何刚博士作为国内著名的技术专家,将分享京东怎样通过云计算和大数据服务的方式,助力传统行业转型。京东从基础云、电商云和数据云三个方面,解决包括制造业、农业、金融、物流及农业等多个行业存在的一些问题。

自有业务全部入云

在2014年9月18日,京东对外宣布其自身的云战略,一年的时间里京东云先后帮助了大量传统企业踏上了互联网的快车道,在这个过程里京东自身信息系统和基础构架也有了很大的演进。“6∙18”之后,京东执行“换底计划”将自身全部业务悉数迁往京东云,这也是继美团之后又一个把自身业务全部云化的案例。除此之外,多交易中心系统和京东大脑计划也为这次双11大考添砖加瓦。

那么,京东全部业务入云的底气来自哪里?我们看到,在过去的十年里,京东先后在自身的IT系统里进行了诸多的改造。

  • 私有云技术体系建设:即京东基础云能力的建设。主要解决存储、缓存以及消息中间件的问题。并拟定了以“京东宙斯”、“京东云鼎”、“京东云擎”、“京东云汇”四大解决方案为核心的技术体系,来构建完整的电商云服务链条。
  • 电商云的三步走战略:这三步分别是,内部资源和能力的云化;培育电商应用生态;整合外部资源。

京东自身业务全部云化不亚于给传统行业吃了一颗定心丸,为什么这么说?首先我们来看看互联网+对企业意味着什么?对于一个企业来说,在网上发出自己的声音、刷新自己的存在是最基本、最简单的需求,网络营销已是企业必备的技能。更进一步,企业需要通过网络渠道销售自己的产品,缩减销售环节和分销成本,提高企业利润,如火如荼的O2O正是这一需求的真实反映。但是,这还不够。市场需求千变万化,没有哪个企业能够百分百地掌握市场规律,怎样把市场需求及时反馈到企业中,从而改变生产环节是所有企业都孜孜以求的目标。业务云化不再是一个需求,而是一种趋势。

最长、最真实的电商数据链及其价值

京东通过12年的积累,拥有从企业生产,到自身仓储、物流,再到用户消费行为的一整条完整的数据链。其数据链条的完整性和真实性令业界垂涎。当今,没有人会否认数据的价值。然而,大量企业拥有海量的数据,表面上看企业离数据很近,事实上他们离数据很远。因为这些数据的价值并没有被挖掘出来。通过对数据的采集、存储和分析,大数据能够做三件事:即高速人们,过去发生了什么,现在正在发生什么,以及将来会发生什么。这才是数据的核心价值。

那么京东是如何利用这些令人垂涎的数据的呢?

  • 物流数据的价值:中国电商竞争是白热化的,京东正是借助物流体系,打造了超凡的一体化购物体验,从而突出重围,成为自营B2C的领导者,可以说物流体系是京东的核心竞争力。在这场激烈竞争的背后,京东物流配送系统功不可没。
  • 交易数据的价值:京东交易系统主要经历了5个发展阶段(详见《京东技术解密》一书)。正是积累了大量的交易数据金矿,京东金融服务自然是水到渠成。目前京东金融在各个产品线(例如京东白条)上都得以大量采用。
  • 大数据挖掘:在庞大、复杂的业务逻辑下,京东商城生产了海量的结构化和非结构化数据。京东网站智能和商业化团队通过对自身业务、数据的理解和摸索,逐步形成、搭建了一整套基于开源R语言的数据挖掘框架,在此框架下支撑业务部门及产品部门的数据需求。
  • 个性化推荐:京东作为国内最大的自营B2C平台,目前个性化推荐成交的订单数已占到总量的13%,这一数字还在不断增长。这其中,数据驱动的个性化推荐系统发挥着越来越重要的作用。

当然,以上各项大数据价值的挖掘离不开相应的大数据技术的应用

制造业普遍存在库存压力大、渠道冗长、效率低下、销售成本高等问题。要解决这个问题,首先要做的是消灭数据孤岛。为此,京东展开了跟腾讯合作的计划,从各方面把用户数据精准化。此外,从数据采集、存储到数据分析,包括实时分析、离线分析,京东逐步开放其能力,最终形成了一个完整的数据平台,来帮助企业轻松的进入大数据时代。京东提供大数据生态里面还对各行业定制化分析能力,把数据变成价值。中国市场一直是以产品交易和差价作为企业利润的主要来源,这是典型的以信息不对称的方式来赚钱,未来这种方式将变得越来越不可行。以市场为导向、以客户为中心正是大数据的价值,也是未来企业走向互联网+的必然选择。

规模空前的弹性云实践

在今年的10月份,京东位于廊坊的新数据中心部署完成并投入使用,至此所有在线应用在新机房都通过Docker技术进行发布,在生产环境上运行的Docker实例超过了60,000个。今年双11的弹性云集群规模比“6∙18”增长了5倍,随着双11弹性资源池的部署,这一数字将达到100,000个,这是目前世界上最大规模的Docker技术应用之一。毋庸置疑,京东在基础设施和弹性扩容能力方面的建设也取得了长足的进步。

  • 基础设施建设:京东以自主研发为主,开发了适合自己业务模式的存储系统——京东文件系统(JFS),并基于JFS向外提供私有云存储服务。消息队列的开发则经历了三个阶段。前两代是基于开源软件实现的,现在的产品是完全自主研发的JMQ。在服务框架方面,进行了微服务化改造。
  • 容器弹性伸缩:弹性计算云是京东2015年研发部战略项目,它基于Docker简化了应用的部署和扩容,提高了系统的伸缩能力。目前京东的图片系统、单品页、频道页、风控系统、缓存、登录、团购、O2O、无线、拍拍等业务都已经运行在弹性计算云系统中。

随着应用的发展,针对服务的架构SOA日趋流行,功能结构和模块服务化在提高服务的性能方面更加灵活。正是有了大量的实践,在中国技术开放日(ChinaTech Day)上,国内众多知名企业如京东者,更能代表中国IT技术的力量,在世界舞台上一展风采。

开放的云能力与服务

传统企业有着非常强大的基础,京东认为,传统行业要想变成一个互联网生态产业,需要互联网的技术和互联网的思维的双重加速。基于我们京东内部需求,以及外部客户的沉淀,京东把内部的云计算、大数据等基础技术向全生态链的合作伙伴提供,帮助传统行业实现互联网+的技术架构和业务升级。

为此,京东将开放其基础云的能力、电商云的能力和数据云的能力。京东的基础云是一块基石,不但可以实现资源像水电煤一样按需索取,也是电商云和数据云的支撑。作为典型的电商企业,京东有很多创新业务,比如仓储、物流、配送系统,十几年的沉淀京东电商云把这些经验分享出来也是水到渠成。以“京东云擎”为例:

在京东电商云三步走的战略中,“京东云擎”正是这样一种拓展电商生态系统的PaaS平台。其主要服务对象是个人开发者和京东的ISV。在数据开放平台日益成熟的背景下,开发者都希望能简化部署、降低成本、提高生产力,京东PaaS平台很好地满足了开发者和ISV的这个需求。

业界一直存在这样的争论,到底叫“互联网+”还是叫“+互联网”?京东更倾向于“+互联网”的叫法。这意味着传统企业要依靠自己的实力借助互联网这个工具实现升级转型,而非等着互联网去整合传统企业——互联网并不具备这个使命。为此,京东数据云能力的开放更弥足珍贵,毕竟数据的价值还远远没有被挖掘出来。

此次中国技术开放日(ChinaTech Day)将是中国IT企业登上世界舞台的第一步,也是京东、阿里巴巴、腾讯等优秀企业向世界展示中国先进IT技术的一次尝试,未来我们将组织更多的交流活动,让世界先进技术走进来,让中国技术力量走出去。

今年的“双十一”全民网购狂欢节已经落下帷幕,从各电商企业发布出来的数据来看,今年的热烈程度再次毫无悬念狂刷以往的记录。而在这一切的背后,是一场“真枪实弹”的技术硬仗,更是一场能令技术人“热血沸腾”的技术狂欢。本文中,牛小七将总结国内各大知名电商的技术架构实践,带大家一睹它们如何鏖战“双十一”?
 

鏖战双十一,电商技术力量揭秘

当当:促销系统和交易系统双系统重构

重构促销系统:当当原促销系统模型较陈旧、扩展性差、不成熟并且与其它系统耦合严重,因此,此次的核心改进点在于促销系统的扩展性、灵活性,系统解耦和更强大的数据处理能力。在确定基本促销模型并抽象后,重点在于实施解耦,当当将直读DB和存储冗余促销数据的系统修改为调用服务及监听MQ;在逻辑回收方面,将促销校验与促销计算提取为交易服务,回收原先由购物车、交易系统自行处理的促销逻辑。此外,还做了提取促销工具属性及完善促销系统查询服务的工作。在应用架构实现上,从前端页面到后端逻辑,尽量避免有逻辑与促销类型直接绑定,全部以插件化方式与促销模型对接,完全根据促销类型的配置进行组装。鉴于促销的时效性和实时性要求,当当在数据库前加Redis缓存,以提高响应速度,同时监听MQ,根据事件清理相应的缓存数据。

重构交易系统:当当交易系统的重构使用了业界较成熟的系统方案,重构过程主经包括易于管理的集中化配置、将大流程计算结果进行缓存提高页面刷新速度、小版本结算与统一结算合并、巧借Nginx的reload配置进行灰度发布等。由于交易系统的计算都和金钱有关,当当还提出线上并行比对方案,根据老交易系统比对新交易,保证其逻辑正确。此外,还开发了分流功能,按照用户id分流前,先使用测试白名单中的用户进行预验证,预验证通过后,再按比例由低至高逐步切换。值得一提的是,基于灰度发布技术,新交易系统的Web服务器很容易做到按需伸缩。 

苏宁:主抓四大方向

系统拆分:技术上分析主流程、分离主干系统和枝叶系统、根据业务内聚性独立出主干系统,做到分别部署。并根据业务功能拆分出会员、商品、库存、价格、购物车、交易、订单和内容管理几大系统,组建对应的研发中心来维护;根据交易环节的系统压力,独立出抢购和秒杀系统,拆分出购物券、云钻等营销类的系统,并组建营销中心。

基础平台:基础平台主要抓基础架构、通用系统、中间件及包括运维监控、持续集成、大数据分析、风控系统在内的平台。主要工作包括系统之间的通讯、统一验证和内部管理系统的统一权限、Session共享、分布式调用链、Redis分片存储、数据库的分库分表中间件、统一配置管理和流控等。


研发流程:除通过代码走查、sonar平台、各种测试等手段,中心也采用代码飞检来确保代码质量。代码飞检即定期快速评审系统核心代码,主要由各个系统负责人、架构师以及总监负责。流程发布检查单为系统的最后一关,需经过产品负责人、开发负责人、QA、测试负责人、DBA、运维人员、以及线上验证人员对各个环节进行确认,确保系统上线过程少出问题或出问题能及时下架。 

系统保障:主要重视提高系统负载能力和应急预案两方面。在提高系统负载能力方面,根据历史数据对双11流量进行预估,细化到每个系统的PV、UV、峰值TPS,并对目前系统压力、容量和相关指标进行统计。此外,对系统进行了自上而下的体检,针对发现问题制定相关方案。具体体现在对系统架构梳理、关键代码优化以及中间件调优。在应急预案方面,主要涉及拒绝黑名单、限流及降级策略。限流通过防火墙流控、中间件流控功能和组件实现。

蘑菇街:五个关注焦点

稳定性:对已遇到过的问题,及时采用各种方式解决或规避。 

多维度的阈值监控:实时pid数量监控、调整容器内存计算算法更精确监控内存、修改container里的rsyslog配置,只让宿主机去读kernel以解决日志乱序。在压力大的情况下,为个别容器进行动态的CPU、内存等扩容或缩容,调整甚至放开磁盘iops限速和网络的TC限速。此外,定期扫描线上潜在风险。

灾备和紧急故障处理:如在不启动DockerDaemon情况下,离线恢复Docker中数据的方法。方法是:用dmsetup create命令创建一个临时的dm设备,映射到Docker实例所用的dm设备号,通过mount临时设备,恢复原有数据。支持Docker容器冷迁移。通过管理平台界面一键实现跨物理机迁移。 

与已有运维系统的对接:Docker集群须能与现有运维系统无缝对接,才能快速响应,做到秒级的弹性扩容/缩容。因而以统一的容器管理平台,实现对多个Docker集群的管理,从下发指令到完成容器的创建可以在7秒内完成。

性能优化:针对磁盘IO的性能瓶颈,调优部分内核参数。引入Facebook的开源软件flashcache,将SSD作为cache,提高docker容器的IO性能。通过合并镜像层次优化docker pull镜像的时间。在docker pull时,每一层校验的耗时很长,通过减小层数,不仅大小变小,docker pull时间也大幅缩短。

唯品会:六个设计要点

系统模块有效切分:原业务系统在实际运作中业务耦合严重、模块划分不合理,导致模块之间边界不清楚。唯品会从整个系统角度出发,梳理整个流程,重新做系统定位,将不同业务子系统做物理分离,减少彼此依赖,使各个子系统独立部署,出现问题后能快速采取措施,隔离出问题模块,将故障影响降到最低。

服务化解耦,集中服务治理:基于Spring的Java开发框架独立自主开发Venus系统,涵盖数据库访问层封装、缓存接口封装、CRUD服务代码自动生成、OSP/REST服务调用接口封装及异步支持等方面,降低开发复杂度,、提高开发效率、提升代码质量,、规范开发流程。

增加异步访问:对于系统间实时性要求不高、执行耗时的操作,可通过异步处理提高调用者性能、响应能力。通过异步调用通知非主要流程,加快系统主要业务流程的反应速度和性能,异步处理机制可起到缓冲的作用,被通知的下游系统可依据自身能力控制处理数据量,避免遭受超负荷的冲击,保证系统稳定运行,增加系统可用性。分布式异步消息队列服务器可在宕机后确保消息不丢失,异步系统有重试机制,从而提高系统可用性、健壮性和扩展性。

多阶段缓存,降低后端压力:做动静分离降低后端压力。引入分布式缓存,对缓存数据服务节点做统一集中管理,支持缓存集群弹性扩展,通过动态增加或减少节点应对变化数据访问负载;冗余机制实现高可用性,无单点失效,不会因服务器故障而导致缓存服务中断或数据丢失。应用端使用统一的API接口访问缓存服务器。此外,唯品会还巧用应用服务器本地缓存,将基本不修改的配置数据、全局数据缓存在应用服务器本地,减少对后端缓存服务器实例的峰值冲击。

优化数据库访问:优化复杂查询和关键模块的数据库慢查询。保证在实现功能的基础上,减少对数据库的访问次数;通过查询参数,减少对表的访问行数,最小化结果集,减轻网络负担。采用读写分离技术,通过一主多从,写操作只发生在主表,多操作发生在从表上以缓解对主数据库的访问压力。并借助于分布式缓存,提供远大于数据库访问的性能。在设计时,需要防止缓存失效带来的缓存穿透压力,容许一定程度的数据冗余。对于关键模块,为防止因依赖而影响当前模块的性能和可靠性,可适度保存其它模块的关键数据,减少由于访问其它模块服务带来的系统损耗和可靠性压力。使用NoSQL数据库对海量大数据进行存储和处理。


加强系统监控:在系统和网络层面的监控,主要监控服务器指标(如CPU、内存、磁盘、流量、TCP连接数等)和数据库指标(如QPS、主从复制延时、进程、慢查询等)。业务层面监控主要通过在指定页面做埋点,和从业务系统的数据库两种方法,将需要监控的数据抽取出分析处理,存入自己维护的数据库中,然后通过浏览器页面、展示监控数据,页面同时提供各种时间维度上的筛选、汇总。此外,独立研发应用性能监控平台Mercury,通过在应用程序中植入探针逻辑实现对应用代码、关系数据库、缓存系统的实时监控。Mercury通过收集日志、上报日志的方式即时获取相关性能指标并进行智能分析,及时发现分布式应用系统的性能问题以及异常和错误,为系统解决性能和程序问题提供方便可靠的依据。

巧用云服务,挖金“双十一”

对于电商平台来讲,如果Web服务、业务数据库及静态资源部署在同一台服务器上,会相互影响执行效率;此外,还会有单点故障的问题,面对以上问题,最直接的方案则是做动静分离。而电商平台多重图片应用,需要消耗大量的带宽资源,同时图片的存储和处理会产生大量的成本。因此,使用第三方的存储服务将使得电商企业可以从容应对业务增长,特别是在“双十一”这种关键的场景下更显得尤为重要。在电商的业务场景中,七牛的技术方案将主要帮助他们解决如下难题。

KODO对象存储:电商平台有着诸如图片及部分社区电商平台的视频存储的需求。静态资源从业务服务器上剥离出来存储在七牛,加载时性能会提高。对于此,七牛把存储系统(甚至是主机系统和未来大的计算系统)进行孵化和提取出来,存储系统的扩容可达100PB级。

融合CDN加速:在类似“双十一”这样的大促活动中,宝贝刷不出来会严重影响电商平台用户的体验,而将电商平台的宝贝图片通过CDN缓存到靠近用户的节点,能提高CDN效率。同时,由于七牛云服务的弹性扩容,也避免了电商因大促自建存储而耗费各种资源等情况,让电商平台能自如应对突发业务的流量。此外,七牛特有的融合CDN加速平台,是引入主流CDN厂商优质节点与七牛自有高质量节点相结合而形成的,全面覆盖各运营商,真正做到了无盲区,特别关注小运营商区域,确保各区域的网购用户都能享受到最优的服务体验。七牛融合CDN加速成功实现了节点级互备,确保服务高可用高性能及持续可用。

DORA数据处理:电商平台上图片的各种转码需求非常大。由于移动设备种类繁多、屏幕分辨率不一致,就需要非常多的规格。如果图片一有改动,就需要让后台运维遍历所有图片重新转化。这样不仅加大了运维人员的工作量,还需要大量的存储空间。七牛图片实时转码功能,可帮助电商用户实时扩展新的图片规格,并且将转码生成的新规格图片放在七牛提供的缓存层供App调用,不用占用存储空间。这种服务器端只需存储一份原图,其他规格实时生成且不占用存储空间的机制,自然能帮助其节省大量的存储成本,同时用户体验也能得到很好的提升。此外,存储于七牛的所有JPEG格式的图片均可实时转码成WebP格式,还可进一步提升用户访问图片的流畅度,同时帮用户节省流量。

目前,七牛已为包括有赞、帮5买、有货(YOHO)、美柚、穿衣助手、明星衣橱、蘑菇街、1626奥特莱斯等在内的电商客户提供安全存储、双向加速及图片处理服务。

七牛融合CDN已于“双十一”前全面降价,降幅达42%

温馨提醒:这是一个最好的时代,七牛融合CDN已于“双十一”前全面降价,降幅达42%

声明:本文部分内容根据微信公众账号InfoQ的《盘点电商大战背后的技术力量支撑》一文整理而成。

 

随着CoreOS稳定版的发布,我们相信我们已经为SysAdmin节准备好了一个不错的惊喜。从现在起,用户可以在产品环境中运行CoreOS了。这个版本对于想运行CoreOS的用户来说,是最经考验的、最安全的、最可靠的CoreOS版本。这对我们来说,是一个重大的里程碑。自从2013年八月我们第一个alpha版本发布以来,我们做了:

  • 191个发布版本
  • 通过alpha和beta频道测试了成千上万的服务器
  • 支持10个以上平台,从裸机到Rackspace和Google云平台的主要镜像

对我们来说这是一个极为重要的日子,因为我们为了稳定版的发布付出了努力的工作。当然,如果没有社区的帮助,我们完成不了这些工作,感谢你们所有对项目的支持和贡献。

CoreOS 367.1.0, 这是我们在稳定频道上的第一个版本, 包括以下内容:

  • Linux 3.15.2
  • Docker 1.0.1
  • 所有主流的云服务商的支持, 包括 Rackspace Cloud, Amazon EC2 (包括 HVM) 和 Google Compute Engine
  • 通过 CoreOS Managed Linux 的商业支持

如果你还没有阅读我们的Update Philosophy,我们建议您先看看。

请注意:稳定发布版本为了保持稳定性而不包括etcd和fleet ,此发布版仅针对基本的操作系统和Docker1.0。etcd和fleet的稳定版本支持会在随后的发布版本中。

如果想开始在产品中运行CoreOS,请确保阅读我们的快速指南“切换到发布频道”。如果你正在装新的机器,请确保在一开始就把他们建立在你想要的更新频道上。

最后,感谢社区的支持,我们迫不及待地想听到你们的反馈。对那些在产品环境中运行CoreOS上,希望得到额外支持的用户,请确保查看我们的Managed Linux 建议,因为我们已经有了一个完整的支持团队,他们正在准备回答你遇到的任何问题。

SysAdmin节快乐,感谢你们让互联网变得如此令人惊叹。


via: https://coreos.com/blog/stable-release/

作者:Alex Polvi 译者:lfzark 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Docker

是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

继续阅读