1.
´´Òµ¹«Ë¾µÄ¼¼ÊõÌôÕ½
Íжû˹̩˵£º¡°ÐÒ¸£µÄ¼ÒÍ¥¶¼ÊÇÏàͬµÄ£¬²»ÐҵļÒÍ¥¸÷Óи÷µÄ²»ÐÒ¡£¡±»¥ÁªÍø´´Òµ¹«Ë¾Ò²Ò»Ñù¡£´ó²¿·Ö»¥ÁªÍø´´Òµ¹«Ë¾£¬¶¼»áÅöµ½ÒÔϼ¸¸ö¼¼ÊõÌôÕ½¡£
1.ÈçºÎ¿ìËÙ¡¢µÍ³É±¾µÄ´î½¨ÏµÍ³£¬Í¬Ê±È·±£°²È«Îȶ¨£¿
2.ÈçºÎ¿ìËٵĹ¹½¨ºÍ·¢²¼Ó¦Óã¬Âú×ãÒµÎñÐèÇó£¿
3.ÈçºÎÌá¸ßÍŶӿª·¢Ð§ÂÊ£¬È·±£¿ª·¢ÖÊÁ¿£¿
Õâ¸öÁбí¿Ï¶¨²»ÍêÕû£¬µ«ÕâÈý¸öÓ¦¸ÃÊÇ´´Òµ¹«Ë¾¼¼ÊõÍŶӶ¼»áÃæÁٵĹ²Í¨µÄÎÊÌâ¡£µ±È»ÐÓÈʲ»ÄÜ˵ÍêÈ«½â¾öÁËÕ⼸¸öÎÊÌ⣬µ«»¹ÊÇÈ¡µÃÁËһЩ½øÕ¹¡£ÎÒÃǽÓÏÂÀ´¼òµ¥½éÉÜÏ£¬ÎÒÃÇÐÓÈÊÊÇÔõôӦ¶ÔÕâЩÌôÕ½µÄ£¬ÒÔ¼°ÈÝÆ÷ÓÖ¿ÉÒÔ´øÀ´Ê²Ã´£¿
¸ÃϵÁÐÎÄÕ»á·ÖΪÈýƪ¡£µÚһƪ½éÉÜÈÝÆ÷»¯Ö®Ç°£¬ÐÓÈʼ¼Êõ¼Ü¹¹µÄ·¢Õ¹ÀúÊ·¡£µÚ¶þƪ½éÉÜÈÝÆ÷ÒÔ¼°ÐÓÈʵÄÈÝÆ÷»¯·½°¸¡£µÚÈýƪ×îºó×ܽáΪʲôÎÒÃÇÈÏΪ´´Òµ¹«Ë¾Ó¦¸ÃÓÃÈÝÆ÷£¬ÒÔ¼°ÎªÊ²Ã´ÈÝÆ÷¿ÉÒÔ°ïÖúÎÒÃÇÓ¦¶ÔÕâÈý¸öÌôÕ½¡£
2. ÐÓÈÊÔçÆÚ
ÔÚ 2012 ÄêÒÔǰ£¬´ó²¿·Ö»¥ÁªÍø¹«Ë¾°üÀ¨´´Òµ¹«Ë¾£¬¶¼ÊÇÖ±½Ó¹ºÂò·þÎñÆ÷£¬×âÓÃ
IDC »ú·¿µÄ»ú¼Ü²¿ÊðµÄ¡£Ó¦ÓÃÊÇÖ±½ÓÔËÐÐÔÚÎïÀí»úÉϵģ¬ÒªÀ©Õ¹±ØÐ빺ÂòзþÎñÆ÷¡£IDC ¾³£³ö¸÷ÖÖ¹ÊÕÏ£¬Èç¹ûÅöµ½
IDC Ç¨ÒÆµÄ»°£¬¾Í¸üÍ´¿à£¬±ØÐë°ëÒ¹°á»úÆ÷£¬ÌìÁÁǰÉÏÏß¡£×ÜÖ®¶Ô´´Òµ¹«Ë¾µÄ³É±¾¡¢·þÎñÎȶ¨ÐÔ¡¢¹¤×÷ЧÂʶ¼ÊÇÓкܴóµÄÏûºÄ¡£
²»¹ýÐÓÈÊÒ½ÉúºÜÐÒÔË£¬ÕýºÃ¸ÏÉÏÁ˹«ÓÐÔÆµÄ³ÉÊ죬ËùÒÔÒ»¿ªÊ¼¾ÍÊÇ»ùÓÚ¹«ÓÐÔÆ´î½¨µÄ¡£ÐÓÈÊÒ½Éú×îÔçÆÚµÄ¼Ü¹¹ÈçÏ£º

Õâ¸ö¼Ü¹¹·Ç³£¼òµ¥£¬ÆäÖиºÔØÆ½ºâ¡¢Êý¾Ý¿â¶¼ÊÇ»ùÓÚÌÚÑ¶ÔÆµÄ¡£È»ºóÌÚÑ¶ÔÆÒ²ÌṩÁËһЩ»ù´¡µÄ¼à¿Ø¡¢¸æ¾¯ºÍ°²È«·þÎñ¡£È»ºó¾ÍÊÇÁ½¸öÓ¦Óã¬Ò»¸öÒÆ¶¯ºó¶Ë
API£¬Ò»¸öÔËӪƽ̨£¬¶¼ÊÇ»ùÓÚ Play µÄ Scala Ó¦Óá£
ºÜ¶àÈË¿ÉÄÜ»áºÃÆæÎªÊ²Ã´Ñ¡Ôñ Scala£¯Play ½øÐпª·¢£¬±Ï¾¹ Scala ÔÚ¹úÄÚÓ¦¸ÃÓõIJ»¶à¡£ÕâÀïÒ»·½ÃæÒòΪÐÓÈÊÒ½ÉúÊǼ̳ÐÁË¿´´¦·½µÄ¼Ü¹¹£¬µ±³õ¿´´¦·½¾ÍÊÇ»ùÓÚ
Scala£¯Play ¿ª·¢µÄ£¬ ÍŶӶÔÕâÒ»Ì×·½°¸±È½ÏÊìϤ¡£ÎÒÃÇÐèÒª¿ìËٵĹ¹½¨ÐÓÈÊÒ½Éú£¬×ÔÈ»¾Í»áÑ¡Ôñ×îÊìϤµÄÓïÑԺͿò¼Ü¡£¶øÇÒ¶ÔÓÚÖÐС¹æÄ£µÄÓ¦Óã¬Scala£¯Play
µÄ¿ª·¢Ð§ÂʵÄÈ··Ç³£¸ß¡£Scala ±¾ÉíµÄ±í´ïÄÜÁ¦·Ç³£Ç¿£¬ÊÇÒ»ÃźÜÓÐÒâ˼µÄÓïÑÔ¡£ºÜ¶àºÃѧµÄ¹¤³Ìʦ£¬Ò²»á¶ÔеÄÓïÑÔÒ²»á±È½Ï¸ÐÐËȤ¡£
3. Ó¦Óòð·ÖºÍCI£¯CD
¾¹ýÒ»Äê¶à¿ìËÙÑݽø£¬Õû¸öÓ¦ÓÃÔ½À´Ô½ÅÓÔÓ¡£ËùÒÔÎÒÃǶÔÓ¦ÓýøÐÐÁ˲ð·Ö£¬²¢ÇÒËæ×ÅÒµÎñÀ©ÕÅ£¬Ó¦ÓÃÒ²Ô½À´Ô½¶à£¬ÀýÈç
HIS¡¢CRM µÈ¡£ËùÒÔÎÒÃǵļܹ¹±ä³ÉÁËÕâ¸öÑù×Ó¡£

Õâʱ Scala ×î´óµÄÎÊÌ⿪ʼÌåÏÖ³öÀ´ÁË£¬ÄǾÍÊDZàÒëËٶȵÄÎÊÌâ¡£ÄÇʱºòÎÒÃǵÄÓ¦Óò¿Êð·½Ê½Ò²ºÜÔʼ£¬±ØÐëµÇ½·þÎñÆ÷ÔËÐÐÒ»¸ö
Shell ½Å±¾£¬Ëü»áÀÈ¡´úÂ룬Ȼºó±àÒë¡¢´ò°ü¡¢ÔËÐУ¬Õû¸ö¹ý³ÌÐèÒªºÄ·Ñ5¡«10·ÖÖÓ¡£¶øÎÒÃÇ API
Ó¦ÓõĽڵãºóÀ´Ôö¼Óµ½ 5¡¢6 ̨£¬¼´Ê¹Á½Ì¨Í¬Ê±·¢²¼£¬Ò²ÐèÒª 20 ·ÖÖÓ²ÅÄÜÈ«²¿·¢²¼Íê³É¡£Èç¹û·¢²¼ºó³öÁËÎÊÌ⣬ÄǾÍÍÂѪÁË£¬ÒòΪ»Ø¹öÒ²ÊÇÒ»ÑùµÄÁ÷³Ì£¬ÓÖÐèÒª
20 ·ÖÖÓ¡£
ÓÐÒ»´ÎÎÒÃÇ×öÁËÒ»¸öËÍ Apple Watch µÄ»î¶¯£¬°ëÒ¹ 12 µã¿ªÊ¼¡£ÎÒÃdzöÁ˸öºÜµÍ¼¶µÄ BUG£¬»î¶¯Ò»¿ªÊ¼¾Í²ä²ä²äµÄÒ»·ÖÖÓËͺü¸¸ö
Apple Watch¡£ÎÒÃÇ´´Òµ¹«Ë¾Ò²Ã»¶àÉÙÇ®£¬Ã¿Ò»¸ö¶¼Êǰ׻¨»¨µÄÒø×Ó£¬ÐÄÍ´°¡¡£ÐÞ¸´ºÜ¼òµ¥£¬µ«·¢²¼»òÕ߻عö¶¼µÃÏȱàÒ룬̫ÂýÁË£¬ÓÚÊÇÎÒÃÇÒ»ºÝÐİѷþÎñÆ÷¸øÍ£ÁË£¬¼¸·ÖÖÓºó²Å²¿ÊðÉÏÁËеĴúÂë¡£
ÕâÊÇÎÒÃǾõµÃ±ØÐëÒªÓÐÒ»¸ö×Ô¶¯»¯µÄ·¢²¼ÏµÍ³ÁË¡£ÆäʵÔÚ¼¸ÄêÒÔǰ£¬·¢²¼¶¼ÊÇÐèÒªÔËάִÐеģ¬Ñз¢Ìá½»¸øÔËά£¬ÔËάÊÖ¶¯²¿Êð¡£ÄÇ×ÔÈ»·¢²¼²»¿ÉÄÜºÜÆµ·±£¬²¢ÇÒ¶Ô¿ª·¢ºÍÔËά¶¼ÊǺܴóµÄ¸ºµ£¡£µ«½¥½¥µÄÃô½ÝºÍ
Devops µÄÎÄ»¯³ÉΪÖ÷Á÷£¬³ÖÐø¼¯³ÉºÍ·¢²¼£¨CI/CD£©³ÉΪһÏî»ù´¡ÉèÊ©¡£
ÎÒÃǵÚÒ»°æ CI/CD ºÜ¼òµ¥£¬ÊÇ»ùÓÚ Jenkins µÄ£¬Í¨¹ý½Å±¾½øÐбàÒë¡¢´ò°ü£¬È»ºó¿½±´µ½·þÎñÆ÷ÉÏ·¢²¼¡£ÒòΪֻҪ´ò°üÒ»´Î¼´¿É£¬»º½âÁ˲¿ÊðÂýµÄÎÊÌâ¡£µ«»¹ÊÇ´æÔÚ¼¸¸öÎÊÌâ¡£
Ê×ÏÈ£¬Ã»ÓÐÓ¦Óòֿ⡣´ò°üÊÇÒ»´ÎÐԵ쬲¿ÊðµÄʱºò»á±¸·Ýµ±Ç°Ó¦ÓÃĿ¼£¬ÓÃÓڻعö£¬ËùÒÔÖ»Äܻعöµ½ÉÏÒ»¸ö°æ±¾¡£
Æä´Î£¬½¡¿µ¼ì±È½Ï¼òµ¥£¬Ö»Äܼì²âÓ¦ÓÃÊÇ·ñÆô¶¯¡£ÎÒÃÇÓöµ½¹ýÓ¦ÓÃÆô¶¯ÁË£¬²â»îҲûÎÊÌ⣬µ«·þÎñ»¹ÊÇÓÐÑÏÖØÎÊÌâ¡¢»ù±¾²»¿ÉÓõÄÇé¿ö¡£
×îºó£¬²»Ö§³Ö»Ò¶È·¢²¼£¬³öÎÊÌâÖ»Äܻعö¡£
ÆÚ¼äÎÒÃÇÓÐÒ»´Î½Ï´óµÄ¹ÊÕÏ£¬Ò²ÊÇÒòΪÕ⼸¸öÒòËØ£¬»¨Á˺ܳ¤Ê±¼ä²Å»Ö¸´¡£Í´¶¨Ë¼Í´£¬ÓÚÊÇÎÒÃÇÓÖ¿ª·¢ÁË
Frigate ·¢²¼ÏµÍ³£¬ËüµÄ¼Ü¹¹´óÖÂÈçÏÂͼ¡£

Frigate ÓÐÒ»¸öÓ¦Óòֿ⣬¼´ App Repository¡£Ó¦Óòֿâ»á±£´æ·¢²¼µÄÓ¦Óð汾£¬»Ø¹öµÄʱºò¿ÉÒÔÖ¸¶¨°æ±¾¡£
Watcher ×齨ʵÏÖÁ˱ȽÏÇ¿´óµÄÓ¦Óüì²â¹¦ÄÜ¡£³ýÁËÒ»°ãµÄ HTTP ¼ì²â£¬»¹¿ÉÒÔ´ÓÈÕÖ¾¡¢¼à¿ØÀï»ñÈ¡Êý¾Ý£¬¿ÉÒÔ¸ù¾ÝÒì³£Êý¡¢´íÎóÂʵȽøÐнøÒ»²½µÄ½¡¿µ¼ì²â¡£
Frigate Ö§³Ö·Ö×éºÍ·Ö½×¶Î·¢²¼¡£ÀýÈçÏÖ·¢²¼2̨»úÆ÷£¬È»ºó½¡¿µ¼ì²é£¬»òÕßÖмä¿ÉÒÔÓÐһЩÈ˹¤¼ì²é£¬È»ºóÔÙ·¢²¼Ê£ÓàµÄ»úÆ÷¡£
ºóÀ´»ØÍ·¿´£¬Frigate ËäȻûÓÐʹÓÃÈÝÆ÷£¬µ«ÆäʵÊÇʵÏÖÁËÈÝÆ÷±àÅŵĺܶ๦ÄÜ¡£Frigate
·¢²¼µÄ½ØÍ¼ÈçÏ£¬ÕâÊÇ»ùÓÚ Jenkins Pipeline µÄ¡£

4. ΢·þÎñ»¯
ϵͳ¶àÁË£¬ÒÀÀµ¸´ÔÓ¡¢Êý¾ÝûÓиôÀë¡¢Âß¼ÖØ¸´£¬½ÓÏÂÀ´Ò»¸ö±ØÈ»µÄ·½Ïò¾ÍÊÇ΢·þÎñ¡£¹ØÓÚ΢·þÎñ£¬ÎÒÃǹ«ÖÚºÅÓÐÁ½ÆªÎÄÕ£¨ÀÖ¸ßʽ΢·þÎñ»¯¸ÄÔ죨ÉÏ£©¡¢ÀÖ¸ßʽ΢·þÎñ»¯¸ÄÔ죨Ï£©£©¶Ô´ËÓбȽÏÏêϸµÄ·ÖÎö˵Ã÷£¬ÕâÀï¾Í¼òµ¥½éÉÜһϡ£
ÎÒÃǵķþÎñ×¢²áºÍ·¢ÏÖÊÇ»ùÓÚ Consul µÄ£¬¸ºÔØÆ½ºâÊÇͨ¹ý Nginx
ʵÏֵġ£ÏÂͼÊÇÕû¸ö·þÎñ×¢²áºÍ·¢ÏֵĹý³Ì£º

Óм¸µãÊÇÖµµÃÒ»ÌáµÄ¡£
Ê×ÏÈ£¬ÎÒÃǵÄ΢·þÎñÊÇ»ùÓÚ HTTP ºÍ Json µÄ£¬Ã»ÓвÉÓöþ½øÖƵÄÐÒéÈç Protobuf¡¢Thrift
µÈ¡£Æäʵ HTTP ºÍ¶þ½øÖÆÐÒéµÄÐÔÄܲî±ð£¬²¢Ã»ÓкܶàÈËÏëµÄÄÇô´ó£¬Ò»°ãÒ²¾Í2¡¢3±¶µÄ²î¾à£¨Ã»ÓÐÇײ⣩¡£¶Ô´ó²¿·ÖÆóÒµ£¬Õâ¸ö²î±ð¸ù±¾¾Í²»ÊÇÆ¿¾±£¬ÌرðÊÇÏÖÔÚ»¹ÓÐ
HTTP2¡£Èç¹ûÕæµÄÓÐÐèÒª£¬»¹¿ÉÒÔÔÚ HTTP2 ÉÏÅܶþ½øÖÆÐÒ飬ͨ¹ý¿ò¼ÜÔÚ·þÎñ¶ËºÍ¿Í»§¶Ë¼ÓÒ»²ã¾Í¿ÉÒÔʵÏÖ¡£
Æä´Î£¬ÎÒÃǵÄ΢·þÎñ¶ÔÓ¦ÓÃÊÇÎÞÇÖÈëµÄ¡£ÎÒÃÇûÓвÉÓó£¼ûµÄ Dubbo¡¢SpringCloud ¿ò¼Ü¡£Ò»·½ÃæÎÒÃÇ·þÎñµ÷Ó÷½ÓÐ
Java Ó¦ÓÃÒ²ÓÐ Scala Ó¦Óã¬Òª½ÓÈ뻹ÊÇÒª»¨µã¹¦·ò¡£ÁíÒ»·½Ã棬ÎÒÃÇÈÏΪ΢·þÎñ¿ò¼Ü·¢Õ¹µÄδÀ´·½ÏòÊÇ·ÇÇÖÈëÐԵĶÀÁ¢µÄ΢·þÎñ»ù´¡ÉèÊ©²ã¡£ÆäʵÕâºÍÈÝÆ÷±àÅŵÄÀíÄîÊÇÒ»Öµģ¬²¢ÇÒ×î½üÌá³öµÄ
Service Mesh ¸ÅÄ¾ÍÊǽøÒ»²½µÄÑÓÉ죬ÎÒÃÇÈÏΪÕâ²ÅÊÇ΢·þÎñµÄδÀ´¡£
×îºó£¬ÎÒÃÇÿ¸ö΢·þÎñ¶¼»áÉú³ÉÒ»¸ö SDK£¬±ãÓÚµ÷Ó÷½µ÷Óá£SDK ¼¯³ÉÁËÈÛ¶Ï¡¢Òì²½¡¢·Ö²¼Ê½×·Ö𣨿ª·¢ÖУ©µÈ¹¦ÄÜ¡£
´î½¨ÁË΢·þÎñ»ù´¡¿ò¼Üºó£¬ÎÒÃÇ¿ª·¢Á˺ü¸¸ö΢·þÎñ£¬ÓÐÒµÎñµÄÀýÈç¶©µ¥¡¢Ô¤Ô¼µÈ£¬Óлù´¡ÉèÊ©µÄÀýÈçÍÆËÍ¡¢¶ÌÐŵȡ£µ±È»ÆäʵÓÐЩ²¢²»Ë㡰΢¡±¡£
µ«ÊÇÎÒÃÇ·¢ÏÖ£¬Õû¸öÌåϵÒÀÈ»´æÔÚ²»ÉÙÎÊÌâ
»ùÓÚÔÆ·þÎñ£¬³É±¾µÍÁË£¬Ð§ÂʸßÁË¡£µ«ÔËά»¹ÊÇÃæÏò×ÊÔ´µÄ£¬²¢ÇÒ×ÊÔ´ÀûÓÃÂʲ»¸ß¡£
ÓÐÁ˳ÖÐø¼¯³ÉºÍ²¿ÊðµÄÄÜÁ¦¡£µ«ÐÂÔö½Úµã¡¢Ð½¨·þÎñµÈ£¬ÒÀÈ»ÐèÒª´óÁ¿È˹¤ÔËά£¬²¢ÇÒÀ©Õ¹²¢²»·½±ã¡£
ʵ¼ù΢·þÎñ£¬¸Ä½øÁËÓ¦Óüܹ¹¡£µ«ÒÀÀµ¹ÜÀí¡¢¼à¿ØµÈÉÐδÍêÉÆ£¬Îȶ¨ÐÔÈÔÈ»²»¹»¡£
5. ÈÝÆ÷ÊÇʲô£¿
ÉÏÃæÎÒÃǼòµ¥ËµÃ÷ÁËÐÓÈÊÈÝÆ÷»¯Ö®Ç°µÄ¼Ü¹¹·¢Õ¹¡£ÏÂÃæÎÒÃǾÍÀ´Ì¸Ì¸ÈÝÆ÷¡£
2013 Äê Docker ºá¿Õ³öÊÀ£¬µ½ 2015 ÄêÒѾ½¥½¥½øÈë´ó¼ÒµÄÊÓÒ°¡£ÈÝÆ÷µ±È»²»Ò»¶¨ÊÇ Docker£¬¶øÇÒÈÝÆ÷ÏÖÔÚÒ²ÊÇÓбê×¼µÄ¡£µ«Ò»ËµÈÝÆ÷´ó¼Ò¿Ï¶¨»áÏëµ½
Docker¡£ËùÒÔÎÒÃÇÕâÀï˵µÄÈÝÆ÷£¬Ö÷Òª¾ÍÊÇÖ¸ Docker¡£
ÈÝÆ÷µ½µ×ÊÇÊ²Ã´ÄØ£¿¹ËÃû˼Ò壬ÈÝÆ÷¾ÍÊÇÓÃÀ´×°¶«Î÷µÄ¡£ÔÚÕâÀïËüÓÃÀ´×°µÄ¾ÍÊÇÓ¦ÓóÌÐò¡£ÈÝÆ÷µÄÌØµã¼òµ¥Ëµ¾ÍÄÇôËĵ㣺
ÈÝÆ÷ÊÇ×Ô°üº¬µÄ£¬Ëü´ò°üÁËÓ¦ÓóÌÐò¼°ÆäËùÓÐÒÀÀµ£¬¿ÉÒÔÖ±½ÓÔËÐС£ÒÔǰӦÓóÌÐòµÄÒÀÀµ¹ÜÀíÒ»Ö±ÊǸö´óÎÊÌ⣬¼´Ê¹Ïñ
RPM ¡¢Maven¡¢Ansible µÈ¶¼Äܽâ¾öÒ»²¿·ÖÎÊÌ⣬µ«²¢Ã»ÓÐÒ»¸öËùÓÐÓ¦ÓóÌÐòͨÓõıê×¼»úÖÆ£¬Ö±µ½ÈÝÆ÷³öÏÖ¡£
ÈÝÆ÷ÊÇ¿ÉÒÆÖ²µÄ£¬¿ÉÒÔÔÚ¼¸ºõÈκεط½ÒÔÏàͬµÄ·½Ê½ÔËÐС£Õâ¾Í¿ÉÒÔÈ·±£Ó¦ÓÃÔÚ¿ª·¢»·¾³¡¢²âÊÔ»·¾³¡¢Éú²ú»·¾³µÈ¶¼ÓÐÍêȫһÑùµÄÔËÐл·¾³¡£
ÈÝÆ÷ÊÇ»¥Ïà¸ôÀëµÄ£¬Í¬Ò»Ö÷»úÉÏÔËÐеĶà¸öÈÝÆ÷£¬²»»á»¥ÏàÓ°Ïì¡£¼´Ò»¸öÈÝÆ÷ÖÐÔËÐеÄÓ¦ÓóÌÐò£¬ÊÇ·ÃÎʲ»µ½ÆäËûÈÝÆ÷µÄ×ÊÔ´µÄ£¨½ø³Ì¡¢ÍøÂç¡¢Îļþ¡¢Óû§µÈ£©£¬³ý·ÇÅäÖÃΪ¹²ÏíµÄ×ÊÔ´¡£
ÈÝÆ÷ÊÇÇáÁ¿¼¶µÄ£¬ÌåÏÖÔÚÈÝÆ÷µÄÃë¼¶Æô¶¯£¬²¢ÇÒÕ¼ÓÃ×ÊÔ´ºÜÉÙ¡£
ÈÝÆ÷ÄÜ×öµÄºÜ¶àÊÂÇ飬ÐéÄâ»úÒ²ÄÜ×ö£¬ÄÇËüÃÇÓÐÊ²Ã´Çø±ðÄØ£¿ÏÂÃæÕâÕÅͼÊÇ
Docker ¹ÙÍøµÄ½ØÍ¼£¬ºÜºÃµÄ˵Ã÷ÁËÁ½ÕßµÄÇø±ð¡£

µ«×î¸ù±¾µÄ²î±ð£¬Æäʵ¾ÍÊÇ×îºóÒ»µã£ºÇáÁ¿¡£ºÜ¶àÈË¿ÉÄܾõµÃÕâÖ»ÊÇÒ»¸ö¼òµ¥µÄ²î±ð£¬µ«Æäʵ²»ÊÇ¡£ÒòΪ¾ÍÊÇÕâÒ»µãʹµÃÈÝÆ÷¿ÉÒÔ³ÉΪһÖÖ
±ê×¼»¯µÄÓ¦Ó÷¢²¼·½Ê½¡£
ÉϸöÊÀ¼Í 5¡¢60 Äê´ú¼¯×°Ïä¸Õ³öÏÖ£¬¿´ÉÏÈ¥Ò²Ö»ÊǼòµ¥µÄ²î±ð£¬Ò²Ã»ÓÐʲô¼¼Êõº¬Á¿¡£µ«¼¯×°ÏäÌṩÁËÒ»¸ö±ê×¼»¯µÄÎïÁ÷·½Ê½£¬È«ÇòµÄº£Â½¿ÕÔËÊä¡¢ÂëͷװжµÈÎ§ÈÆ¼¯×°ÏäÐγÉÁËÕû¸öÒ»¸ö¸ßЧµÄÎïÁ÷Ìåϵ¡£×îÖոıäÁËÊÀ½çóÒ×£¬´Ù³ÉÁËÈ«Çò»¯¡£
ËùÒÔÈÝÆ÷Õâ¸ö±ê×¼»¯µÄÓ¦Ó÷¢²¼·½Ê½£¬×îÖÕ»áÓ°ÏìÉϲãµÄÕû¸öÓ¦Óüܹ¹¡£×îÖÕÎ§ÈÆÈÝÆ÷£¬»á½¨Á¢Ò»Ì×ÍêÕûÓ¦Óüܹ¹Ìåϵ£¬´øÀ´¸ïÃüÐԵĸı䡣ÏÖÔÚÆäʵÒѾ¿ÉÒÔ¿´µ½Ò»µã¶ËÄßÁË£¬Kubernetes
»ù±¾ÒѾ³ÉΪ±ê×¼£¬²»¾Ãǰ Google »¹·¢²¼ÁË Istio Õâ¸ö Service Mesh ¹¤¾ß£¬½øÒ»²½°Ñ΢·þÎñµÄ»ù´¡¼Ü¹¹Ò²³éÏóÁ˳öÀ´¡£
6. ÈÝÆ÷±àÅÅÊÇʲô£¿
¹âÓÐÄÜ×°Ó¦ÓõÄÈÝÆ÷»¹²»¹»£¬Èç¹û»¹ÊÇÈ˹¤¹ÜÀíÄÇô¶àÈÝÆ÷£¬ÄÇÒ²·¢»Ó²»³öÈÝÆ÷µÄÓÅÊÆ¡£ËùÒÔÎÒÃÇÐèÒªÒ»¸öÈÝÆ÷±àÅÅϵͳ¡£ÈÝÆ÷±àÅÅÄÜÌṩÒÔϹ¦ÄÜ£º
Ó¦Óõ÷¶È£ºÓ¦Óò¿Êð¡¢ÎÞ·ìÉý¼¶¡¢µ¯ÐÔÀ©Õ¹¡¢×ÔÓúµÈ¡£
×ÊÔ´¹ÜÀí£ºÄÚ´æ¡¢CPU¡¢´æ´¢¿Õ¼ä¡¢ÍøÂçµÈ¡£
·þÎñ¹ÜÀí£ºÃüÃû¿Õ¼ä¡¢¸ºÔؾùºâ¡¢½¡¿µ¼ì²éµÈ¡£
ÒÔ¼°ºÜ¶àÆäËû¹¦ÄÜ£¬ÈçÈÕÖ¾¡¢¼à¿Ø¡¢ÈÏÖ¤¡¢ÊÚȨµÈ¡£
ÈÝÆ÷±àÅÅÁìÓò×îÖ÷ÒªµÄÈý¸öϵͳÊÇ Docker Swarm¡¢Kubernetes ÒÔ¼° Marathon/Mesos¡£
Swarm ÊÇ Docker ¹Ù·½µÄ·½°¸£¬Óŵã¾ÍÊǼòµ¥£¬È±µãÊÇÌ«¼òµ¥ÁË¡£
È»ºóÊÇ Google µÄ Kubernetes£¬Ò²½Ð K8s¡£Kubernetes ×î½üÒ»Äê´ó·Å¹â²Ê£¬¼¸ºõͳÖÎÁËÈÝÆ÷±àÅÅÁìÓò£¬¾ÍÁ¬
Docker ¹Ù·½²»¾ÃǰҲÐû²¼ÁËÖ§³Ö Kubernetes ¡£ËüµÄÓÅÊÆ¾ÍÊÇÓдó³§Ö§³Ö£¬¶øÇÒ Google
ÊǰÑËü×÷ΪսÂÔÀ´²¼¾ÖµÄ£¬Äã¿ÉÒÔ°ÑËüÏëÏó³Éµ±ÄêµÄ Android£»ËüµÄÉçÇøÒ²·Ç³£»ð±¬¡£
¼¼ÊõÉÏ£¬Kubernetes ÊÇÒ»¸ö¼¯³ÉµÄ·½°¸£¬Éè¼Æ·Ç³£ÓÅÐ㣬¿ÉÒÔ˵ÊÇ·Ö²¼Ê½ÏµÍ³µÄÉè¼Æµä·¶£¬Google
ÔÚÕâ·½Ãæ±Ï¾¹ÓкÜÉîÈëµÄ¾Ñ顣ȱµã¾ÍÊÇÓе㸴ÔÓ£¬¶øÇÒÔÚ½ñÄê֮ǰËü»¹ÊÇ´æÔÚ²»ÉÙÎÊÌ⣬°üÀ¨ÐÔÄÜÎÊÌâ¡¢´ó°æ±¾µÄ¼æÈÝÐÔ¡¢²¿Êð¸´Ôӵȣ¬µ±È»ÏÖÔÚÒѾ»ù±¾½â¾öÁË¡£
Mesos ÔÚ Docker ֮ǰ¾ÍÓÐÁË£¬±¾Éí×öµÄÊÇ·Ö²¼Ê½ÏµÍ³µÄ×ÊÔ´¹ÜÀí£¬Mesos ºÜÁé»î£¬ÉÏÃæ¿ÉÒÔÖ§³Ö¸÷ÖÖϵͳ£¬°üÀ¨
Spark µÈ¡£Marathon ÔòÊÇ»ùÓÚ Mesos ʵÏÖÁ˱àÅŵŦÄÜ¡£
ÎÒÃÇÊÇÈ¥ÄêÄêÖп¼ÂÇÈÝÆ÷»¯µÄ£¬ÎÒÃÇ×îºóÑ¡ÔñµÄ·½°¸ÊÇ Marathon/Mesos¡£ÔÒòÒ»·½ÃæÊÇ֮ǰ Jenkins
ÈÝÆ÷»¯ÒѾÓõ½ÁË Marathon/Mesos£¬ÓÐЩ¾Ñé¡£ÁíÒ»·½ÃæÊǸ÷½°¸±ãÓں͵±Ç°µÄ¼Ü¹¹ÕûºÏ¡£Kubernetes
Ì«¹ý¸´ÔÓ£¬Ç¨ÒƵϰ£¬¶Ô¼Ü¹¹¸Ä¶¯Ì«´ó¡£
7. ÐÓÈʵÄÈÝÆ÷»¯
ÎÒÃÇÈÝÆ÷»¯Ö®ºóµÄ¼Ü¹¹ÊÇÕâÑùµÄ£º

ËùÓеÄÓ¦Óö¼ÒÔÈÝÆ÷µÄ·½Ê½ÔËÐÐÔÚ Mesos Slave ÉÏ£¬Mesos Master ͳһ¹ÜÀí Mesos
Slave ·þÎñÆ÷¡£Marathon ͨ¹ý Mesos µ÷¶ÈÈÝÆ÷£¬½øÐз¢²¼¡¢Éý¼¶¡¢À©Èݵȡ£Calico
ÊÇ Docker µÄÍøÂç½â¾ö·½°¸£¬ÊµÏÖÁËÒ»¸öÈÝÆ÷Ò»¸ö IP ÒÔ¼°ÈÝÆ÷Ö®¼äµÄ»¥Áª¡£¶øÓÒÉϽDz¿·Ö£¬ÎÒÃÇ»ù±¾±£ÁôÁËÎÒÃÇ֮ǰµÄ΢·þÎñ¼Ü¹¹£¬Ö»ÊÇÓÃÓÚ·þÎñ·¢ÏÖºÍ×¢²áµÄ
Consul Agent Ìæ»»³ÉÁË Registrator¡£
ͬʱÎÒÃÇµÄ CI/CD Ò²ÏàÓ¦µÄ×öÁ˵÷Õû¡£

Jenkins ×ÔÉíÏÖÔÚÒ²ÊÇ»ùÓÚÈÝÆ÷µÄ£¬»áÔÚ Mesos Slave µÄÈÝÆ÷Àï½øÐбàÒëºÍ´ò°ü¡£Ó¦Óûᱻ´ò°ü³ÉµÄ
Docker ¾µÏñ£¬ÉÏ´«µ½ÎÒÃǵľµÏñ²Ö¿â Harbor Àï¡£²¿Êðʱ£¬Jenkins µ÷Óà Marathon
µÄ½Ó¿Ú½øÐв¿Êð£¬Marathon Ôò´Ó Mesos ÉêÇë×ÊÔ´¡£²¿Êðʱ Mesos »á´Ó Harbor
ÏÂÔØÏàÓ¦µÄÓ¦ÓþµÏñ²¢¸ù¾ÝÅäÖÃÔËÐС£
ÓÐÁËÕâÌ×ϵͳ£¬ÎÒÃÇ´´½¨Ó¦Óá¢À©Õ¹Ó¦Óþͺܼòµ¥ÁË¡£´´½¨Ó¦ÓÃʱÊ×ÏÈͨ¹ý
Dockerfile ºÍ Jenkins ´´½¨¾µÏñ£¬È»ºóÔÚ Marathon ½çÃæÉÏ£¬Ö»ÐèҪ׼±¸Ò»¸ö
Json ÅäÖã¨Ò²¿ÉÒÔͨ¹ý Form ÅäÖã©£¬Ö¸¶¨×ÊÔ´¡¢ÊµÀýÊý¡¢¾µÏñ¡¢ÍøÂç¡¢½¡¿µ¼ì²é¡¢»·¾³±äÁ¿µÈ£¬¾Í¿ÉÒԺܿìÉÏÏßÒ»¸öÐÂÓ¦Óá£

ÓÐʱºòÎÒÃÇҪ׼±¸Ò»¸öÃëɱ»î¶¯»òÕßÍÆËͼ¸°ÙÍòÓû§£¬ÐèÒªÔö¼ÓÓ¦ÓÃʵÀý£¬Ò²Ö»ÒªÔÚ Marathon ½çÃæµ÷ÕûÒ»¸öÊý×־ͿÉÒÔÁË¡£

³ýÁËÈÝÆ÷±àÅÅºÍ CI/CD£¬»¹ÓÐÁ½¸öºÜ»ù´¡µÄ¶«Î÷£¬Ò»¸öÊÇ»ùÓÚ ELK µÄͳһÈÕ־ƽ̨¡¢ÁíÒ»¸öÊÇ»ùÓÚ
Open-Falcon¡¢StatsD¡¢Graphite¡¢Grafana µÄ ¼à¿Ø¸æ¾¯Æ½Ì¨¡£´óÖ½ṹÈçÏ£¬¾ßÌåʵÏÖÒÔºóÓлú»áÔÙרÃÅдÎÄÕ½éÉÜ£¬ÕâÀï¾Í²»ÏêÊöÁË¡£

×îÖÕ£¬ÎÒÃǵÄÕû¸öƽ̨µÄ×é³ÉÊÇÕâÑùµÄ£º
8. ÈÝÆ÷»¯×ܽá
µ½ÕâÀïΪֹ£¬ÕâЩ¾ÍÊÇÐÓÈÊĿǰµÄ»ù´¡Æ½Ì¨µÄ¼Ü¹¹¡£Í¨¹ýÕâÌ×ϵͳ£¬ÎÒÃÇÌáÉýÁË×ÊÔ´ÀûÓÃÂÊ£¬¸Õ¸ÕÇ¨ÒÆµ½ÈÝÆ÷»¯»·¾³µÄʱºò£¬ÎÒÃÇÖ»ÓÃÁËÔÀ´´óÔ¼
6¡¢70% µÄÔÆ·þÎñÆ÷¡£²¢ÇÒÎÒÃÇ´ó´ó¼ÓÇ¿ÁËÎÒÃǵÄ×Ô¶¯»¯ÔËάµÄÄÜÁ¦£¬ÍêÉÆÁË·þÎñ¼à¿Ø¡£
µ«ÊÇÕâÌ×ϵͳҲ´æÔÚ²»ÉÙÎÊÌâ¡£
1.ÐÂÔö·þÎñÆ÷½Úµã»¹ÊÇÐèҪһЩÊÖ¹¤²Ù×÷¡£
2.ÈÝÆ÷¡¢»·¾³µÈµÄÅäÖö¼ÊÇ·ÖÉ¢ÔÚ¸÷´¦£¬È±·¦ÓÐЧµÄ¹ÜÀí¡£
3.¶ÔÓÐ״̬ӦÓÃÖ§³Ö²»ºÃ¡£
4.ϵͳ´æÔÚһЩÈßÓ࣬ÀýÈçÓÐ Zookeeper¡¢ÓÐ Etcd »¹ÓÐ
Consul¡£
5.²»Ö§³Ö×Ô¶¯À©ÈÝ¡£
6.²¿·Ö»ù´¡ÉèʩûÓÐÈÝÆ÷»¯¡£
δÀ´ÎÒÃÇ»á¼ÌÐø½ø»¯£¬Ò²ÐíµÈʱ»ú³ÉÊìÁË£¬Ò²²»Åųý»áÇ¨ÒÆµ½¹«ÓÐÔÆµÄÈÝÆ÷·þÎñ£¬»òÕß×Ô½¨ Kubernetes
¼¯Èº¡£
|