Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Spark »Ò¶È·¢²¼ÔÚÊ®Íò¼¶½ÚµãÉϵÄʵ¼ù
 
  1731  次浏览      28
 2018-11-16
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚinfoq£¬±¾ÎÄÖ÷Òª½éÉÜÁËSpark CI ³ÖÐø¼¯³Éʵ¼ùÓ벿Êð£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

Spark CI ³ÖÐø¼¯³Éʵ¼ù

CI ½éÉÜ

³ÖÐø¼¯³ÉÊÇÖ¸£¬¼°Ê±µØ½«×îпª·¢µÄÇÒ¾­¹ý²âÊԵĴúÂ뼯³Éµ½Ö÷¸É·ÖÖ§ÖС£

³ÖÐø¼¯³ÉµÄÓŵã

1.¿ìËÙ·¢ÏÖ´íÎó ÿ´Î¸üж¼¼°Ê±¼¯³Éµ½Ö÷¸É·ÖÖ§ÖУ¬²¢½øÐвâÊÔ£¬¿ÉÒÔ¿ìËÙ·¢ÏÖ´íÎ󣬷½±ã¶¨Î»´íÎó

2.±ÜÃâ×Ó·ÖÖ§´ó·ùÆ«ÀëÖ÷¸É·ÖÖ§ Ö÷¸ÉÔÚ²»¶Ï¸üУ¬Èç¹û²»¾­³£¼¯³É£¬»á²úÉúºóÆÚ¼¯³ÉÄѶȱä´ó£¬ÉõÖÁÄÑÒÔ¼¯³É£¬²¢Ôì³É²»Í¬¿ª·¢ÈËÔ±¼ä²»±ØÒªµÄÖØ¸´¿ª·¢

3.Ϊ¿ìËÙµü´úÌṩ±£ÕÏ ³ÖÐø¼¯³ÉΪºóÎĽéÉܵijÖÐø·¢²¼Óë³ÖÐø²¿ÊðÌṩÁ˱£Ö¤

Spark CI ʵ¼ù

ĿǰÖ÷Á÷µÄ´úÂë¹ÜÀí¹¤¾ßÓУ¬Github¡¢Gitlab µÈ¡£±¾ÎÄËù½éÉܵÄÄÚÈÝÖУ¬ËùÓдúÂë¾ùÍйÜÓÚ˽ÓÐµÄ Gitlab ÖС£

¼øÓÚ Jenkins ¼¸ºõÊÇ CI ÊÂʵÉϵıê×¼£¬±¾ÎĽéÉÜµÄ Spark CI CD & CD ʵ¼ù¾ù»ùÓÚ Jenkins Óë Gitlab¡£

Spark Ô´Âë±£´æÔÚ spark-src.git ¿âÖС£

ÓÉÓÚÒÑÓв¿Êðϵͳ֧³Ö Git£¬Òò´Ë¿É½«¼¯³ÉºóµÄ distribution ±£´æµ½ Gitlab µÄ·¢²¼¿â£¨spark-bin.git£©ÖС£

ÿ´Î¿ª·¢ÈËÔ±Ìá½»´úÂëºó£¬¾ùͨ¹ý Gitlab ·¢ÆðÒ»¸ö Merge Requet£¨Ï൱ÓÚ Gitlab µÄ Pull Request£©¡£

ÿµ±ÓÐ MR ±»´´½¨£¬»òÕß±»¸üУ¬Gitlab ͨ¹ý Webhook ֪ͨ Jenkins »ùÓڸà MR ×îдúÂë½øÐÐ build¡£¸Ã build ¹ý³Ì°üº¬ÁË

1.±àÒë Spark ËùÓÐ module

2.Ö´ÐÐ Spark ËùÓе¥Ôª²âÊÔ

3.Ö´ÐÐÐÔÄܲâÊÔ

4.¼ì²é²âÊÔ½á¹û¡£Èç¹ûÓÐÈÎÒâ²âÊÔÓÃÀýʧ°Ü£¬»òÕßÐÔÄܲâÊÔ½á¹ûÃ÷ÏÔ²îÓÚÉÏÒ»´Î²âÊÔ£¬Ôò Jenkins ¹¹½¨Ê§°Ü

Jenkins ½« build ½á¹û֪ͨ Gitlab£¬Ö»ÓÐ Jenkins ¹¹½¨³É¹¦£¬Gitlab µÄ MR Ò³Ãæ²ÅÔÊÐí Merge¡£·ñÔò Gitlab ²»ÔÊÐí Merge¡£

ÁíÍ⣬»¹ÐèÈ˹¤½øÐÐ Code Review¡£Ö»ÓÐÁ½¸öÒÔÉ쵀 Reviewer ͨ¹ý£¬²ÅÄܽøÐÐ×îÖÕ Merge¡£

ËùÓвâÊÔÓë Reivew ͨ¹ýºó£¬Í¨¹ý Gitlab Merge ¹¦ÄÜ×Ô¶¯½«´úÂë Fast forward Merge µ½Ä¿±ê·ÖÖ§ÖС£

¸ÃÁ÷³Ì±£Ö¤ÁË

1.ËùÓкϲ¢½øÄ¿±ê·ÖÖ§ÖеĴúÂë¶¼¾­¹ýÁ˵¥Ôª²âÊÔ£¨°×ºÐ²âÊÔ£©ÓëÐÔÄܲâÊÔ£¨ºÚºÐ²âÊÔ£©

2.ÿ´Î·¢Æð MR ºó¶¼»á¼°Ê±×Ô¶¯·¢Æð²âÊÔ£¬·½±ã¼°Ê±·¢ÏÖÎÊÌâ

3.ËùÓдúÂë¸üж¼Äܼ°Ê±ºÏ²¢½øÄ¿±ê·ÖÖ§

Spark CD ³ÖÐø½»¸¶

CD ³ÖÐø½»¸¶½éÉÜ

³ÖÐø½»¸¶ÊÇÖ¸£¬¼°Ê±µØ½«Èí¼þµÄа汾£¬½»¸¶¸øÖÊÁ¿±£ÕÏÍŶӻòÕßÓû§£¬ÒÔ¹©ÆÀÉó¡£³ÖÐø½»¸¶¿É¿´×÷ÊdzÖÐø¼¯³ÉµÄÏÂÒ»²½¡£ËüÇ¿µ÷µÄÊÇ£¬²»¹ÜÔõô¸üУ¬Èí¼þ¶¼ÊÇ¿ÉËæÊ±½»¸¶µÄ¡£

ÕâÒ»½×¶ÎµÄÆÀÉó£¬Ò»°ãÊǽ«ÉÏÎļ¯³ÉºóµÄÈí¼þ²¿Êðµ½¾¡¿ÉÄÜÌù½üÉú²ú»·¾³µÄ Staging »·¾³ÖУ¬²¢Ê¹ÓÃÌù½üÕæÊµ³¡¾°µÄÓ÷¨£¨»òÕßÁ÷Á¿£©½øÐвâÊÔ¡£

³ÖÐø·¢²¼µÄÓŵã

¿ìËÙ·¢²¼ ÓÐÁ˳ÖÐø¼¯³ÉÓë³ÖÐø·¢²¼£¬¿É¿ìËÙ½«×îй¦ÄÜ·¢²¼³öÀ´£¬Ò²¿É¿ìËÙÐÞ¸´ÒÑÖª bug

¿ìËÙµü´ú ÓÉÓÚ·¢²¼¼°Ê±£¬¿ÉÒÔ¿ìËÙÅжϲúÆ·ÊÇ·ñ·ûºÏ²úÆ·¾­ÀíµÄÔ¤ÆÚ»òÕßÊÇ·ñÄÜÂú×ãÓû§µÄÐèÇó

Spark CD ³ÖÐø·¢²¼Êµ¼ù

ÕâÀïÓÐÌṩÈýÖÖ·½°¸£¬¹©¶ÁÕ߲ο¼¡£ÍƼö·½°¸Èý

·½°¸Ò»£ºµ¥·ÖÖ§

Õý³£Á÷³Ì

ÈçÏÂͼËùʾ£¬»ùÓÚµ¥·ÖÖ§µÄ Spark ³ÖÐø½»¸¶·½°¸ÈçÏÂ

1.ËùÓпª·¢¶¼ÔÚ spark-src.git/dev£¨¼´ spark-src.git µÄ dev branch£© ÉϽøÐÐ

2.ÿÖÜÒ»½«µ±Ç°×îдúÂë´ò°ü£¬·Å½ø spark-bin.git/dev µÄ spark-${ build # }£¨ÈçͼÖÐµÚ 2 ÖÜµÄ spark-72£©Îļþ¼ÐÄÚ

3.spark-prod Ö¸Ïòµ±Ç° spark-dev Ö¸ÏòµÄÎļþ¼Ð£¨ÈçͼÖÐµÄ spark-71 £©

4.spark-dev Ö¸Ïò spark-${ build # }£¨ÈçͼÖÐµÄ spark-72£©

5.×Ô¶¯½« spark-bin.git ×îÐÂÄÚÈÝÉÏÏßµ½ Staging »·¾³£¬²¢Ê¹Óà spark-dev ½øÐвâÊÔ

6.spark-prod ±È spark-dev ÍíÒ»ÖÜ£¨Ò»¸ö release ÖÜÆÚ£©£¬ÕâÒ»ÖÜÓÃÓÚ Staging »·¾³ÖвâÊÔ

×¢£º

À¶É«Ô²ÐÎÊÇÕý³£ commit

´¹Ö±ÐéÏßÊÇ·¢²¼Ê±¼äµã£¬week 1¡¢week 2¡¢week 3¡¢week 4

×îÉÏ·½ºÚÉ«´ÖºáÏßÊÇÔ´Âëʱ¼äÏß

Ï·½»ÆÉ«´ÖºáÏßÊÇ release ʱ¼äÏß

ÂÌÉ«·½¿òÊÇÿÖÜÉú³ÉµÄ release£¬´ø build #

À¶É«·½¿òÊÇ¿ª·¢°æ±¾µÄ symbolic

éÙÉ«·½¿òÊÇÏßÉϰ汾µÄ symbolic

bug fix

ÔÚ Staging »·¾³Öз¢ÏÖ spark-dev µÄ bug ʱ£¬ÐÞ¸´¼°¼¯³ÉºÍ½»¸¶·½°¸ÈçÏÂ

1.Èç¹ûÔÚ Staging »·¾³Öз¢ÏÖÁË spark-dev µÄ bug£¬ÇÒ±ØÐëÒªÐÞ¸´£¨Èç²»ÐÞ¸´£¬»á´øµ½ÏÂ´ÎµÄ spark-prod µÄ release ÖУ©£¬ÔòÌá½»Ò»¸ö commit£¬²¢ÇÒ commit message °üº¬ bugfix ×ÖÑù£¨ÈçͼÖкÚɫԲÐÎ commit 9 Ëùʾ£©

2.¸Ã bugfix ±» Merge ºó£¬Jenkins µÃµ½Í¨Öª

3.Jenkins ·¢Ïָà commit ÊÇ bugfix£¬Á¢¼´Æô¶¯¹¹½¨£¬Éú³Éspark-${ build \# }£¨ÈçͼÖÐµÄ spark-73£©

4.spark-dev Ö¸Ïò spark-${ build \# } £¨ÈçͼÖÐµÄ spark-73 £©

hot fix

Éú²ú»·¾³Öз¢ÏÖ bug ʱÐÞ¸´¼°½»¸¶·½°¸ÈçÏÂ

1.Èç¹û·¢ÏÖÏßÉϰ汾£¨¼´ spark-prod£©ÓÐÎÊÌ⣬Ð뼰ʱÐÞ¸´£¬ÔòÌá½»Ò»¸ö commit£¬²¢ÇÒ commit message °üº¬ hotfix ×ÖÑù £¨ÈçͼÖкìɫԲÐÎ commit 9 Ëùʾ£©

2.¸Ã hotfix ±» Merge ºó£¬Jenkins µÃµ½Í¨Öª

3.Jenkins ·¢Ïָà commit ÊÇ hotfix£¬Á¢¼´Æô¶¯¹¹½¨£¬Éú³É spark-${ build \# }£¨ÈçͼÖÐµÄ spark-73£©

4.spark-dev Óë spark-prod ¾ùÖ¸Ïò spark-${ build \# } £¨ÈçͼÖÐµÄ spark-73 £©

Pros.

spark-src.git Óë spark-bin.git ¶¼Ö»ÓÐÒ»¸ö·ÖÖ§£¬Î¬»¤·½±ã

spark-prod ÂäºóÓÚ spark-dev Ò»ÖÜ£¨Ò»¸ö release£©£¬Òâζ×Å spark-prod ¶¼³É¹¦Í¨¹ýÁËÒ»ÖÜµÄ Staging »·¾³²âÊÔ

Cons.

ʹÓà spark-prod Óë spark-dev Á½¸ö symbolic£¬Èç¹ûÒª×ö»Ò¶È·¢²¼£¬ÐèÒªÓû§ÐÞ¸ÄÏàӦ·¾¶£¬³É±¾½Ï¸ß

hotfix ʱ£¬ÒýÈëÁ˹ýÈ¥Ò»Öܶࣨ×î¶àÁ½ÖÜ£©Î´¾­ Staging »·¾³ÖÐͨ¹ý spark-dev ²âÊ﵀ commit£¬Ôö¼ÓÁ˲»È·¶¨ÐÔ£¬Ò²Î¥±³ÁËËùÓÐ·Ç hotfix commit ¶¼¾­¹ýÁËÒ»¸ö·¢²¼ÖÜÆÚ²âÊÔµÄÔ­Ôò

·½°¸¶þ£ºÁ½·ÖÖ§

Õý³£Á÷³Ì

ÈçÏÂͼËùʾ£¬»ùÓÚÁ½·ÖÖ§µÄ Spark ³ÖÐø½»¸¶·½°¸ÈçÏÂ

1.spark-src.git Óë spark-bin.git ¾ù°üº¬Á½¸ö·ÖÖ§£¬¼´ dev branch Óë prod branch

2.ËùÓÐÕý³£¿ª·¢¶¼ÔÚ spark-src.git/dev ÉϽøÐÐ

3.ÿÖÜÒ»£¨Èç¹ûÊÇ weekly release£©´Ó spark-src.git/dev ´ò°ü³öÒ»¸ö release ·Å½ø spark-bin.git/dev µÄ spark-${ build \# } Îļþ¼ÐÄÚ£¨ÈçͼÖÐµÚ 2 ÖÜÉÏ·½µÄµÄ spark-2 £©¡£Ëü°üº¬ÁË֮ǰËùÓеÄÌá½»£¨commit 1¡¢2¡¢3¡¢4£©

4.spark-bin.git/dev µÄ spark ×÷Ϊ symbolic Ö¸Ïò spark-${ build \# } Îļþ¼ÐÄÚ£¨ÈçͼÖÐµÚ 2 ÖÜÉÏ·½µÄµÄ spark-2£©

5.spark-src.git/prod ͨ¹ý fast-forward merge ½« spark-src.git/dev Ò»ÖÜǰ×îºóÒ»¸ö commit ¼°Ö®Ç°µÄËùÓÐ commit ¶¼ merge ¹ýÀ´£¨ÈçͼÖÐµÚ 2 ÖÜÐ轫 commit 1 merge ¹ýÀ´£©

6.½« spark-src.git/prod ´ò°ü³öÒ»¸ö release ·Å½ø spark-bin.git/prod µÄ spark-${ build \# } Îļþ¼ÐÄÚ£¨ÈçͼÖÐµÚ 2 ÖÜÏ·½µÄµÄ spark-1 £©

7.spark-bin.git/prod µÄ spark ×÷Ϊ symbolic Ö¸Ïò spark-${ build \# }

bug fix

ÔÚ Staging »·¾³Öз¢ÏÖÁË dev °æ±¾µÄ bug ʱ£¬ÐÞ¸´¼°¼¯³ÉºÍ½»¸¶·½°¸ÈçÏÂ

ÔÚ spark-src.git/devÉÏÌá½»Ò»¸ö commit £¨ÈçͼÖкÚÉ«µÄ commit 9£©£¬ÇÒ commit message °üº¬ bugfix ×ÖÑù

Jenkins ·¢Ïָà commit Ϊ bugfix ºó£¬Á¢¼´¹¹½¨£¬´Ó spark-src.git/dev ´ò°üÉú³ÉÒ»¸ö release ²¢·Å½ø spark-bin.git/dev µÄ spark-${ build \# } Îļþ¼ÐÄÚ£¨ÈçͼÖеڶþÖÜÓëµÚÈýÖÜÖ®¼äÉÏ·½µÄµÄ spark-3 £©

spark-bin.git/dev ÖÐµÄ spark ×÷Ϊ symbolic Ö¸Ïò spark-${ build \# }

hot fix

ÔÚÉú²ú»·¾³Öз¢ÏÖÁË prod °æ±¾µÄ bug ʱ£¬ÐÞ¸´¼°¼¯³ÉºÍ½»¸¶·½°¸ÈçÏÂ

ÔÚ spark-src.git/dev ÉÏÌá½»Ò»¸ö commit£¨ÈçͼÖкìÉ«µÄ commit 9£©£¬ÇÒ commit message °üº¬ hotfix ×ÖÑù

Jenkins ·¢Ïָà commit Ϊ hotfix ºó£¬Á¢¼´½« spark-src.git/dev ´ò°üÉú³É release ²¢ commit µ½ spark-bin.git/dev µÄ spark-${ build \# } £¨ÈçͼÖÐÉÏ·½µÄ spark-3 £©Îļþ¼ÐÄÚ¡£ spark ×÷Ϊ symbolic Ö¸Ïò¸Ã spark-${ build \# }

ͨ¹ý cherry-pick ½« commit 9 double commit µ½ spark-src.git/prod£¨ÈçÎÞ³åÍ»£¬Ôò¸ÃÁ÷³ÌÈ«×Ô¶¯Íê³É£¬ÎÞÐèÈ˹¤²ÎÓë¡£Èç·¢Éú³åÍ»£¬Í¨¹ý¸æ¾¯ÏµÍ³Í¨Öª¿ª·¢ÈËÔ±ÊÖ¹¤½â¾ö³åÍ»ºóÌá½»£©

½« spark-src.git/prod ´ò°üÉú³É release ²¢ commit µ½ spark-bin.git/prod µÄ spark-${ build \# } £¨ÈçͼÖÐÏ·½µÄ spark-3 £©Îļþ¼ÐÄÚ¡£spark ×÷Ϊ symbolic Ö¸Ïò¸Ãspark-${ build \# }

Pros.

ÎÞÂÛÊÇ dev °æ»¹ÊÇ prod °æ£¬Â·¾¶¶¼ÊÇ spark¡£Çл»°æ¶ÔÓû§Í¸Ã÷£¬ÎÞÇ¨ÒÆ³É±¾

·½±ã»Ò¶È·¢²¼

hotfix ²»»áÒýÈëδ¾­²âÊ﵀ commit£¬Îȶ¨ÐÔ¸üÓб£ÕÏ

prod °æÂäºóÓÚ dev °æÒ»ÖÜ£¨Ò»¸ö release ÖÜÆÚ£©£¬¼´ prod ¾­¹ýÁËÒ»¸ö release ÖÜÆÚµÄ²âÊÔ£¬Îȶ¨ÐÔÇ¿

Cons.

hot fix ʱ£¬Ê¹Óà cherry-pick£¬µ« spark-src.git/dev£¨°üº¬ commit 1¡¢2¡¢3¡¢4¡¢5£© Óë spark-src.git/prod£¨°üº¬ commit 1£© µÄ base ²»Ò»Ñù£¬Óз¢Éú³åÍ»µÄ·çÏÕ¡£Ò»µ©·¢Éú³åÍ»£¬±ãÐèÈ˹¤½éÈë

hot fix ºóÔÙ´Ó spark-src.git/dev ºÏ²¢ commit µ½ spark-src.git/prod ʱÐèҪʹÓà rebase ¶ø²»ÄÜÖ±½Ó fast-forward merge¡£¶ø¸Ã rebase ¿ÉÄÜÔٴη¢Éú³åÍ»

bug fix ÐÞ¸´µÄÊǵ±Ç° spark-bin.git/dev µÄ bug£¬¼´Í¼ÖÐµÄ commit 1¡¢2¡¢3¡¢4 ºóµÄ bug£¬¶ø bug fix commit ¼´ commit 9 µÄ base ÊÇ commit 5£¬´æÔÚÒ»¶¨³Ì¶ÈµÄ²»Ò»ÖÂ

bug fix ºó£¬µÚ 3 ÖÜʱ£¬×îÐ嵀 spark-bin.git/dev °üº¬ÁË bug fix£¬¶ø×îÐ嵀 spark-bin.git/prod δ°üº¬¸Ã bugfix £¨ËüÖ»°üº¬ÁË commit 2¡¢3¡¢4 ¶ø²»°üº¬ commit 5¡¢9£©¡£Ö»Óе½µÚ 4 ÖÜ£¬spark-bin.git/prod ²Å°üº¬¸Ã bugfix¡£Ò²¼´ Staging »·¾³Öз¢ÏÖµÄ bug£¬ÐèÒªÔÚÒ»Öܶࣨ×î¶àÁ½ÖÜ£©²ÅÄÜÔÚ prod »·¾³Öб»ÐÞ¸´¡£»»ÑÔÖ®£¬Staging »·¾³Öмì²â³öµÄ bug£¬ÈÔÈ»»á¼ÌÐø³öÏÖÔÚÏÂÒ»¸öÉú²ú»·¾³µÄ release ÖÐ

spark-src.git/dev Óë spark-src.git/prod Öаüº¬µÄ commit ÊýÒ»Ö£¨ÒòΪֻÔÊÐí fast-forward merge£©£¬ÄÚÈÝÒ²×îÖÕÒ»Ö¡£µ«ÊÇ commit ˳Ðò²»Ò»Ö£¬ÇÒ¸÷ commit ÄÚÈÝÒ²¿ÉÄܲ»Ò»Ö¡£Èç¹ûά»¤²»µ±£¬ÈÝÒ×Ôì³ÉÁ½¸ö·ÖÖ§²î±ðÔ½À´Ô½´ó£¬²»Ò׺ϲ¢

·½°¸Èý£º¶à·ÖÖ§

Õý³£Á÷³Ì

ÈçÏÂͼËùʾ£¬»ùÓÚ¶à·ÖÖ§µÄ Spark ³ÖÐø½»¸¶·½°¸ÈçÏÂ

Õý³£¿ª·¢ÔÚ spark-src.git/master ÉϽøÐÐ

ÿÖÜһͨ¹ý fast-forward merge ½« spark-src.git/master ×îдúÂëºÏ²¢µ½ spark-src.git/dev¡£ÈçÏÂͼÖУ¬µÚ 2 Öܽ« commit 4 ¼°Ö®Ç°ËùÓÐ commit ºÏ²¢µ½ spark-src.git/dev

½« spark-src.git/dev ´ò°üÉú³É release ²¢Ìá½»µ½ spark-bin.git/dev µÄ spark-${ build \# }£¨ÈçÏÂͼÖÐµÚ 2 ÖÜµÄ spark-2£© Îļþ¼ÐÄÚ¡£spark ×÷Ϊ symbolic£¬Ö¸Ïò¸Ã spark-${ build \# }

ÿÖÜһͨ¹ý fast-forward merge ½« spark-src.git/master Ò»ÖÜǰ×îºóÒ»¸ö commit ºÏ²¢µ½ spark-src.git/prod¡£ÈçµÚ 3 Öܺϲ¢ commit 4 ¼°Ö®Ç°µÄ commit

ÉÏÒ»²½ÖУ¬Èç¹û commit 4 ºó½ôÁÙÓÐÒ»¸ö»ò¶à¸ö bugfix commit£¬¾ùÐèºÏ²¢µ½ spark-src.git/prod ÖУ¬ÒòΪËüÃÇÊÇ¶Ô commit 4 ½øÐÐµÄ bug fix¡£ºóÎĽéÉÜµÄ bug fix Á÷³Ì±£Ö¤£¬Èç¹û¶Ô commit 4 ºó·¢²¼°æ±¾Óжà¸ö bug fix£¬ÄÇÕâ¶à¸ö bug fix commit ½ôÃÜÏàÁ¬£¬Öм䲻»á±»Õý³£ commit ·Ö¿ª

½« spark-src.git/prod ´ò°üÉú³É release ²¢Ìá½»µ½ spark-bin.git/prod µÄ spark-${ build \# }£¨ÈçÏÂͼÖÐµÚ 2 ÖÜµÄ spark-2£© Îļþ¼ÐÄÚ¡£spark ×÷Ϊ symbolic£¬Ö¸Ïò¸Ã spark-${ build \# }

bug fix

ÔÚ Staging »·¾³Öз¢ÏÖÁË dev °æ±¾µÄ bug ʱ£¬ÐÞ¸´¼°¼¯³ÉºÍ½»¸¶·½°¸ÈçÏÂ

ÈçÏÂͼÖУ¬µÚ 2 ÖÜÓëµÚ 3 ÖÜÖ®¼äÔÚ Staging »·¾³Öз¢ÏÖ dev °æ±¾µÄ bug£¬ÔÚ spark-src.git/dev£¨°üº¬ commit 1¡¢2¡¢3¡¢4£© ÉÏÌá½»Ò»¸ö commit£¨ÈçͼÖкÚÉ«µÄ commit 9£©£¬ÇÒ commit message Öаüº¬ bugfix ×ÖÑù

Jenkins ·¢Ïָà bugfix µÄ commit ºóÁ¢¼´Ö´Ðй¹½¨£¬½« spark-src.git/dev ´ò°üÉú³É release ²¢Ìá½»µ½ spark-bin.git/dev µÄ spark-${ build \# }£¨ÈçͼÖÐµÄ spark-3£© Îļþ¼ÐÄÚ£¬spark ×÷Ϊ symbolic£¬Ö¸Ïò¸Ã spark-${ build \# }

ͨ¹ý git checkout master Çл»µ½ spark-src.git/master £¬ÔÙͨ¹ý git rebase dev ½« bugfix µÄ commit rebase µ½ spark-src.git/master£¬Èç¹û rebase ·¢Éú³åÍ»£¬Í¨¹ý¸æ¾¯Í¨Öª¿ª·¢ÈËÔ±È˹¤½éÈë´¦Àí³åÍ»

ÔÚÒ»¸ö release ÖÜÆÚÄÚ£¬Èç·¢ÏÖ¶à¸ö dev °æ±¾µÄ bug£¬¶¼¿É°´ÉÏÊö·½Ê½½øÐÐ bug fix£¬ÇÒÕ⼸¸ö bug fix µÄ commit ÔÚ spark-src.git/dev ÉÏ˳ÐòÏàÁ¬¡£Òò´ËËüÃDZ» rebase µ½ spark-src.git/master ºóÈÔȻ˳ÐòÏàÁ¬

hot fix

ÔÚÉú²ú»·¾³Öз¢ÏÖÁË prod °æ±¾µÄ bug ʱ£¬ÐÞ¸´¼°¼¯³ÉºÍ½»¸¶·½°¸ÈçÏÂ

ÔÚ spark-src.git/prod ÖÐÌá½»Ò»¸ö commit£¬ÇÒÆä commit message Öаüº¬ hotfix ×ÖÑù

Jenkins ·¢Ïָà commit Ϊ hotfix£¬Á¢¼´Ö´Ðй¹½¨£¬½« spark-src.git/prod ´ò°üÉú³É release ²¢Ìá½»µ½ spark-bin.git/prod µÄ spark-${ build \# }£¨ÈçͼÖÐµÄ spark-3£© Îļþ¼ÐÄÚ£¬spark ×÷Ϊ symbolic£¬Ö¸Ïò¸Ã spark-${ build \# }

ͨ¹ý git checkout master Çл»µ½ spark-src.git/master£¬ÔÙͨ¹ý git rebase prod ½« hotfix rebase µ½ spark-src.git/master

ÔÚÒ»¸ö release ÖÜÆÚÄÚ£¬Èç·¢ÏÖ¶à¸ö prod °æ±¾µÄ bug£¬¶¼¿É°´ÉÏÊö·½Ê½½øÐÐ hot fix

»Ò¶È·¢²¼

±¾ÎĽéÉܵÄʵ¼ùÖУ¬²»¿¼ÂǶà¸ö°æ±¾£¨¾­Êµ¼ù¼ìÑ飬¶à¸ö°æ±¾Î¬»¤³É±¾Ì«¸ß£¬ÇÒÒ»°ãÎÞ±ØÒª£©£¬Ö»¿¼ÂÇÒ»¸ö prod °æ±¾£¬Ò»¸ö dev °æ±¾

ÉÏÎĽéÉܵijÖÐø·¢²¼ÖУ¬¿É½« spark-bin.git/dev ²¿ÊðÖÁÐèҪʹÓÃ×îаæµÄ»·¾³ÖУ¨²»Ò»¶¨ÊÇ Staging »·¾³£¬¿ÉÒÔÊDz¿·ÖÉú²ú»·¾³£©´Ó¶øÊµÏÖ dev °æµÄ²¿Êð¡£½« spark-bin.git/prod ²¿ÊðÖÁÐèҪʹÓÃÎȶ¨°æµÄ prod »·¾³ÖÐ

»Ø¹ö»úÖÆ

±¾ÎĽéÉܵķ½·¨ÖУ¬ËùÓÐ release ¶¼·Åµ½ spark-${ build \# } ÖУ¬ÓÉ spark ÕâÒ» symbolic Ñ¡ÔñÖ¸Ïò¾ßÌåÄĸö release¡£Òò´Ë»Ø¹ö·½Ê½±È½ÏÖ±¹Û

¶ÔÓÚͬһ¸ö´ó°æ±¾£¨dev »òÕß prod£©µÄ»Ø¹ö£¬Ö»Ð轫 spark Ö¸Ïò build # ½ÏСµÄ release ¼´¿É

Èç¹ûÊǽ«²¿·Ö»·¾³ÖÐµÄ prod °æÇ¨ÖÁ dev °æ£¨»òÕß dev °æ¸ÄΪ prod °æ£©ºó£¬ÐèÒª»Ø¹ö£¬Ö»Ð轫 dev ¸Ä»Ø prod °æ£¨»òÕß½« prod °æ¸Ä»Ø dev °æ£©¼´¿É

Pros.

Õý³£¿ª·¢ÔÚ spark-src.git/master ÉϽøÐУ¬Staging »·¾³µÄ bug fix ÔÚ spark-src.git/dev ÉϽøÐУ¬Éú²ú»·¾³µÄ hot fix ÔÚ spark-src.git/prod ÉϽøÐУ¬ÇåÎúÃ÷ÁË

bug fix ÌύʱµÄ code base Óë Staging »·¾³Ê¹Óð汾µÄ code ÍêȫһÖ£¬´Ó¶ø¿É±£Ö¤ bug fix µÄÕýÈ·ÐÔ

bug fix ºÏ²¢»Ø spark-src.git/master ʱʹÓà rebase£¬´Ó¶ø±£Ö¤ÁË spark-src.git/dev Óë spark-src.git/master ËùÓÐ commit µÄ˳ÐòÓëÄÚÈݵÄÒ»ÖÂÐÔ£¬½ø¶ø±£Ö¤ÁËÕâÁ½¸ö branch µÄÒ»ÖÂÐÔ

hot fix ÌύʱµÄ code base Óë Éú²ú»·¾³Ê¹Óð汾µÄ code ÍêȫһÖ£¬´Ó¶ø¿É±£Ö¤ hot fix µÄÕýÈ·ÐÔ

hot fix ºÏ²¢»Ø spark-src.git/master ʱʹÓà rebase£¬´Ó¶ø±£Ö¤ÁË spark-src.git/dev Óë spark-src.git/master ËùÓÐ commit µÄ˳ÐòÐÔ¼°ÄÚÈݵÄÒ»ÖÂÐÔ£¬½ø¶ø±£Ö¤ÁËÕâÁ½¸ö branch µÄÒ»ÖÂÐÔ

¿ª·¢ÈËÔ±Ö»ÐèҪרעÓÚРfeature µÄ¿ª·¢£¬bug fix µÄÌá½»£¬Óë hot fix µÄÌá½»¡£ËùÓеİ汾ά»¤¹¤×÷È«²¿×Ô¶¯Íê³É¡£Ö»Óе± bug fix »ò hot fix rebase »Ø spark-src.git/master ·¢Éú³åͻʱ²ÅÐèÈ˹¤½éÈë

spark-bin.git/dev Óë spark-bin.git/prod ½«¿ª·¢°æ±¾ÓëÉú²ú°æ±¾·Ö¿ª£¬·½±ã¶ÀÁ¢²¿Êð¡£¶øÆä·¾¶Í³Ò»£¬·½±ã°æ±¾Çл»Óë»Ò¶È·¢²¼

Cons.

ÔÚ±¾µØ spark-src.git/master Ìύʱ£¬ÐëÏÈ rebase Ô¶³Ì·ÖÖ§£¬¶ø²»Ó¦Ö±½ÓʹÓà merge¡£ÔÚ±¾·½°¸ÖУ¬Õâ²»½öÊÇ×î¼Ñʵ¼ù£¬»¹ÊÇÓ²ÐÔÒªÇó

ËäÈ» bug fix Óë hot fix commit ¶¼Í¨¹ý rebase ½øÈë spark-src.git/master¡£µ«·¢Éú³åͻʱ£¬ÐèÒªÏàÓ¦ÐÞ¸Ä spark-src.git/master ÉϺóÐø commit¡£ÈçÉÏͼÖУ¬Ìá½»ºìÉ« commit 9 ÕâÒ» hot fix ºó£¬ÔÚ rebase »Ø spark-src.git/master ʱ£¬ÈçÓгåÍ»£¬¿ÉÄÜÐèÒªÐÞ¸Ä commit 2 »òÕß commit 3¡¢4¡¢5¡£¸ÃÐ޸ĻáÔì³É±¾µØ½â¾öÍê³åÍ»ºóµÄ°æ±¾ÓëÔ¶³Ì°æ±¾³åÍ»£¬ÐèÒªÇ¿ÖÆ push »ØÔ¶³Ì·ÖÖ§¡£¸Ã²Ù×÷´æÔÚÒ»¶¨·çÏÕ

Spark CD ³ÖÐø²¿Êð

³ÖÐø²¿ÊðÊÇÖ¸£¬Èí¼þͨ¹ýÆÀÉóºó£¬×Ô¶¯²¿Êðµ½Éú²ú»·¾³ÖС£

ÉÏÊö Spark ³ÖÐø·¢²¼Êµ¼ùµÄ½éÉܶ¼Ö»µ½ " ½« *** Ìá½»µ½ spark-bin.git" ½áÊø¡£¿ÉʹÓûùÓÚ git µÄ²¿Êð£¨ÎªÁËÐÔÄܺÍÀ©Õ¹ÐÔ£¬Ò»°ã²»Ö±½ÓÔÚ´ý²¿Êð»úÆ÷ÉÏʹÓà git pull --rebase£¬¶øÊÇʹÓÃ×ÔÑеÄÉÏÏß·½°¸£¬´Ë´¦²»Õ¹¿ª£©½«¸Ã release ÉÏÏßµ½ Staging »·¾³»òÉú²ú»·¾³¡£

 

   
1731 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ