• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
1,315
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 移PHP电商⺴⽹网站
 ⾄至GO的节奏 ! Zalora South East Asia 架构师 翁伟
  • 2. Zalora South East Asia • 2012年初成立 • 东南亚时尚电商 • 新加坡(总部)⻢马来西亚 印尼 香港 越南 泰国 菲律宾 文莱 • 约1000名员工(IT部 约40人)
  • 3. 8月中 始尝试 移
  • 4. 11月初试上线
  • 5. 目前。。。 • 第一版被rollback • 部分推倒重来,积 准备第二版重新上线
  • 6. 今天 • 谈谈在此折腾过程中的经验
  • 7. 原有网站架构 • 经典LAMP • 前端网站(Alice)负责商品显示 • • Memcached / Solr 后端网站(Bob)负责购物⻋车、订单处理等 • MySQL
  • 8. 为何迁移? • 调⽤用memcached非常快,但solr... • PHP的同步运行模式注定会成为瓶颈 • 射手网对此也有分享:https://bitbucket.org/ PinIdea/fcgi_ext/ • 程序员(我!)太闲了
  • 9. • 第一版仅是试验性项目
  • 10. • 据说百度很简单, • Zalora的前端网站也就是比百度 杂一倍,有四个⻚页面 • 商品目录 • 商品详情 • 购物⻋车 • 支付 个⻚页面
  • 11. 实验项⺫⽬目计划 • 把这“四个⻚页面”全部用GO改写了∼ • 先把“一个⻚页面”用GO来实现 • nginx分发不同⻚页面至PHP / GO
  • 12. worker memcache nginx All URLs Alice solr ZRS BOB Tracking (GA / Webtrekk / etc)
  • 13. worker product
 cart.. Alice memcache solr nginx catalog Eve
 (GO) ZRS BOB Tracking (GA / Webtrekk / etc)
  • 14. 一些前提
  • 15. 数据兼容 • GO对PHP序列化、反序列化支持 • https://github.com/Wuvist/gophpserialize • https://github.com/Wuvist/gophpserialize/pull/1
  • 16. ⻛风险控制 • 新旧 套系统并存,互不影响 • • • 新版本无需修改任何现有代码 独立的新部署 nginx控制切换 • 随时上线、随时rollback
  • 17. 产品团队的需求 • 商品分类⻚页面浏览体验需改善! • PM直接说:“我们要AJAX...”
  • 18. 看起来很美 • 有节奏的改进网站 • 改善用户体验,满足产品团队需求 • 实现架构迁移,让技术团队不要太闲
  • 19. 激进的计 • 原PHP(Alice),拆分为: • AngularJS (Eve) 前端 MVVM • GO (Costa) 后端API
  • 20. 去PHP化 • 上AngularJS,前端界面全部用AngularJS 染 • GO仅提供rest API服务
  • 21. • 一切都很美好,上线了! • 直到我膝盖中了一 • 直到我尝试分享网站链接去Facebook
  • 22. OpenGraph • 用户分享网站链接去Facebook时,Facebook获 得的链接信息(title / text / picture)全部都错了
  • 23. • AngularJS + Go API的架构完全无法处理此情况 • Eve (AngularJS) 阵亡
  • 24. 其他问题 • AngularJS?可以用jQuery么? • PHP也可以编译的,跟GO一样快∼
  • 25. Costa (GO) 威武!
  • 26. 第二版 • PHP + GO,预期12月上旬上线 • 无AngularJS
  • 27. 经验 • “慢慢来,比较快” • 去PHP化是不对的∼ • 最重要的是团队整体的共识 • 经过折腾⼩小伙伴们都对Go的潜力有了充分认识
  • 28. • 成立新部 ,对后端模块进行 移
  • 29. Go可以做的事情很多 • GroupCache (去Memcached) • 购物⻋车 • 订单处理 • 触发CDN⻚页⾯面过期
  • 30. Q&A • 想来新加坡从事GO 发? • 发送英⽂文简历⾄至:weng.wei@zalora.com