»ùÓÚ¿ªÔ´¿ò¼Ü¼°ÈÝÆ÷ÊÖÒÕµÄ΢·þÎñ¼Ü¹¹Ñо¿
- ʱ¼ä£º2018-07-13
- ȪԴ£ºµçÁ¦ÐÅÏ¢ÓëͨѶÊÖÒÕ
ÕªÒª£ºËæ×ÅÈí¼þϵͳԽÀ´Ô½Öش󣬵¥µãÓ¦ÓÃģʽÎÞ·¨Ë³Ó¦´óÐÍÆóÒµÈí¼þµÄ¿ª·¢Óë°²ÅÅ£¬ÎªÏàʶ¾öÈÕÒæÔöÌíµÄÓ¦ÓÃÖØÆ¯ºó£¬ÆÈÇÐÐèÒªÒýÈë΢·þÎñ¼Ü¹¹¡£ÎÄÖÐʹÓÿªÔ´¿ò¼ÜºÍÈÝÆ÷ÊÖÒÕ¾ÙÐÐ΢·þÎñ¿ª·¢£¬½«·þÎñͳһÐû²¼¡¢×Ô¶¯»¯¹¹½¨¡¢×ÔÁ¦·Ö·¢µÈ΢·þÎñ×é¼þÓ¦ÓÃÔÚÏÖʵÉú²úÇéÐÎÖУ¬ÕâÖÖ΢·þÎñ¼Ü¹¹¾ßÓÐѧϰ±¾Ç®µÍ¡¢Ê¹ÓüòÆÓ¡¢¸ß¿ÉÒÆÖ²ÐÔ¡¢Ò×ÓÚ²âÊÔ¡¢ÐÔÄܸߡ¢°²ÅżòÆÓºÍÒ×ÓÚ¼à¿ØµÄÌØµã¡£Êµ¼ù֤ʵ£¬Î¢Ó¦Óüܹ¹²»µ«¶Ô¿ª·¢Ö°Ô±ÆÁÕÏÁËÊÖÒÕϸ½Ú£¬»¹Ìá¸ßÁË¿ª·¢Ö°Ô±¶ÔÓªÒµµÄ¹Ø×¢¶È£¬ÌáÉýÁË¿ª·¢Ð§ÂÊ£¬¾ßÓнϸߵIJο¼ºÍÍÆ¹ã¼ÛÖµ¡£
Òªº¦´Ê£ºÎ¢·þÎñ£»Î¢Ó¦Óã»ÈÝÆ÷£»·þÎñ·¢Ã÷£»·þÎñ×¢²á
×÷ÕߣºÁõ»Ô¾ü£¬ÁõÅà·æ£¬Çñîڷ棬´÷¹ðÔî
£¨888¼¯ÍÅ6008¹É·ÝÓÐÏÞ¹«Ë¾)
0СÐò
΢·þÎñ£¨Microservices£© ÊÇÏÖÔÚÒµ½çºÜÊÇÊܽӴýµÄ¼Ü¹¹Ä£Ê½£¬ÆóÒµºÍ·þÎñÌṩÉÌÕýÔÚѰÕÒ¸üºÃµÄÒªÁ콫ӦÓóÌÐò°²ÅÅÔÚÔÆÇéÐÎÖУ¬Î¢·þÎñ±»ÒÔΪÊÇδÀ´µÄÆ«Ïò¡£Í¨¹ý½«Ó¦ÓÃÆÊÎö³É¸üСµÄ¡¢ËÉÉ¢ñîºÏµÄ΢·þÎñ£¬ÕâЩ΢·þÎñÔ½·¢ÈÝÒ×Éý¼¶ºÍÀ©Õ¹£¬Ö÷ÒªÌØµãÈçÏ¡£
1£©Ñ§Ï°±¾Ç®µÍ£ºÑ§Ï°ºÍÈëÃű¾Ç®½ÏÁ¿µÍ£¬¿ÉÒÔ¼´Ñ§¼´Óã»Ñ§Ï°×¼±¸²»»áÆÆ·ÑÌ«³¤Ê±¼ä¡£
2£©Ê¹ÓüòÆÓ£ºÎ¢·þÎñ¿ª·¢ÑùÀýÇåÎú£¬ºÜÈÝÒ×ÉÏÊÖ£¬²»»á·ºÆð¿ª·¢Ò»¸ö¼òÆÓµÄÑùÀý±È¿ª·¢Ò»¸ö¹¦Ð§»¹¼èÄÑ¡£
3£©¸ß¿ÉÒÆÖ²ÐÔ£ºÎ¢·þÎñÌåÁ¿½ÏС£¬¹¦Ð§½Ï¼òµ¥£¬ÕâʹµÃÒÆÖ²ÊÂÇé¸üÈÝÒס£
4£©Ò×ÓÚ²âÊÔ£ºÎ¢·þÎñÒÀÀµ½ÏÁ¿ÉÙ£¬Ö÷Òª¾Û½¹ÔÚ¹¦Ð§²âÊÔ£¬ÓÉÓÚ¹¦Ð§¼òµ¥£¬´úÂë¶Ô²âÊÔÓѺã¬ÎÞÐèÌ«¹ý²âÊÔ¡£
5£©¸ßÐÔÄÜ£º²»»á·ºÆðÐÔÄÜÆ¿¾±£¬ÒýÈëµÄÏà¹ØÒÀÀµºÜС¡£
6£©°²ÅżòÆÓ£ºÎ¢·þÎñÏà¹ØÓ¦ÓÿÉÒÔ×ÔÁ¦¾ÙÐпª·¢ºÍ°²ÅÅ£¬Ê¹ÓÃ΢·þÎñ¼Ü¹¹Ç徲̨£¬ÕâЩӦÓõİ²Åź͹¦Ð§½»¸¶½«ºÜÊǼòÆÓ¡£
7£©Ò×ÓÚ¼à¿Ø£ºÍêÉÆµÄÈÕÖ¾¼Í¼£¬·ºÆðÎÊÌâÄܱ»¼à¿Ø¡¢¸æ¾¯£¬¶ÔϵͳÔËÐÐ״̬¼°ÖÖÖÖÖ¸±êÄÜËæÊ±ÕÆÎÕ¡£
8£©Ò×ÓÚÔËά£º¶ÔÍ»·¢ÊÂÎñÓÐÔËάµ÷ÀíÄÜÁ¦£¬±ÜÃâÑ©±ÀЧӦ¡£Äܹ»¶Ôϵͳ¾ÙÐе¯ÐÔÈýάÉìËõ£¬¿ìËÙ¿ªÆôºÍÓÅÑŹرյȡ£
1¡¡Î¢·þÎñ¼Ü¹¹
1.1¡¡Î¢·þÎñ¼Ü¹¹Óŵã
Ê×ÏÈ£¬Î¢·þÎñ¼Ü¹¹×Ô¼º¾ÍÊÇÒ»¸ö»¯·±Îª¼òµÄÀú³Ì¡£¹Å°åÈí¼þ¼Ü¹¹ÊǼ¯Öа²ÅÅÒ»Ì×´óµÄWeb Ó¦Ó㬽«ÖÖÖÖ·þÎñÒªÁ켯Öе½Õû¸öÓ¦ÓÃÖУ¬ËùÓеĿª·¢Õß¶¼ÔÚÒ»¸öÕûÌåÓ¦ÓÃÇéÐÎÏ¿ª·¢¸÷¸ö¹¦Ð§Ä£¿é¡£Î¢·þÎñ¼Ü¹¹¿ª´´ÁËȫеÄÀíÄÌṩÁËϵͳµÄÄ£¿é»¯µÄ½â¾ö¼Æ»®£¬¸Ã¼Ü¹¹½«Õû¸öϵͳµÄÿ¸ö·þÎñÒªÁìµ¥¶À²ð½â³öÀ´£¬×ÔÁ¦³ÉÒ»¸öÄ£¿é£¬ÕâÑù²ð½âÿ¸ö·þÎñµ¥¶À¿ª·¢¡¢°²ÅźͲâÊÔ£¬´ó´óÌá¸ßÀ©Õ¹ÐÔÓë¿Éά»¤ÐÔ¡£
Æä´Î£¬Î¢·þÎñ¼Ü¹¹ÊÇÒ»¸öÊÖÒÕÁ¢ÒìµÄÀú³Ì£¬ÓÉÓÚÿ¸ö·þÎñ×ÔÁ¦£¬Õâ¾Í¿ÉÒÔʹ·þÎñʵÏÖµÄÊÖÒÕÔ½·¢ÎÞа£¬²»î¿°íÔÓеÄÊÖÒÕʵÏÖ£¬¿ÉÒÔ×ÔÓÉÑ¡ÔñÐÂÊÖÒÕ£¬Ö»Òª¶ÔÍâ¼á³ÖÒ»ÖµķþÎñ¼´¿É¡£
ÔٴΣ¬Î¢·þÎñ°²ÅżòÆÓ¿ìËÙ¡£ÓÉÓÚÿ¸ö·þÎñ¶¼ÊÇ×ÔÁ¦µÄ£¬ÌåÁ¿½ÏС£¬Ã¿¸ö·þÎñ¿ÉÒÔµ¥¶À°²ÅÅ£¬¿ÉÒÔÀë±ðÕûÌ×ϵͳӦÓð²ÅŵÄÞÏÞÎÊ±ÊÆ£¬Ô½·¢ÎÞа¿ìËٵذ²Åŵ½Î»¡£
×îºó£¬Î¢·þÎñ¼Ü¹¹ÊǾßÓиßÐÔÄܵÄÂþÑÜʽ¼Ü¹¹Ä£Ê½¡£Î¢·þÎñÖÐÿ¸ö·þÎñ¶¼ÊÇ×ÔÁ¦°²ÅÅ£¬°²ÅÅʱ¿ÉÒÔ°´Ðè°²ÅÅÂþÑÜ£¬¿ÉÒÔÑ¡ÔñÊʺϷþÎñ°²ÅŵÄÈí¼þÇéÐÎÓëÓ²¼þ×ÊÔ´¡£
1.2¡¡Î¢·þÎñ¼Ü¹¹È±·¦
΢·þÎñ¼Ü¹¹µÄÿ¸ö·þÎñÊÇ×ÔÁ¦µÄ¡¢ÂþÑܵ쬏ø·þÎñ¼äµÄͨѶÓë·þÎñµÄ¹ÜÀí´øÀ´ÌôÕ½£¬¿ª·¢ÕßÒª±àд´úÂëʵÏÖ²î±ð·þÎñ¼äµÄÀú³Ì»òÍøÂçͨѶ£¬Í¬Ê±£¬ÒªÃæÁÙ²î±ð·þÎñ¼äͨѶËù´øÀ´µÄÎÊÌ⣬ÈçÍøÂçʱÑÓ¡¢ÍøÂç¹ÊÕϵÈÎÊÌ⣬ÕâÏà¶ÔÒ»¸ö´óϵͳÄڵIJî±ð·þÎñͨѶÂÔÏÔÖØ´ó¡£
΢·þÎñ¼Ü¹¹µÄÿ¸ö·þÎñ¶¼ÊÇ×ÔÁ¦µÄ£¬ÔÊÐí½ÓÄɲî±ðµÄÓïÑÔÀ´ÊµÏÖ¡¢²î±ðµÄÊý¾Ý¿â´æ´¢£¬ÕâÑù¶ÔÊý¾Ý¿â¼Ü¹¹ÒªÇóÒ²ºÜ¸ß¡£Õë¶ÔÊý¾ÝʱЧҪÇó¸ß¡¢¸üÐÂÆµ¶È¸ßµÄÓªÒµ³¡¾°£¬ÓÉÓÚÒªÕë¶Ô²î±ðµÄ·þÎñʵÏÖ£¬¸üвî±ðÊý¾Ý¿âÖеÄÊý¾Ý£¬ÊƱØÊÇÒ»¸öÌôÕ½£¬ÒªÇóÊý¾Ý¿âÖ§³ÖÂþÑÜÐÔ¡£Òò´Ë£¬Éè¼ÆÖ°Ô±Ó뿪·¢Ö°Ô±ÔÚ΢·þÎñµÄÉè¼ÆÓëÊÖÒÕÑ¡ÐÍÉÏҪ˼Á¿ÂþÑÜʽµÄÎÊÌ⣬ÐèÒªÏà¹ØÖ°Ô±ÓÐÒ»¶¨µÄÊÖÒÕ»ýÀÛ¡£
΢·þÎñ¼Ü¹¹µÄ²âÊÔ£¬ÓÉÓÚÂþÑÜʽÓë×ÔÁ¦µÄÌØµã£¬ÐèÒªÕë¶Ô²î±ðµÄ·þÎñ¾ÙÐвâÊÔ£¬Ïà±È¹Å°å¼¯ÖÐʽ°²Åŵḏţ¬²âÊÔµÄÖØÆ¯ºóÌá¸ß¡£
1.3¡¡Î¢·þÎñ¼Ü¹¹Ó¦Óó¡¾°
ͨ³£À´½²µ¥ÌåÓ¦ÓÃÊǸüºÃµÄÑ¡Ôñ£¬¹ØÓÚ¼òÆÓºÍÖеÈÅÓºéˮƽµÄÓ¦Óã¬ÎÞÂÛÊǺã¾ÃÕÕ¾É¶ÌÆÚÀ´¿´Æä±¾Ç®¿ªÏú¶¼ºÃÓÚ΢·þÎñ¼Ü¹¹£¬µ«¹ØÓÚºÜÊÇÖØ´óµÄÓ¦Óã¬Î¢·þÎñ¼Ü¹¹ºã¾ÃÀ´¿´»áÓлر¨£¬¿ÉÊÇÐèÒªÂÄÀúºÜ³¤Ê±¼äÀ´ÌǰÆÚµÄÖØ´óͶ×Ê¡£ÈôÊÇÆóÒµ·ºÆðÁËÏÂÃæµÄÎÊÌ⣬Ôò¿ÉÒÔʵÑé½ÓÄÉ΢·þÎñ¼Ü¹¹¾ÙÐÐÓ¦ÓÃÉè¼Æ¡£
1£©¿ª·¢Ò»¸öÓ¦ÓÃÐèÒª100 ¸öÒÔÉÏ¿ª·¢Õß¡£
2£©Ó¦ÓõÄÔ´´úÂëÁè¼Ý10 M¡£
3£©ÐèҪƾ֤Ô·ݻòÕß¼¾¶ÈÐû²¼Ó¦Óá£
1.4¡¡¼Ü¹¹¾öÒé
΢·þÎñ¼Ü¹¹²¢²»ÊÇÍòÄܵ쬲»¿É½â¾öËùÓÐÎÊÌ⣬²¢ÇÒûÓÐÒ»ÖÖ¿ª·¢Ä£Ê½£¬ÔÚÊÖÒպ͹ÜÀíÁìÓò£¬¿ÉÒÔÔÊÐíÔÚ10 ÄêÄÚ£¬ÎÞÂÛÊÇÉú²úЧÂÊ¡¢¿É¿¿ÐÔÕվɼò»¯Ë®Æ½¿ÉÒÔÓÅÏÈÆäËûÊÖÒÕÒ»¸öÊýÄ¿¼¶£¬ÒÔÊÇÐèҪƾ֤ÏÖʵµÄÓ¦ÓÃÓªÒµÐèÇóÍŽáδÀ´µÄÉú³¤Ç÷ÊÆ£¬×öÏìÓ¦µÄ¾öÒ飬ѡÔñÊʺÏ×Ô¼ºµÄÈí¼þ¼Ü¹¹¡£
2¡¡ECP ΢·þÎñ¼Ü¹¹Æ½Ì¨ÏÈÈÝ
888¼¯ÍÅ6008ÆóÒµÔÆÆ½Ì¨(Enterprise Cloud Platfrom£¬ECP) ΢·þÎñ¼Ü¹¹Æ½Ì¨Öª×ãÏÂÁÐÒªÇó¡£
1£©Î¢·þÎñ¿ª·¢£ºÔÊÐíʹÓÃÖÖÖÖÓïÑÔ/ ¹¤¾ß/ ¿ò¼Ü¿ª·¢Î¢·þÎñ£»ÔÚJava EE/Spring ϵͳµÄ΢·þÎñ¿ª·¢ÖпÉÒÔ¸´ÓÃÆäËûECP »ù´¡·þÎñ£»Ë¼Á¿ÒÑÓÐµÄÆóÒµÓ¦ÓÃϵͳ£¨²ÆÎñ¹Ü¿Ø£©½ÓÈë·½·¨¡£
2£©Î¢·þÎñŲÓ㺷þÎñ·¢Ã÷¡¢¸ºÔØÆ½ºâ¡¢ÏÞÁ÷ÓëÈÝ´í¡¢²î±ðÓïÑÔ/ ¿ò¼Ü¶¼¿ÉÒÔÖ§³ÖµÄŲÓ÷½·¨µÈ¡£
3£©Î¢·þÎñ¹ÜÀíÓë¼à¿Ø£ºÌṩ΢·þÎñÔËÐÐÇéÐΣ¬Ö§³ÖÀ©ÈÝËõÈÝ¡¢ÔËÐÐʱ¼à¿Ø¡¢¹ýʧ׷×ٵȡ£
2.1¡¡»ù±¾Ä¿µÄ
ECP ΢·þÎñ¼Ü¹¹Æ½Ì¨µÄÄ¿µÄÖ÷Òª°üÀ¨£º
1£©·þÎñŲÓãºÒÀÍзþÎñ×¢²áÓë·¢Ã÷»úÖÆ£¬Í¨¹ý·´Ïò´úÀíʵÏÖ¶¯Ì¬µÄ¸ºÔØÆ½ºâ£»
2£©·þÎñ¼à¿Ø£ºÌṩÐëÒªµÄ·þÎñ¼à¿ØÄÜÁ¦£¬¼´±ã²»ÊÇÓ¦Óü¶µÄ·þÎñ¼à¿Ø£¨Å²ÓôÎÊý¡¢Æ½¾ùºÄʱµÈ£©£¬Ò²ÐèҪϵͳ¼¶µÄ·þÎñÔËÐÐ״̬¼à¿Ø£¨Ä¿½ñ·þÎñʵÀý¸öÊýÒÔ¼°Ã¿¸ö·þÎñʵÀýCPU/ ÄÚ´æ/ ÍøÂçµÈϵͳ×ÊÔ´Õ¼ÓÃÇéÐΣ©¡£
2.2¡¡Î¢·þÎñŲÓÃ
°¸ÀýʵÏÖµÄ΢·þÎñ¼Ü¹¹ÔËÐÐʱ£¬·þÎñŲÓÃÏà¹ØµÄÊÖÒռƻ®ÊµÏÖ·½·¨ÈçÏ¡£
1£©ËùÓÐ΢·þÎñ¾ù̻¶ΪRest API£¬ÈκÎÓïÑÔ/¿ò¼Ü¾ù¿ÉÒÔÓÃÀ´ÊµÏÖ΢·þÎñ£»Í¬Ê±ËùÓжÔ΢·þÎñµÄŲÓö¼ÊÇÖ±½Ó»á¼ûRest API£¬ÎÞÐèÕë¶Ô²î±ðµÄÓïÑÔ/¿ò¼ÜÌṩÏìÓ¦µÄAPI£»
2£©·þÎñ×¢²á£ºÃ¿¸ö΢·þÎñÆô¶¯Ê±Ïò×¢²áÖÐÐľÙÐÐ×Ô×¢²á¡£¸ºÔØÆ½ºâ£º·´Ïò´úÀí£¨¸ºÔØÆ½ºâÆ÷£©Í¨¹ý×¢²áÖÐÐĶ¯Ì¬¸Ð֪΢·þÎñת±äÇéÐΣ¬²¢»ùÓÚ΢·þÎñʾÀýÔËÐÐ״̬¶¯Ì¬¸üÐÂ×Ô¼ºµÄ¸ºÔØÆ½ºâÕ½ÂÔ£»·þÎñ·¢Ã÷£ºÎ¢·þÎñ¿Í»§¶Ë£¨°üÀ¨Ô¶³Ì¿Í»§¶ËºÍ¼¯ÈºÄÚµÄ΢·þÎñ£©ÒÔÀο¿µØÖ·»á¼ûËùÐè΢·þÎñ¶ÔÓ¦µÄ·´Ïò´úÀí£¨¸ºÔØÆ½ºâÆ÷£©£¬ÎÞÐèÌåÌù·´Ïò´úÀí£¨¸ºÔØÆ½ºâÆ÷£©ºóÃæµÄ΢·þÎñÔËÐÐ״̬¡£ÔÚÉÏÊö¼Æ»®ÖÐûÓÐÍø¹Ø£¨API Gateway£©µÄ±£´æ£¬µ«´Ë¼Æ»®Öеķ´Ïò´úÀí£¨¸ºÔØÆ½ºâÆ÷£©¿ÉÒÔÔÚºóÆÚ±»API Gateway È¡´ú£¬ÔÚÌṩÉÏÊö¹¦Ð§µÄͬʱ£¬²¢²î³ØÎ¢·þÎñµÄŲÓ÷½±¬·¢Ó°Ïì¡£
ͨ¹ýHTTP+REST ¶Ô¿ª·¢Ê¹ÓÃÓѺ᣿ÉÊÇÖÎÀíÆðÀ´½ÏÄÑÌ⣬ÅþÁ¬ÎÞ״̬£¬ÒÔ¼°¸½´øµÄ·þÎñ¶ËÍÆËÍ¡¢Å²ÓÃÁ´Â·¼à¿ØÂñµãµÈ£¬ÔöÇ¿ÁËϵͳµÄ¸½¼ÓÄÜÁ¦£¬¶Ôµ÷Ó÷½Ìá³öÁËеÄÒªÇó¡£×ÛºÏÀ´¿´£¬Ô¶³ÌÒªÁìŲÓÃ(Remote Procedure Call£¬RPC) ´ÓÐÔÄÜ¡¢×óȯÓÅÏÈÀ´Ëµ¾ßÓÐÓÅÊÆ£¬ÒýÈëgateway ²ã£¬ÈÃREST ÓëRPC µÄÓŵã¾ÙÐÐÈںϣ¬ÔÚgateway ²ãÌṩREST µÄ½ÓÈëÄÜÁ¦¡£
2.3¡¡Î¢·þÎñ¼à¿Ø
ÔËÐÐÇéÐλùÓÚÈÝÆ÷¼¯Èº¹ÜÀí²úÆ·/ ÏîÄ¿£¬Í¨¹ýÔËÐÐÇéÐÎʵÏÖÏÂÁй¦Ð§¡£
1£©Í³Ò»Èí¼þ½»¸¶ÐÎʽ£ºÒÔ¾µÏñ×÷ΪÈí¼þ½»¸¶ÐÎʽ£¬±ãÓÚDevOpsµÄʵÑ飻
2£©Ö§³ÖÀ©ÈÝËõÈÝ£º»ùÓÚÈÝÆ÷¼¯ÈºÊµÏÖ΢·þÎñÀ©ÈÝËõÈÝ£¬ÉõÖÁʵÏÖ×Ô¶¯À©ÈÝËõÈÝ£»
3£©ÔËÐÐʱ¼à¿Ø£º¿ÉÒÔͨ¹ýÈÝÆ÷¼¯ÈºÊµÏÖÈÝÆ÷ÔËÐÐ״̬¼à¿Ø£¬µ±ÈÝÆ÷Óë·þÎñÖðÒ»¶ÔӦʱ£¬ÈÝÆ÷ÔËÐÐ״̬¿ÉÒÔ±»ÒÔΪ½üËÆÓÚ·þÎñÔËÐÐ״̬¡£
3¡¡Î¢·þÎñʵ¼ù
ÉÏÊö΢·þÎñÔËÐÐÇéÐÎÒÀÀµÈÝÆ÷¼¯Èº¹ÜÀí£¬½¨ÒéÑ¡ÔñGoogle Kubernetes»òÕßDaoCloud ²úƷʵÏÖ¡£
3.1¡¡Î¢·þÎñ¿ª·¢
΢·þÎñ¿ÉÒÔͨ¹ýÖÖÖÖÐÒé̻¶Æä½Ó¿Ú£¬²¢ÔÊÐíʹÓÃÈκÎÓïÑÔ/ ¿ò¼ÜʵÏÖ¡£»ùÓÚECP ΢·þÎñ¼Ü¹¹Æ½Ì¨Ö»¿ª·¢°üÀ¨ÇкÏÏÂÁÐÌØÕ÷µÄ΢·þÎñ£º·þÎñ½Ó¿ÚΪ»ùÓÚhttp(s) µÄRest API£»ÓïÑÔ/ ¿ò¼Ü»ùÓÚJava EE/Spring OSGi ϵͳ¡£
ÁíÍ⣬ËùÓÐRest API ¶¼Ó¦¸ÃÖª×ãÂþÑÜʽ°²ÅÅ£¨ÊµÏÖÎÞ״̬£©²¢°ü¹ÜÓªÒµ¹¦Ð§×¼È·£¨×îÖÕÒ»ÖÂÐÔ£©¡£
3.1.1¡¡»ùÓÚECP ƽ̨(OSGi) µÄ΢·þÎñ¼Ü¹¹
»ùÓÚECP ƽ̨OSGi °æ±¾µÄÈí¼þ¿ª·¢¹¤¾ß°ü(Software Development Kit£¬SDK) ΢·þÎñ£¬¾ÍÊǽ«Rest Controller ̻¶Ϊ΢·þÎñ£¨Rest API£©£¬µ«Í¨¹ýECP ƽ̨SDK ʵÏÖ΢·þÎñ£¬ÓÐÏÂÁÐÓÅÊÆ£º
1£©ÖØÓÃECP Öк¸ÇµÄ»ù´¡ÉèÊ©£¨ÐÂÎÅ¡¢»º´æ¡¢µ÷Àí¡¢Á÷³ÌµÈ£©£¬ÎÞÐè×ÔÐм¯³ÉÕâЩÄÜÁ¦£»
2£©¼ò»¯Çå¾²ÈÏÖ¤£ºÎ¢·þÎñËùÐèµÄÇå¾²ÈÏÖ¤»úÖÆ£¬¿ÉÒÔÖØÓá£
Óë´Ë¶ÔÓ¦£¬»ùÓÚECP ΢·þÎñ¼Ü¹¹¿ª·¢µÄ΢·þÎñ½«±»¹¹½¨Îªwar£¬ÐèÒª´ò°ü°²Åŵ½Java EE Servlet ÈÝÆ÷ÖУ¨Tomcat/Jetty µÈ£©¡£
3.1.2¡¡»ùÓÚECP ƽ̨(Spring Boot) µÄ΢·þÎñ¼Ü¹¹
Spring Boot ÌṩÁËʵÏÖRest API µÄÓÅÒìÖ§³Ö£¬²¢¼«´óµØ¼ò»¯ÁËÉèÖúͰ²ÅÅ¡£ÔÚÎÞÐèWeb UI ¶ø½ö½öֻΪÁËÌṩRest API µÄÇéÐÎÏ£¬ÊÇJava EE/SpringϵͳÏÂʵÏÖRest API µÄÊ×Ñ¡¿ò¼Ü¡£
Spring Boot ʵÏÖµÄRest API ½«±»¹¹½¨Îªjar£¬ÆäÖÐÄÚÖÃÁËTomcat/Jetty£¬¿ÉÒÔÖ±½Ó°²ÅÅÔËÐУ¬ÎÞÐèÍⲿµÄJava EE Servlet ÈÝÆ÷¡£
3.1.3¡¡ÔÓоÉϵͳ½ÓÈë
ÒÑÓеÄÓ¦ÓÃϵͳ£¨Èç²ÆÎñ¹Ü¿Ø£©£¬Í¨³£²»¿ÉÄÜ´ó¹æÄ£Öع¹ÎªÎ¢·þÎñÓ¦ÓÃϵͳ£¬»¹ÐèÒª¸´ÓÃÒÑÓÐϵͳµÄ²¿·Ö·þÎñ²¢½ÓÈë΢·þÎñÔËÐÐÇéÐΡ£¹ØÓÚ´ËÀàÐèÇ󣬽¨Òé½ÓÄÉÏÂÊöÒªÁìʵÏÖ£º
»ùÓÚSpring Boot ʵÏÖ΢·þÎñ£¬ÕâЩ΢·þÎñ½«Å²ÓÃÒÑÓÐϵͳµÄAPI ʵÏÖÆä¹¦Ð§£¬ÈôÊÇÕâЩ·þÎñÓÐÑÏ¿áµÄÐÔÄÜÒªÇó£¬Ò²¿ÉÒÔÖ±½Ó»á¼ûÔϵͳµÄÊý¾Ý¿âʵÏÖÕâЩ·þÎñ¡£×ÜÖ®£¬ÐÂʵÏÖµÄ΢·þÎñ¾ÙÐнÓÈ룬ÕâЩ΢·þÎñµÄʵÏÖÒÀÀµÒÑÓÐϵͳ£¬ÕâЩ΢·þÎñÊÊÅäÒÑÓÐϵͳµÄ¹¦Ð§¾ÙÐнÓÈë¡£
3.1.4¡¡·þÎñ½Ó¿ÚÑÝ»¯
ÔÚÈÕ³£¿ª·¢µÄÀú³ÌÖУ¬·þÎñ¶Ë¶ÔÍ⿪·ÅµÄ½Ó¿ÚAPI »áÓÐÒ»¸öת±äµÄÀú³Ì¡£
µ¥ÌåÓ¦Óô¦Öóͷ£·þÎñ¶Ë½Ó¿ÚµÄת±ä£¬Ö±½ÓÐ޸ĶÔÓ¦µÄ½Ó¿Ú£¬È»ºóÔÙÐÞ¸ÄËùÓнӿڵÄŲÓü´¿É¡£
΢·þÎñ¹ØÓÚ½Ó¿Úת±äµÄ´¦Öóͷ££¬ÓÉÓÚ¸÷¸ö΢·þÎñµÄ×ÔÁ¦ÐÔ£¬ºÜÄÑʵʱ¸üзþÎñŲÓÃʵÏÖ¡£ÔÚÕâÖÖÇéÐÎÏ£¬ÔÚ²»Ó°ÏìÔÓÐŲÓÃÓÖÒªÌṩеķþÎñ¹©Å²ÓõÄÌõ¼þÏ£¬·þÎñµÄÌṩÕßÓпÉÄÜÌṩ2 Ì×·þÎñ£¬Ò»Ì×ÊÇеĽӿÚAPI ·þÎñ£»ÁíÒ»Ì×ÊǾɵÄAPI ·þÎñ¡£
µ±Î¢·þÎñµÄÐû²¼Õß¶ÔÔ½Ó¿Ú¾ÙÐÐÐÞ¸Äʱ£¬Ë¼Á¿µÄÊǸ͝µÄ¾Þϸ¼°¾ÉµÄ·þÎñAPI µÄ¼æÈÝÐÔ¡£Àú³Ì¼äʹÓÃÇáÁ¿¼¶Í¨Ñ¶»úÖÆ¾ÙÐÐͨѶ¶Ô½Ó¿ÚË¢ÐÂ×ÊÖúºÜ´ó£¬½¨ÒéʹÓÃÔÚ×î³õµÄÉè¼ÆÀú³ÌÖУ¬Ã¿¸ö·þÎñµÄÉè¼Æ¶¼×ñÕÕ½áʵÐÔµÄÔÔò£¬ºÃ±È£ºÖ»ÊǶÔij¸öÌØ¶¨³¡¾°Éè¼ÆAPI£¬Å²ÓÃAPI µÄ·þÎñʹÓþɵĽӿڣ¬ÄÜͬʱ¼æÈÝŲÓÃеĽӿÚÒ»ÆðÊÂÇ飬API ·þÎñÈÔÈ»ÌṩÔÓеÄĬÈÏÏìÓ¦Öµ£¬Å²Ó÷þÎñºöÂÔ¼´¿É¡£ÓÐʱ½Ó¿ÚË¢ÐÂÉæ¼°µÄ¸Ä¶¯ºÜ´ó²¢ÇÒÓë¾É½Ó¿Ú²»¼æÈÝ£¬ÓÉÓÚ²»¿ÉÇ¿ÖÆËùÓÐŲÓ÷þÎñ¾ÙÐÐÉý¼¶£¬ÒÔÊDZ£´æÐÂÀÏ·þÎñ²¢´æµÄÇéÐΣ¬·þÎñ¶ËŲÓûáÕë¶ÔÐÂÀϲî±ðAPI ·þÎñ£¬Õâ¾ÍÒªÇó·þÎñµÄAPI ¾ßÓÐ¶à°æ±¾¿´·¨£¬Õë¶Ô²î±ðŲÓþÙÐд¦Öóͷ£¡£
3.2¡¡Î¢·þÎñ°²ÅÅ
΢·þÎñ¼Ü¹¹ÊÇÓÉÒ»×éС¿ÉÊÇ×ÔÁ¦µÄ·þÎñ×é³É£¬¸÷·þÎñÓÐ×ÔÁ¦µÄÀú³Ì£¬ÐèÒª×ÔÁ¦°²ÅÅ£¬·þÎñ°²ÅÅÐèÒª¿ìËÙ¡¢¿É¿¿²¢ÇÒÐԼ۱ȸߡ£Ñ¡Ôñ»ùÓÚÈÝÆ÷°²Åŵķ½·¨ÄÜÖª×ãÉÏÊöÐèÇó£¬ECP ΢·þÎñ°²Åżܹ¹Èçͼ1 Ëùʾ¡£
ͼ1 ECP ΢·þÎñ°²Åżܹ¹
3.2.1¡¡»ùÓÚGoogle Kubernetes ¼Ü¹¹
Google Kubernetes ÌṩÁËÍêÕûµÄ΢·þÎñÔËÐÐÇéÐΣ¬Íêȫ֪×ãǰÊö΢·þÎñŲÓá¢Î¢·þÎñ¹ÜÀíÓë¼à¿ØµÄÒªÇó¡£
1£©API Server/etcd£º×÷Ϊע²áÖÐÐÄ£¬Î¢·þÎñʵÀý½«ÔÚÆäÖÐ×¢²á£»
2£©kube-proxy£ºÊµÏÖ·´Ïò´úÀí£¬Äܹ»×Ô¶¯Æ¾Ö¤·þÎñʵÀýµÄÔËÐÐ״̬µ÷½âÆä´úÀíÕ½ÂÔ£»
3£©Í¨¹ýKubernetes Service ½ç˵£¬°ü¹Ü¼¯ÈºÖÐÖ¸¶¨Service µÄʵÀýÊýÄ¿£»
4£©¾ß±¸ÍêÕûµÄÈÝÆ÷ÔËÐÐ״̬¼à¿ØÄÜÁ¦¡£
Kubernetes ÌṩÁËÍêÕûµÄ΢·þÎñ¼Ü¹¹ÊµÏּƻ®£¬µ«Æä¿´·¨¼°ÊµÏÖ·½·¨ÓëÔÉúµÄDocker½â¾ö¼Æ»®²¢·×ÆçÖ£¬ÓëDocker °æ±¾µÄ¸üÐÂʱ¼äÉϲî±ð²½¡£
3.2.2¡¡»ùÓÚDaoCloud DCE ¼Ü¹¹
DaoCloud ÌṩµÄÔËÐÐÇéÐÎÒÔ¼°¼¯Èº¼à¿ØÄÜÁ¦ÄÜÖª×ãǰÊö»ù±¾Ä¿µÄÖÐ¼à¿ØÏà¹ØµÄÒªÇó¡£
DaoCloud »ùÓÚÔÉúDocker ÌṩÈÝÆ÷¼¯Èº¹ÜÀí¼Æ»®£¬½ö×÷ΪÈÝÆ÷¹ÜÀí²úƷʹÓã¬×Ô¶¯µÄ·þÎñ·¢Ã÷ºÍ¸ºÔØÆ½ºâÐèҪͨ¹ýHAProxy+etcd ×ÔÐÐʵÏÖ¡£
Òò´ËÏêϸʵÏÖΪ£º
1£©Î¢·þÎñŲÓþùͨ¹ýHAProxy ¾ÙÐУ¬HAProxy×÷Ϊ·´Ïò´úÀí£¨¸ºÔØÆ½ºâÆ÷£©£»
2£©etcd ×÷Ϊע²áÖÐÐÄ£»
3£©Ã¿¸ö΢·þÎñÆô¶¯Ê±Ïòetcd ×¢²á£»
4£©HAProxy ×Ô¶¯·¢Ã÷etcd ÖÐ΢·þÎñʵÀýµÄת±ä²¢Í¸Ã÷´úÀí¡£
3.3¡¡Î¢·þÎñÑз¢Àú³Ì
΢·þÎñ¼Ü¹¹Ä£Ê½ÈÝÒ×ʵÏÖѸËÙ¿ª·¢£¬½«¿ª·¢ºÍÔËά¸ß¶Èе÷£¬Ìá¸ßÉú²úÂÊ¡£Í¨¹ýÁ÷³ÌºÍ¹¤¾ß×Ô¶¯»¯£¬¸üѸËٵĽ»¸¶²úÆ·¡£ECP ΢·þÎñÒ»Á¬½»¸¶Àú³ÌÈçͼ2 Ëùʾ¡£
3.4¡¡Ð§¹ûÕ¹ÏÖ
×îÖÕͨ¹ýECP ΢·þÎñ¼Ü¹¹Æ½Ì¨£¬½«ÏÖÓÐÓ¦ÓõĻù´¡×é¼þ²ð·ÖΪ¶à¸ö΢·þÎñ£¬È绺´æ·þÎñ¡¢ÐÂÎÅ·þÎñ¡¢µ÷Àí·þÎñ¡¢·Ç½á¹¹»¯·þÎñ¡¢Á÷³Ì·þÎñ¡¢½ÓÈë·þÎñ¡¢ÉèÖ÷þÎñ¡¢ÈÏÖ¤ÊÚȨ·þÎñ¡¢ÈÕÖ¾·þÎñµÈ¡£¸÷¸ö·þÎñ×ÔÖΣ¬·þÎñÖ®¼äÐͬ£¬ËùÓзþÎñŲÓö¼Ê¹ÓÃͳһµÄHTTP ·þÎñͨѶ¿ò¼Ü£¬µÖ´ï±ê×¼»¯¡£Ìṩ¿ª·¢ÕßÖÐÐĺÍ΢ӦÓÃÐû²¼ÖÐÐÄ£¬ÊµÏÖÁË·þÎñ×¢²á¡¢·þÎñ×Ô¶¯·¢Ã÷¡¢¸ºÔØÆ½ºâ¡¢ÈÝ´í¡¢»á»°¸ú×Ù¡¢»á¼û¿ØÖÆ¡¢»Ò¶ÈÐû²¼¡¢Êý¾Ý¿ÉÊÓ»¯¡£
ͼ2 ECP ΢·þÎñÒ»Á¬½»¸¶Àú³Ì
4¡¡½áÓï
±¾ÎÄÑо¿Î¢·þÎñ¼Ü¹¹Æ½Ì¨ÊµÏÖ£¬Í¨¹ýECP΢·þÎñ¼Ü¹¹Æ½Ì¨¿ìËÙÍê³ÉÁËÓ¦ÓÃÔ´Âë¹¹½¨¡¢¾µÏñ´ò°üºÍÓ¦Óð²ÅÅ£¬ÊµÏÖÁË΢·þÎñµÄ¸ßЧÔËÓª£¬ÔÚ¸ÃÆ½Ì¨Ï£¬Ñз¢Ö°Ô±¿ÉÒÔ¿ìËÙ¹¹½¨Î¢·þÎñ¡£Î¢·þÎñÊÖÒռܹ¹ºÍµ×²ãʵÏÖ´úÂëËùÓÐÓÉÆ½Ì¨Ìṩ£¬ÆÁÕÏÁËÖØ´óµÄÊÖÒÕϸ½Ú£¬Ñз¢Ö°Ô±Ö»ÐèÒª¹Ø×¢ÓªÒµ´úÂë±àд¼´¿É¡£Êµ¼ù֤ʵ£¬¸Ãƽ̨Äܹ»´ó·ù¼ÓËÙ¿ª·¢ËÙÂÊ£¬ÓнϸߵÄÓ¦ÓüÛÖµ¡£