【51CTO.com原创稿件】一年一度的购物狂欢又到来了。双11,早已不再是光棍节的代名词,而是一场名副其实的购物狂欢节。在消费者购物买买买的时候,是各商家背后的IT部门的技术保障。“过个讲究的双11”,这是1号店今年双11的slogan,1号店是如何的讲究呢?
1号店技术部平台保障部技术总监顾复告诉笔者,1号店在保障双11活动时,以业务分析为起点,以质量改进为目标,以架构、运维和安全为主线,识别评估风险,制定保障措施,形成五位一体的电商大促保障机制。
架构保障--架构演化
电商核心交易系统有很多特点,其中高可用、高并发、高性能是基础,而能够达到这三高,首先依赖的是架构。
如今,1号店技术部已经有千人规模,系统每天支持亿级的访问量,单Service也达到支持每天数十亿级的请求,清单支持每分钟几万单,Service服务可用性达到了六个9,架构方面也经历几次演进:从强依赖-> Service化->业务解耦->读写分离->服务逻辑分组->异步->水平/垂直拆分等。
服务垂直拆分:为了保障双11,1号店从产品、用户&支付、订单三个维度上对服务进行了规划,构建1号店应用架构的三驾马车,确立了SOA治理的框架基础。在此基础上,又陆续衍生出促销、积分、支付等众多Service业务,在三架马车中同样会细分至如文描、价格、库存、下单、订单查询等垂直服务。
服务逻辑分组:在服务逻辑分组方面,1号店则采用SOA中间件-Hedwig,提供了软负载均衡、节点踢出与孵化、服务动态逻辑分组的功能,并且可支持百亿级的访问请求,灰度发布,其背后提供的调用链路及层次关系、日志分析、监控预警等更是为SOA治理提供了强大的后勤保障。
DB读写分离:1号店的读写分离还从应用层面以及DB层面进行细分。例如,订单库的读写分离,订单主库主要承担下单、编辑订单、实时查询等功能,而订单备库则承担核心业务和非核心业务的非实时查询、离线数据抽取等工作。
DB水平拆分:在2013年1号店实现了库存的水平拆分,在2014年则完成了订单水平拆库成为继淘宝之后第二个实现订单水平拆库的电商公司。1号店***采用Tcp-copy压测技术,可覆盖90%以上的业务场景,至少节省95%以上的人工测试成本;数据库由收费Oracle转为免费MySQL,节省至少千万元的成本。
质量保障—工程化体系与保障管理体系
由于1号店所有电商系统和企业内部系统均是由技术部自研发,在研发管理体系方面,面临着业务特征不一、研发成熟不统一、架构不统一等情况。为了提升研发队伍生产力,1号店从2013年开始深度实践AgileDev与DevOps理念,以质量保障为切入点和主线,向前、向后分别逐步打通了产品到研发、研发到运维的脉络,使研发的效率、质量以及整个技术部的交付和保障能力得到了极大的提升。在质量工程化方面,1号店经过多年的建设,形成了围绕产品测试、性能测试、自动化功能测试三大测试领域的质量保障云以及研发管理云服务,保障研发过程中的变更、测试、上线的高效和准确。同时,在保障管理体系方面,对保证大促期间系统正常运行,也总结了一套比较实用的实践。在大促前,质量保障部会指导各产品线研发部门进行各类风险评估、应急方案的制定,并组织、指挥各类实战演练。同时,各产品线研发团队也会各自产品出发,协助公司运营部门,保障运营的质量。以产品测试为例,在双11活动中,促销页是流量高度集中的页面,那么检查促销的信息是否有误导、商品的信息是否正确、页面加载是否流畅、购物流程是否异常等,都是在大促期间质量保障中的重要工作。1号店制定了“填充会场 -> 报备信息 -> 运营自查 -> 研发复检”的流程方式,保障促销页面的准确性。
运维保障—自动化运维体系
秉承DevOps理念,1号店的自动化运维体系也逐渐在大促保障过程中发挥了越来越大的作用。线上的自动化运维云平台已经和线下质量保障云和研发管理云打通,实现了从业务研发产品交付到运维的闭环。例如,线上的自动化运维云平台采用虚拟化、容器化的技术,更加高效的实现一键装机、一键扩容,当需要交付产品时,团队通过质量保障云服务生成上线审核报告,提交到研发管理云的发布审批服务上,该服务通过访问质量保障云服务提供的质量数据,自动检查是否符合交付标准,通过后会通知自动化发布系统、配置系统实现一键发布、灰度发布等目标。发布完成后,运维云平台的发布结果会回写到研发管理云的发布审批服务,同时质量保障云自动化测试平台会启动线上自动化测试,验证发布结果。由此形成了高效的闭环。
除了平台工具的保障,DBA、SA、网络团队、企业IT也会安排大量预案的设计和验证演练,例如DBA会定期集中排查存在隐患的数据库实例和SQL,通过各种升级、优化措施提前消灭隐患。
安全保障—坚强后盾
所谓道高一尺、魔高一丈,系统安全、业务安全是不能忽视的领域。在安全方面,1号店采取的策略集中在事前、事中和事后三个方向。通过在基础平台、各业务应用系统以及研发专门的风险防控和识别系统多个层次,实现安全防护。例如,在订单处理系统,在订单提交前和履单过程中设置了对恶意订单的识别;在系统访问上,对非常规的访问进行了监测识别。用户安全和用户体验是双刃剑,既要保障正常用户的购物体验,同时保护系统和业务安全,1号店在这个方向还在不断努力。
更多精彩内容,详见专题!
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】