02s0102基于rails的大型b2 b系统架构优化 于冰赵晓锋
Post on 05-Jul-2015
261 Views
Preview:
DESCRIPTION
TRANSCRIPT
What does FreeWheel do?
• �±7ĮĀÛ°dVgĹP²å • �k7ĮĀÛ°��� • ė�Įô¦f30%3ĮĀÛ°��ç^ÝÅ
• ¥ê(�àò¦Ħ3~ę • ��!/comScore)��
What is MRM/RPM?
• Monetization Rights Management® • Û°��ïI-'
• Revenue & Payments Management® • hìgĹPc�
6
FreeWheel MRM ����
9
MRM
Ad#Server
UI/API:#Adver-sing/Inventory
Ad#Server
ETL#Repor-ng
Ad#Tag#/#Request Ad#Manager
DB:#OLTP/OLAP
Inventory#Forecast
Ad#Server Ad#Server
Log#Files
Video#Metadata
Technology Stacks
10
Infrastructure SYSTEM&
Mostly#Linux#(RHEL#5) STORAGE&SAN#+#NAS
NETWORKING&LB#/#Akamai
Integration Flash&(AS2/AS3)& iPhone/iPad&(ObjAC)&
Android&(Java)& Silverlight&(C#)&
HTML5&/&JavaScript&
Quality
Cucumber
Selenium
Log&Replay
REGRESSION&MRM/RPM&UI&
VI&Ad&Server&
ETL&ReporQng Forecast&
Rules&Engine&
Service
Message#Queue(ZMQ)
OLTP#(MySQL)
#OLAP#(Infobright)
Cache#/#Fast#Storage#(Memcached/LevelDB/MongoDB)
Task#Scheduler#(crontab,#etc)
#Search##
(Lucene#/#Solr)
Ad&Server&(C++)
BUSINESS&INTELLIGENCE&&
ETL&ReporQng&Forecast&
(Map#Reduce#like,#C++,#Python)
MRM/RPM:&UI/API (RoR,#jQuery,#Java)
Management&&&Monitor&Portal&(Python,#jQuery,#SQLite)
#Analy-cs##
(MicroStrategy)
BVI/BII/Data&Manager (Ruby,#etc.)
�� • OĬ3ĔúªĉgĔú¢r
• ÍÅ��ĔúøègĔú���¿i�yl
• ��3İ�6Uptime: 99.99% • ���#y.3p'É�#ĎĠl • /ċ�ÄĤwa • ûíx�
• à�3İ� • çUċgĆ¡�ÒÑċ • ��%� 4Insight5
• Ŀ��ĵ • me�Ü + =1=�Ü
• C²å�C�±Ĺ# • íĕp'wa
12
������ • Since 2010 • -QwaÐļį
• S.W.A.T team • Top Guns/Code Monkeys
• wałag�âħĉ!• DevOps: ĥīõðA§·hŎ
13
UI ����
14
• RPM+MRM UI • waõj�,£Ŀ��ľ
• Ruby on Rails + Sinatra • ,7 JS/CSS
• p'Mú • �. • 4 �¿ÿ • �[�Ô • ��& • …
• ğkéđR�
Quick-and-Dirty
! Ĕú½9�Business Driven� ! 2� Ĕú�âDij
! B2BĔúOĬ<
! ReleaseŃ³> ! ²�5~6Ń3+ Release
! ¥Ń3Point ReleasegBugfix
! “5ĕY"Őć”3î& ! RailsÁEOĬĔúûí3�]��
! ¤Ģ�ņ3Best Practice
RailsĜğ“ıú”
! Railsĥ5ÆG� ��!! ̼ĺÓKĂ�¬��ĨĹ#Ê!
! “ÈIJ”3workaround
! Fat Model ! ,£�;ċ�!
! CûíĥC���łğċ�!! ValidationsgCallbacks�ğ!
! +�)View ! ���*�Partial�Î�+�3ą÷{
! RHTML/HAML/ERBĥJavaScriptÀď~*
ûíÏsĥ,£ła
! Rails1.2 (March, 2007) => Rails3.0 (April, 2011)
! Bundle6Scopes6I18N6Rack-based6Middleware…
! MRMĥRPM`ğp'wa�ĥ̼ĺÓ`Ă!
! Rails3.1Ïs72Asset Pipeline
! JavaScript ! jQuery 1.2 => jQuery 1.4.4
! pģjQuery-UI3Widgets
# Commits LoC LoC(Exclude Vendor)
344 +69322, -62147 +41559, 43750
Rails3.0Ïs\Ŏ�
! 3YRelease�12YÂĪ
! LoC in Branch
! LoC in Trunk
# Commits LoC
592 +13137, -11324
! p'Mú�SSO�.64 ��ğk¿ÿ�ûíAPI�áã�ful�…
! Module�ĕYMini3RailsĜğ��Ę:�īĊ
! Application�ġp'MúĥCYModuleŋ�3Bundled APP
Múlĥª�l
Model�Controller�
View/Helper�
Biz Logic�Resources�
CONF
API
Module�
Model�Controller�
View/Helper�
Biz Logic���
Resources�CONF
API
Module�
Components�Shared 3rd Plugins� Shared Resources�Shared Model� Controller/Dispatcher� View/Helper�
SSO� System API (Search, i18n, …)�User Permission� Tasks�
BizLogic�
Model�Controller�
View/Helper�
Biz Logic���
Resources�CONF
API
Module�
Ĕú¢rªĉ4Business Model5
! Ĕúĥà�HøBăK��Let Model be DAO� ! ActiveRecord ModelzJ�$¾Business Logic
! ylActive Record3CallbacksgValidations
Rails MVC with Business Model
AcQon&Controller
AcQon&View
Business&Model&
AcQveRecord AcQveRecord
Business&Scenario&
Widgets&
1. ěn�ě×7ğ3Validation�0,£ĊàĥGF�CÑ��;ċ�� �
Ĕú¢rªĉ—�Model,£!
27
Ĕú¢r3Validation6ě×7ğ!
2. �Ç�Ĕú¢r%ýKĹÑ�čĒBvalidationōif/else¯?��Ľb!�3. @q�OĬ3Ĕú¢rÃęÕModel,£�2ĩ�ĩ��LoC>2k)!
Ĕú¢rªĉ—ĈBusiness Model,£!
28
Business Model�
ü×3Validation�
3. X�ċ�.YBusiness Model3ČR�oĝā´äBusiness Model �
2. :�ċ��ìĔú¢r���ĘĞĢ�ì3Business ModelBă �
1. �;ċ�,£üØ7ğ�ݶ�;ċ��¨õj“þŏ” �
Widgets
! ¸�s3µ=MVC�w ! �ğÙ{½9ªĉ�pģjQuerygjQuery UIa|
! JSON + Restful
! p'ŋ{ ! Ōą�<3�Ŏ.Ħ
! Grid, Tab, Calendar, Layout, Accordion, Wizard, Dropdown…
! Ĕú�{ ! CYp'ŋ{3�h
! Ĺ#v!głĭ
! Òý«ĕYñĸĔú¢r��3�Ŏ
Widgetswa!
30
Base
Components
Grid Toolbar Form AdvancedSearch
Widgets
AdProduct ContentTargeting
GeoTargeting Budget
Schedule
... ...
Lang jQuery I18n FW Core
Unicorn +389:;<
! ĠlµÕğLighttpd + FastCGI
! Unicorn – An HTTP server with 2k+ lines of pure ruby code – Better memory control by shared memory, forking – Copy-on-write with REE 1.8.7
– �]��2(Twitter, Github…)
ijóö�
! 2DCI4Data, context and interaction5ª×�ÜĥĜğ!
! çUʼn9l�ÜNS¡
! ,£ła!
! �ľ,£�!
! CSSK�ła!
! FreeWheel UIûíp'wa!! C�±Ā�ňûíĥª�3wa_ğĥ,£Oğ!
! 8ľlĔúĹ�!
Multitenant Architecture Easy Customization Better Access
top related