EASY MAGENTO SYNCHRONIZATION
Presented by Alessandro Ronchi & Roberto Gambuzzi
Mage::day(2013); // Modena - 8 Novembre 201...
CHI SIAMO
Membri e Fondatori del PUG MoRe
Magento Certified Developers
Colleghi in @webgriffe
PERCHÉ E COME È NATO
PROBLEMA
Propagare modifiche in Admin Panel su diversi ambienti

SOLUZIONI POSSIBILI
A mano: time con...
COME FUNZIONA
LIVE DEMO
COME FUNZIONA
STATUS E RUN (GIT PULL SU ALTRO AMBIENTE)
v ga tp ei e2 / a/ w/ a1 0 $ g tp l
a rn @ rc s3 :v rw w mg 80 i u...
COME FUNZIONA
STATUS
v ga tp ei e2 / a/ w/ a1 0 $ p ps el mg p o. h a rn @ rc s3 :v rw w mg 80 h h l /a el yp p s
M gp o v...
COME FUNZIONA
PANNELLO DI ADMIN
COME FUNZIONA
PANNELLO DI ADMIN (DELETE)
COME FUNZIONA
PANNELLO DI ADMIN (COMMIT E PUSH DELLA DELETE)
v ga tp ei e2 / a/ w/ a1 0 $ g ts au
a rn @ rc s3 :v rw w mg ...
COME FUNZIONA
PANNELLO DI ADMIN (RICEZIONE DELLE DELETE DA PARTE
PRIMO DEV)
a es nr @o as i ~N te nP o et /a e8 0 pp se l ...
COME È SVILUPPATO
THE MAGENTO WAY
Request Funnel: registra le invocazioni alle Action a cui è
associato un Tracker
Tracker...
COME È SVILUPPATO
COME È SVILUPPATO
DICHIARAZIONE DI UN TRACKER NEL CONFIG.XML
< of g
c ni >
..
.
<e al >
df u t
..
.
< ae ly
m g po>
<c in ...
COME È SVILUPPATO
LA CLASSE CHE IMPLEMENTA IL TRACKER
Estende
PgoeMgpo_oe_cinAsrc
uMR_aelyMdlAto_btat
Implementazione mini...
COME È SVILUPPATO
LA FUNZIONE MATCH() DELLA CLASSE BASE
< pp
?h
p b i f n t o m t h) {
u lc u ci n ac(
$ = M g: hl e(pg o ...
COME È SVILUPPATO
INFORMAZIONI NEL LOG DOPO UNA SAVE ACTION
NEW
DELETE
2 1- 02 T8 4: 7 0: 0D BG ( )
0 31 - 80 :4 2+ 00 EU ...
COME È SVILUPPATO
CLASSE COMPLETA PER IL TRACKING DEI MAGAZZINI
s Gtu
u iHb
< pp
?h
c as Dm _a ea 2 1_ oe _a e ly At o_ aa z n e t nsPg oe Mg p o_ oe _c
l s e oM gd y0 3M d lM gp o_ ci n Mg zi i xe ...
COME È SVILUPPATO
RISULTATO DEL TRACKING (CSV)
c l: 18 92 7
o 1 3 25 16
c l: ao ci
o 2 r nh
c l: Sv n wM gz io ' a- 0'
o 3...
CONFLITTI
Scenario: due programmatori hanno creato un magazzino
con lo stesso codice. Il primo ha già fatto commit e push....
CONFLITTI
Cosa troveremo nel m g p o _ l . s ?
aelyalcv

<<< < H A
<<< ED
1 89 63 ,r nh , Sv n wM gz io ' a - 0' ,e oM g d...
CONCLUSIONI
AS-IS

Attribute Tracker
Category Tracker
CMS Tracker
Store
System Config (sperimentale)

TO BE

Più Tracker p...
?

Q & (HOPEFULLY) A
GRAZIE!

RIMANIAMO IN CONTATTO...
Mageploy: mageploy.com
Twitter: @aleron75 - @pug_more
GitHub: github.com/aleron75 - gith...
Mageploy, easily keep track of changes and deploy synchronization between different magento environments
Upcoming SlideShare
Loading in …5
×

Mageploy, easily keep track of changes and deploy synchronization between different magento environments

589 views

Published on

Mageploy, easily keep track of changes and deploy synchronization between different magento environments

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
589
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Mageploy, easily keep track of changes and deploy synchronization between different magento environments

  1. 1. EASY MAGENTO SYNCHRONIZATION Presented by Alessandro Ronchi & Roberto Gambuzzi Mage::day(2013); // Modena - 8 Novembre 2013
  2. 2. CHI SIAMO Membri e Fondatori del PUG MoRe Magento Certified Developers Colleghi in @webgriffe
  3. 3. PERCHÉ E COME È NATO PROBLEMA Propagare modifiche in Admin Panel su diversi ambienti SOLUZIONI POSSIBILI A mano: time consuming, error prone, costoso Upgrade Script: time consuming, e conflitti su feature branch DB centralizzato: no offline, concorrenza spietata Selenium: selettori da correggere e non cross-platform MageFlow (?): "MageFlow Beta is launching in December" Mageploy: niente codice, distribuito, time-saving
  4. 4. COME FUNZIONA LIVE DEMO
  5. 5. COME FUNZIONA STATUS E RUN (GIT PULL SU ALTRO AMBIENTE) v ga tp ei e2 / a/ w/ a1 0 $ g tp l a rn @ rc s3 :v rw w mg 80 i u l r mt :C ut n oj cs 2,d n . e oe on ig b et : 7 oe r mt :C mr si goj cs 1 0 (/) d n . e oe op es n be t : 0 % 44, oe r mt :T tl 1 (e t 3, ru e 1 (e t 3 e oe oa 4 d la ) e sd 4 dl a ) U pc ig oj cs 1 0 (4 1 ) d n. n ak n b et : 0% 1 /4 , oe F o g t u. o: u- oe d m- ae a2 1 r m ih bc mp g mr /e om g dy 03 e 54 2. e4 2 m se a a9 .74 39 a tr - o ii /a tr > r gn ms e U dt n e5 42 .e 42 p ai g aa 9. 7 43 9 F s- ow r a tf r ad v rm gp o/ ae l ya lc v a /a e ly mg po _l . s 1 fl sc ag d 1i sr i n( ) ie hn e, ne to s+ | 1+
  6. 6. COME FUNZIONA STATUS v ga tp ei e2 / a/ w/ a1 0 $ p ps el mg p o. h a rn @ rc s3 :v rw w mg 80 h h l /a el yp p s M gp o v1 19 -t ak n i at v -u e i r b ro a el y .. rc ig s c ie s r s oe t P ni gA to sl s : e dn ci n it I:1 D -S v n w M g z i o ' a - 0 '( r n h o M n O t 2 0: 25 2 1 ) a e e aa z n mg 01 a o ci n o c 8 92: 6 0 3 T tl pn igat o s 1 o a e dn c in : RUN v ga tp ei e2 / a/ w/ a1 0 $ p ps el mg p o. h a rn @ rc s3 :v rw w mg 80 h h l /a el yp p r M gp o v1 19 -t ak n i at v -u e i r b ro a el y .. rc ig s c ie s r s oe t A to I # -s ce sE e et c et cn s ce s c in D 1 u c s lm no r ao o u cs o E eu e at os 11 x ct d ci n: /
  7. 7. COME FUNZIONA PANNELLO DI ADMIN
  8. 8. COME FUNZIONA PANNELLO DI ADMIN (DELETE)
  9. 9. COME FUNZIONA PANNELLO DI ADMIN (COMMIT E PUSH DELLA DELETE) v ga tp ei e2 / a/ w/ a1 0 $ g ts au a rn @ rc s3 :v rw w mg 80 i t t s # O b a c m se n rn h at r # Ca gs nt sa e fr c mi : hn e o t gd o o mt # # m df e: vr mg po / ae ly al cv oi id a/ a el ym gp o_ l .s # v ga tp ei e2 / a/ w/ a1 0 $ g tc mi - m" lm n t m gz i o a rn @ rc s3 :v rw w mg 80 i o m t a Ei ia o aa zn " [ at re db 6 Ei ia o mg zi o m se de 2] l mn t aa z n 1 fl c ag d 1i sr in + ie h ne , n et o () v ga tp ei e2 / a/ w/ a1 0 $ g tp s a rn @ rc s3 :v rw w mg 80 i u h C ut n oj cs 9 dn . o ni g be t: , o e D la cm rs in u ig u t 2t ra s e t o pe so s n p o h ed . C mr si go jc s 10 ( /) d n. o pe s n be t: 0 % 33 , oe W ii go jc s 10 ( / ) 4 0b ts d n. r tn be t: 0 % 55 , 4 ye , o e T tl 5( et 2 ,r ue 0(e t 0 oa dl a ) es d d la ) T gt g tu .o :u -o e dm -a ea 21 . i o i @i hb cm p gm r/ eo m gd y0 3g t 3 74 f. de 2 m se - ms e 5 db . ed b6 a tr > a tr
  10. 10. COME FUNZIONA PANNELLO DI ADMIN (RICEZIONE DELLE DELETE DA PARTE PRIMO DEV) a es nr @o as i ~N te nP o et /a e8 0 pp se l mg po .h l sa d oK wl k : /e B as rj cs mg 1 0$ h h l/ ae ly p p s M gp o v1 19 -t ak n i at v -u e i a o ci a el y .. rc ig s c ie s r s rn h P ni gA to sl s : e dn ci n it I : 2 -D lt e it n Mg zi o 'a -0 ' ( oe t o Mn Ot 2 1 :1 2 2 1) D ee e x s ig a az n mg 01 rb ro n o c 8 0 2: 0 03 T tl pn igat o s 1 o a e dn c in : a es nr @o as i ~N te nP o et /a e8 0 pp se l mg po .h l sa d oK wl k : /e B as rj cs mg 1 0$ h h l/ ae ly p p r M gp o v1 19 -t ak n i at v -u e i a o ci a el y .. rc ig s c ie s r s rn h A to I # -s ce sE e et c ne lt c ns ce s c in D 2 u c s lm no a cl ao o u c so E eu e at os 11 x ct d ci n: /
  11. 11. COME È SVILUPPATO THE MAGENTO WAY Request Funnel: registra le invocazioni alle Action a cui è associato un Tracker Tracker: implementa encoding e decoding dei parametri delle Action convertendo gli ID specifici di ogni ambiente in UUID UUID (Universally Unique Identifier): identifica univocamente le entità secondo una logica specifica; implementazione potenzialmente complessa che può richiedere vincoli Config: un modulo può aggiungere i propri Tracker dichiarandoli nel config.xml
  12. 12. COME È SVILUPPATO
  13. 13. COME È SVILUPPATO DICHIARAZIONE DI UN TRACKER NEL CONFIG.XML < of g c ni > .. . <e al > df u t .. . < ae ly m g po> <c in > a to s <eo mg d y0 3 dm _a ea 21 > <i al d0/ ia ld d sb e><d s be> <l s>e oM gd y0 3 Md lM gp o_ c in Mg zi i/l s> c as Dm _a e a2 1_ oe _a e ly At o_ a az n<ca s <dm _a e a2 1> /e om gd y0 3 <a to s / ci n> <mg po > /a el y .. . <d fu t / e a l> .. . <cn i > /of g
  14. 14. COME È SVILUPPATO LA CLASSE CHE IMPLEMENTA IL TRACKER Estende PgoeMgpo_oe_cinAsrc uMR_aelyMdlAto_btat Implementazione minima per registrare le informazioni utili nel log utilizzando la funzione m t h )della classe ac( base < pp ?h c as Dm _a ea 2 1_ oe _a e ly At o_ aa z n l s e oM gd y0 3M d lM gp o_ ci n Mg zi i e tn sP g oe Mg po _ oe _c in As r c xe d uM R_ a el yM dl At o _b ta t { cn tV RI N= ' ' os ES O 1; po et d $ cd = 'e o mg dy 3m gz i i; rt c e _o e d m_ ae a 1_ aa zn ' po et d $ ba k be aa s= a ry 'e ' 'o mk y ) rt c e _l na lP r m r a(ky , fr _ e' ; po et d f nt o _e V ri n){ rt c e uc in g te so ( rt r e un M g: hl e( pg o em gp o' -g t es o( )' 'sl :V RI N a e: ep r 'u mr _a e ly )> eV ri n 2. ..ef :E S O; } }
  15. 15. COME È SVILUPPATO LA FUNZIONE MATCH() DELLA CLASSE BASE < pp ?h p b i f n t o m t h) { u lc u ci n ac( $ = M g: hl e(pg o em gp o' ; h a e: ep r'u mr _a e ly ) $- lg "o ue n m: %" $ hs>r qe t >e Md lN m () h > o (M dl a e s , t i -_ eu s- gt o ue ae ); $- lg "o to l rn m: %" $ hs>r q et >e Cn r le Nm () h > o (C nr le a e s , ti -_ eu s- g to to lr ae ) ; $- lg "c in n m: %" $ hs>r qe t >e At oN m () h > o (A to a e s , t i -_ eu s- gt c in ae ); $- lg "e us P rm t r: %" p it r $ hs> rq et >e Pr m (, tu ); h > o (R qe t aa ee s s , r n_ ( ti -_ eu s -g ta as ) r e) rt r fl e eu n as ; }
  16. 16. COME È SVILUPPATO INFORMAZIONI NEL LOG DOPO UNA SAVE ACTION NEW DELETE 2 1- 02 T8 4: 7 0: 0D BG ( ) 0 31 - 80 :4 2+ 00 EU 7 : Md l nm :d ma 21 ou e ae e m g0 3 2 1- 02 T8 4: 7 0: 0D BG ( ) 0 31 - 80 :4 2+ 00 EU 7 : Cn rl e nm :a mn t lm gz ii ot o lr ae di hm _a a zn 2 1- 02 T8 4: 7 0: 0D BG ( ) 0 31 - 80 :4 2+ 00 EU 7 : At o nm :s v ci n ae a e 2 1- 02 T8 4: 7 0: 0D BG ( ) 0 31 - 80 :4 2+ 00 EU 7 : Rq et Pr mt r :A ry eu s a ae es r a ( [ e] = 1a 1e 6. 5 95 b4 a k y > d2 3 7. .1 18 0 4 [ om ky = v 1o 5h 58 O f r _e ] > 1 Mz R XU 43 [ oi e = m g 01 c d c] > a- 0 [ oe = MC n e n m ] > B et r [ ai n] = I n z oe > T [ it ]= M dn cta > oea [ a] = 41 0 c p > 10 [ ni iz ]= v ae V ri i, 5/ i d rz o > il i gl o 2 E [ mi ]= m g0 @o e gu po g e a l > a 0 1m r. rs . r ) 2 1- 02 T9 0: 8 0: 0D BG ( ) 0 31 - 80 :0 2+ 00 EU 7 : Md l nm :d ma 21 ou e ae e m g0 3 2 1- 02 T9 0: 8 0: 0D BG ( ) 0 31 - 80 :0 2+ 00 EU 7 : Cn rl e nm :a mn t lm gz ii ot o lr ae di hm _a a zn 2 1- 02 T9 0: 8 0: 0D BG ( ) 0 31 - 80 :0 2+ 00 EU 7 : At o nm :d lt ci n ae e e e 2 1- 02 T9 0: 8 0: 0D BG ( ) 0 31 - 80 :0 2+ 00 EU 7 : Rq et Pr mt r :A ry eu s a ae es r a ( [d = 1 i] > [ e] = f6 90 .2 c 3a k y > 61 7 .. 3e 06 )
  17. 17. COME È SVILUPPATO CLASSE COMPLETA PER IL TRACKING DEI MAGAZZINI s Gtu u iHb
  18. 18. < pp ?h c as Dm _a ea 2 1_ oe _a e ly At o_ aa z n e t nsPg oe Mg p o_ oe _c l s e oM gd y0 3M d lM gp o_ ci n Mg zi i xe d uM R _a el yM d lA t { c ntVR IN = '' o s E SO 1; p oe td $c d = ' e om gd y3 mg z ii; r t ce _ oe dm _a e a1 _a az n' p oe td $b a kb ea as = ar y ' e' ' om ky ) r t ce _ ln al P rm ra (k y , f r _e '; p oe td fn t o _ e Vr in) r t ce u ci n gt es o( { r tr M g: hl e (p go em gp o '- gt es o () .' '. sl : VR IN eu n a e :e pr 'u m r_ ae ly )> e Vr in 2 . e f: ES O ; } p bi f nt o mt h) u l c u ci n ac ( { i ( $h s> rq e t { f ! ti - _e us ) r tr f le eu n as; } i ( ti-_ eu s -g to ue ae ) = ' e mg 03){ f $ hs> rq et >e M dl Nm ( = dm a2 1 ' i ( ti-_ e us -g to to l ra e) = 'd ih m_ a az n' { f $ h s> r q e t > e C n r l e N m ( = a m n t l m g z i i ) i ( na r y$ hs>r qe t >e At oN m (, ar y ' ae ,'e ee )) f i_ ra (t i-_ eu s- gt c in ae ) ra ( sv ' dl t ') rt r tu ; eu n re } } } r tr f le eu n a s; } p bi f nt o ec d ( u l c u ci n no e ) {
  19. 19. COME È SVILUPPATO RISULTATO DEL TRACKING (CSV) c l: 18 92 7 o 1 3 25 16 c l: ao ci o 2 r nh c l: Sv n wM gz io ' a- 0' o 3 a e e a a zn m g0 1 c l: Dm _a ea 2 1_ oe _a e ly At o_ aa z n o 4 e oM gd y0 3M d lM gp o_ ci n Mg zi i c l: Dm _a ea 2 1 o 5 e oM gd y0 3 c l: am nt lm g zi i o 6 d ih m_ aa zn c l: sv o7 ae c l: oO tO YI N Zl ZI c. t 3l my Xw my y 7Q = o 8 3 nz j6 mv Gj S 7. .b JL dd N L9 ZI f= c l: 11 1 o9 ..
  20. 20. CONFLITTI Scenario: due programmatori hanno creato un magazzino con lo stesso codice. Il primo ha già fatto commit e push. Il secondo si ritrova nello stato seguente: a es nr @o as i ~N te nP o et /a e8 0 gt pl l sa d oK wl k : /e B as rj cs mg 1 0$ i u l r mt :C ut n oj cs 9 d n. e oe on ig b et : , o e r mt :C mr si goj cs 1 0 (/) d n . e oe op es n be t : 0 % 11, oe r mt :T tl 5( e t 2, ru e 5( et 2 e oe oa dl a ) es d d la ) U pc ig oj cs 1 0 (/) dn . n ak n b et : 0% 5 5, o e F o g t u. o: u- oe d m- ae a2 1 r m ih bc mp g mr /e om g dy 03 48 0 9. 8d 1 ms e 6 39 . 5 7a b a tr - oi i/ a tr > r gn ms e A t- eg n vr mg po / ae ly al cv u om r ig a/ a el ym gp o _l .s C NL C (o tn ) Mr ec nl c i vr mg po / ae ly al cv O FI T cn et : eg of it n a/ a el ym gp o _l .s A tm tcmr ef i e; fx cn l cs ad te c mi t er sl . u oa i e g al d i o fi t n h n o m t h eu t
  21. 21. CONFLITTI Cosa troveremo nel m g p o _ l . s ? aelyalcv <<< < H A <<< ED 1 89 63 ,r nh , Sv n wM gz io ' a - 0' ,e oM g dy 03 Md lM g po _c in 3 25 5 0a oc i" ae e a a zn m g0 1" D m_ ae a2 1_ o e_ ae ly A to _ = == = = == 1 89 64 ,o et , Sv n wM gz io ' a - 0' ,e oM g dy 03 Md lM g po _c in 3 25 1 6r br o" ae e a a zn m g0 1" D m_ ae a2 1_ o e_ ae ly A to _ > >> >5 7a b2 2 37 40 8f 8 45 fe c5 f > >> 8d 11 29 13 2 3e 35 37 21 6 0c Come si risolve? Parlandosi :-) Un conflitto di questo tipo è il risultato di una mancata comunicazione; va risolto scegliendo l'azione da mantenere o eliminando entrambe e registrandone una nuova.
  22. 22. CONCLUSIONI AS-IS Attribute Tracker Category Tracker CMS Tracker Store System Config (sperimentale) TO BE Più Tracker possibili Controllo dei vincoli Test automatici
  23. 23. ? Q & (HOPEFULLY) A
  24. 24. GRAZIE! RIMANIAMO IN CONTATTO... Mageploy: mageploy.com Twitter: @aleron75 - @pug_more GitHub: github.com/aleron75 - github.com/pug-more Blog: www.magentocommunity.it PUG MoRe: http://more.grusp.org Magento Italia on G+

×