Beyond `rails server`
     Rails全栈技术指南
陈金洲


     @mechiland

Picture taken by Michael Chen
部署   监控   架构演进
gem install rails
RVM
rails g scaffold
Programming Model
 GET      PUT     POST     DELETE



 show    update   create   destroy



SELECT   UPDATE   INSERT   DELETE
rails server
Beyond rails server
“15分钟创建Blog”

“24小时创建一个网站”
“15分钟创建Blog”

“24小时创建一个网站”
“15分钟创建Blog”

“24小时创建一个网站”
1. 部署
jinshuju.net
Beyond rails server
Browser   Web Server   App Server   Database
Browser   ?   Web Server   App Server   Database


                 ?             ?           ?
注册域名
域名
‣   www.domain.com
‣   *.domain.com
‣   MX记录
‣   TXT记录
主机
备案
Beyond rails server
Beyond rails server
cannot find this picture source
Web, App, DB
硬件准备完毕……
jinshuju.net
Git
      master

      dev

      feature 1

      feature 2
部署



cap deploy
除了CRUD

   resque + god



cronjob + whenever
持续部署


DEV    UAT   PROD
2. 监控
[h]top
vmstat      w      uptime


  ps       free    iostat


  sar     mpstat   pmap


netstat     ss     iptraf


tcpdump   strace   /proc
Beyond rails server
Beyond rails server
监控什么?
硬盘    www/db服务状态   Google Analytics



CPU   页面响应时间           微博@



内存     4xx/5xx页面   用户行为数据



带宽      邮件队列

                        ……
硬盘    www/db服务状态 Google Analytics



CPU   页面响应时间           微博@


内存     4xx/5xx页面    用户行为数据


带宽      邮件队列


      可用性影响逐渐   少
      实际花费时间逐渐增加
http://www.flickr.com/photos/declicjardin/309583331




3. 架构演进
Beyond rails server
Beyond rails server
初始
 Model

  View

Controller

   DB
进行中
 Model       Model      Model

  View       View        View

Controller Controller Controller

   DB         DB         DB
真实情况
 Model      Model       Model      Model      Model

  View       View       View       View        View

Controller Controller Controller Controller Controller

   DB         DB         DB         DB         DB
JavaEE/.NET
Rails/Linux的方式




   resque   cronjob
‣ 前台进程、后台进程、cronjob
‣ 前台进程保证响应时间在可接受范
 围之内(<200ms)

‣ 将耗时操作放入后台(delay_job,
 resque, sidekiq)
3000
代码行阈值
Picture taken by Michael Chen




                                随时准备应用剥离
核心应用
domain.com
核心部分
                 domain.com
核心应用
domain.com



                  支付
             payments.domain.com
核心部分
                                       domain.com
               核心部分
                 domain.com
核心应用
domain.com
                                     用户管理
                                     my.domain.com


                  支付                    支付
             payments.domain.com   payments.domain.com
‣ 将架构演进视作正常行为

‣ 警惕代码行数

‣ 随时准备剥离,进行进程分离
http://www.flickr.com/photos/rtv/2269548635




X. 免费赠送
B2B
Go B2b, B2C
rubygems.org
not just What
It’s about How
and Why
Beyond `rails server`




 部署             监控          架构演进
实现持续部署        监控应用行为             警惕规模变大
谢谢!

    陈金洲
    @mechiland
http://michael.nona.name

More Related Content

PDF
W3CTech美团react专场-Thinking in React
PPT
性能优化
PDF
美团技术沙龙04 美团下一代分布式存储系统
PPT
快速搭建高性能服务端
PDF
W3CTech美团react专场-React Native 初探
PPTX
MySQL压力测试经验
PPTX
SQL Server 資料庫版本控管
PPTX
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
W3CTech美团react专场-Thinking in React
性能优化
美团技术沙龙04 美团下一代分布式存储系统
快速搭建高性能服务端
W3CTech美团react专场-React Native 初探
MySQL压力测试经验
SQL Server 資料庫版本控管
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)

What's hot (20)

PDF
美团点评技术沙龙13-酒旅Hybrid架构体系及演进
PDF
美团点评技术沙龙14美团云-Docker平台
PPTX
Cgroup lxc在17173 iaas应用池中应用
PDF
twMVC#26 | Redis資料型別與場景的連結
PPTX
Frontend Devops at Cloudinsight
PDF
百度前端性能监控与优化实践
PDF
twMVC#30 | 你應該瞭解的 container-on-azure-二三事
PDF
美团点评技术沙龙14:美团四层负载均衡
PDF
美团技术沙龙04 - Kv Tair best practise
PDF
CP 值很高的 Gulp
PPTX
如何针对业务做DB优化
PPT
Dynamic JS Loader
PDF
twMVC#38 How we migrate tfs to git(using azure dev ops)
PDF
阿里巴巴运维自动化的探索与规划
PDF
React.js what do you really mean?
PDF
twMVC#36讓 Exceptionless 存管你的 Log
PDF
twMVC#42 Windows容器導入由0到1
PPTX
Zero mq 金铺首页应用实践
PDF
twMVC#42 讓我們用一種方式來開發吧
PDF
SITCON 2016 ─ Modern Front-End Workflow with Webpack
美团点评技术沙龙13-酒旅Hybrid架构体系及演进
美团点评技术沙龙14美团云-Docker平台
Cgroup lxc在17173 iaas应用池中应用
twMVC#26 | Redis資料型別與場景的連結
Frontend Devops at Cloudinsight
百度前端性能监控与优化实践
twMVC#30 | 你應該瞭解的 container-on-azure-二三事
美团点评技术沙龙14:美团四层负载均衡
美团技术沙龙04 - Kv Tair best practise
CP 值很高的 Gulp
如何针对业务做DB优化
Dynamic JS Loader
twMVC#38 How we migrate tfs to git(using azure dev ops)
阿里巴巴运维自动化的探索与规划
React.js what do you really mean?
twMVC#36讓 Exceptionless 存管你的 Log
twMVC#42 Windows容器導入由0到1
Zero mq 金铺首页应用实践
twMVC#42 讓我們用一種方式來開發吧
SITCON 2016 ─ Modern Front-End Workflow with Webpack
Ad

Viewers also liked (20)

PDF
Rake: Not Your Father's Build Tool
PDF
Rails 新人起步走
PPTX
From Ant to Rake
PDF
Sinatraonpassenger 090419090519 Phpapp01
PPT
Tulalip Tribes Spring 2009
PDF
How i learn
PPTX
Top 10 things I’ve learned in PR
PDF
供应商管理手册
PDF
8 Bands
PDF
注塑工艺
PPTX
Earthstoresutraslides 090411225717 Phpapp02
PPT
Webanalyticskistegull190908 1222172847871322 9
PPTX
rat pack
KEY
Continuous learning
PDF
Michael Chen Mix Language Development
PDF
Barcampdelhi6quiz 090301171235 Phpapp01
PPT
Guru Sebagai 1 Profesion
PPT
look for a pattern
PPTX
Architecture in real
PPT
Technology in Early Childhood Education
Rake: Not Your Father's Build Tool
Rails 新人起步走
From Ant to Rake
Sinatraonpassenger 090419090519 Phpapp01
Tulalip Tribes Spring 2009
How i learn
Top 10 things I’ve learned in PR
供应商管理手册
8 Bands
注塑工艺
Earthstoresutraslides 090411225717 Phpapp02
Webanalyticskistegull190908 1222172847871322 9
rat pack
Continuous learning
Michael Chen Mix Language Development
Barcampdelhi6quiz 090301171235 Phpapp01
Guru Sebagai 1 Profesion
look for a pattern
Architecture in real
Technology in Early Childhood Education
Ad

Similar to Beyond rails server (20)

PDF
前端性能优化和自动化
PDF
Hacking Nginx at Taobao
PPT
Software Engineer Talk
PDF
ASP.Net MVC2 简介
PPT
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
PDF
新浪微博大规模基于Docker的混合云应用实践 -王关胜
PDF
Nodejs & NAE
PDF
建立前端开发团队 (Front-end Development Environment)
PDF
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
PDF
Berserk js
PPTX
前端性能测试
PDF
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
PPT
Huangjing renren
PPTX
研发云:借助云计算实现持续交付(by冯智超)
PDF
美团前端架构简介
PPT
轻量级Flash服务器开发框架(刘恒)
PPTX
OPOA in Action -- 使用MagixJS简化WebAPP开发
PPT
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
PDF
twMVC 47_Elastic APM 的兩三事
PPTX
twMVC#31網站上線了然後呢
前端性能优化和自动化
Hacking Nginx at Taobao
Software Engineer Talk
ASP.Net MVC2 简介
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
新浪微博大规模基于Docker的混合云应用实践 -王关胜
Nodejs & NAE
建立前端开发团队 (Front-end Development Environment)
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Berserk js
前端性能测试
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
Huangjing renren
研发云:借助云计算实现持续交付(by冯智超)
美团前端架构简介
轻量级Flash服务器开发框架(刘恒)
OPOA in Action -- 使用MagixJS简化WebAPP开发
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
twMVC 47_Elastic APM 的兩三事
twMVC#31網站上線了然後呢

Beyond rails server

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: \n
  • #5: \n
  • #6: \n
  • #7: \n
  • #8: \n
  • #9: \n
  • #10: \n
  • #11: \n
  • #12: &amp;#x4ED6;&amp;#x4EEC;&amp;#x591A;&amp;#x6570;&amp;#x8FC7;&amp;#x5EA6;&amp;#x7B80;&amp;#x5355;&amp;#x5316;&amp;#x4E86;&amp;#x4E00;&amp;#x4E2A;&amp;#x521B;&amp;#x5EFA;&amp;#x7F51;&amp;#x7AD9;&amp;#x6240;&amp;#x9700;&amp;#x8981;&amp;#x7684;&amp;#x77E5;&amp;#x8BC6;\n
  • #13: \n
  • #14: \n
  • #15: \n
  • #16: \n
  • #17: \n
  • #18: \n
  • #19: \n
  • #20: \n
  • #21: \n
  • #22: \n
  • #23: Apache + Passenger - &amp;#x7B80;&amp;#x5355;&amp;#xFF0C;&amp;#x4E0A;&amp;#x624B;&amp;#x5FEB;\n Nginx + unicorn - &amp;#x5FEB;&amp;#x901F;&amp;#xFF0C;&amp;#x8D44;&amp;#x6E90;&amp;#x5360;&amp;#x7528;&amp;#x5C11;\n &amp;#x6709;&amp;#x610F;&amp;#x601D;&amp;#x7684;&amp;#x662F; &amp;#x867D;&amp;#x7136;&amp;#x8BF4;&amp;#x5F00;&amp;#x6E90;&amp;#x793E;&amp;#x533A;&amp;#x6709;&amp;#x5F88;&amp;#x591A;&amp;#x9009;&amp;#x62E9;&amp;#xFF0C;&amp;#x4F46;&amp;#x5B9E;&amp;#x9645;&amp;#x4E0A;&amp;#x6CA1;&amp;#x6709;&amp;#x591A;&amp;#x5C11;\n &amp;#x597D;&amp;#x5904;&amp;#x662F;&amp;#x8FD9;&amp;#x4E9B;&amp;#x9009;&amp;#x62E9;&amp;#x90FD;&amp;#x662F;&amp;#x514D;&amp;#x8D39;&amp;#x7684;&amp;#xFF0C;&amp;#x5E76;&amp;#x4E14;&amp;#x6709;&amp;#x5927;&amp;#x91CF;&amp;#x9AD8;&amp;#x8D28;&amp;#x91CF;&amp;#x7684;&amp;#x6587;&amp;#x6863;&amp;#x3001;&amp;#x6559;&amp;#x7A0B;&amp;#x5B58;&amp;#x5728;\n
  • #24: \n
  • #25: Always stable master\n
  • #26: \n
  • #27: \n
  • #28: &amp;#x6301;&amp;#x7EED;&amp;#x90E8;&amp;#x7F72;&amp;#x6240;&amp;#x8981;&amp;#x6C42;&amp;#x7684;&amp;#xFF0C;&amp;#x7EDD;&amp;#x4E0D;&amp;#x4EC5;&amp;#x4EC5;&amp;#x662F;&amp;#x4E00;&amp;#x79CD;&amp;#x90E8;&amp;#x7F72;&amp;#x65B9;&amp;#x5F0F;&amp;#xFF0C;&amp;#x8FD8;&amp;#x5F3A;&amp;#x8C03;&amp;#x4E86;&amp;#x4E00;&amp;#x79CD;&amp;#x7279;&amp;#x6027;&amp;#x4F18;&amp;#x5148;&amp;#x7684;&amp;#x601D;&amp;#x8DEF;&amp;#x3002;&amp;#x6BCF;&amp;#x4E2A;&amp;#x7279;&amp;#x6027;&amp;#x90FD;&amp;#x5E94;&amp;#x8BE5;&amp;#x5F53;&amp;#x505A;&amp;#x4ECE;&amp;#x524D;&amp;#x5230;&amp;#x540E;&amp;#x7684;&amp;#x8003;&amp;#x8651;&amp;#xFF0C;&amp;#x800C;&amp;#x4E0D;&amp;#x4EC5;&amp;#x4EC5;&amp;#x662F;&amp;#x5206;&amp;#x5C42;&amp;#x5F0F;&amp;#x7684;&amp;#x5F00;&amp;#x53D1;&amp;#x3002;&amp;#x5B9E;&amp;#x73B0;&amp;#x4E86;&amp;#x6309;&amp;#x7167;&amp;#x7279;&amp;#x6027;&amp;#x5212;&amp;#x5206;&amp;#x5E76;&amp;#x4E14;&amp;#x5F00;&amp;#x53D1;&amp;#x7684;&amp;#x6301;&amp;#x7EED;&amp;#x90E8;&amp;#x7F72;&amp;#xFF0C;&amp;#x624D;&amp;#x5177;&amp;#x6709;&amp;#x5B9E;&amp;#x9645;&amp;#x7684;&amp;#x610F;&amp;#x4E49;&amp;#x3002;\n
  • #29: \n
  • #30: \n
  • #31: \n
  • #32: \n
  • #33: \n
  • #34: \n
  • #35: \n
  • #36: &amp;#x76F8;&amp;#x6BD4;Amazon/Linode&amp;#xFF0C;&amp;#x5373;&amp;#x4FBF;&amp;#x56FD;&amp;#x5185;&amp;#x7684;&amp;#x4E91;&amp;#x670D;&amp;#x52A1;&amp;#x5F88;&amp;#x4E0D;&amp;#x582A;&amp;#xFF0C;&amp;#x4F46;&amp;#x670D;&amp;#x52A1;&amp;#x7684;&amp;#x53EF;&amp;#x7528;&amp;#x6027;&amp;#x4ECD;&amp;#x7136;&amp;#x4EE4;&amp;#x4EBA;&amp;#x79F0;&amp;#x9053;&amp;#x3002; &amp;#x7528;&amp;#x6237;&amp;#x521B;&amp;#x5EFA;&amp;#x7684;&amp;#x5185;&amp;#x5BB9;&amp;#xFF0C;&amp;#x53EF;&amp;#x80FD;&amp;#x4F1A;&amp;#x88AB;&amp;#x62D4;&amp;#x7EBF;&amp;#x2026;&amp;#x2026;\n
  • #37: \n
  • #38: \n
  • #39: \n
  • #40: \n
  • #41: \n
  • #42: \n
  • #43: \n
  • #44: \n
  • #45: \n
  • #46: \n
  • #47: \n
  • #48: \n
  • #49: \n
  • #50: \n
  • #51: \n
  • #52: &amp;#x4F60;&amp;#x6240;&amp;#x53D1;&amp;#x73B0;&amp;#x7684;&amp;#x75DB;&amp;#x70B9;&amp;#xFF08;&amp;#x4E5F;&amp;#x8BB8;&amp;#xFF09;&amp;#x7684;&amp;#x786E;&amp;#x5B58;&amp;#x5728;\n&amp;#x4F60;&amp;#x7684;&amp;#x524D;&amp;#x51E0;&amp;#x4E2A;&amp;#x5BA2;&amp;#x6237;&amp;#xFF08;&amp;#x4E5F;&amp;#x8BB8;&amp;#xFF09;&amp;#x7684;&amp;#x786E;&amp;#x70ED;&amp;#x7231;&amp;#x4F60;&amp;#x7684;&amp;#x8F6F;&amp;#x4EF6;\n&amp;#x4F46; &amp;#x5C1D;&amp;#x8BD5;&amp;#x63A8;&amp;#x5E7F;&amp;#x5F00;&amp;#x6765;\n&amp;#x5546;&amp;#x4E1A;&amp;#x7528;&amp;#x6237;&amp;#x6F2B;&amp;#x957F;&amp;#x7684;&amp;#x91C7;&amp;#x8D2D;&amp;#x6D41;&amp;#x7A0B;&amp;#x4F1A;&amp;#x8BA9;&amp;#x56E2;&amp;#x961F;&amp;#x5931;&amp;#x53BB;&amp;#x6700;&amp;#x5B9D;&amp;#x8D35;&amp;#x7684;&amp;#x7CBE;&amp;#x529B;\n&amp;#x8FDB;&amp;#x800C;&amp;#x5931;&amp;#x53BB;&amp;#x52A8;&amp;#x529B;\n
  • #53: \n
  • #54: Keep an eye on your gems. keep them update. \n
  • #55: \n
  • #56: \n
  • #57: \n