12年2月-17年8月,5年半的创业时间,虽然失败了,但也学到了很多东西,在这里记录一下,没有高端的技术,如果能给大家带来一些帮助,不甚荣幸!
2012.2周五网启动
![](https://i-blog.csdnimg.cn/blog_migrate/3f2edcc134b5c9e25d2c556cfbbcae8f.png)
项目就是收集景点售卖门票(当时就是跟携程、驴妈妈卖景点门票一样)
简单一图概括项目框架:
项目核心模块:景区(门票)、交易、用户,后续所有的扩展都是基于这3个核心。
这里是景区的大概设计框架:
列表主要是走sphinx,单数据主要是memcached,在model层写入同步更新sphinx和memcached做到实时更新,当时让sphinx准实时的更新耗费了一些精力,因为sphinx普遍还是用于论坛每天1-2次全量和定时的新增帖子,对实时性没有特别高的要求,当时我是通过删除再新增的方式,以及部分字段直接update形式。
项目的整体架构:
服务器:自己买的服务器,当时的主流配置,用的RedHat系统(什么版本忘记了=_=!)
技术栈:web服务器apache,php5.3(使用Yii框架),缓存memcached,搜索(sphinx+中文分词Coreseek),mysql,代码管理:svn。
后面有些挑战的工作是搭建门票录入系统,因为需要满足不同时间不同价格以及方便员工有效率的管理耗费了很多的经历,这里就不细讲了(其实现在回想起来已经很困难了:0)。后来因为项目没起来没什么流量,也就没什么技术挑战。
2013.4 周末玩什么
为周五网导流的一个内容咨询项目
整体技术架构并未发生什么变化,就是扩展了一个项目。
2013.10周末去哪儿
![](https://i-blog.csdnimg.cn/blog_migrate/71e3eb76cdd010bb5d4f085e757b6ad5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7af1ac2cd89584b2c21801f84815e9fd.png)
刚开始项目创建的时候并没有发送技术架构的整体变化,对一个活着生死边缘的公司来说,没有比快速这两个字更重要的事情了。所有只要是现成的我们就直接拿来用!
刚开始的基本架构,是一个纯移动端的项目,完全没有PC。
![](https://i-blog.csdnimg.cn/blog_migrate/017c58df05b186f1638725ccc8a81488.png)
项目上线3个月左右就被appstroe推荐了,接着就是用户的爆发式增长,至此走上技术升级道路。
2014年的技术升级
业务重点:
建立商户活动发布平台
建立H5站点(移动web)
平台正式推出交易(原来以内容为主)
技术重点:
这一年技术上最主要的是把我们的 系统搬入到了云端,之前的几年已经让我们认识到”服务器运维“的成本较高,很多事情云端已经帮我们做好,我们可以更加的专注公司本身的业务。
另外这一年随着商户发布平台的推出,正式把平台定位成toB,并马上推出交易,至此周末去哪儿完成内容和购买的闭环。
技术框架:
重要的2015年:
重要业务:
行为数据分析(数据埋点)
新技术的引入:
rabbitmq–消息中间件
supervisor–进程管理
Java(spring)–后端技术升级
sphinx->solr(java接管搜索服务)
redis–更优秀的缓存
NodeJs–前端技术升级
Lua–嵌入到nginx,进行php、java的路由分发实现2个种服务端的共同运行
以下是几个重要的架构大图:
技术栈:
系统的分层:
数据埋点刚搭建的时候存储还是由mysql担当(后面会提到转型)
2015年的技术升级对我们来说是革命性的,他不只是技术上,还有团队上,我们引入了新的java团队,java的引入是对未来的考虑,php的人才每年在逐步递减,java的生态在逐渐成熟,更重要的是我们需要给团队注入更多技术活力,从管理的角度考虑也是很有必要的。
由于引入了新的java技术,我们把原来php写的业务模块用java重新写了一遍,这需要公司投入更多的技术成本,这是需要公司对未来和技术团队充满信心,因为做这些对公司当前的业务并没有直接的帮助,并且技术人员又是很贵的!不管如何我们克服了重重困难,致力于公司技术的进步。
也是在这一年公司认识到用户数据的重要性,我们需要更懂用户,所有我们开始采集用户使用产品的一些行为数据,数据埋点框架正式搭建。
2016年
重要业务:
B2B分销平台搭建
第三方的供应商接口接入
主要的技术点:
Jenkins–自动化发布
hadoop–大数据平台搭建
pt-online-schema-change --mysql热修改
Jenkins的自动化发布:
如果你每天都有发布甚至是多次发布,而你总是需要登陆到服务器上,真的是很麻烦,因此自动化当然要引入,同时他能更容易授权给你的工程师!
举例shell脚本:
pt-online-schema-change:
这里值得一提的是我们把日常发布sql语句通过先录入我们的运营后台,然后由专门人员审核,审核通过后通过shell脚本读取审核通过的sql语句,在jenkins执行脚本,而执行sql语句集成了pt-online,完成发布上线完全自动化。解决每次遇上sql语句发布都需要先登陆阿里云RDS(自主mysql同理)执行sql,再用jenkins发布的半自动化流程,同时也解决发布人员无需授权数据库管理权限。
hadoop的架构:
hadoop的引进是因为我们认识到mysql要记录并处理行为数据已经力不从心,而我们对技术的追求的兴趣一直保持热情,自然hadoop的体系进入到我们的视野!
另外由于技术内部已经有很多的第三方软件平台,为了方便大家,我们引入了LDAP统一账号,并打通我们的员工账号,只需本来就需要记住的员工账号即可登录我们所有的系统。
在2016年低我们的服务器的整体布局:
2017年的终点:
重点业务:
小程序上线
B2C分销平台
C2C分销小程序
公司的没落,也意味着技术的停滞,两者互助,我们最终的大图:
最后一张技术栈图收尾:
补充:以上的技术发展路程非我一人建立,很多的决定和推进是我的另一位技术合伙人主导,很高兴在这5年多的时间能和他里一起战斗,从他身上也学到了很多优秀的特性。也相信他未来的成就绝对不低,一起加油!
如想更加了解本篇技术发展过程的背景可以参考我之前写的一篇个人经历老程序员的成长之路,里面有提到这家公司的经历。