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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÃÀÍŵãÆÀ£º´òÔì΢·þÎñ×Ô¶¯»¯²âÊÔÓë³ÖÐø¼¯³É¹¤¾ßÁ´Êµ¼ù
 
  6945  次浏览      31
 2018-9-17
 

 

±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚÍøÂ磬ÎÄÕÂÖ÷Òª½éÉÜÁË΢·þÎñ¼Ü¹¹Ï½â¾ö×Ô¶¯»¯²âÊÔ¡¢¿ª·¢Áªµ÷¡¢²âÊÔ»·¾³¡¢³ÖÐø¼¯³É·½ÃæÓöµ½µÄÎÊÌâ¼°½â¾ö·½°¸µÈ¡£

1 ´ÓMonolithicµ½Microservices

ÔÚ2008Äêʱ£¬Êг¡Èí¼þÐÎʽ´ó¶àΪCS¼Ü¹¹¡£µ±Ê±´æÔÚµÄÎÊÌâÔÚÓÚ£¬¿ª·¢ºÄʱ1-2ÄêÇÒÄÚ²¿µÄ½âñî¶ÈµÍ£»¶øÓŵãÔÚÓÚ¶Ô²âÊÔÍŶÓÊ®·ÖÓѺá£

ºóÀ´Èí¼þÐÎʽÓÖ¾­ÀúÁË´ÓSOA·Ö²¼Ê½¼Ü¹¹µ½ÏÖÔÚµÄ΢·þÎñ¼Ü¹¹¡£

¶ÔÓÚ΢·þÎñ¼Ü¹¹À´Ëµ£¬Ëü²¢·ÇÏñ¿ª·¢ÕßÃÇÏëÏóÖеľ®¾®ÓÐÌõ¡£ÏÂͼÊÇÒ»¸ö΢·þÎñ¼Ü¹¹»¯µÄµäÐÍʾÀý£¬´ÓÂÌÉ«µÄÏß¿ÉÒÔ¿´³ö·þÎñÖ®¼äµÄ¹ØÏµ´í×Û¸´ÔÓ¡£

ÓÉÓÚ΢·þÎñ¼Ü¹¹°Ñϵͳ¹¦ÄÜϸ·Ö£¬ÍŶӻáÔÚ¸÷¸ö·½Ãæ¶¼Åöµ½ÁËÌôÕ½¡£ÄÇô΢·þÎñ¼Ü¹¹Ï¹¤³ÌÖÊÁ¿Ãæ¶ÔµÄÎÊÌ⣬¸ÃÈçºÎ½â¾ö£¿½ÓÏÂÀ´ÎÒÃǽ«»á´ÓËĸö·½Ãæ½²Êö¡£

2 ÎÊÌâµÄ·¢ÏÖÓë½â¾ö

×Ô¶¯»¯²âÊÔ

1.´æÔÚµÄÎÊÌâ

·þÎñÊýÁ¿¶à£¬ÒÔHTTPºÍRPC½Ó¿ÚΪÖ÷£ºÁ´Â·³¤ÒÀÀµ¶à¡£

·þÎñ½»¸¶ÖÜÆÚ±ä¶Ì£º´ÓÒÔǰµÄ´óÄ£¿é¿ª·¢£¬»¨·Ñ¼¸¸öÔÂʱ¼ä½»¸¶¡£µ½ÏÖÔÚµÄÒ»µ½Á½Öܽ»¸¶ÉÏÏߣ¬µ«×Ô¶¯»¯²âÊÔ¿ª·¢Ëٶȸú²»ÉϽ»¸¶µÄËÙ¶È¡£

¿ò¼ÜʹÓò»¹æ·¶£¬¶àÖÖ·½Ê½²¢´æ¡£

×Ô¶¯»¯²âÊÔ´úÂëµÄÀ©Õ¹ÐԺͿÉά»¤ÐÔ²»¹»

2.½â¾ö·½°¸

ͨ¹ýÌṩÏàÓ¦µÄ×Ô¶¯»¯²âÊÔ¿ò¼Ü¹¤¾ß£¬¿ÉÒÔʵÏÖ±ê×¼»¯¡¢¹æ·¶»¯¡¢¿ìËÙ½»¸¶²âÊÔ´úÂë¡£¾ßÌå²Ù×÷ÈçÏ¡£

ͳһµÄ¿ò¼Üarchetype×Ô¶¯Éú³ÉÕû¸öÏîÄ¿¿ò¼Ü¡£

Êý¾Ý¡¢ÅäÖᢴúÂë·ÖÀë½øÐÐÊý¾ÝµÄÇý¶¯¡£

µ¥½Ó¿Ú+³¡¾°»¯£¬È·±£×öµ½ÎÞ²ÎÊý´«µÝ¡£

°ÑһЩ³£ÓõÄLib¿â´ò°ü£¬ÔÚPOMÎļþÀïÃæÒýÓá£

HTTPºÍThrift½Ó¿Ú·â×°£¬Ìá¸ß´úÂëµÄ¸´ÓÃÂÊ¡£

API-Lib

ÏÂͼÊÇ×Ô¶¯»¯²âÊÔ¿ò¼Üͼʾ¡£

ÔÚÊý¾ÝУÑéʱ£¬×Ô¶¯»¯Éè¼Æ¿ò¼Ü»á×Ô¶¥²ãÉú³É²âÊÔÏîÄ¿½á¹¹£¬²âÊÔ»·¾³¶¯Ì¬ÅäÖá£

ÔÚ²âÊÔÊý¾Ý£¬»áÓÉÊý¾ÝÇý¶¯À´Íê³É£¬Ö»ÐèҪά»¤ÀïÃæµÄÊý¾Ý¼´¿É£¬ÎÞÐè¸Ä±ä´úÂ룻

ÔÚTestcase²ã£¬ÒýÈëÁËJson Schema¡¢Json Path×öÊý¾ÝУÑ飻

°ÑHTPPºÍThrift×öÁËÏàÓ¦µÄ·â×°£¬·½±ãµ÷Óã»

×îµ×²ãʹÓÃÁËThrift£¬·â×°ÏàÓ¦µÄLib¿â¡£

×Ô¶¯»¯Ê¾Àý

ÈçÏÂͼ£¬×ó±ßÊÇ֮ǰµÄTest´úÂ룬ÓÒ±ßÊÇͨ¹ýͳһ²âÊÔ¿ò¼Ü×Ô¶¯Éú³ÉºóµÄ´úÂë¡£

·ÖΪdataºÍÄÚ²¿»·¾³Êý¾Ý£¬×ÓÎļþÀïÊǵ¥½Ó¿ÚºÍ¶à³¡¾°£¬ÔÚÄÚ¿ÉÒÔ¸´ÓÃAPI½Ó¿Ú¡£

ÈçºÎ×öµ½ÎÞ²ÎÊý

¶ÔÓÚ´úÂë¶øÑÔ£¬¶àÒ»¸ö²ÎÊýº¬Ò壬ÕûÌ帴ÔӶȺÍÈßÓà¶È¶¼»áÌáÉý¡£

ÍŶӴӿò¼ÜÒýÓã¬Éú³É¿ò¼Ü£¬µ½caseµÄ±àд£¬Éú³ÉThriftд·¨£»ÔÚÊý¾Ýά»¤ÉÏ×Ô¶¯Éú³ÉÊý¾Ý¸ñʽ¡£×öµ½Á˲âÊÔ¿ò¼Ü+²âÊÔ´úÂë+²âÊÔÊý¾Ý£¬ÊµÏÖÁË×Ô¶¯»¯¡£

×Ô¶¯»¯Ö®ºó¿ÉÒÔ×öµ½ÏàÓ¦µÄרÏî´úÂë²âÊÔ£¬´óÁ¿µÄÊý¾Ý±ä»¯ºÍÑéÖ¤»áÔÚÎļþÀïÖ±½Ó×öÏàÓ¦µÄÒªÇó¡£

¿ª·¢Áªµ÷

1.´æÔÚµÄÎÊÌâ

¶à¸ö·þÎñͬʱ¿ª·¢£¬ Áªµ÷ºÄʱÈÕÒæÔö³¤£º´ÓÄÚ²¿¿´Áªµ÷µÄÕ¼±È´ó¸ÅÔÚ20%-50%Ö®¼ä¡£ÕâÖÖÇé¿öÖ÷ÒªÓÐÁ½·½Ãæ¡£Ò»ÊÇ£¬Áªµ÷×Բ⻷¾³²»Îȶ¨£¬·þÎñ¶à¡£ÁíÒ»·½ÃæÊÇ£¬¶àÈË¿ª·¢£¬´ÓÒ»¿ªÊ¼µÄ¼òµ¥½Ó¿ÚÔ¼¶¨µ½ÖмäPMÐèÇó¸Ä±ä£¬µ¼Ö½ӿڻ¥ÏàÖ®¼äÊý¾Ý¸ñʽÉÏÓб仯£¬Ë«·½ÄÑ×öͬ²½¡£

Áªµ÷²âÊÔ»·¾³²»Îȶ¨£ºÐèÒªÕÒºÏ×÷·½µ÷ÊÔ£¬ÀË·Ñʱ¼ä¡£

×Ô²âʱÐèÒª²¿ÊðºÍά»¤¶à¸öÒÀÀµ·½·þÎñ¡£

2.½â¾ö·½°¸

¿ª·¢Î´¶¯£¬MockÏÈÐУ¬ËæÊ±Áªµ÷¡£

ÔÚ¿ª·¢¿ªÊ¼Ê±£¬¶à·½¶¨ÒåºÃÏàÓ¦µÄ½Ó¿Ú£¬½Ó¿ÚÎļþ£¬Êý¾Ý¸ñʽºÍ¹æÔò¡£Í¨¹ýMock¹¤¾ßÉú³É·þÎñ£¬·¢²¼µ½Áªµ÷²âÊÔ»·¾³ÖС£

ʹÓÃMoka¹¤¾ß×Ô¶¯Éú³ÉMock Server£¬Ö¸¶¨ÏàÓ¦µÄThrift¶¨Ò壬¸ù¾ÝÏàÓ¦¹æÔò£¬Éú³ÉMock Server£¬ÔÚÄÚÅäÖÃÁªµ÷·þÎñ£¬Ö¸ÏòMock Server£¬ÔÙÅäÖÃÏàÓ¦µÄÊý¾Ý¹æÔòºÍÆ¥Å乿Ôò¡£

ͨ¹ýMokaÄܹ»×öµ½¿ª·¢¸Õ¿ªÊ¼Ê±¾Í¿ÉÒÔÌṩÏàÓ¦µÄÁªµ÷·þÎñ£¬Á÷³Ì»ù±¾ÈçÏ¡£

Ò»¼üÉú³É¶ÀÁ¢MockÓÅÓÚÆ½Ì¨µÄµãÔÚÓÚ£¬ÊÊÓÃÐԺá£Ò²Ö§³ÖThriftµÄ×¢½â·½Ê½Ê¹ÓúÍMockÊý¾Ý¹ÜÀí¡£

²âÊÔ»·¾³

1.´æÔÚµÄÎÊÌâ

ÓÉÓÚ·þÎñÊýÁ¿Ôö¶à£¬Á´Â·±ä³¤£¬µ÷ÓÃÒÀÀµÔö¶à£¬Õû¸ö»·¾³µÄ´î½¨»áÊ®·Ö³ÔÁ¦¡£

¶àÈ˹²ÓÃÒ»Ì×»·¾³£¬»¥ÏàÓ°Ï죬ÈÝÒ×Ó°Ïì²âÊÔ½á¹û¡£

Îȶ¨ÐԲ

2.½â¾ö·½°¸

½â¾öµÄÎÊÌâÖ÷Òª¼¯ÖÐÔÚ£¬×ÊÔ´µÄÉêÇ룬ÉêÇëºóµÄ»·¾³¸ôÀëÓëÊý¾Ý¸ôÀ룬²âÊÔ»·¾³µÄά»¤£¬»Ö¸´²âÊÔ»·¾³µÈ¡£

»·¾³´î½¨¿ÉÒÔ´ÓÈý¸ö·½Ã濼ÂÇ£¬»·¾³¸ôÀë¡¢°´Ðè´´½¨¡¢ÃèÊöÒÀÀµ¡£

ÃÀÍÅÍŶÓÑ¡ÔñÁËͨ¹ýHULK+Ó¾µÀÌṩ»·¾³¸ôÀ룬Cargo°´Ðè´´½¨²âÊÔ»·¾³¡£¹Ç¸É+Ó¾µÀ¸´ÖÆÈ«ÐµĻ·¾³£¬Ëæºó´òͨ·¢²¼ÏµÍ³ºÍ´úÂë²Ö¿â£¬·¢²¼´óµÄ²âÊÔ»·¾³£¬×öÎȶ¨ÐÔÓë¿É¿ØÐÔµÄ¼à¿ØºÍÈý¸ö9Îȶ¨ÐÔ²âÊÔ»·¾³¡£

»·¾³¼à¿Ø£º

Ô­Ôò£ºÓ¾µÀ¿ÉÒÔµ÷¹Ç¸É£¬¹Ç¸É²»¿Éµ÷Ó¾µÀ¡£

»·¾³½¨ºÃºó£¬Òª±£Ö¤ËæÊ±¿ÉÒÔʹÓá£ÔÚÎȶ¨ÐÔ¼à¿ØÏ£¬Ö»ÒªÌṩ·þÎñ£¬Áбí¾Í¿ÉÒÔ½øÐÐ¼à¿Ø£¬¶¨Ê±²¿Êð×îеķÖÖµ´úÂë¡£

Õû¸ö»·¾³¶¼´¦ÓÚ¼à¿ØÖ®ÖУ¬Ã¿°ë¸öСʱ·¢ËÍÒ»´Î»·¾³ÕûÌå¸Å¿ö¡£Èç¹ûij¸ö·þÎñÎȶ¨ÐÔ½µµÍ£¬ÍŶӻáÖ±½Ó@¸ºÔðÈ˲鿴ԭÒò¡£

³ÖÐø¼¯³É

1.´æÔÚµÄÎÊÌâ

Ò»´ÎÌá²â·þÎñÔö¶à£¬Ìá²âÁ˶à¸ö²Ö¿â£¬Ê¹µÃCI Job¾­ÀúÁ˱¬Õ¨ÐÔÔö³¤¡£

Ìá²âÖÊÁ¿ÎÞ·¨µÃµ½±£Ö¤£¬²âÊÔ²»¹ý¹Ø£»È±·¦Ç°ÖòâÊÔ£¬ÎÞЧ¹µÍ¨Ì«¶à¡£

2.½â¾ö·½°¸

΢·þÎñ»·¾³ÖÐÁ½¸ö¹Ø¼üµã£ºMergeµ½Ö÷·Ö֧ǰ£¬Ìá²âǰ×Ô¶¯¼ì²â¡£

¹Ø¼ü½Úµã1£º

´úÂëÌá½»ºÍMergeµ½Ö÷·ÖÖ§£¬À­·ÖÖ§»á×Ô¶¯´´½¨CI Job£¬Push´úÂë´¥·¢É¨Ã裬PR Mergeµ½Ö÷·ÖÖ§´¥·¢É¨Ã裬PR¸üд¥·¢ÔÙ´ÎɨÃ裬ͨ¹ýÔÊÐíMergeµ½Ö÷·ÖÖ§¡£

ÕâÑù¿ÉÒÔ×öµ½²»°ÑÎÊÌâ´øµ½ÏßÉÏ·ÖÖ§£¬²¢ÇÒǰÖõķ½Ê½Ô¼ÊøRDÔÚÉÏÏßǰ¾Í½â¾öÎÊÌâ¡£

¹Ø¼ü½Úµã2£º

Ìá²âǰ»¹ÒªÔÙ´Î×Ô¶¯¼ì²â¡£µ±ÐèÇóÌá²âµÄʱºò£¬¸ù¾ÝÌṩµÄ·¢²¼ÐÅÏ¢×Ô¶¯´´½¨¶ÔÓ¦µÄPipeline£¬µã»÷Ìá²âÖ®ºó»á×Ô¶¯³ö·¢PipelineµÄÖ´ÐУ¬×Ô¶¯²¿Ê𣬲¢×öðÑ̲âÊÔ¡£Pipeline»áÃ÷È·µÄÏÔʾðÑ̲âÊÔ½á¹ûÊÇʲô£¬ÎÊÌâÔÚÄÄÀï¡£

´ó´ó¼õÉÙÁËÎÞЧµÄ¹µÍ¨¡£

¹¤¾ßÁ´Á÷³Ì£º

ͨ¹ýºǫ́µÄCI·þÎñ£¬¹¤¾ßÁ´´ÓRDÀ­·ÖÖ§¿ªÊ¼£¬À­·ÖÖ§»á´´½¨Ò»¸öPipeline Job£¬×öPush´úÂëµÄʱºòͬʱ×öSonarɨÃ裬ÓÉ´óÏó֪ͨ½á¹û¡£

ÔÚ¹¤¾ßÁ´ÉϹ²ÌṩËĸö·þÎñ£º

µ¥²â¸²¸ÇÂÊCI·þÎñ¡£ÔÚPomÎÞÇÖÈëÐÞ¸ÄÒýÈëJar°ü£»Ò»¼ü½ÓÈëµ¥²â¸²¸ÇÂÊ·þÎñ¡£

¾²Ì¬´úÂëɨÃèCI·þÎñ£¬Sonar·þÎñÆ÷½øÐÐÏßÉϼà²â¡£

×Ô¶¯²¿Êð£¬×öðÑ̲âÊÔ¡£

ÄÚ´æÉ¨Ãè·ÖÎöCI·þÎñ¡£ValgrindÌṩÁËPipeline²å¼þ ¿ª·¢£¬Í¨¹ýÐÞ¸ÄÁ˲å¼þ£¬¿ÉÒÔ½â¾öÁËÐí¶àÏà¹ØµÄÎÊÌâ¡£ÔÚPipelineÉÏʹÓ㬿ÉÒÔÒ»²½·ÖÎö£¬×Ô¶¯ÍÆËÍ¡£

ÃÀÍŵãÆÀ£º´òÔì΢·þÎñ×Ô¶¯»¯²âÊÔÓë³ÖÐø¼¯³É¹¤¾ßÁ´Êµ¼ù

3 ¾­Ñé×ܽáÓ뷴˼

Æôʾ

Àí½âÓû§ÐèÇóµÄÍêÕû³¡¾°£ºÔ´Í·£¬Ô­ÒòºÍÔ­Àí¡£

¼á³Ö¹¤¾ßÉè¼ÆµÄÖ÷ÏߺÍÔ¸¾°£¬¶ÌÆÚ·þ´Ó³¤ÆÚ¡£

Ö»ÓÐÔÚÓû§ÐèҪʱ²Å³öÏÖ¡£

´Ó¹¤¾ßºÍ·þÎñ×öÆð£¬²»ÒªÒ»¿ªÊ¼¾Í×öƽ̨¡£

¿çÍŶӺÏ×÷£¬»¥²¹³¤¶Ì¡£

×ܽá

ÎÒÃÇÔÚ×Ô¶¯»¯²âÊÔ·½Ã棬¿ª·¢Á˹淶»¯¡¢±ê×¼»¯µÄLIPS×Ô¶¯»¯²âÊÔ¿ò¼Ü£»¿ª·¢Áªµ÷·½Ã棬¿ª·¢ÁËMoka£»CargoÀ´´´½¨²âÊÔ»·¾³£¬×öÈý¸ö9µÄÎȶ¨ÐԺͿÉÓÃÐÔ·þÎñµÄ²âÊÔ»·¾³£»ÔÚ³ÖÐø¼¯³É·½Ã棬ʹÓÃPipeline£¬ÌṩÏàÓ¦µÄCI·þÎñÇÒ²»×öÈκÎÅäÖã»PUSH´úÂë»á×Ô¶¯»ñÈ¡ÏàÓ¦µÄÐÅÏ¢£¬°ïÖú´ó¼Ò×ö³ÖÐø¼¯³É¡£

Q&A

Q£ºÊÖ¹¤²âÊÔºÍ×Ô¶¯»¯²âÊÔÕ¼±ÈÊÇÔõôÑùµÄ£¿

A£ºÄ¿Ç°À´½²£¬ÔÚ¹¤¾ßÓ¦ÓÃ֮ǰ£¬ÊÖ¹¤²âÊÔÕ¼±È·Ç³£¸ß£¬Ó¦¸ÃÔÚ60%ÒÔÉÏ£¬×Ô¶¯»¯²âÊÔÓ¦Óõĺܲ»ºÃ£¬Ö÷ÒªÔ­ÒòÊÇÕû¸ö±ê×¼»¯³Ì¶È²»¹»£¬Î¬»¤ÆðÀ´ºÜÂé·³¡£¸ù±¾µÄÔ­ÒòÔÚÓÚûÓÐÒ»¸öºÜºÃµÄ¿ò¼Ü¹¤¾ßÖ§³ÖËü¡£

Q£ºSonarɨÃèÀúÊ·Õ®Ôõô´¦ÀíÄØ£¿

A£ºSonarɨÃèÿ¸öÍŶӶ¼»ýÀÛÁËºÜ¶à¹ØÓÚÔõÑù½â¾öÕâ¸öÎÊÌâµÄ¾­Ñé¡£ÎÒÃǵĽâ¾ö·½·¨Ò»·½ÃæÊÇÒÀ¿¿ÍŶӼ¼Êõleader£¬ÓÐÍŶӵÄÖ§³Ö£¬ÁíÍâ×öºÃǰÖÃɨÃ裬½ûÖ¹ÓÐÎÊÌâµÄ´úÂëÉÏÏß¡£Ö»Óнâ¾öÎÊÌâ²Å¿ÉÒÔÉÏÏß¡£

   
6945 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù