您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 电子商务 > SaaS电商系统架构-迭代中的架构
SaaS电商系统的架构迭代中的架构曹祖鹏@千米网caozupeng@139.com关于千米网关于千米网一家电商SaaS平台前身是欧飞网的子公司2013.10正式成为独立公司2014年接受了5000万A轮风险投资千米网业务发展!2011年之前—30至40万笔订单一天,不定期宕机,出现过一天没有做业务2012年—60至80笔万订单一天,每月头尾必定会挂一次2013年—80至160万笔订单一天,2-3次严重(进程飞掉,连接池满)事故2014年—峰值248万笔订单一天,全年故障时间8小时(可靠度99.9%)千米网的架构2005-2008拓荒2008-2011垂直化2012-2013中心化2014拥抱变化2015未来?拓荒初创时期刚开始只有两台服务器,够用就好。B2CAdminDatabase垂直化按业务拆分服务DB(M)supwebMemcachedbosswebb2cwebsalewebDB(S)NginxNginxLVSLVS野蛮生长SUPSALEBOSSB2CCRM垂直结构发展到一定阶段,不可避免相互之间的调用增多CARDCHARGE蜘蛛网RechargeRechargeproxyMobilerechargecardcharge3rdchargerecvcardrecharge1234567a7b网状的系统结构,错综复杂的调用关系系统的任何一个小应用宕机,都有可能引起整个业务的瘫痪。中心化系统中心化!!AccountCenterOrderCenterItemCenterRechargeCenterServiceLayer!PlatformSaleUserCenterBossSupStoreCRMOSSBSSPayManagementLayerDubbo/MessageQueue团队合作团队割裂成产品、UED、前端、后端、平台、测试,配合起来总是不那么顺畅,严重影响效率系统中心化,团队也跟着中心化了,一个需求需要多个团队参与,导致沟通成本的上升,产品迭代速度下降。技能固化、前后端模块的技术、业务都不是很了解,导致员工本身能力固化资源问题分布式架构下,应用服务器成指数级别增长,屌丝公司没有资金,只有四十台物理服务器,不仅仅是服务器买不起,更大的原因是租来的机房已经不够放了。数百台虚拟服务器共享一个磁盘阵列,IO性能低部署、运维问题服务器的增多、应用指数级增长、服务之间的依赖关系随着分布式越来越严重分布式中调用关系落在了不同的机器上,问题到底出在哪一步上?拥抱变化产品线—中心—平台AdminStoreBossSalesProductCenterOrderCenterOrderCenterItemCenterRechargeCenterUserCenterQMCRMAcctCenter云销E生活PromotionCenterServiceLayerServicePlatformCorePlatform自动部署虚拟化,以极低的成本实现资源的最大利用率一键式部署,以最简单的方式完成日常任务多环境支撑,支持开发、测试和生产环境安全隔离与审查,人员隔离与日志可快速回滚:快速回退到上个稳定版本跟踪调用日志跟踪、监控、分析Broker(Redis)ElasticSearchapplicationLogbackapplicationLogbackapplicationLogbackLogstashKibana未来?2015Roadmap前端组件化后端轻量化服务微型化运维标准化AngularJSReactJSNodejsDjangoSpring-mvcJavaDubboFront-endBackendService前端组件化前端体验要求越来越高,但是开发还是原始状态,大量的代码“纯手工打造”,页面依赖UED,原型还原度是大问题通过ReactJSangularJS框架完成页面交互控件后端轻量化随着前端的能力原来越强,Backend已经退化为调用各个接口结果综合后返回Json数据Java开发的思路还是层层嵌套、封装,不如Nodejs、Python更合适这个层次功能后端轻量化的核心问题在于如何和原有的SOA体系打通服务微型化从基础服务开始,按照Service粒度拆分服务使用轻量级协议、可以用不同的语言开发,不受限与任何技术栈AuthServiceMail/SMSServiceSearchServicePushServiceMessagingServiceFileSystemService运维标准化将业务模块固化为标准单元发布前自动测试,发布流程标准化数据库脚本的版本化向持续部署、自动运维的演进,最终实现一个DevOps需求整合的平台开源技术用开源还是造轮子?初期,拿来主义,用成熟方案中期,看业务场景,尽量采用成熟方案或在成熟方案上进行扩展后期,市面上的通用技术已经无法满足,大量的造轮子开源技术导入选择技术一定要明确目的,不是考虑时髦自己不能hold的开源技术不盲目使用小规模尝试,获取经验后再使用到正式环境尽可能回馈开源社区⾃自动部署:协议扩展:的Nodejs客户端:的Python客户端:的前端组件:配合Reactjs的组件:flux“WEAREJUSTONTHEWAY”我们正在路上谢谢
本文标题:SaaS电商系统架构-迭代中的架构
链接地址:https://www.777doc.com/doc-6015621 .html