原文地址:http://www.infoq.com/cn/articles/e-commerce-web-tech-stack前端
今天在架构师俱乐部3群(由ArchSummit全球架构师峰会运营)里,你们围绕着一个话题讨论地很热烈——彻底从0到1建设一个电商网站,技术选型和注意事项有哪些?群友们都结合本身的实际工做经历分享了不少经验教训,这里是其中的精选。mysql
青岛海尔Jan给你们分享了一个失败案例的教训:nginx
还有群友表示,对于早期的技术选型,不要抄大公司经验,按需求出发,先活下来再说。要考虑到哪些是能够省的,那些是能够用现成的,哪些是须要有特点本身开发的。早期手段能够粗糙,尽可能考虑云。云服务真的能够解决不少创业初期的一些棘手问题,并且能够省下成本。web
0到1解决的是卖什么、怎么卖、卖给谁的问题。思考的角度分为技术化域和商业化域。技术域, 是实用生存为主, 不求高大上, 但求快速实用; 商业域,就是经营变现了, 细分领域夺城拔寨。重要的是,寻找到盈利点,创建合适的商业模式,而后经过技术来实现,除非技术驱动产品这样的公司彻底以技术为核心,掌握核心就掌握市场。redis
若是不及时考虑盈利问题,可能面临如下的问题:公司跟风耗费巨资投入一个项目,技术部门找了不少人,而且采用了各类高大上的项目,结果盈利没跟上来,最终公司决定再也不急需投入,项目就黄了,研发团队也解散了......spring
上海微肯CTO孔燕斌则认为,流量是电商的最大成本和成功的关键因素之一,关于流量的问题其实就是怎么卖和卖给谁的问题。如今线上流量的成本是很是高的,并且传统的线上流量都是一次性的,为何叫一次性,是由于即便是同一个用户,要再次唤醒,大部分时候仍是摇支付额外的成本,流量的成本谁一值跟着运营高企不下。这里很是推荐微信上的流量,微信的流量有几个好处,一个是用户充足,第二个是有公众号,能够免费唤醒用户,第三个是有社交属性,能够经过朋友圈、券、微信支付等微信能力进行营销。其中对初创的企业最最重要的是能够经过微信的近场能力在线下拉人,使用很低的成本高效地拉人,快速验证。sql
线下拉人的最大好处是能够经过选择地点,来圈定本身的潜在用户。要作到这一点,系统架构的时候须要增长微信的模块,实现和微信的和和相关的营销功能。快速找到第一批客户验证业务,完成0到1,完成以后是1到100,1000,10000的复制均可以在微信这个流量里面很好地展开,而且有效地下降运营中的流量的成本。基于篇幅的限制,在此不一一展开。数据库
Jan认为,关于网站的流量,严格来讲流量≠客户量,固然这也得看如何定义。流量更多看的是网站访问者或是App使用者的访问状况,从进入第一个页面到最后退出,这样一个全流程。客户量,相对于网站来讲,个人注册客户多少,日访问客户多少(流量分析工具能够实现),成交客户量等等,须要结合实际公司的对客户量的定义,结合流量分析。json
初期除了购买流程上不能有技术短板外,产品为核心的营销数据流也很重要。提高流量,用流量测试转化率和动销率,而后想办法提高这两点。一旦转化率稳定,才是买大流量的时候。这些都要有数据支撑试错。后端
LAANTO王巍表示,架构实际上是妥协的结果,受投入、团队技术水平多方面影响的,够用就好。从基础作好上云的准备,好比用memcache,redis等分布式缓存系统,把应用改形成与状态无关,一方面能够作到容易扩容,随时增长节点,另外一方面能够足够的可靠性,从而下降各方面成本;在成本有限的状况下,使用成熟技术,达到最优性价比便可,力争达到good,不放弃对perfect的追求;片面要求百分百可靠的都是异端。知足80%的高质量用户需求就够了。技术还得结合投入的多寡,凡是都有个投入产出比,所以要管理好老板的指望和用户的指望,所谓量力而行,作人如此,技术也是如此,作企业更是如此。秉承恰当的技术作恰当的事的理念。
就App而言,不少时候作App是为了估值。固然,依附与微信等高流量入口能够快速获取用户,缺陷在于人家的地盘听人家的,有着诸多限制,当用户积累到必定程度,业务受限于其平台的时候,作APP就成了必然的选择,所谓因时而动,顺势而为。
孔燕斌:从0到1的时候需求上的假设都没有验证,不必去折腾App,集中力量,快速把微信搞定,验证需求,累积用户,收集用户反馈。而后才能肯定是否真的须要App,绝大部分的App都是伪命题。一个App若是需求不找对,而且没有竞争对手,能够天然增加,靠补贴的话,一个用户20块钱都不必定够。因此需求须要验证的,以为很美妙的未必可行,不咋样的其实会很不错,是驴子是马都得拉出来溜过才知道。
速普母婴Martin说,我是作母婴电商这块的,从去年4月份到如今,也是经历了团队从0到1,产品从0到1的过程,说说个人一点理解:
谢文渊表示,从0到1建电商上面同窗把一些关键点都说了很是清楚,我作过几个这种从0到1的电商,说说个人几点见解:
从0到1,说明是一个企业的一个新的IT领域,不少业务策略和基础根基都是不成熟,无论是业务仍是技术架构,同时还有个共同特征:上线周期短,新团队在上面的状况下,有几个方面是须要重点关注的:
1. 业务流程
这一块是全部工做的基础,包括调研和梳理业务流程,主要涵盖正向流程如:采购、会员管理、商品价格、上下架、购买、订单管理、发货、财务等,逆向的更麻烦,如退换货、退款等另外一个核心就是促销规则,如套餐、团购、满赠、买赠、折扣、优惠券等,这个可先从简单入手,只是在架构设计考虑扩展项目周期缘由,必须的关键活动:会员注册、登陆、购买支付、订单审核、发货、对账。
2. 应用架构
一开始业务量小,应用拆分适可而止,初期建议有商城前端、后台管理、订单管理、物流发货商城前端的演变将会是快速的,无论是业务模式仍是用户量规模,都会促使商城前端的快速迭代,其技术要求也是最高的,大多数在行业内分享的技术也都集中在这一块后台管理主要处理运营商城的需求,在线配置是重点,包括CMS订单管理也是后台应用,接口相对也多一些,如与ERP、WMS等,不少企业也在第三方电商平台上销售,如天猫、亚马逊等,能够接口接入物流发货比较规范,能够考虑外购,如WMS,也可外包,可省不少事。
3. 技术领域
具体的技术细节不谈了,很是赞成前面同窗说的够用便可,不要追求高大上,也不要去学大平台的架构,这些架构也是从最简单的架构开始的,到如今这样也是被业务迫使的。必定要用团队最熟悉的技术或架构师最熟悉的,有几点能够参考:肯定技术标准,如分层,开发规范,采用的开源框架等,并培训抽取基础包或框架包,这个能够在边开发应用边抽取,如通用的Util、缓存操做类、数据访问等(这个好象全部软件项目都是这样,但很关键)初期不建议按模块拆分系统,作好模块划分,在配置管理上作区分便可虽然拒绝过分设计,但扩展性和安全性必定要考虑,提早考虑扩展性会让你在后续演变过程当中如鱼得水,尤为是商城前端的水平扩展,一般受到数据(配置或可卖数等)和会话的一致性限制,会话能够用memcache来管理,数据可加载到缓存如redis,一个可减小DB压力,二个能屏蔽DB层的演变,如分表分库等。
安全性是互联网上应用的永恒主题,可在框架层置入XSS和SQL注入的过滤器静态资源和动态内容作分离,商品详情页可作成伪静态化,静态和伪静态资源均可发布到CDN上,对用户体验仍是颇有帮助的,万一流量大时,也能保护后台服务,而且可减小带宽CMS能够从一些开源框架上作些改造来用,主要针对一些活动、首页的一些配置,若是有WAP和APP,能够用下阿里的RAP来管理接口,会大大提升接口的可管理性值得好好设计的几个地方:商品模型、促销规则引擎、多类型订单模型、第三方订单接入适配层部署上通常采用LVS(土豪可用商用的,如F5/Array) nginx(or other web server) app server DB(or cache),一开始通常每层搞个双节点就行了。
另外,为了提升业务连续性,能够采用灰度发布,能够简单写些脚本,不必定要高大上的工具若是仅仅是从0到1,甚至在性能上都是可演进的,不少在并发容量、性能及高可用方面,是1以后的事情了以上只是简单从0-1的描述,但实际上细节仍是挺多的。对了,电商也算是互联网应用,对流量统计和转化率是运营的抓手,这些数据必定要有,流量能够用百度的就行,转化率得从后台出数据了,作些简单报表也是必须的。