±à¼ÍƼö: |
±¾ÎĶÔÔÆÔÉúµÄ½â¶ÁÖ»ÏÞÔÚÕûÌåÐÔºÍÈëÃż¶µÄ½éÉÜ£¬Í¨¹ý±¾ÎÄÄÜÖªµÀÔÆÔÉúÊÇʲô£¿ÄÜÁ˽âÆäÀíÄ˼Ïë¡¢¼ÛÖµºÍ¼¼ÊõÕ»¡£
±¾ÎÄÀ´×ÔÓÚInfoQ¼Ü¹¹Í·Ìõ£¬ÓÉAlice±à¼¡¢ÍƼö¡£ |
|
¿ªÌ⣺˵ʵ»°£¬Ò»¿ªÊ¼¾ö¶¨Ð´ÕâÆªÎÄÕ²¢°ÑÃû×ÖÖ±½ÓºÍ¡°ÔÆÔÉú¡±ÕâÒ»ÔÚµ±ÏÂÈç´Ë»ðÈȺͺê´óµÄ¼¼ÊõÌåϵ¹Ò¹³£¬ÐÄÀï×ÅʵÓÐЩìþìý²»°²¡£Ò»ÊÇÔÆÔÉúÀíÄîºÍ¼¼ÊõÌåϵÈç´ËºÆå«£¬×÷Ϊһ¸ö¿ÉÄÜÕýÔṲ́ÈëÔÆÔÉú´óÃŵġ°ÐÂÈË¡±£¨ËäÈ»±¾ÈË̤ÈëÈí¼þÑз¢ÐÐÒµÒѾ 11 ÄêÁË£©£¬Í¨¹ýһƪÎÄÕ£¬½áºÏ×Ô¼ºÒ»Á½ÄêµÄ¾ÑéºÍ˼¿¼£¬À´½²Çå³þÔÆÔÉúÊÇÃæÁÙ¾Þ´óÌôÕ½µÄ£»¶þÊÇű»±ðÈ˹ÚÒÔ¡°²ä¼¼ÊõÈȶȡ±Ö®Ã±£¬¼¼ÊõÐÔÁìÓòÓÈÆäÊÇÈí¼þÑз¢ÁìÓò£¬¿ª·¢Õß¶¼ÓÐÒ»ÖÖÇ¿ÁÒµÄΣ»ú¸ÐºÍ½¹ÂǸУ¬ÉúÅÂÔÚÈÕÐÂÔÂÒì¡¢¿ìËÙµü´úµÄ¼¼ÊõºéÁ÷ÖУ¬Ò»²»Ð¡Ðľͱ»Ê±´úÅׯúÁË¡£ËùÒÔ£¬ÕâÖÖÎÄÕ±êÌâÈÝÒ×ÈÃͬÐоõµÃÔÚÎñÐ飬·´Ó³µÄÊÇÄÚÐĽ¹ÂÇ£¬ÉúÅÂ×Ô¼º²»Á˽âÇ°ÑØ¼¼Êõ£¬½á¹û¸ü¶àÊÇ·¹ºó̸×Ê¡£
È»¶øËæ×ž©¶«ÒµÎñÔÚ¿ìËÙ·¢Õ¹£¬´ßÉú³öÁËÔ½À´Ô½¶àµÄÐÂÒµÎñ¡¢ÐÂÈüµÀºÍÐÂÕ¾µã£¬ÕâЩÐÂҵ̬ºÜ¶à¶¼ÊǼ¯ÍÅÕ½ÂÔ¼¶µÄ£¬¶øÇÒ¾©¶«¼¼ÊõÉÌÒµ»¯Â䵨ºÍ¼ÛÖµÊä³ö×÷Ϊ¼¯ÍÅÔö³¤µÄÐÂÇúÏßµÄËßÇóÓúÀ´ÓúÇ¿ÁÒ¡£iPaaS ×÷Ϊ¾©¶«ÁãÊÛǰ̨Ñз¢±ê×¼£¬ÔÚÖ§³Å¹«Ë¾ÐÂҵ̬¡¢ÐÂÈüµÀÔËÓªÌåϵµÄ´î½¨ºÍÂ䵨£¬Ö§³Å¹«Ë¾¹ú¼Ê»¯Õ¾µã¡¢ÉÌÒµ»¯ÏîÄ¿µÈ·½Ãæ·¢»ÓÁËÓúÀ´ÓúÖØÒªµÄ×÷Óᣵ«ÈçºÎ½øÒ»²½³éÏóºÍÆÁ±Î¼¼ÊõʵʩºÍ¼¼Êõ¸´ÔÓ¶È£¬ÈçºÎ½øÒ»²½Èÿª·¢Õß¾Û½¹ÒµÎñ¼ÛÖµµÄ¿ìËÙ½»¸¶£¬ÈçºÎ¸ü½øÒ»²½ÌáÉý¿ª·¢Õß¿ª·¢Ð§ÂʺÍÐèÇ󽻸¶Ð§ÂÊ£¬ÈçºÎ¸³ÓèÒµÎñ¸üÃô½ÝµÄÊÔ´íÄÜÁ¦ºÍ¸üÇ¿µÄ´´ÐÂÄÜÁ¦£¬iPaaS ÐèÒªÀ´¹æ»®ºÍ·¢»ÓµÄ¿Õ¼ä»¹ÊǷdz£´óµÄ¡£µ±ÎÒÃǽáºÏ iPaaS µÄ³õÖÔ¡¢Ô¸¾°¡¢¼ÛÖµºÍÔÆÔÉúµÄÀíÄîºÍ¼ÛÖµ½øÐÐ˼¿¼Ê±£¬·¢ÏÖ iPaaS ºÍÔÆÔÉúÆäÀíÄîºÍ¼ÛÖµÊDz»Ä±¶øºÏµÄ¡£ËùÒÔÔÆÔÉúµÄÀíÄîºÍ¼¼ÊõÊÇ iPaaS δÀ´Ò»¸öÖØÒªµÄ·½Ïò£¬±¾ÎÄÊǶÔÔÆÔÉúºÍÔÆÔÉúÂ䵨 iPaaS µÄÒ»¸ö³õ²½Ë¼¿¼¡£
iPaaS ÊÇʲô£¿
iPaaS Ϊ¾©¶«ÁãÊÛǰ̨Ñз¢±ê×¼£¬Æä¶¨ÒåΪ£º¡°iPaaS ÊÇÒ»Ì׿ª·Å¡¢¹²Éú¡¢ÖÇÄÜ¡¢ÐͬµÄ¼¼Êõ±ê×¼Ìåϵ£¬Ö¼Ôڰѱ»º£Á¿ÒµÎñºÍÁ÷Á¿Ëù³É¹¦ÑéÖ¤¹ýµÄƽ̨»¯ÄÜÁ¦È«Ãæ±ê×¼»¯ºÍ¿ª·Å»¯£¬²¢Ìṩ¸²¸Ç´óǰ¶Ëµ½´óºó¶ËµÄÁ¢ÌåʽºÍÍêÕûµÄ¼¼Êõ¿ª·ÅÌåϵ£¬Èÿª·¢Õß´Ó´óÁ¿Í¬ÖÊÐÔÀͶ¯ÖнâÍѳöÀ´£¬×î´ó³Ì¶È¾Û½¹ÔÚÒµÎñ¿ª·¢ÉÌ£¬ÊµÏÖ¸ßЧ¡¢Áé»î¿ª·¢ºÍ¶¨ÖÆÒµÎñµÄ¸öÐÔ»¯ÐèÇó¡£ÒµÎñÔÚ iPaaS ³ÖÐø·±ÈÙµÄÉú̬ȦÖо¡ÇéÏíÊÜÁËÄÜÁ¦¹²ÏíºÍ¼¼Êõ´´ÐµĺìÀû£¬Í¨¹ý iPaaS£¬ÒµÎñÄܹ»¼«ËÙ¹¹½¨ÔËÓªÌåϵ£¬¼ÓËÙÒµÎñÊý×Ö»¯Éý¼¶ºÍÒµÎñ´´Ð¡£¡±¡£
iPaaS µÄ¼ÛÖµ
iPaaS ÃæÏò¿ª·¢Õߣ¬ÆäÖÕ¼«¼ÛÖµÔÚÓÚ¸ßЧ֧³ÅÒµÎñ£¬Æä¼ÛÖµ×ܽáÀ´¿´°üÀ¨£º
a. Èÿª·¢Õß¾Û½¹ÒµÎñ£¬ÌáÉý¿ª·¢ÕßÉú²úÁ¦¡£
b. ½µ±¾ÌáЧ¡£
c. ¸³ÓèÒµÎñ¼«ËÙ´´ÐÂÄÜÁ¦¡£
d. ÖúÁ¦¼¼ÊõÉÌÒµ»¯Â䵨¡£
iPaaS µÄÔ¸¾°
iPaaS µÄÔ¸¾°ÊÇÒÔ¼¼ÊõºÍÒµÎñÄÜÁ¦µÄ±ê×¼»¯¡¢¹æ·¶»¯Îª»ù´¡£¬ÀͨÖÇÄÜÐͬÁ´Â·£¬´òÔì¸ß¶È¿É¼¯³É¡¢¿ÉÁ¬½ÓÍⲿϵͳºÍÒµÎñµÄÄÜÁ¦£¬´ïµ½Ó뿪·¢ÕߺÍÒµÎñ¿ª·Å¹²Éú£¬ÊµÏÖ»¥Àû¶àÓ®£¬ÖúÁ¦¿ª·¢Õß¾Û½¹ÒµÎñ¼ÛÖµºÍ¸öÐÔ»¯ÐèÇó¶¨ÖÆ£¬Ö§³ÅÒµÎñ¿ìËٴÔËÓªÌåϵ£¬ÊµÏÖ¿ìËÙÊÔ´íºÍÒµÎñ´´Ð¡£×ܽáÀ´¿´£¬iPaaS µÄ×î¶¥²ãÔ¸¾°ÊÇͨ¹ý±ê×¼»¯ÄÜÁ¦ºÍ¼¼Êõ¿ª·ÅÄÜÁ¦Á¬½Ó¿ª·¢Õß¡¢ÒµÎñºÍ iPaaS ƽ̨£¬ÐγÉÒ»¸ö²»¶Ï·±ÈÙ¡¢Á¼ÐÔ·¢Õ¹µÄÉú̬Ȧ£¬ÒÔʵÏÖ¿ª·¢Õß-ÒµÎñ-iPaaS µÄÈýÓ®¾ÖÃæ¡£

ÔÆÔÉú
´ÓÔÆÔÉúÒµ½ç±È½ÏÈϿɵ͍Ò壨¡°ÔÆÔÉú¼¼ÊõÓÐÀûÓÚ¸÷×éÖ¯ÔÚ¹«ÓÐÔÆ¡¢Ë½ÓÐÔÆºÍ»ìºÏÔÆµÈÐÂÐͶ¯Ì¬»·¾³ÖУ¬¹¹½¨ºÍÔËÐпɵ¯ÐÔÀ©Õ¹µÄÓ¦Óá£ÔÆÔÉúµÄ´ú±í¼¼Êõ°üÀ¨ÈÝÆ÷¡¢·þÎñÍø¸ñ¡¢Î¢·þÎñ¡¢²»¿É±ä»ù´¡ÉèÊ©ºÍÉùÃ÷ʽ API¡£ÕâЩ¼¼ÊõÄܹ»¹¹½¨ÈÝ´íÐԺá¢Ò×ÓÚ¹ÜÀíºÍ¿É¹Û²âµÄËÉñîºÏϵͳ¡£½áºÏ¿É¿¿µÄ×Ô¶¯»¯ÊֶΣ¬ÔÆÔÉú¼¼Êõʹ¹¤³ÌʦÄܹ»ÇáËɵضÔϵͳ×÷³öƵ·±ºÍ¿ÉÔ¤²âµÄÖØ´ó±ä¸ü¡£¡±£©¿ÉÒÔ¿´³ö£¬ÔÆÔÉúÊÇÒ»ÖÖÀíÄÉúÔÚÔÆÉÏ£¬³¤ÔÚÔÆÉÏ£¬×î´ó»¯µØ·¢»ÓÔÆµÄÄÜÁ¦ºÍ¼ÛÖµ¡£Ò²ÊÇһϵÁмܹ¹ÔÔòºÍÉè¼ÆÄ£Ê½µÄ¼¯ºÏ£¬Ö¼ÔÚ½«ÔÆÓ¦ÓÃÖеķÇÒµÎñ´úÂëµÄ²¿·Ö½øÐÐ×î´ó»¯µÄ°þÀ룬´Ó¶øÈÃÔÆÉèÊ©£¨IaaS¡¢PaaS£©½Ó¹ÜÓ¦ÓÃÖÐÔÓеĴóÁ¿·Ç¹¦ÄÜÌØÐÔ£¬Èÿª·¢Õß¾Û½¹ÔÚÒµÎñ¼ÛÖµ½»¸¶ÉÏ¡£
ÎÒÃÇÆÊÎö²¢×ܽá iPaaS ºÍÔÆÔÉúµÄÀíÄîºÍ¼ÛÖµ£¬·¢ÏÖºÜ¶à·½Ãæ¶¼ÊǷdz£ÆõºÏµÄ£¬Õâ¼á¶¨ÁËÎÒÃÇδÀ´ÈÚºÏÔÆÔÉúÀíÄîºÍ¼¼Êõ£¬±¾ÎÄËãÊǶÔÔÆÔÉúÀíÂÛºÍÂ䵨 iPaaS µÄһЩdz²ã´ÎµÄ˼¿¼¡£
×îºóÐèÒª¸ø±¾ÎĵĶÁÕß¡°´òÒ»¼ÁÔ¤·ÀÕ롱£¬±¾ÎĶÔÔÆÔÉúµÄ½â¶ÁÖ»ÏÞÔÚÕûÌåÐÔºÍÈëÃż¶µÄ½éÉÜ£¬Í¨¹ý±¾ÎÄÄÜÖªµÀÔÆÔÉúÊÇʲô£¿ÄÜÁ˽âÆäÀíÄ˼Ïë¡¢¼ÛÖµºÍ¼¼ÊõÕ»£¬Èç¹ûÏëͨ¹ý±¾ÎÄÀ´Éî¶ÈÁ˽âÔÆÔÉúµÄ¼¼ÊõÔÀíºÍ·½°¸£¬Ädz¼æª°ì²»µ½°¡£¬»¹ÐèÒª½áºÏ¼¼ÊõµÄ¹ÙÍø½øÐнøÒ»²½µÄѧϰºÍÑо¿¡£×îºó±¾ÎÄ»á½â¶ÁһϠiPaaS ÔÚÔÆÔÉúÂ䵨µÄ·½ÏòºÍ¹æ»®£¬¿ÉÄÜ´æÔÚÎóÇø£¬Ò²»¶Ó¸÷λ¶ÁÕßÄܹ»¸øµ½ÓÐÒâÒåµÄ½¨ÒéºÍÌáʾ¡£
±¾ÎĽ«Öص㽲½âÒÔÏ 5 ·½Ã棺
1. »Ø¹ËÈí¼þ½»¸¶µÄ·¢Õ¹Àú³Ì¡£
2. ʲôÊÇÔÆÔÉú£¿ÔÆÔÉúÄܸøÎÒÃÇ´øÀ´Ê²Ã´£¿
3. ÔÆÔÉúµÄ¼Ü¹¹ÔÔòºÍÉè¼ÆÄ£Ê½¡£
4. ÔÆÔÉúÖ÷Òª¼¼Êõ¡£
5. iPaaS£¨¾©¶«Ç°Ì¨Ñз¢±ê×¼£©ÔÚÔÆÔÉúµÄ˼¿¼ºÍ̽Ë÷¡£
1¡¢Èí¼þ½»¸¶µÄ·¢Õ¹Àú³Ì
×÷Ϊһ¸öÔÚÈí¼þÑз¢ÐÐÒµÔú¸ù³¬¹ý 11 ÄêµÄ¡°Àϱø¡±£¬¾Àú¹ýÔÚÖÐС¹«Ë¾Í¨¹ý shell ½Å±¾+ÅäÖÃÎļþ+war °ü·½Ê½½»¸¶¿Í»§Èí¼þ£¬µ½°Ñ³ÌÐòºÍÔËÐÐʱ´ò°üµ½ÅÓ´óÐéÄâ»úÈ»ºóͨ¹ýÒÆ¶¯Ó²Å̽»¸¶¸ø¿Í»§²¿Êð£¬ÔÚµ½ÏÖÔÚÔÚ¾©¶«Í¨¹ýһվʽµÄ¼¯³É½»¸¶Æ½Ì¨Ö»ÐèÒªµã¼¸¸ö°´Å¥¾Í¿ÉÒÔ¹ÜÀíºÍ²¿ÊðÊýǧ¸öÓ¦ÓÃʵÀý£¬¸ß·åÆÚÿÌìÊýÊ®´ÎµÄƵ·±·¢²¼½»¸¶µÄÀú³Ì¡£¹ýȥʮÄêÊÇ»¥ÁªÍøÐÐÒµ¿ìËٺ͵߸²Ê½·¢Õ¹µÄÊ®Ä꣬ҲÊÇÔÆ¼ÆËãºÍÈí¼þ½»¸¶¼¼Êõ¿ìËÙ·¢Õ¹µÄÊ®Äê¡£ÈÃÎÒÃǰÑÊÓÏßÀÏò¹ýÈ¥£¬»Ø¹ËÒ»ÏÂÈí¼þ½»¸¶¼¼ÊõµÄ·¢Õ¹Àú³Ì¡£
Chroot Jail
ÐéÄ⻯ÈÝÆ÷¼¼Êõ¿ÉÒÔ×·Ëݵ½ÉϸöÊÀ¼Í£¬1979 Ä꣬±´¶ûʵÑéÊÒΪ Unix V7 ²Ù×÷ϵͳµÄ·¢²¼½øÐÐ×îºóµÄ¿ª·¢ºÍ²âÊÔ£¬ÎªÁËÌá¸ßϵͳ¼¶±ðÈí¼þ¹¹½¨ºÍ²âÊÔµÄЧÂÊ£¬ËûÃÇ¿ªÊ¼Éè¼ÆºÍ¹¹Ë¼ÔÚÏÖÓвÙ×÷ϵͳ»·¾³Ï¡°¸ôÀ롱³öÒ»¸ö¿É¹©Èí¼þ½øÐй¹½¨ºÍ²âÊԵĻ·¾³£¬Í¨¹ýÒ»¸ö¼òµ¥µÄÃüÁî¾Í¿ÉÒԸıä³ÌÐòµÄ¡°ÊÓͼ¡±£¬Ã¿´ÎÖ»ÒªÔÚµ±Ç°Ä¿Â¼Àï·ÅÖÃÒ»¸öÍêÕû²Ù×÷ϵͳÎļþϵͳ²¿·Ö£¬¸ÃÈí¼þÔËÐÐËùÐèµÄËùÓÐÒÀÀµ¾ÍÍ걸ÁË¡£ÕâÑù¿ª·¢Õß¼ä½ÓÓµÓÐÁËÓ¦Óûù´¡ÉèÊ©¡°¿ìËÙÏú»ÙºÍÖØÏÖ¡±µÄÄÜÁ¦£¬¶ø²»ÐèÒªÔÚ»·¾³´îºÃÖ®ºó½øÈëµ½»·¾³ÀïÈ¥½øÐÐÓ¦ÓÃËùÐèµÄÒÀÀµ°²×°ºÍÅäÖá£ÓÚÊÇ chroot£¨Change Root£©µÄ¼¼Êõ¾Íµ®ÉúÁË£¬ÓÃÀ´Öض¨Ïò½ø³Ì¼°Æä×Ó½ø³ÌµÄ¸ùĿ¼µ½Ò»¸öÎļþϵͳÉϵÄÐÂλÖ㬱»¸ôÀë³öÀ´µÄ»·¾³±»¸³ÓèÁËÒ»¸öºÜÐÎÏóµÄÃû×Ö£ºChroot Jail£¬Chroot Ò²ËãÊÇÈËÀàµÚÒ»´Î½øÈë¡°½ø³Ì¸ôÀ롱µÄ´óÃÅ¡£chroot Ò²Öð½¥³ÉΪÁË¿ª·¢²âÊÔ»·¾³ÅäÖúÍÓ¦ÓÃÒÀÀµ¹ÜÀíµÄÒ»¸öÖØÒª¹¤¾ß¡£2000 Ä꣬ͬÊô Unix ¼Ò×åµÄ FreeBSD ²Ù×÷ϵͳ·¢²¼ÁË¡°jail¡±ÃüÁ°Ñ¡± ¸ôÀë¡°Õâ¸ö¸ÅÄîÀ©Õ¹µ½Á˽ø³ÌµÄÍêÕûÊÓͼ£¬ÓµÓжÀÁ¢½ø³Ì»·¾³ºÍÓû§Ìåϵ£¬·ÖÅä¶ÀÁ¢µÄ IP µØÖ·¡£chroot ´ò¿ª½ø³Ì»·¾³¸ôÀëµÄ´óÃÅ£¬µ« FreeBSD Jails ²ÅʵÏÖÕæÕý½ø³ÌµÄɳÏ仯£¬ÕâÖÖɳÏäÊÇͨ¹ý²Ù×÷ϵͳ¼¶±ðµÄ¸ôÀëÓëÏÞÖÆÄÜÁ¦À´ÊµÏÖ¶ø·ÇÓ²¼þÐéÄ⻯¼¼Êõ¡£²»¹ýÔÚ Jails ʱ´ú£¬¡°ÔÆ¡±µÄ¸ÅÄîÉÐδÆÕ¼°£¬ ½ø³ÌɳÏä¼¼ÊõÒ»Ö±¾ÖÏÞÔÚÁËСÖڵij¡¾°ÊÀ½çÀï¡£
LXC
Google ÔÚ 2006 ÄêÖ®¼ä·¢²¼ÁËÒ»¸öÃûΪ Process Container ¼¼Êõ£¬Ìṩ²Ù×÷ϵͳ¼¶±ðµÄ×ÊÔ´ÏÞÖÆ¡¢ÓÅÏȼ¶¿ØÖÆ¡¢×ÊÔ´Éó¼ÆÄÜÁ¦ºÍ½ø³Ì¿ØÖÆÄÜÁ¦£¬ÓëɳÏäÀíÄı¶øºÏ£¬Õâ¸ö¼¼ÊõÒ²ÊÇ Google ÄÚ²¿»ù´¡ÉèÊ©µÃÒÔʵÏֵĻù±¾ËßÇóºÍ»ù´¡ÒÀÀµ£¬Ò²³ÉΪÁË Google ÑÛÖС°ÈÝÆ÷¡±¼¼ÊõµÄ³ûÐΣ¬Process Container ÍÆ³öºóµÄµÚ¶þÄê¾Í½øÈëÁË Linux ÄÚºËÖ÷¸É¡£µ«Òò Container ÔÚ Linux ÄÚºËÖÐÁíÓÐËüÓã¬Process Container ÔÚ Linux Öб»Õýʽ¸ÄÃûΪ Cgroups¡£2008 Äê LXC °Ñ Cgroups µÄ×ÊÔ´¹ÜÀíºÍÏÞÖÆÄÜÁ¦ºÍ Linux Namespace µÄÊÓͼ¸ôÀëÄÜÁ¦×éºÏÔÚÒ»Æð£¬Ìá½»²¢Õýʽ½øÈë Linux Äںˡ£²¢°éËæ×Å Linux OS ¿ªÊ¼Ñ¸ËÙÕ¼ÁìÉÌÓ÷þÎñÆ÷Êг¡µÄÆõ»ú£¬LXC Êܵ½ÁË chroot µÈÎ´ÔøÓеĹØ×¢¡£
PaaS
2008 ÄêºóÊÀ½çÉÏ»¥ÁªÍø¾ÞÍ·ÃÇ AWS£¬Microsoft ¿ªÊ¼³ÖÐø¼Ó´óÔÚ¹«ÓÐÔÆµÄͶÈ룬˼¿¼ºÍÂ䵨ÔÚ IaaS Ö®ÉϹ¹½¨Ðµļ¼ÊõÓëÉÌÒµ¼ÛÖµ£¬´ßÉú³öÁËÎÒÃÇÏÖÔÚ¶¼¶úÊìÄÜÏêµÄÐÂÐ˲úÒµ£ºPaaS¡£2009 Ä꿪ԴÏîÄ¿ Cloud Foundry ·¢²¼£¬µÚÒ»´Î¶Ô PaaS µÄ¸ÅÄîÍê³ÉÁËÇåÎú¶øÍêÕûµÄ¶¨Òå¡£PaaS ¶¨Î»ÊÇÓ¦ÓõÄÍйܷþÎñ£¬ÆäÀíÄî¡°PaaS ¶ÔÓ¦ÓõÄÖ±½Ó¹ÜÀí¡¢±àÅź͵÷¶ÈÈÿª·¢ÕßרעÓÚÒµÎñÂß¼¶ø·Ç»ù´¡ÉèÊ©¡±ÔÚÔÆ¼ÆËãÐÐÒµµÃµ½ÁËÒ»ÖµÄÈÏͬ£¬½èÖú PaaS À뿪·¢Õß×ã¹»½üµÄÓÅÊÆ£¬´Ó¶øËø¶¨ÔÆ·þÎñ£¬Õâ¾ÍÒªÇó PaaS ±ØÐë²»ÒÀÀµ IaaS µ×²ã¼¼Êõ»ù´¡ÊµÊ©£¬Äܹ»¸ßЧ´ò°ü·â×°Óû§µÄÓ¦Ó㬿ìËٵIJ¿Ê𵽵Ͳã»ù´¡ÉèÊ©ÉÏ¡£¿ªÔ´¡¢ÖÐÁ¢¡¢ÇáÁ¿¡¢Ãô½ÝµÄ Linux ÈÝÆ÷¼¼Êõ³ÉÁË PaaS ʵÏÖÓ¦ÓÃÍйܺͲ¿ÊðµÄ¾ø¼ÑÑ¡Ôñ£¬Linux ÈÝÆ÷ÒÑ¾Ìø³öÁ˽ø³ÌɳÏäµÄ¾ÖÏÞÐÔ£¬¿ªÊ¼°çÑÝ×Å¡°Ó¦ÓÃÈÝÆ÷¡±µÄ½ÇÉ«£¬ÈÝÆ÷ºÍÓ¦ÓûÉÏÁ˵Ⱥţ¬Õâ²Å×îÖÕʹµÃƽ̨²ãϵͳÄܹ»ÊµÏÖÓ¦ÓõÄÈ«ÉúÃüÖÜÆÚÍйܡ£
Docker
2013 ÄêÒ»¼Ò½Ð dotCloud µÄ¹«Ë¾·¢²¼ÁËÒ»¸öµß¸²ÐԵĿªÔ´ÏîÄ¿ Docker£¬Docker ͨ¹ýÈÝÆ÷¾µÏñ£¬½«Ó¦ÓÃÔËÐÐËùÐèµÄÍêÕû»·¾³£¨°üÀ¨²Ù×÷ϵͳµÄÎļþϵͳ£©½øÐÐÕûÌå´ò°ü£¬ÊµÏÖ¡°Ò»´Î·¢²¼¡¢Ëæ´¦ÔËÐС±£¬±Èͨ¹ý Buildpack °ÑÒ»¸öÓ¦ÓÿÉÔËÐÐÎļþÈç WAR °üºÍ½Å±¾ÅäÖýøÐзâ×°£¬Á¬ÖÆ×÷Ò»¸ö¿ª·¢ºÍ²âÊÔ»·¾³¶¼ÎÞ·¨Í³Ò»µÄ¼¼ÊõÒªÏȽø¸ßÃ÷µÄ¶à¡£Í¬Ê± Docker ½è¼ø Git µÄ˼Ï룬ͨ¹ý DockerHub ÕâÑùµÄ¾µÏñÍйֿܲ⣬Äܹ»ÈøßЧ·Ö·¢ºÍ½»¸¶ÄãµÄÈí¼þ·þÎñµ½ÊÀ½çÈκεط½¡£
ÖÕ¼«À´¿´ Docker ÆäʵһֱÔÚ˼¿¼ºÍ½â¾öµÄÒ»¸öÎÊÌâÊÇ£ºÈí¼þ¾¿¾¹Ó¦¸Ãͨ¹ýʲôÑùµÄ·½Ê½½øÐн»¸¶£¿ÈÝÆ÷¾µÏñ¸ø³öÒ»·ÝÍêÃÀµÄ´ð°¸¡£¾ÍÁ¬ Docker ×Ô¼º¶¼Ëµ×Ô¼ºÖ»ÊÇ¡°Õ¾ÔÚ¾ÞÈ˼ç°òÉÏ¡±£¬È·ÊµÃ»Óйýȥʮ¼¸Äê Linux ÈÝÆ÷µÈ¼¼ÊõµÄÍêÉÆºÍ·¢Õ¹£¬Ò»¸ö´´Òµ¹«Ë¾µÄ¿ªÔ´ÏîÄ¿¾ÍÄܵ߸²Õû¸öÐÐÒµ¿ÖÅÂÊdzÕÈË˵ÃΡ£
Kubernetes
ÈÝÆ÷¾µÏñÒѾ³ÉΪÁËÔÆÊ±´úÈí¼þ½»¸¶Óë·Ö·¢µÄÊÂʵ±ê×¼¡£Docker¡¢Mesosphere¡¢Kubernetes ÔÚ¡°Ó¦Óá±ÓÐ×Ų»Í¬Àí½âºÍ¶¥²ãÉè¼Æ£¬Docker ÌåϵÒÔ¡°µ¥Ò»ÈÝÆ÷¡±ÎªºËÐĵÄÓ¦Óö¨Ò巽ʽ£¬¶ø Kubernetes ÔòÌá³öÁËÒ»ÕûÌ×ÈÝÆ÷»¯Éè¼ÆÄ£Ê½ºÍ¶ÔÓ¦µÄ¿ØÖÆÄ£ÐÍ£¬´Ó¶øÃ÷È·ÁËÈçºÎÕæÕýÒÔÈÝÆ÷ΪºËÐĹ¹½¨Äܹ»ÕæÕý¸ú¿ª·¢Õß¶Ô½ÓÆðÀ´µÄÓ¦Óý»¸¶ºÍ¿ª·¢·¶Ê½£¬×îÖÕ Kubernetes È¡µÃµ½ÁËÔÆÊ±´úÓ¦ÓñàÅŵĹؼüÁìµ¼µØÎ»¡£
ÔÆÔÉú
Kubernetes ÒÑ·¢Õ¹ÎªÔÆÊ±´úÓ¦ÓñàÅŵÄÊÂʵ±ê×¼£¬×÷ΪÁ¬Í¨¡°ÔÆ¡±Óë¡°Ó¦ÓᱵĸßËÙ¹«Â·£¬ÒÔ±ê×¼¡¢¸ßЧµÄ·½Ê½½«¡°Ó¦Ó᱿ìËÙ½»¸¶µ½ÊÀ½çÉÏÈκÎÒ»¸öλÖ㬼ȿÉÒÔÊÇ×îÖÕÓû§£¬Ò²¿ÉÒÔÊÇ PaaS/Serverless ´Ó¶ø´ßÉú³ö¸ü¼Ó¶àÑù»¯µÄÓ¦ÓÃÍйÜÉú̬¡£Æä±³ºóµÄ˼ÏëºÍÄ¿±ê¾ÍÊÇ×î´ó³Ì¶ÈµÄ·¢»ÓÈÝÆ÷ºÍÔÆµÄ¼ÛÖµ£¬ÕâÕýÊÇÕû¸ö¡°ÔÆÔÉú¡±µÄÀíÄî¡£
2¡¢Ê²Ã´ÊÇÔÆÔÉú£¿
ÔÆÔÉú¶¨Òå
CNCF£¨Cloud Native Computing Foundation£¬³ÉÁ¢ÓÚ 2015 Ä꣬ÖÂÁ¦ÓÚÔÆÔÉú¼¼ÊõÆÕ¼°ºÍ¿É³ÖÐø·¢Õ¹µÄ»ù½ð»á£©¸ø³öµÄ¶¨Ò壺
¡° Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. ¡±
·Òë¹ýÀ´£º
¡° ÔÆÔÉú¼¼ÊõÓÐÀûÓÚ¸÷×éÖ¯ÔÚ¹«ÓÐÔÆ¡¢Ë½ÓÐÔÆºÍ»ìºÏÔÆµÈÐÂÐͶ¯Ì¬»·¾³ÖУ¬¹¹½¨ºÍÔËÐпɵ¯ÐÔÀ©Õ¹µÄÓ¦Óá£ÔÆÔÉúµÄ´ú±í¼¼Êõ°üÀ¨ÈÝÆ÷¡¢·þÎñÍø¸ñ¡¢Î¢·þÎñ¡¢²»¿É±ä»ù´¡ÉèÊ©ºÍÉùÃ÷ʽ API¡£
ÕâЩ¼¼ÊõÄܹ»¹¹½¨ÈÝ´íÐԺá¢Ò×ÓÚ¹ÜÀíºÍ¿É¹Û²âµÄËÉñîºÏϵͳ¡£½áºÏ¿É¿¿µÄ×Ô¶¯»¯ÊֶΣ¬ÔÆÔÉú¼¼Êõʹ¹¤³ÌʦÄܹ»ÇáËɵضÔϵͳ×÷³öƵ·±ºÍ¿ÉÔ¤²âµÄÖØ´ó±ä¸ü¡£¡°
ÄãÈç¹ûÊǵÚÒ»´Î¶ÁÕâ¸ö¶¨Ò壬»á²»»á¸Ð¾õÓеã»ÞɬÄѶ®¡£¹¹½¨µ¯ÐÔ¿ÉÀ©Õ¹Ó¦Óã¬ÈÝ´íÐԺá¢Ò×¹ÜÀí¡¢¿É¹Û²âϵͳ£¬±í´ïµÄÌ«¿í·ºÁË£¬²¢²»´ú±íÒ»ÖÖÌØ¶¨µÄ¸ÅÄîºÍ·½·¨£¬ÕâЩĿ±êÎÒÃÇÓÃһϵÁз½·¨ÂÛ¡¢Éè¼ÆË¼ÏëºÍÉè¼ÆÄ£Ê½Ò²¿ÉÒÔ´ï³É£¬Õâ¸ö¶¨Ò廹ÊǺÜÄÑÈÃÎÒÃÇ×¥×¡ÔÆÔÉúµÄ±¾ÖÊÊÇʲô¡£ÎÒÃÇÏÈÂÔ¹ý CNCF µÄ¹Ù·½¶¨Ò壬´ÓÔÆÔÉúµÄÐÎ̬ºÍÖÕ¼«¼ÛÖµµÄ½Ç¶ÈÀ´½âÆÊºÍÀí½âÔÆÔÉú¡£
Ó¦ÓÃÒÔÔÉúÐÎ̬±»Éè¼ÆÉúÔÚ¡¢³¤ÔÚÔÆÉÏ£¬ÒÔ³ä·Ö·¢»ÓÔÆµÄÓÅÊÆ
ÔÆÔÉú£¬´Ó×ÖÃæÉϲð³É 2 ¸ö´Ê£¬¡°ÔÆ¡±ºÍ¡°ÔÉú¡±£¬ÔƾÍÊÇÇ¿´óµÄÔÆ¼ÆËãÄÜÁ¦£¬Ò²ÊÇǰÌá¡£ÔÉúÊÇ¶ÔÆóÒµÓ¦ÓÃÀ´½²µÄ£¬ÔÆÔÉúʱ´úµÄÓ¦Óñ»Éè¼Æ³É¡°ÉúÔÚÔÆÉÏ£¬³¤ÔÚÔÆÉÏ¡±¡£Ó¦ÓÃÊÇÔÉúµÄ£¬Ö»°üº¬ÒµÎñ´úÂ룬Òâζ×ÅÐèÒª×î´ó»¯°þÀëÓ¦ÓÃÖзÇÒµÎñµÄ´úÂëºÍ¹¦ÄÜ£¬ÈÃÔÆ»ù´¡ÉèÊ©À´½Ó¹Ü£¨°üÀ¨ IaaS¡¢PaaS µÈ£©£¬Ó¦ÓÿÉ×î´ó»¯ÀûÓÃÔÆµÄÓÅÊÆ£¬³ä·ÖÏíÊÜÔÆ¼ÆËãµÄ¼¼ÊõºìÀû¡£
ÌÖÂÛÔÆÔÉú£¬ÊÇÔÚÌÖÂÛһϵÁмܹ¹ÔÔòºÍģʽµÄ¼¯ºÏ¡£
¿ª·¢Õß×ñÑÒ»ÖÖеÄÈí¼þ¿ª·¢¡¢·¢²¼ºÍÔËάģʽ£¬Ê¹µÃÔÆÔÉúϵÄÓ¦ÓÿÉÒÔ´Ó´óÁ¿·ÇÒµÎñ/·Ç¹¦ÄÜÐÔ£¨¸ß¿ÉÓÃÌôÕ½¡¢×Ô¶¯À©ËõÈÝÌôÕ½¡¢°²È«ÌôÕ½¡¢ÔËάÉý¼¶ÌôÕ½µÈ£©ÐèÇóºÍÌôÕ½ÖнâÍѳöÀ´£¬´Ó¶øÄܹ»×î´ó»¯¾Û½¹ÔÚÒµÎñ¼ÛÖµ½»¸¶ÉÏ¡£Óû§²ÉÓÃÒ»ÌõµÍÐÄÖǸºµ£µÄ¡¢Ãô½ÝµÄ£¬Äܹ»ÒÔ¿ÉÀ©Õ¹¡¢¿É¸´ÖƺÍ×Ô¶¯»¯µÄ·½Ê½×î´ó»¯µØÀûÓÃÔÆµÄÄÜÁ¦¡¢·¢»ÓÔÆµÄ¼ÛÖµµÄ×î¼Ñ·¾¶À´¹¹½¨ºÍ½»¸¶Ó¦Ó㬿ª·¢¸´ÔӶȺÍÔËά¹¤×÷Á¿¶¼µÃµ½¼«´ó½µµÍ¡£ÔÆÔÉú±³ºóµÄÒ»¸ö¼ÛÖµ¹ÛÊÇ£º½«¸´ÔÓÁô¸øÔÆ£¬½«¼òµ¥Áô¸øÓ¦Óá£
ËùÒÔÔÆÔÉú±³ºóÔ̺¬ÁËÒ»×é¼Ü¹¹ÔÔò£¬°üÀ¨£º·þÎñ»¯¡¢µ¯ÐÔ¡¢¿É¹Û²âÐÔ¡¢ÈÍÐÔ¡¢×Ô¶¯»¯¡¢ÁãÐÅÈΡ¢¼Ü¹¹³ÖÐøÑݽø¡£Ò²°üÀ¨ÁËÒ»×é¼Ü¹¹Ä£Ê½£ºÎ¢·þÎñ¼Ü¹¹Ä£Ê½¡¢Service Mesh ¼Ü¹¹Ä£Ê½¡¢Serverless ģʽ¡¢´æ´¢¼ÆËã·ÖÀëģʽ¡¢·Ö²¼Ê½ÊÂÎñģʽ¡¢¿É¹Û²â¼Ü¹¹¡¢Ê¼þÇý¶¯¼Ü¹¹¡£
ÌÖÂÛÔÆÔÉú£¬ÊÇÔÚÌÖÂÛÔÆÔÉúÄܸøÆóÒµºÍÓû§´øÀ´Ê²Ã´¼ÛÖµ¡£
ÔÆ°ÑÈíÓ²¼þµÄÄÜÁ¦Éý¼¶³É·þÎñ£¬ÐγÉÇ¿´óµÄ¼¼Êõ·þÎñÄÜÁ¦ºÍ×ÊÔ´ÓÅ»¯ÄÜÁ¦£¬ÈÃÓû§ÒԵͳɱ¾¡¢Ãô½ÝµÄ·½Ê½¹¹½¨Êý×Ö»¯Ó¦Ó㬿ª·¢Õß¾Û½¹ÔÚÒµÎñ¿ª·¢£¬ÏµÍ³ÌìÈ»¾ß±¸¸ß¿ÉÓᢸßÒÆÖ²ÐÔ¡¢¸ßµ¯ÐÔµÈÌØµã£¬´Ó¶ø¸³ÓèÆóÒµºÍÒµÎñ¸üÃô½ÝµÄµü´úºÍ¸ü¸ßЧµÄÈí¼þ½»¸¶ÄÜÁ¦£¬ÆóÒµ¸ü¿ìÍÆ³öеIJúÆ·¹¦Äܺ͵ã×Óµ½Êг¡ºÍÓû§£¬°ïÖúÒµÎñ¸ü¿ìÊÔ´íºÍ´´Ð£¬ÔÚÈç½ñÈÕÐÂÔÂÒì¡¢¾ºÕùÔ½À´Ô½¾çÁÒµÄÊг¡´ó»·¾³Ï´òÔìÆóÒµµÄºËÐľºÕùÁ¦¡£
ÔÆÔÉú±¾ÖÊÉÏÒ²ÊÇÒ»Ìס°ÒÔÀûÓÃÔÆ¼ÆËã¼¼ÊõΪÓû§½µ±¾ÔöЧ¡±µÄ×î¼Ñʵ¼ùÓë·½·¨ÂÛ¡£
ÌÖÂÛÔÆÔÉú£¬ÊÇÔÚÌÖÂÛÔÆÔÉúµÄ¼¼Êõ¡£
ÔÆÔÉú¿ªÔ´¼¼ÊõÉú̬»ù±¾Í³Ò»ÁËÈí¼þ½»¸¶ºÍÔËάµÄģʽ¡£ÈÝÆ÷¼¼ÊõºÍ Kubernetes ·þÎñ±àÅż¼ÊõµÄ½áºÏ£¬½â¾öÁËÓ¦Óò¿Êð×Ô¶¯»¯¡¢±ê×¼»¯¡¢ÅäÖû¯ÎÊÌ⡣΢·þÎñͨ¹ý°Ñ¾ÞʯӦÓòð½âΪÈô¸Éµ¥¹¦ÄܵķþÎñ£¬¼õÉÙÁË·þÎñ¼äµÄñîºÏÐÔ£¬Èÿª·¢ºÍ²¿Êð¸ü¼Ó±ã½ÝºÍÁé»î£¬¿ÉÒÔÓÐЧ½µµÍ¿ª·¢ÖÜÆÚ¡£Service Mesh ÈÃÖмä¼þµÄÉý¼¶ºÍÓ¦ÓÃϵͳµÄÉý¼¶ÍêÈ«½âñÔÚÔËάºÍ¹Ü¿Ø·½ÃæµÄÁé»îÐÔ»ñµÃÌáÉý¡£Serverless ÈÃÔËά¶Ô¿ª·¢Í¸Ã÷£¬¶ÔÓÚÓ¦ÓÃËùÐè×ÊÔ´½øÐÐ×Ô¶¯ÉìËõ¡£FaaS ÊÇ Serverless µÄÒ»ÖÖʵÏÖ£¬Ôò¸ü¼Ó¼ò»¯ÁË¿ª·¢ÔËάµÄ¹ý³Ì£¬´Ó¿ª·¢µ½×îºó²âÊÔÉÏÏß¶¼¿ÉÒÔÔÚÒ»¸ö¼¯³É¿ª·¢»·¾³ÖÐÍê³É¡£ËùÒÔ£¬ÔÆÔÉú´ú±íһϵÁеļ¼Êõ£¨ÈÝÆ÷¼¼Êõ¡¢ÔÆÔÉú΢·þÎñ¡¢Serverless¡¢Service Mesh ¼¼Êõ¡¢DevOps£©£¬À´×î´ó»¯ÀûÓÃÔÆµÄÄÜÁ¦£¬ÌáÉý¿ª·¢Ð§ÂÊ£¬ÌáÉýÓ¦Óý»¸¶ÖÊÁ¿ºÍËÙ¶È¡£
ËùÒÔ£¬µ½µ×ʲôÊÇÔÆÔÉú£¿
ÎÒ¸öÈ˸üÔ¸ÒâÕâÑùÀ´½âÊÍÔÆÔÉú£º
ÔÆÔÉú´ú±í×ÅÒ»ÖÖеÄÈí¼þÉè¼ÆÀíÄӦÓôÓÒ»¿ªÊ¼¾Í±»Éè¼ÆÎª³¤ÔÚÔÆÉÏ¡¢ÉúÔÚÔÆÉÏ£¬ÈÃÔÆ»ù´¡ÉèÊ©À´½Ó¹ÜÓ¦ÓÃÖеķÇÒµÎñÐÔ´úÂëºÍ¹¦ÄÜ£¬Óû§×¨×¢ÓÚÕæÕýÓмÛÖµµÄÒµÎñ´úÂ룬³ä·Ö·¢»ÓÔÆµÄÓÅÊÆ£¬ÒÔÁé»î¡¢µÍ³É±¾µÄ·½Ê½¹¹½¨µ¯ÐÔ¡¢¿ÉÀ©Õ¹µÄÓ¦Óã»Í¬Ê±£¬ÔÆÔÉúÒ²´ú±í×ÅһϵÁеķ½·¨ÂÛ¡¢Êµ¼ùºÍ¼¼Êõ£¬°üÀ¨ÈÝÆ÷¡¢Î¢·þÎñ¡¢Serverless¡¢DevOps¡¢·þÎñÍø¸ñµÈ¡£ÕâЩ·½·¨Âۺͼ¼Êõ£¬°ïÖúÎÒÃǹ¹½¨ÈÍÐÔ¡¢µ¯ÐÔ¡¢¿ÉÒÆÖ²¡¢¿ÉÀ©Õ¹µÄÓ¦Óã¬ÌáÉýÆóÒµµÄÈí¼þ½»¸¶ÄÜÁ¦£¬¸³ÓèÆóÒµÃô½Ýµü´ú¡¢¿ìËÙÊÔ´íºÍ´´ÐµľºÕùÁ¦¡£
ʲôÊÇÔÆÔÉú»òÐí»áÒ»Ö±Ôڱ䣬Ҳ»òÐíÓÀԶûÓÐÈ·Çкͱê×¼µÄ´ð°¸£¬µ«ÕýÊÇÕâÖÖ¡°ÓÀԶûÓÐÈ·Çж¨Ò塱µÄÌØµãÈÃÔÆÔÉú±£³ÖÁ˳ÖÐøÉúÃüÁ¦£¬ÆäÀíÄîºÍ¼¼Êõ²»¶Ï¸ïкÍÑݽø£¬Íƶ¯ÔƼÆËãÏòǰ·¢Õ¹¡£
3¡¢ÔÆÔÉúµÄ¼Ü¹¹ÔÔòºÍÉè¼ÆÄ£Ê½
ÔÆÔÉúÒ²¸ø³öÁËÈô¸ÉÓ¦Óüܹ¹ÔÔòºÍÉè¼ÆÄ£Ê½£¬×÷ΪӦÓõļܹ¹¿ØÖÆÃ棬Òýµ¼ºÍ¹æ·¶¼Ü¹¹Ê¦Éè¼Æ³ö¸ßÈÝ´íÐÔ¡¢µ¯ÐԺͿÉÀ©Õ¹µÄÓ¦Óá£
Ò»¡¢ÔÆÔÉú¼Ü¹¹ÔÔò
1¡¢·þÎñ»¯ÔÔò
ͨ¹ý·þÎñ»¯°Ñ²»Í¬ÉúÃüÖÜÆÚµÄÄ£¿é·ÖÀë³öÀ´£¬¶ÀÁ¢ÒµÎñµü´ú£¬±ÜÃâµü´úƵ·±µÄÄ£¿é±»±ä»¯µÍµÄÄ£¿éÍÏÂý£¬´Ó¶øÌáÉýÕûÌåµü´úËٶȺÍÎȶ¨ÐÔ¡£·þÎñ»¯¼Ü¹¹ÃæÏò½Ó¿ÚÆõÔ¼±à³Ì£¬·þÎñÄÚÖ°ÔðºÍ¹¦Äܸ߶ÈÄÚ¾Û£¬Í¨¹ýÌáȡӦÓÃÖй«¹²¹¦ÄÜÄ£¿é´ó´óÌáÉýÁËÈí¼þµÄ¸´ÓÃÐÔ¡£ÔÆÔÉú¼Ü¹¹°Ñ·þÎñ»¯·ÅÔÚÊ×룬»¹ÔÚÓÚ·þÎñ»¯´Ó¼Ü¹¹²ãÃæ³éÏó»¯ÒµÎñÄ£¿éÖ®¼äµÄ¹ØÏµ£¬±ê×¼»¯·þÎñÁ÷Á¿µÄ´«Ê䣬´Ó¶ø°ïÖúÒµÎñÄ£¿é½øÐлùÓÚ·þÎñÁ÷Á¿µÄ²ßÂÔ¿ØÖƺÍÖÎÀí£¬·þÎñÊÇÓÃʲôÓïÑÔ±àдµÄ²¢²»¹ØÐÄ¡£
2¡¢µ¯ÐÔÔÔò
µ¯ÐÔÊÇָϵͳµÄ²¿Êð¹æÄ£¿ÉÒÔËæ×ÅÒµÎñÁ÷Á¿ºÍÈÝÁ¿±ä»¯¶ø×Ô¶¯ÉìËõ£¬ÎÞÐë¸ù¾ÝÊÂÏȵÄÈÝÁ¿¹æ»®×¼±¸¹Ì¶¨µÄÓ²¼þºÍÈí¼þ×ÊÔ´¡£ºÃµÄµ¯ÐÔÄÜÁ¦²»½öËõ¶ÌÁ˴Ӳɹºµ½ÉÏÏßµÄʱ¼ä£¬ÈÃÆóÒµ²»ÓòÙÐĶîÍâÈíÓ²¼þ×ÊÔ´µÄ³É±¾Ö§³ö£¬ÎÞÐëΪÏÐÖóɱ¾Âòµ¥£¬½µµÍÁËÆóÒµµÄ IT ³É±¾£¬×îÖØÒªµÄÊǵ±ÒµÎñÃæÁÙÍ»·¢ÐÔµÄÈÝÁ¿À©ÕźÍÁ÷Á¿Ôö³¤Ê±£¬²»»áÒòΪÈíÓ²¼þ×ÊÔ´´¢±¸²»×ã¶øÖ§³Å²»ÁË£¬±ÜÃâÈÃÆóÒµ´í¹ýÒµÎñºÍÓû§Ôö³¤µÄºÃ»ú»á£¬±£ÕÏÁËÆóÒµÊÕÒæ¡£
3¡¢¿É¹Û²âÔÔò
½¨Á¢¿É¹Û²âÐÔµÄÖ÷ҪĿ±êÊǶԷþÎñ SLO£¨Service Level Objective£©½øÐжÈÁ¿£¬´Ó¶øÓÅ»¯ SLA£¬Òò´Ë¼Ü¹¹Éè¼ÆÉÏÐèҪΪ¸÷¸ö×é¼þ¶¨ÒåÇåÎúµÄ SLO£¬°üÀ¨²¢·¢¶È¡¢ºÄʱ¡¢¿ÉÓÃʱ³¤¡¢ÈÝÁ¿µÈ¡£´ó¹æÄ£¼¯ÈºÓ¦ÓÃÖ®¼äµÄµ÷ÓùØÏµ¡¢å´»úºÍ¹ÊÕÏÔÒòÊǼ«Æä¸´Ôӵģ¬¿É¹Û²âÐÔ¿ÉʹÔËά¡¢¿ª·¢ºÍÒµÎñÈËÔ±ÊµÊ±ÕÆÎÕÈí¼þÔËÐÐÇé¿ö£¬²¢½áºÏ¶à¸öά¶ÈµÄÊý¾ÝÖ¸±ê£¬»ñµÃ¹ØÁª·ÖÎöºÍÎÊÌâ¹éÒò·ÖÎöµÄÄÜÁ¦£¬²»¶Ï¶ÔÒµÎñ½¡¿µ¶ÈºÍÓû§ÌåÑé½øÐÐÊý×Ö»¯ºâÁ¿ºÍ³ÖÐøÓÅ»¯¡£
4¡¢ÈÍÐÔÔÔò
ÈÍÐÔ´ú±íÁ˵±Èí¼þËùÒÀÀµµÄÈíÓ²¼þ×é¼þ³öÏÖ¸÷ÖÖÒ쳣ʱ£¬Èí¼þ±íÏÖ³öÀ´µÄµÖÓùÄÜÁ¦£¬ÕâЩÒ쳣ͨ³£°üÀ¨Ó²¼þ¹ÊÕÏ¡¢Ó²¼þ×ÊÔ´Æ¿¾±£¨Èç CPU/ Íø¿¨´ø¿íºÄ¾¡£©¡¢ÒµÎñÁ÷Á¿³¬³öÈí¼þÉè¼ÆÄÜÁ¦¡¢Ó°Ïì»ú·¿¹¤×÷µÄ¹ÊÕϺÍÔÖÄÑ¡¢Èí¼þ bug¡¢ºÚ¿Í¹¥»÷µÈ¶ÔÒµÎñ²»¿ÉÓôøÀ´ÖÂÃüÓ°ÏìµÄÒòËØ¡£ÈÍÐÔ´Ó¶à¸öά¶ÈÚ¹ÊÍÁËÈí¼þ³ÖÐøÌṩҵÎñ·þÎñµÄÄÜÁ¦¡£´Ó¼Ü¹¹Éè¼ÆÉÏ£¬ÈÍÐÔ°üÀ¨·þÎñÒì²½»¯ÄÜÁ¦¡¢ÖØÊÔ / ÏÞÁ÷ / ½µ¼¶ /ÈÛ¶Ï / ·´Ñ¹¡¢Ö÷´Óģʽ¡¢¼¯ÈºÄ£Ê½¡¢AZ Äڵĸ߿ÉÓᢵ¥Ôª»¯¡¢¿ç region ÈÝÔÖ¡¢ÒìµØ¶à»îÈÝÔֵȡ£
5¡¢×Ô¶¯»¯ÔÔò
¼¼ÊõÍùÍùÊǰѡ°Ë«Èн£¡±£¬ÈÝÆ÷¡¢Î¢·þÎñ¡¢DevOps¡¢´óÁ¿µÚÈý·½×é¼þµÄʹÓã¬ÔÚ½µµÍ·Ö²¼Ê½¸´ÔÓÐÔºÍÌáÉýµü´úËٶȵÄͬʱ£¬ÒòΪÕûÌåÔö´óÁËÈí¼þ¼¼ÊõÕ»µÄ¸´ÔӶȺÍ×é¼þ¹æÄ££¬ËùÒÔ²»¿É±ÜÃâµØ´øÀ´ÁËÈí¼þ½»¸¶µÄ¸´ÔÓÐÔ¡£GitOps¡¢Kubernetes operator ºÍ´óÁ¿×Ô¶¯»¯½»¸¶¹¤¾ßÔÚ CI/CD Á÷Ë®ÏßÖеÄʵ¼ù£¬Ò»·½Ãæ±ê×¼»¯ÆóÒµÄÚ²¿µÄÈí¼þ½»¸¶¹ý³Ì£¬ÁíÒ»·½ÃæÔÚ±ê×¼»¯µÄ»ù´¡ÉϽøÐÐ×Ô¶¯»¯£¬Í¨¹ýÅäÖÃÊý¾Ý×ÔÃèÊöºÍÃæÏòÖÕ̬µÄ½»¸¶¹ý³Ì£¬ÈÃ×Ô¶¯»¯¹¤¾ßÀí½â½»¸¶Ä¿±êºÍ»·¾³²îÒ죬ʵÏÖÕû¸öÈí¼þ½»¸¶ºÍÔËάµÄ×Ô¶¯»¯¡£
6¡¢ÁãÐÅÈÎÔÔò
ÁãÐÅÈÎÊǶÔϵͳ°²È«¼Ü¹¹ºÍÉè¼ÆË¼ÏëµÄÖØÐÂÉóÊÓ£¬ÔÚĬÈÏÇé¿öϲ»Ó¦¸ÃÐÅÈÎÍøÂçÄÚÍⲿµÄÈκÎÈË/É豸/ϵͳ£¬ÒªÍ¨¹ýÈÏÖ¤ºÍÊÚȨ¹¹½¨·ÃÎÊ¿ØÖƵĻù´¡¡£²¢ÇÒÁãÐÅÈÎÒ²ÌåÏÖÓ¦Óõĸ߿ÉÓúÍÈÝ´íÐÔ½¨Éè˼ÏëÖУ¬¼ÙÉèÒ»ÇÐÉÏÏÂÓΡ¢Öмä¼þ¡¢ÍøÂçµÈ¶¼ÓпÉÄܳöÏÖ¹ÊÕÏ£¬·´ÍÆÓ¦ÓÃ×ÔÉí½¨Á¢ÈÛ¶Ï¡¢ÏÞÁ÷¡¢½µ¼¶¡¢¶µµ×µÈÄÜÁ¦£¬´Ó¶ø¹¹½¨ÈÍÐÔ¡¢×ÔÓúºÍ¸ßÈÝ´íÐеÄÓ¦Óá£
7¡¢¼Ü¹¹³ÖÐøÑݽøÔÔò
¼¼ÊõºÍÒµÎñµÄÑݽøËٶȷdz£¿ì£¬ºÜÉÙÓÐÒ»¿ªÊ¼¾ÍÇåÎú¶¨ÒåºÍÉè¼Æ²¢ÔÚÕû¸öÈí¼þÉúÃüÖÜÆÚÀïÃæ¶¼ÊÊÓõļܹ¹£¬Ïà·´ÍùÍù»¹ÐèÒª¶Ô¼Ü¹¹½øÐÐÒ»¶¨·¶Î§ÄÚµÄÖØ¹¹£¬Òò´ËÔÆÔÉú¼Ü¹¹±¾ÉíÒ²Ó¦¸ÃºÍ±ØÐëÊÇÒ»¸ö¾ß±¸³ÖÐøÑݽøÄÜÁ¦µÄ¼Ü¹¹£¬¶ø²»ÊÇÒ»¸ö·â±Õʽ¼Ü¹¹¡£ÔöÁ¿µü´ú¡¢Ä¿±êѡȡ£¬¼Ü¹¹ÖÎÀíºÍ·çÏÕ¿ØÖÆ¡£ÊÇÔÚÒµÎñ¸ßËÙµü´úÇé¿öϵļܹ¹¡¢ÒµÎñ¡¢ÊµÏÖÆ½ºâ¹ØÏµ¡£
¶þ¡¢ÔÆÔÉú¼Ü¹¹Ä£Ê½
1¡¢·þÎñ»¯¼Ü¹¹Ä£Ê½
ÇóÒÔÄ£¿éΪ¿ÅÁ£¶È»®·ÖÒ»¸öÈí¼þ·þÎñ£¬·ÖÀëÄ£¿éºÍ²¿Êð¹ØÏµ£¬²»Í¬·þÎñ°´Ðè¶ÀÁ¢ËõÀ©ÈÝ£¬°´ÕÕÒµÎñÊôÐÔ¶ÀÁ¢Éý¼¶µü´ú£¬ÌáÉýÕûÌåµü´úЧÂÊ¡£Î¢·þÎñÒÔ½Ó¿ÚÆõÔ¼¶¨Òå±Ë´ËÒµÎñ¹ØÏµ£¬ÒÔ±ê×¼ÐÒéÈ·±£±Ë´ËµÄ»¥Áª»¥Í¨£¬½áºÏ DDD£¨ÁìÓòÄ£ÐÍÇý¶¯£©¡¢TDD£¨²âÊÔÇý¶¯¿ª·¢£©¡¢ÈÝÆ÷»¯²¿ÊðÌáÉýÿ¸ö½Ó¿ÚµÄ´úÂëÖÊÁ¿ºÍµü´úËÙ¶È¡£
2¡¢Mesh ¼Ü¹¹Ä£Ê½
Mesh »¯¼Ü¹¹ÊǰÑÖмä¼þ¿ò¼Ü£¨±ÈÈç RPC¡¢»º´æ¡¢Òì²½ÏûÏ¢µÈ£©´ÓÒµÎñ½ø³ÌÖзÖÀ룬ÈÃÖмä¼þ SDK ÓëÒµÎñ´úÂë½øÒ»²½½âñ´Ó¶øÊ¹µÃÖмä¼þÉý¼¶¶ÔÒµÎñ½ø³ÌûÓÐÓ°Ï죬·ÖÀëºóÔÚÒµÎñ½ø³ÌÖÐÖ»±£ÁôºÜ¡°±¡¡±µÄ Client ²¿·Ö£¬Client ͨ³£ºÜÉٱ仯£¬Ö»¸ºÔðÓë Mesh ½ø³ÌͨѶ£¬ÔÀ´ÐèÒªÔÚ SDK Öд¦ÀíµÄÁ÷Á¿¿ØÖÆ¡¢°²È«µÈÂß¼ÓÉ Mesh ½ø³ÌÍê³É¡£ÊµÊ© Mesh »¯¼Ü¹¹ºó£¬´óÁ¿·Ö²¼Ê½¼Ü¹¹Ä£Ê½£¨ÈÛ¶Ï¡¢ÏÞÁ÷¡¢½µ¼¶¡¢ÖØÊÔ¡¢·´Ñ¹¡¢¸ô²Ö??£©¶¼ÓÉ Mesh ½ø³ÌÍê³É£¬¼´Ê¹ÔÚÒµÎñ´úÂëµÄÖÆÆ·Öв¢Ã»ÓÐʹÓÃÕâЩÈý·½Èí¼þ°ü£»Í¬Ê±»ñµÃ¸üºÃµÄ°²È«ÐÔ£¨±ÈÈçÁãÐÅÈμܹ¹ÄÜÁ¦£©¡¢°´Á÷Á¿½øÐж¯Ì¬»·¾³¸ôÀë¡¢»ùÓÚÁ÷Á¿×öðÑÌ / »Ø¹é²âÊԵȡ£
3¡¢Serverless ģʽ
Serverless ½«¡°²¿Êð¡±Õâ¸ö¶¯×÷´ÓÔËάÖС°ÊÕ×ß¡±£¬Ê¹¿ª·¢Õß²»ÓùØÐÄÓ¦ÓÃÔÚÄÄÀïÔËÐУ¬¸ü²»ÓùØÐÄװʲô OS¡¢ÔõôÅäÖÃÍøÂç¡¢ÐèÒª¶àÉÙ CPU ?¡£ÊÇ·ñÊʺÏÓÚ Serverless ÔËËã¡£Èç¹ûÓ¦ÓÃÊÇÓÐ״̬µÄ£¬ÔÆÔÚ½øÐе÷¶Èʱ¿ÉÄܵ¼ÖÂÉÏÏÂÎĶªÊ§£¬±Ï¾¹ Serverless µÄµ÷¶È²»»á°ïÖúÓ¦ÓÃ×ö״̬ͬ²½£»Èç¹ûÓ¦ÓÃÊdz¤Ê±¼äºǫ́ÔËÐеÄÃܼ¯ÐͼÆËãÈÎÎñ£¬»áµÃ²»µ½Ì«¶à Serverless µÄÓÅÊÆ£»Èç¹ûÓ¦ÓÃÉæ¼°µ½Æµ·±µÄÍⲿ I/O£¨ÍøÂç»òÕß´æ´¢£¬ÒÔ¼°·þÎñ¼äµ÷Óã©£¬Ò²ÒòΪ·±ÖØµÄ I/O ¸ºµ£¡¢Ê±ÑÓ´ó¶ø²»Êʺϡ£Serverless ·Ç³£ÊʺÏÓÚʼþÇý¶¯µÄÊý¾Ý¼ÆËãÈÎÎñ¡¢¼ÆËãʱ¼ä¶ÌµÄÇëÇó / ÏìÓ¦Ó¦Óá¢Ã»Óи´ÔÓÏ໥µ÷Óõij¤ÖÜÆÚÈÎÎñ¡£
4¡¢´æ´¢¼ÆËã·ÖÀëģʽ
ÔÚÔÆ»·¾³ÖУ¬ÍƼö°Ñ¸÷ÀàÔÝ̬Êý¾Ý£¨Èç session£©¡¢½á¹¹»¯ºÍ·Ç½á¹¹»¯³Ö¾ÃÊý¾Ý¶¼²ÉÓÃÔÆ·þÎñÀ´±£´æ£¬´Ó¶øÊµÏÖ´æ´¢¼ÆËã·ÖÀ롣һЩ״̬Èç¹û±£´æµ½Ô¶¶Ë»º´æ£¬»áÔì³É½»Ò×ÐÔÄܵÄÃ÷ÏÔϽµ£¬±ÈÈç½»Ò׻ỰÊý¾ÝÌ«´ó¡¢ÐèÒª²»¶Ï¸ù¾ÝÉÏÏÂÎÄÖØÐ»ñÈ¡µÈ£¬Ôò¿ÉÒÔ¿¼ÂÇͨ¹ý²ÉÓà Event Log + ¿ìÕÕ£¨»ò Check Point£©µÄ·½Ê½£¬ÊµÏÖÖØÆôºó¿ìËÙÔöÁ¿»Ö¸´·þÎñ£¬¼õÉÙ²»¿ÉÓöÔÒµÎñµÄÓ°Ïìʱ³¤¡£
5¡¢Ê¼þÇý¶¯¼Ü¹¹
±¾ÖÊÉÏÊÇÒ»ÖÖÓ¦ÓÃ/ ×é¼þ¼äµÄ¼¯³É¼Ü¹¹Ä£Ê½¡£Ê¼þ¾ßÓÐ schema£¬ËùÒÔ¿ÉÒÔУÑé event µÄÓÐЧÐÔ£¬Í¬Ê± EDA ¾ß±¸ QoS ±£ÕÏ»úÖÆ£¬Ò²Äܹ»¶Ôʼþ´¦Àíʧ°Ü½øÐÐÏìÓ¦¡£Ê¼þÇý¶¯Ä£Ê½Ò»°ãÓÃÔÚÏÂÃæ³¡¾°Ï£º
ÔöÇ¿·þÎñÈÍÐÔ£º ÓÉÓÚ·þÎñ¼äÊÇÒì²½¼¯³ÉµÄ£¬Ò²¾ÍÊÇÏÂÓεÄÈκδ¦Àíʧ°ÜÉõÖÁå´»ú¶¼²»»á±»ÉÏÓθÐÖª¡£
CQRS £¨Command Query Responsibility Segregation£©£º°Ñ¶Ô·þÎñ״̬ÓÐÓ°ÏìµÄÃüÁîÓÃʼþÀ´·¢Æð£¬¶ø¶Ô·þÎñ״̬ûÓÐÓ°ÏìµÄ²éѯ²ÅʹÓÃͬ²½µ÷ÓÃµÄ API ½Ó¿Ú£»½áºÏ EDA ÖÐµÄ Event Sourcing ¿ÉÒÔÓÃÓÚά»¤Êý¾Ý±ä¸üµÄÒ»ÖÂÐÔ£¬µ±ÐèÒªÖØÐ¹¹½¨·þÎñ״̬ʱ£¬°Ñ EDA ÖеÄʼþÖØÐ¡°²¥·Å¡±Ò»±é¼´¿É¡£
¹¹½¨¿ª·Åʽ½Ó¿Ú £ºÔÚ EDA Ï£¬Ê¼þµÄÌṩÕß²¢²»ÓùØÐÄÓÐÄÄЩ¶©ÔÄÕߣ¬²»Ïñ·þÎñµ÷Óõij¡¾° ¡ª¡ª Êý¾ÝµÄ²úÉúÕßÐèÒªÖªµÀÊý¾ÝµÄÏû·ÑÕßÔÚÄÄÀï²¢µ÷ÓÃËü£¬Òò´Ë±£³ÖÁ˽ӿڵĿª·ÅÐÔ£»
ʼþÁ÷´¦Àí £ºÓ¦ÓÃÓÚ´óÁ¿Ê¼þÁ÷£¨¶ø·ÇÀëɢʼþ£©µÄÊý¾Ý·ÖÎö³¡¾°£¬µäÐÍÓ¦ÓÃÊÇ»ùÓÚ Kafka µÄÈÕÖ¾´¦Àí¡£
»ùÓÚʼþ´¥·¢µÄÏìÓ¦£ºÔÚ IoT ʱ´ú´óÁ¿´«¸ÐÆ÷²úÉúµÄÊý¾Ý£¬²»»áÏñÈË»ú½»»¥Ò»ÑùÐèÒªµÈ´ý´¦Àí½á¹ûµÄ·µ»Ø£¬ÌìÈ»ÊʺÏÓà EDA À´¹¹½¨Êý¾Ý´¦ÀíÓ¦Óá£
Êý¾Ý±ä»¯Í¨Öª £ºÔÚ·þÎñ¼Ü¹¹Ï£¬ÍùÍùÒ»¸ö·þÎñÖеÄÊý¾Ý·¢Éú±ä»¯£¬ÁíÍâµÄ·þÎñ»á¸ÐÐËȤ£¬±ÈÈçÓû§¶©µ¥Íê³Éºó£¬»ý·Ö·þÎñ¡¢ÐÅÓ÷þÎñµÈ¶¼ÐèÒªµÃµ½Ê¼þ֪ͨ²¢¸üÐÂÓû§»ý·ÖºÍÐÅÓõȼ¶¡£
6¡¢¿É¹Û²â¼Ü¹¹
¿É¹Û²â¼Ü¹¹°üÀ¨ Logging¡¢Tracing¡¢Metrics Èý¸ö·½Ã棬ÆäÖÐ Logging Ìṩ¶à¸ö¼¶±ð(verbose/ debug/warning/error/fatal)µÄÏêϸÐÅÏ¢¸ú×Ù£¬ÓÉÓ¦Óÿª·¢ÕßÖ÷¶¯Ìṩ£»Tracing Ìṩһ¸öÇëÇó´Óǰ¶Ë µ½ºó¶ËµÄÍêÕûµ÷ÓÃÁ´Â·¸ú×Ù£¬¶ÔÓÚ·Ö²¼Ê½³¡¾°ÓÈÆäÓÐÓã»Metrics ÔòÌṩ¶ÔϵͳÁ¿»¯µÄ¶àά¶È¶ÈÁ¿¡£
4¡¢ÔÆÔÉúÖ÷Òª¼¼Êõ
ÔÆÔÉú±³ºó°üº¬ÁËһϵÁеļ¼Êõ£¬Í¨¹ýÔÚÓ¦ÓÃÖвÉÄɺÍʵ¼ùÕâЩ¼¼Êõ£¬À´ÈÃÎÒÃÇÏíÊÜÔÆ¼ÆËãµÄÓÅÊÆºÍºìÀû£¬ÈÃÎÒÃǾ۽¹ÒµÎñ¼ÛÖµ½»¸¶£¬ÌáÉýÆóÒµÃô½ÝÐԺʹ´ÐÂÄÜÁ¦¡£
Ò»¡¢ÈÝÆ÷
ΪÁ˸üºÃÀí½âÈÝÆ÷ÊÇʲô£¬ÓÐʲô¼ÛÖµ£¬ÎÒÃÇÓбØÒª»Ø¹ËÒ»ÏÂÈí¼þ²¿Êð¼Ü¹¹ºÍ½»¸¶µÄÀúÊ·£¬ÏÂÃæÕâÕÅͼ£¨ÏàÐÅ´ó¼ÒÒѾ¿´¹ýÎÞÊý´ÎÁË£©¿ÉÒԺܺõÄÃèÊöÈí¼þ²¿ÊðµÄ·¢Õ¹Èý½×¶Î£º

1¡¢´«Í³²¿Êðʱ´ú £º
ÔçÆÚ£¬¸÷¸ö×éÖ¯»ú¹¹ÔÚÎïÀí·þÎñÆ÷ÉÏÔËÐÐÓ¦ÓóÌÐò¡£ÎÞ·¨ÎªÎïÀí·þÎñÆ÷ÖеÄÓ¦ÓóÌÐò¶¨Òå×ÊÔ´±ß½ç£¬Õâ»áµ¼ÖÂ×ÊÔ´·ÖÅäÎÊÌâ¡£ÀýÈ磬Èç¹ûÔÚÎïÀí·þÎñÆ÷ÉÏÔËÐжà¸öÓ¦ÓóÌÐò£¬Ôò¿ÉÄÜ»á³öÏÖÒ»¸öÓ¦ÓóÌÐòÕ¼Óô󲿷Ö×ÊÔ´µÄÇé¿ö£¬½á¹û¿ÉÄܵ¼ÖÂÆäËûÓ¦ÓóÌÐòµÄÐÔÄÜϽµ¡£Ò»ÖÖ½â¾ö·½°¸ÊÇÔÚ²»Í¬µÄÎïÀí·þÎñÆ÷ÉÏÔËÐÐÿ¸öÓ¦ÓóÌÐò£¬µ«ÊÇÓÉÓÚ×ÊÔ´ÀûÓò»×ã¶øÎÞ·¨À©Õ¹£¬²¢ÇÒά»¤Ðí¶àÎïÀí·þÎñÆ÷µÄ³É±¾ºÜ¸ß¡£
2¡¢ÐéÄ⻯²¿Êðʱ´ú £º
×÷Ϊ½â¾ö·½°¸£¬ÒýÈëÁËÐéÄ⻯¡£ÐéÄ⻯¼¼ÊõÔÊÐíÄãÔÚµ¥¸öÎïÀí·þÎñÆ÷µÄ CPU ÉÏÔËÐжà¸öÐéÄâ»ú£¨VM£©¡£ ÐéÄ⻯ÔÊÐíÓ¦ÓóÌÐòÔÚ VM Ö®¼ä¸ôÀ룬²¢Ìṩһ¶¨³Ì¶ÈµÄ°²È«£¬ÒòΪһ¸öÓ¦ÓóÌÐòµÄÐÅÏ¢ ²»Äܱ»ÁíÒ»Ó¦ÓóÌÐòËæÒâ·ÃÎÊ¡£
ÐéÄ⻯¼¼ÊõÄܹ»¸üºÃµØÀûÓÃÎïÀí·þÎñÆ÷ÉϵÄ×ÊÔ´£¬²¢ÇÒÒòΪ¿ÉÇáËɵØÌí¼Ó»ò¸üÐÂÓ¦ÓóÌÐò¶ø¿ÉÒÔʵÏÖ¸üºÃµÄ¿ÉÉìËõÐÔ£¬½µµÍÓ²¼þ³É±¾µÈµÈ¡£Ã¿¸ö VM ÊÇһ̨ÍêÕûµÄ¼ÆËã»ú£¬ÔÚÐéÄ⻯Ӳ¼þÖ®ÉÏÔËÐÐËùÓÐ×é¼þ£¬°üÀ¨Æä×Ô¼ºµÄ²Ù×÷ϵͳ¡£
3¡¢ÈÝÆ÷²¿Êðʱ´ú £º
ÈÝÆ÷Ò²ÊÇÒ»ÖÖɳÏä˼ÏëµÄÌåÏÖ£¬ÆÁ±Î²»Í¬»·¾³Ö®¼äµÄ²îÒ죬½ø¶ø»ùÓÚÈÝÆ÷×ö±ê×¼»¯µÄÈí¼þ½»¸¶¡£¿ª·¢Õß¿ÉÒÔ´ò°üËûÃǵÄÓ¦ÓÃÒÔ¼°ÒÀÀµ°üµ½Ò»¸ö¿ÉÒÆÖ²µÄ¾µÏñÖУ¬È»ºó·¢²¼µ½ÈκÎÁ÷ÐÐµÄ Linux »ò Windows »úÆ÷ÉÏ£¬ËùÒÔÒ²¿ÉÒÔ³ÆÈÝÆ÷ÊÇÒ»¸öÊÓͼ¸ôÀë¡¢×ÊÔ´¿ÉÏÞÖÆ¡¢¶ÀÁ¢Îļþϵͳ£¨¾µÏñÊÇÈÝÆ÷ËùÐèµÄ¶þ½øÖÆÎļþ¡¢ÅäÖÃÎļþÒÔ¼°ÒÀÀµµÄÎļþ¼¯ºÏ£©µÄ½ø³Ì¼¯ºÏ¡£
VM ÊǶÔÓ²¼þ×ÊÔ´µÄÐéÄ⣬Docker ÊǶԲÙ×÷ϵͳµÄÐéÄâ¡£Ïà±È VM£¬Docker ±ÈÐéÄ⻯ÉÙÁËÁ½²ã£º hypervisor ²ãºÍ GuestOS ²ã£¬Ê¹Óà Docker Engine ½øÐе÷¶ÈºÍ¸ôÀ룬ËùÓÐÓ¦Óù²ÓÃÖ÷»ú²Ù×÷ϵͳ£¬Òò´ËÔÚÌåÁ¿ÉÏ£¬Docker ½ÏÐéÄâ»ú¸üÇáÁ¿¼¶£¬ÔÚÐÔÄÜÉÏÓÅÓÚÐéÄ⻯£¬½Ó½üÂã»úÐÔÄÜ¡£
ÕýÈ缯װÏäµÄ³öÏÖ¼ÓËÙÁËóÒ×È«Çò»¯½ø³Ì£¬ÒÔÈÝÆ÷Ϊ´ú±íµÄ¼¼Êõ×÷ÍÆ¶¯ºÍ¼ÓËÙÔÆ¼ÆËãºÍÔÆÔÉúÆÕ¼°ºÍ·¢Õ¹¡£º½ÔËҵʹÓÃÎïÀíÈÝÆ÷£¨¼¯×°Ï䣩À´´ò°üºÍ¸ôÀ벻ͬµÄ»õÎÒÔ±ãÔÚÂÖ´¬¡¢»ð³µ¡¢¿¨³µºÍ·É»úÉÏÔËÊä£¬ÔÆÔÉúʱ´ú£¬°ÑÓ¦ÓóÌÐòµÄ´úÂëÓëÏà¹ØÅäÖÃÎļþ¡¢¿âÒÔ¼°ÔËÐÐÓ¦ÓÃËùÐèµÄÒÀÀµÏîÀ¦°óÔÚÒ»Æð£¬ÈÃÓ¦ÓÿÉÒÔ¿çÔÆÆ½Ì¨ºÍ¼¼ÊõÉèÊ©£¬ÒÔÒ»ÖºͿɿ¿µÄ·½Ê½ÔËÐС£ÕâʹµÃ¿ª·¢ÕßºÍ IT רҵÈËÔ±Äܹ»¸ü¿ì¡¢¸ü°²È«µØ´´½¨ºÍ²¿ÊðÓ¦ÓóÌÐò¡£ÈÝÆ÷¼¼ÊõÔÚÓ¦ÓóÌÐòµÄÕû¸öÉúÃüÖÜÆÚ¹¤×÷Á÷ÖÐÌṩÁ˸߸ôÀë¡¢¿ÉÒÆÖ²ÐÔ¡¢Áé»îÐÔ¡¢¿ÉÉìËõÐԺͿØÖÆÓÅÊÆ¡£
ÈÝÆ÷¾ßÓÐÈçÏÂÓÅÊÆ£º
- Ãô½ÝÓ¦ÓóÌÐòµÄ´´½¨ºÍ²¿Êð£ºÓëʹÓà VM ¾µÏñÏà±È£¬Ìá¸ßÁËÈÝÆ÷¾µÏñ´´½¨µÄ¼ò±ãÐÔºÍЧÂÊ¡£
- ³ÖÐø¿ª·¢¡¢¼¯³ÉºÍ²¿Êð£ºÍ¨¹ý¿ìËÙ¼òµ¥µÄ»Ø¹ö£¨ÓÉÓÚ¾µÏñ²»¿É±äÐÔ£©£¬Ö§³Ö¿É¿¿ÇÒÆµ·±µÄÈÝÆ÷¾µÏñ¹¹½¨ºÍ²¿Êð¡£
- ¹Ø×¢¿ª·¢ÓëÔËάµÄ·ÖÀ룺ÔÚ¹¹½¨/·¢²¼Ê±¶ø²»ÊÇÔÚ²¿Êðʱ´´½¨Ó¦ÓóÌÐòÈÝÆ÷¾µÏñ£¬ ´Ó¶ø½«Ó¦ÓóÌÐòÓë»ù´¡¼Ü¹¹·ÖÀë¡£
- ¿É¹Û²ìÐÔ²»½ö¿ÉÒÔÏÔʾ²Ù×÷ϵͳ¼¶±ðµÄÐÅÏ¢ºÍÖ¸±ê£¬»¹¿ÉÒÔÏÔʾӦÓóÌÐòµÄÔËÐÐ×´¿öºÍÆäËûÖ¸±êÐźš£
- ¿ç¿ª·¢¡¢²âÊÔºÍÉú²úµÄ»·¾³Ò»ÖÂÐÔ£ºÔÚ±ãЯʽ¼ÆËã»úÉÏÓëÔÚÔÆÖÐÏàͬµØÔËÐС£
- ¿çÔÆºÍ²Ù×÷ϵͳ·¢Ðа汾µÄ¿ÉÒÆÖ²ÐÔ£º¿ÉÔÚ Ubuntu¡¢RHEL¡¢CoreOS¡¢±¾µØ¡¢ Google Kubernetes Engine ºÍÆäËûÈκεط½ÔËÐС£
- ÒÔÓ¦ÓóÌÐòΪÖÐÐĵĹÜÀí£ºÌá¸ß³éÏ󼶱𣬴ÓÔÚÐéÄâÓ²¼þÉÏÔËÐÐ OS µ½Ê¹ÓÃÂß¼×ÊÔ´ÔÚ OS ÉÏÔËÐÐÓ¦ÓóÌÐò¡£
- ËÉÉ¢ñîºÏ¡¢·Ö²¼Ê½¡¢µ¯ÐÔ¡¢½â·ÅµÄ΢·þÎñ£ºÓ¦ÓóÌÐò±»·Ö½â³É½ÏСµÄ¶ÀÁ¢²¿·Ö£¬²¢ÇÒ¿ÉÒÔ¶¯Ì¬²¿ÊðºÍ¹ÜÀí- ¶ø²»ÊÇÔÚһ̨´óÐ͵¥»úÉÏÕûÌåÔËÐС£
- ×ÊÔ´¸ôÀ룺¿ÉÔ¤²âµÄÓ¦ÓóÌÐòÐÔÄÜ¡£
- ×ÊÔ´ÀûÓ㺸ßЧÂʺ͸ßÃܶȡ£
Docker ÊÇÒ»¸öµäÐ͵ĿªÔ´¡¢Á÷ÐÐÓ¦ÓÃÈÝÆ÷ÒýÇæ£¬ÒѳÉÎªÔÆÊ±´úÓ¦Ó÷ַ¢ºÍ½»¸¶µÄÊÂʵ±ê×¼¡£Docker ʹӦÓÃͨ¹ý¡°×Ô°üº¬¡±µÄ·½Ê½´ò°üÓ¦Óã¬Ê¹Ó¦ÓÃÒÔÃô½Ý¡¢¿ÉÀ©Õ¹¡¢¿É¸´ÖƵķ½Ê½·¢²¼ÔÚÔÆÉÏ£¬¼«´óÌáÉýÓ¦ÓõĿÉÒÆÖ²ÐÔ¡¢²¿ÊðÃܶȺ͵¯ÐÔ£¬×î´ó»¯·¢»Ó³öÔÆµÄÄÜÁ¦¡£ÕâÒ²¾ÍÊÇÈÝÆ÷¼¼Êõ¶ÔÔÆ·¢»Ó³öµÄ¸ïÃüÐÔÓ°ÏìËùÔÚ£¬ÈÝÆ÷¼¼ÊõÈùÜÀíÓ¦ÓõÈÓÚ¹ÜÀíÈÝÆ÷±¾Éí£¬Òò´ËÈÝÆ÷¼¼ÊõÊÇÔÆÔÉú¼¼ÊõµÄºËÐĵ×ÅÌ¡£
¶þ¡¢Kubernetes
1¡¢Ê²Ã´ÊÇ Kubernetes£¿
Docker ÌåϵÊÇÒÔ¡°µ¥Ò»ÈÝÆ÷¡±ÎªºËÐĵÄÓ¦Óö¨Ò巽ʽ£¬¶øÓ¦ÓóÌÐòÀ©Õ¹µ½¿ç¶à¸ö·þÎñÆ÷²¿ÊðµÄ¶à¸öÈÝÆ÷£¬Òò´Ë¶ÔÆä½øÐвÙ×÷±äµÃ¸ü¼Ó¸´ÔÓ¡£ÈçºÎе÷ºÍ°²ÅŶà¸öÈÝÆ÷£¿Ó¦ÓóÌÐòÖÐËùÓв»Í¬µÄÈÝÆ÷Ö®¼äÈçºÎʵÏÖÏ໥ͨÐÅ£¿ÈçºÎËõ·Å¶à¸öÈÝÆ÷ʵÀý£¿Õâ¾ÍÐèÒªÒ»¸ö¿ÉÒÔ¶ÔÓ¦ÓýøÐбàÅź͵÷¶ÈµÄ¼ÆËã¡£Kubernetes¡£
Docker¡¢Mesosphere¡¢Kubernetes ÔÚ¡°Ó¦Óá±ÓÐ×Ų»Í¬Àí½âºÍ¶¥²ãÉè¼Æ£¬¶ø Kubernetes ÔòÌá³öÁËÒ»ÕûÌ×ÈÝÆ÷»¯Éè¼ÆÄ£Ê½ºÍ¶ÔÓ¦µÄ¿ØÖÆÄ£ÐÍ£¬´Ó¶øÃ÷È·ÁËÈçºÎÕæÕýÒÔÈÝÆ÷ΪºËÐĹ¹½¨Äܹ»ÕæÕý¸ú¿ª·¢Õß¶Ô½ÓÆðÀ´µÄÓ¦Óý»¸¶ºÍ¿ª·¢·¶Ê½£¬×îÖÕ Kubernetes È¡µÃµ½ÁËÔÆÊ±´úÓ¦ÓñàÅŵĹؼüÁìµ¼µØÎ»¡£
Kubernetes ×÷Ϊ´ó¹æÄ£·Ö²¼Ê½×ÊÔ´µ÷¶ÈºÍ±àÅŵÄÒýÇæ£¬ÒѳÉÎªÔÆÊ±´úÈÝÆ÷µ÷¶ÈºÍ±àÅŵÄÊÂʵ±ê×¼£¬ÏÖÔںܶàÈËÒ²³Æ Kubernetes ÎªÔÆÔÉúµÄ²Ù×÷ϵͳ¡£Kubernetes ÒÔÒ»ÖÖ¿ÉÒÆÖ²¡¢¿ÉÉìËõÇÒ¿ÉÀ©Õ¹µÄ·½Ê½ÊµÏÖ»ùÓÚÈÝÆ÷µÄÓ¦ÓóÌÐò£¬¿ÉʵÏÖ×Ô¶¯»¯µÄ×ÊÔ´µ÷¶È¡¢Ó¦ÓÃ×Ô¶¯²¿ÊðºÍ»Ø¹ö¡¢µ¯ÐÔÉìËõ¡¢·þÎñ·¢Ïֺ͸ºÔؾùºâ¡¢×ÔÎÒÐÞ¸´/×ÔÓú£¬Í¨¹ýÆÁ±ÎÁ˵ײã¼Ü¹¹µÄ¸´ÔÓÐԺͲîÒìÐÔ£¬°ïÖúÓ¦ÓÃÆ½»¬ÔËÐÐÔÚ²»Í¬»ù´¡ÉèÊ©ÉÏ¡£
×ܽáÀ´Ëµ£¬Kunbernetes ¿ÉÒÔ°ïÖúÎÒÃÇ£º
×ÊÔ´µ÷¶È
¸ù¾ÝÓ¦ÓÃÇëÇóµÄ×ÊÔ´Á¿ CPU¡¢Memory£¬»òÕß GPU µÈÉ豸×ÊÔ´£¬ÔÚ¼¯ÈºÖÐÑ¡ÔñºÏÊʵĽڵãÀ´ÔËÐÐÓ¦Óá£Kubernetes ¿ÉÒÔ¸ü¼Ó³ä·ÖµØÀûÓÃÓ²¼þ£¬×î´ó³Ì¶È»ñÈ¡ÔËÐÐÆóÒµÓ¦ÓÃËùÐèµÄ×ÊÔ´¡£
Ó¦Óò¿ÊðºÍ¹ÜÀí
Ö§³ÖÓ¦ÓõÄ×Ô¶¯·¢²¼ÓëÓ¦ÓõĻعö£¬ÒÔ¼°ÓëÓ¦ÓÃÏà¹ØµÄÅäÖõĹÜÀí¡£Ò²¿ÉÒÔ×Ô¶¯»¯´æ´¢¾íµÄ±àÅÅ£¬Èô洢¾íÓëÈÝÆ÷Ó¦ÓõÄÉúÃüÖÜÆÚÏà¹ØÁª¡£
×Ô¶¯ÐÞ¸´
Kubernetes ÈÃÓ¦ÓûúÆ÷¾ß±¸×ÔÓúÄÜÁ¦£¬Í¨¹ý¼à²âÕâ¸ö¼¯ÈºÖÐËùÓеÄËÞÖ÷»ú£¬ÖØÐÂÆô¶¯Ê§°ÜµÄÈÝÆ÷¡¢Ìæ»»ÈÝÆ÷¡¢É±ËÀ²»ÏìÓ¦Óû§¶¨ÒåµÄÔËÐÐ×´¿ö¼ì²éµÄÈÝÆ÷£¬ÊµÐлúÆ÷×Ô¶¯ÐÞ¸´¡£ÕâÒ»ÇжÔÓÚ¿Í»§¶ËÀ´Ëµ¶¼ÊÇ͸Ã÷ºÍ×Ô¶¯»¯µÄ£¬¼«´ó¼ò»¯ÁËÔËά¹ÜÀíµÄ¸´ÔÓÐÔ¡£
·þÎñ·¢Ïֺ͸ºÔð¾ùºâ
ͨ¹ý Service ×ÊÔ´³öÏÖ¸÷ÖÖÓ¦Ó÷þÎñ£¬½áºÏ DNS ºÍ¶àÖÖ¸ºÔؾùºâ»úÖÆ£¬Ö§³ÖÈÝÆ÷»¯ Ó¦ÓÃÖ®¼äµÄÏ໥ͨÐÅ¡£
µ¯ÐÔÉìËõ
K8s ¿ÉÒÔ¼à²âÒµÎñÉÏËù³Ðµ£µÄ¸ºÔØ£¬Èç¹ûÕâ¸öÒµÎñ±¾ÉíµÄ CPU ÀûÓÃÂʹý¸ß£¬»òÕßÏìӦʱ¼ä¹ý³¤£¬ Ëü¿ÉÒÔ¶ÔÕâ¸öÒµÎñ½øÐÐ×Ô¶¯À©ÈÝ¡£µ±·¢ÏÖ CPU ÀûÓÃÂʹýµÍ£¬»ò QPS Ͻµ£¬K8s Ò²¿ÉÒÔ´¥·¢×Ô¶¯ËõÈÝ£¬±ÜÃâ×ÊÔ´ÏÐÖá£
2¡¢Kubernetes ±¾ÖÊ
Kubernetes µÄºËÐÄÄÜÁ¦ÊÇÈÝÆ÷µ÷¶ÈºÍ±àÅÅ¡£¶¨Î»ÊÇÓ¦Óûù´¡ÉèÊ©£¬½éÓÚ IaaS Óë PaaS Ö®¼ä£¬ÃæÏòƽ̨¿ª·¢Õߣ¬ÈÃÿ¸öÈËÄܹ»¿ª·¢×Ô¼ºµÄ PaaS¡£¶Ô±È Linux Óë Kubernetes µÄ¸ÅÄîÄ£ÐÍ£¬ËûÃǶ¼ÊǶ¨ÒåÁË¿ª·ÅµÄ¡¢±ê×¼»¯µÄ·ÃÎʽӿڣºÏòÏ·â×°×ÊÔ´£¬ÏòÉÏÖ§³ÅÓ¦Ó㬴ÓijÖÖÒâÒåÉÏÀ´½²£¬Kubernetes ÒѾ³ÉÎªÔÆÊ±´úµÄ²Ù×÷ϵͳ¡£
Kubernetes ¼Ü¹¹µÄ±¾ÖʾÍÊÇ 2 ¸ö¶«Î÷£ºÉùÃ÷ʽ API Óë¿ØÖÆÆ÷ģʽ¡£ÉùÃ÷ʽ API ÊǶԵײã»ù´¡ÊµÊ©¸÷ÖÖÄÜÁ¦µÄÉùÃ÷ʽ API ¶¨Ò壬Ҳ¾ÍÊǽ¨Ä£³ÉÒ»·ÝÊý¾Ý£¬ÀíÂÛÉÏÉùÃ÷ʽ API ¿ÉÒÔ¶ÔÒ»ÇÐÓ¦Óûù´¡ÊµÊ©¡°ÄÜÁ¦¡±½øÐн¨Ä££¬Êý¾ÝÖеÄÄÚÈÝÊǶԸÃÓ¦Óûù´¡ÊµÊ©ÆÚÍû״̬µÄÃèÊö¡£Êý¾ÝµÄÔöɾ²é¸Ä»á´¥·¢¿ØÖÆÆ÷Ö´ÐжÔÓ¦µÄÔËάÂß¼£¬ÒÔ´ËÀ´Çý¶¯µ×²ã»ù´¡ÊµÊ©ÏòÊý¾ÝËù¶¨ÒåµÄÆÚÍû״̬±Æ½ü¡£
3¡¢Kubernetes ¼Ü¹¹ºÍ¸ÅÄî
3.1¡¢¼Ü¹¹

Ò»¸ö K8s ¼¯ÈºÓÉÒ»×é½Úµã×é³É£¬ÕâЩ½Úµã¿ÉÒÔÊÇÐéÄâ»úÒ²¿ÉÒÔÊÇÎïÀí»ú£¬´ÓÖ°ÔðÀ´¿´ÕâЩ½Úµã¿ÉÒÔ·ÖΪ 2 Àà¡£Ò»ÀàÊǸºÔð¹ÜÀíÕû¸ö K8s ¼¯ÈºµÄ¿ØÖÆÆ½Ã棬ͨ³£ÔËÐÐÔÚ Master ½ÚµãÉÏ£¬ÓÃÀ´±©Â¶ API ºÍ½Ó¿ÚÀ´¶¨Òå¡¢ ²¿ÊðÈÝÆ÷ºÍ¹ÜÀíÈÝÆ÷µÄÉúÃüÖÜÆÚ¡£¿ØÖÆÆ½ÃæµÄ×é¼þ¶Ô¼¯Èº×ö³öÈ«¾Ö¾ö²ß(±ÈÈçµ÷¶È)£¬ÒÔ¼°¼ì²âºÍÏìÓ¦¼¯ÈºÊ¼þ£¨ÀýÈ磬µ±²»Âú×㲿ÊðµÄ replicas ×Ö¶Îʱ£¬Æô¶¯Ð嵀 pod£©£¬°üº¬ÁË kube-apiserver¡¢kube-controller-manager¡¢kube-scheduler ºÍ ected£»ÁíÒ»ÀàÊǹ¤×÷½Úµã£¨Node£©£¬Node ÊÇ Kubernetes ¼¯Èº¼Ü¹¹ÖÐÔËÐÐ Pod µÄ·þÎñ½Úµã£¬ÊÇ Kubernetes ¼¯Èº²Ù×÷µÄµ¥Ôª£¬ÓÃÀ´³ÐÔØ±»·ÖÅä Pod µÄÔËÐУ¬ÊÇ Pod ÔËÐеÄËÞÖ÷»ú¡£ÔËÐÐ Docker Eninge ·þÎñ£¬ÊØ»¤½ø³Ì kunelet ¼°¸ºÔؾùºâÆ÷ kube-proxy¡£
3.2¡¢Õý³£ÔËÐÐµÄ Kubernetes ¼¯ÈºËùÐèµÄ¸÷ÖÖ×é¼þ¡£
¿ØÖÆÆ½Ãæ×é¼þ
- kube-apiserver
×÷Ϊ Kubernetes ϵͳµÄÈë¿Ú£¬Æä·â×°Á˺ËÐĶÔÏóµÄÔöɾ¸Ä²é²Ù×÷£¬ÒÔ RESTful API ½Ó¿Ú·½Ê½Ìṩ¸øÍⲿ¿Í»§ºÍÄÚ²¿×é¼þµ÷Ó㬼¯ÈºÄÚ¸÷¸ö¹¦ÄÜÄ£¿éÖ®¼äÊý¾Ý½»»¥ºÍͨÐŵÄÖÐÐÄÊàŦ¡£
Ö»ÓÐ API Server Óë´æ´¢Í¨ÐÅ£¬ÆäËûÄ£¿éͨ¹ý API Server ·ÃÎʼ¯Èº×´Ì¬¡£ÕâÑùµÚÒ»£¬ÊÇΪÁ˱£Ö¤¼¯Èº×´Ì¬·ÃÎʵݲȫ¡£µÚ¶þ£¬ÊÇΪÁ˸ôÀ뼯Ⱥ״̬·ÃÎʵķ½Ê½ºÍºó¶Ë´æ´¢ÊµÏֵķ½Ê½£ºAPI Server ÊÇ״̬·ÃÎʵķ½Ê½£¬²»»áÒòΪºó¶Ë´æ´¢¼¼Êõ etcd µÄ¸Ä±ä¶ø¸Ä±ä¡£¼ÓÈëÒÔºó½« etcd ¸ü»»³ÉÆäËûµÄ´æ´¢·½Ê½£¬²¢²»»áÓ°ÏìÒÀÀµÒÀÀµ API Server µÄÆäËû K8s ϵͳģ¿é¡£
- etcd
etcd ÊǼæ¾ßÒ»ÖÂÐԺ͸߿ÉÓÃÐÔµÄÇáÁ¿¼¶¼üÖµÊý¾Ý¿â£¬etcd ÊÇ Kubernetes µÄ¹Ø¼ü×é¼þ£¬ÊÇ K8s ¼¯ÈºÔËÐеĴóÄÔ£¬ÒòΪËü´æ´¢Á˼¯ÈºµÄÕû¸ö״̬£ºÆäÅäÖ㬹æ¸ñÒÔ¼°ÔËÐÐÖеŤ×÷¸ºÔصÄ״̬¡£Ö÷ҪʹÓó¡¾°°üÀ¨£º
- ·þÎñ·¢ÏÖ £º·Ö²¼Ê½ÏµÍ³ÖУ¬ÐèÒª³É°ÙÉÏǧ¸ö½ø³ÌÀ´Ìṩһ×é¶ÔµÈµÄ·þÎñ¿ÉÒÔÀûÓà etc À´½â¾ö×ÊÔ´×¢²áµÄÎÊÌ⣬µ±ÕâÒ»×éºó¶Ë½ø³Ì±»µ÷¶È£¬ÔÚ½ø³ÌÄÚ²¿Æô¶¯Ö®ºó£¬¿ÉÒÔ½«×ÔÉíËùÔڵĵØÖ·×¢²áµ½ etcd¡£API Íø¹ØÄܹ»Í¨¹ý etcd ¼°Ê±¸ÐÖªµ½ºó¶Ë½ø³ÌµÄµØÖ·£¬ÕâÑùµ±ºó¶Ë½ø³Ì·¢Éú¹ÊÕÏÇ¨ÒÆµÄʱºò£¬»áÖØÐÂ×¢²áµ½ etcd ÖУ¬Ê¹µÃ API Íø¹ØÄܹ»¼°Ê±µØ¸ÐÖªµ½Ðµļ¯ÈºµØÖ·¡£Í¬Ê±£¬ÒòΪ etcd ÌṩµÄ Lease ²Ù×÷£¬¿ÉÒÔ¼°Ê±¸ÐÖªµ½½ø³Ì״̬µÄ±ä»¯£¬Èç¹û½ø³ÌÔËÐйý³ÌÖÐËÀµôÁË£¬ÄÇÃ´Íø¹Ø¿ÉÒÔ¼°Ê±¸ÐÖªµ½½ø³Ì״̬µÄ±ä»¯£¬´Ó¶ø½«Á÷Á¿×Ô¶¯µØÇе½ÆäËûµÄ½ø³Ì¡££¨×ÊÔ´×¢²á£¬´æ»îÐÔ¼ì²â£¬API Íø¹ØÎÞ״̬¿ÉˮƽÀ©Õ¹£¬Ö§³ÖÉÏÍò¸ö½ø³ÌµÄ¹æÄ££©
- ·Ö²¼Ê½ÏµÍ³²¢·¢¿ØÖÆ £ºÖ´ÐÐһЩ¼ÆËãÈÎÎñµÄʱºò£¬Í¨³£Çé¿öÏÂÐèÒª¿ØÖÆÈÎÎñµÄ²¢·¢¶È¡£ÒòΪÈÎÎñµ½Á˺ó¶Ë·þÎñ£¬Í¨³£ÊÇÓÐÈÝÁ¿Æ¿¾±µÄ£¨·Ö²¼Ê½ÐźÅÁ¿£¬×Ô¶¯Ìß³ö¹ÊÕϽڵ㣬´æ´¢½ø³ÌµÄÖ´ÐÐ״̬£©
- Kubernetes ÔªÊý¾Ý´æ´¢ £ºÓÃÓÚ±£´æ¼¯ÈºËùÓеÄÍøÂçÅäÖúͶÔÏóµÄ״̬ÐÅÏ¢¡£Í¨¹ý watch »úÖÆ£¬ÊµÊ±Í¨ÖªÅäÖñ仯£¬Í¨¹ý raft Ëã·¨±£³ÖϵͳÊý¾ÝµÄ cp ºÍǿһÖÂÐÔ¡£
- kube-scheduler
Kubernetes Scheduler È·¶¨ÈçºÎÔÚ¹¤×÷Æ÷½ÚµãÖ®¼ä²¿Êð Pod ºÍ ReplicaSet£¬ÒÔ¼°ÈçºÎÏòÕâЩ½Úµã·Ö·¢Á÷Á¿¡£ÔÚÕû¸öϵͳÖге£ÁË¡°³ÐÉÏÆôÏ¡±µÄÖØÒª¹¦ÄÜ£¬¡°³ÐÉÏ¡±ÊÇÖ¸Ëü¸ºÔð½ÓÊÕ Controller Manager ´´½¨µÄРPod£¬ÎªÆäµ÷¶ÈÖÁÄ¿±ê Node£»¡°ÆôÏ¡±ÊÇÖ¸µ÷¶ÈÍê³Éºó£¬Ä¿±ê Node É쵀 kubelet ·þÎñ½ø³Ì½Ó¹Üºó¼Ì¹¤×÷£¬¸ºÔð Pod ½ÓÏÂÀ´ÉúÃüÖÜÆÚ¡£ÔÚÕû¸öµ÷¶È¹ý³ÌÖÐÉæ¼°Èý¸ö¶ÔÏ󣬷ֱðÊÇ´ýµ÷¶È Pod ÁÐ±í¡¢¿ÉÓà Node ÁÐ±í£¬ÒÔ¼°µ÷¶ÈËã·¨ºÍ²ßÂÔ¡£Kubernetes Scheduler ͨ¹ýµ÷¶ÈËã·¨µ÷¶ÈΪ´ýµ÷¶È Pod ÁбíÖеÄÿ¸ö Pod ´Ó Node ÁбíÖÐÑ¡ÔñÒ»¸ö×îÊÊºÏµÄ Node À´ÊµÏÖ Pod µÄµ÷¶È¡£Ëæºó£¬Ä¿±ê½ÚµãÉ쵀 kubelet ͨ¹ý API Server ¼àÌýµ½ Kubernetes Scheduler ²úÉúµÄ Pod °ó¶¨Ê¼þ£¬È»ºó»ñÈ¡¶ÔÓ¦µÄ Pod Çåµ¥£¬ÏÂÔØ Image ¾µÏñ²¢Æô¶¯ÈÝÆ÷¡£
- kube-controller-manager
kube-controller-manager ×÷Ϊ¼¯ÈºÄÚ²¿µÄ¹ÜÀí¿ØÖÆÖÐÐÄ£¬¸ºÔð¼¯ÈºÄÚµÄ Node¡¢Pod ¸±±¾¡¢·þÎñ¶Ëµã£¨Endpoint£©¡¢ÃüÃû¿Õ¼ä£¨Namespace£©¡¢·þÎñÕ˺ţ¨ServiceAccount£©¡¢×ÊÔ´¶¨¶î£¨ResourceQuota£©µÄ¹ÜÀí£¬µ±Ä³¸ö Node ÒâÍâå´»úʱ£¬Controller Manager »á¼°Ê±·¢ÏÖ²¢Ö´ÐÐ×Ô¶¯»¯ÐÞ¸´Á÷³Ì£¬È·±£¼¯ÈºÊ¼ÖÕ´¦ÓÚÔ¤ÆÚµÄ¹¤×÷״̬¡£Ã¿¸ö¿ØÖÆÆ÷¶¼ÊÇÒ»¸öµ¥¶ÀµÄ½ø³Ì£¬ µ«ÊÇΪÁ˽µµÍ¸´ÔÓÐÔ£¬ËüÃǶ¼±»±àÒ뵽ͬһ¸ö¿ÉÖ´ÐÐÎļþ£¬²¢ÔÚÒ»¸ö½ø³ÌÖÐÔËÐС£
ÿ¸ö Controller ͨ¹ý API Server ÌṩµÄ½Ó¿Úʵʱ¼à¿ØÕû¸ö¼¯ÈºµÄÿ¸ö×ÊÔ´¶ÔÏóµÄµ±Ç°×´Ì¬£¬µ±·¢Éú¸÷ÖÖ¹ÊÕϵ¼ÖÂϵͳ״̬·¢Éú±ä»¯Ê±£¬»á³¢ÊÔ½«ÏµÍ³×´Ì¬ÐÞ¸´µ½¡°ÆÚÍû״̬¡±¡£Ò»Ð©µäÐ굀 Controller ÓУº
- ½Úµã¿ØÖÆÆ÷£¨Node Controller£©: ¶¨ÆÚ¼ì²é Node µÄ½¡¿µ×´Ì¬£¬±êʶ³ö£¨Ê§Ð§|δʧЧ£©µÄ Node ½Úµã£¬¸ºÔðÔÚ½Úµã³öÏÖ¹ÊÕÏʱ½øÐÐ֪ͨºÍÏìÓ¦¡£
- ÈÎÎñ¿ØÖÆÆ÷£¨Job controller£©: ¼à²â´ú±íÒ»´ÎÐÔÈÎÎñµÄ Job ¶ÔÏó£¬È»ºó´´½¨ Pods À´ÔËÐÐÕâЩÈÎÎñÖ±ÖÁÍê³É¡£
- ¶Ëµã¿ØÖÆÆ÷£¨Endpoints Controller£©: ¹ØÁª Service ºÍ Pod£¬´´½¨ Endpoints Ϊ Service µÄºó¶Ë£¬µ± Pod ·¢Éú±ä»¯Ê±£¬ÊµÊ±¸üРEndpoints¡£
- ·þÎñÕÊ»§ºÍÁîÅÆ¿ØÖÆÆ÷£¨Service Account & Token Controllers£©: ΪеÄÃüÃû¿Õ¼ä´´½¨Ä¬ÈÏÕÊ»§ºÍ API ·ÃÎÊÁîÅÆ¡£
¿ØÖÆÆ½Ãæ×é¼þ
- kubelet
ÔÚ Kubernetes ¼¯ÈºÖУ¬ÔÚÿ¸ö Node£¨ÓÖ³Æ Worker£©É϶¼»áÆô¶¯Ò»¸ö kubelet ·þÎñ½ø³Ì¡£¸Ã½ø³ÌÓÃÓÚ´¦Àí Master Ï·¢µ½±¾½ÚµãµÄÈÎÎñ£¬¹ÜÀí Pod ¼° Pod ÖеÄÈÝÆ÷¡£Ã¿¸ö kubelet ½ø³Ì¶¼»áÔÚ API Server ÉÏ×¢²á½Úµã×ÔÉíµÄÐÅÏ¢£¬¶¨ÆÚÏò Master »ã±¨½Úµã×ÊÔ´µÄʹÓÃÇé¿ö£¬²¢Í¨¹ý cAdvisor ¼à¿ØÈÝÆ÷ºÍ½Úµã×ÊÔ´¡£
- kube-proxy
kube-proxy ÔËÐÐÔÚËùÓнڵãÉÏ£¬Ëü¼àÌý apiserver ÖÐ service ºÍ endpoint µÄ±ä»¯Çé¿ö£¬´´½¨Â·ÓɹæÔòÒÔÌṩ·þÎñ IP ºÍ¸ºÔؾùºâ¹¦ÄÜ¡£¼òµ¥Àí½â´Ë½ø³ÌÊÇ Service µÄ͸Ã÷´úÀí¼æ¸ºÔؾùºâÆ÷£¬ÆäºËÐŦÄÜÊǽ«µ½Ä³¸ö Service µÄ·ÃÎÊÇëÇóת·¢µ½ºó¶ËµÄ¶à¸ö Pod ʵÀýÉÏ¡£iptables Óë IPVS ¶¼ÊÇ»ùÓÚ Netfilter ʵÏֵ쬵«ÒòΪ¶¨Î»²»Í¬£¬¶þÕßÓÐ×ű¾ÖʵIJî±ð£ºiptables ÊÇΪ·À»ðǽ¶øÉè¼ÆµÄ£»IPVS ÔòרÃÅÓÃÓÚ¸ßÐÔÄܸºÔؾùºâ£¬²¢Ê¹Óøü¸ßЧµÄÊý¾Ý½á¹¹£¨Hash ±í£©£¬ÔÊÐí¼¸ºõÎÞÏ޵ĹæÄ£À©ÕÅ¡£
- ÈÝÆ÷ÔËÐÐʱ£¨Container Runtime£©
ÈÝÆ÷ÔËÐл·¾³ÊǸºÔðÔËÐÐÈÝÆ÷µÄÈí¼þ¡£Kubernetes Ö§³Ö¶à¸öÈÝÆ÷ÔËÐл·¾³: Docker¡¢ containerd¡¢CRI-O ÒÔ¼°ÈκÎʵÏÖ Kubernetes CRI (ÈÝÆ÷ÔËÐл·¾³½Ó¿Ú)¡£
´ËÍ⣬K8s »¹ÓÐһϵÁеIJå¼þ×é¼þ£¬¿ÉÒԲο¼£º Kubernetes Addons
3.3¡¢Kubernetes ¶ÔÏó
API ¶ÔÏóÊÇ K8s ¼¯ÈºÖеĹÜÀí²Ù×÷µ¥Ôª¡£K8s ¼¯ÈºÏµÍ³Ã¿Ö§³ÖÒ»Ïîй¦ÄÜ£¬ÒýÈëÒ»Ïîм¼Êõ£¬Ò»¶¨»áÐÂÒýÈë¶ÔÓ¦µÄ API ¶ÔÏó£¬Ö§³Ö¶Ô¸Ã¹¦ÄܵĹÜÀí²Ù×÷¡£ÀýÈ縱±¾¼¯ Replica Set ¶ÔÓ¦µÄ API ¶ÔÏóÊÇ RS¡£
ÿ¸ö API ¶ÔÏó¶¼ÓÐ 3 ´óÀàÊôÐÔ£ºÔªÊý¾Ý metadata¡¢¹æ·¶ spec ºÍ״̬ status¡£ÔªÊý¾ÝÊÇÓÃÀ´±êʶ API ¶ÔÏóµÄ£¬Ã¿¸ö¶ÔÏó¶¼ÖÁÉÙÓÐ 3 ¸öÔªÊý¾Ý£ºnamespace£¬name ºÍ uid£»³ý´ËÒÔÍ⻹Óи÷ÖÖ¸÷ÑùµÄ±êÇ© labels ÓÃÀ´±êʶºÍÆ¥Å䲻ͬµÄ¶ÔÏ󡣹淶 spec ÃèÊöÁËÓû§ÆÚÍû K8s ¼¯ÈºÖеķֲ¼Ê½ÏµÍ³´ïµ½µÄÀíÏë״̬£¨Desired State£©£¬ÀýÈçÓû§¿ÉÒÔͨ¹ý¸´ÖÆ¿ØÖÆÆ÷ Replication Controller ÉèÖÃÆÚÍûµÄ Pod ¸±±¾ÊýΪ 3£»status ÃèÊöÁËϵͳʵ¼Êµ±Ç°´ïµ½µÄ״̬£¨Status£©£¬ÀýÈçϵͳµ±Ç°Êµ¼ÊµÄ Pod ¸±±¾ÊýΪ 2£»ÄÇô¸´ÖÆ¿ØÖÆÆ÷µ±Ç°µÄ³ÌÐòÂß¼¾ÍÊÇ×Ô¶¯Æô¶¯Ð嵀 Pod£¬ÕùÈ¡´ïµ½¸±±¾ÊýΪ 3¡£
K8s ÖÐËùÓеÄÅäÖö¼ÊÇͨ¹ý API ¶ÔÏóµÄ spec È¥ÉèÖõģ¬Ò²¾ÍÊÇÓû§Í¨¹ýÅäÖÃϵͳµÄÀíÏë״̬À´¸Ä±äϵͳ£¬ÕâÊÇ k8s ÖØÒªÉè¼ÆÀíÄîÖ®Ò»£¬¼´ËùÓеIJÙ×÷¶¼ÊÇÉùÃ÷ʽ£¨Declarative£©µÄ¶ø²»ÊÇÃüÁîʽ£¨Imperative£©µÄ¡£ÉùÃ÷ʽµÄ²Ù×÷£¬Ïà¶ÔÓÚÃüÁîʽ²Ù×÷£¬¶ÔÓÚÖØ¸´²Ù×÷ÄÜʵÏÖÃݵÈЧ¹û£¬Õâ¶ÔÓÚÈÝÒ׳öÏÖÊý¾Ý¶ªÊ§»òÖØ¸´µÄ·Ö²¼Ê½»·¾³À´ËµÊǺÜÖØÒªµÄ¡£ÁíÍ⣬ÉùÃ÷ʽ²Ù×÷¸üÈÝÒ×±»Óû§Ê¹Ó㬿ÉÒÔʹϵͳÏòÓû§Òþ²ØÊµÏÖµÄϸ½Ú£¬Òþ²ØÊµÏÖµÄϸ½ÚµÄͬʱ£¬Ò²¾Í±£ÁôÁËϵͳδÀ´³ÖÐøÓÅ»¯µÄ¿ÉÄÜÐÔ¡£´ËÍ⣬ÉùÃ÷ʽµÄ API£¬Í¬Ê±Òþº¬ÁËËùÓÐµÄ API ¶ÔÏó¶¼ÊÇÃû´ÊÐÔÖʵģ¬ÀýÈç Service¡¢Volumn ÕâЩ API ¶¼ÊÇÃû´Ê£¬ÕâЩÃû´ÊÃèÊöÁËÓû§ËùÆÚÍûµÃµ½µÄÒ»¸öÄ¿±ê·Ö²¼Ê½¶ÔÏó¡£
3.3.1¡¢Pod
Pod ÊÇ Kubernetes ½øÐд´½¨¡¢µ÷¶ÈºÍ¹ÜÀíµÄ×îСµÄÔ×Óµ¥Î»£¬ÊÇ Kubernetes ¼¯ÈºÖеÄÒ»¸öÓ¦ÓÃʵÀý¡£Pod ÊÇÒ»¸ö»ò¶à¸öÏà¹ØÈÝÆ÷µÄ×éºÏ£¬Pod Èç¹ûÓÐÊǶà¸öÈÝÆ÷£¬ÕâЩÈÝÆ÷Ò»°ãÊÇ¡°³¬Ç×ÃܹØÏµ¡±£¬²¢¹²Ïí´æ´¢¡¢ÍøÂç×ÊÔ´¡£Ò»°ã Pod ÓÐ 2 ÖÖʹÓ÷½Ê½¡£1 Êǵ¥ÈÝÆ÷ Pod£¬×î³£¼ûµÄÓ¦Ó÷½Ê½£»2 ÊǶàÈÝÆ÷ Pod£¬¶ÔÓÚ¶àÈÝÆ÷ Pod£¬Kubernetes »á±£Ö¤ËùÓеÄÈÝÆ÷¶¼ÔÚͬһ̨ÎïÀíÖ÷»ú»òÐéÄâÖ÷»úÖÐÔËÐС£¶àÈÝÆ÷ Pod ÊÇÏà¶Ô¸ß½×µÄʹÓ÷½Ê½£¬³ý·ÇÓ¦ÓÃñîºÏÌØ±ðÑÏÖØ£¬Ò»°ã²»ÍƼöʹÓÃÕâÖÖ·½Ê½¡£Ò»¸ö Pod ÄÚµÄÈÝÆ÷¹²Ïí IP µØÖ·ºÍ¶Ë¿Ú·¶Î§£¬ÈÝÆ÷Ö®¼ä¿ÉÒÔͨ¹ý localhost »¥Ïà·ÃÎÊ¡£
Pod ²¢²»Ìṩ±£Ö¤Õý³£ÔËÐеÄÄÜÁ¦£¬ÒòΪ¿ÉÄÜÔâÊÜ Node ½ÚµãµÄÎïÀí¹ÊÕÏ¡¢ÍøÂç·ÖÇøµÈµÈµÄÓ°Ï죬ÕûÌåµÄ¸ß¿ÉÓÃÊÇ Kubernetes ¼¯ÈºÍ¨¹ýÔÚ¼¯ÈºÄÚµ÷¶È Node À´ÊµÏֵġ£Í¨³£Çé¿öÏÂÎÒÃDz»ÒªÖ±½Ó´´½¨ Pod£¬Ò»°ã¶¼ÊÇͨ¹ý Controller À´½øÐйÜÀí¡£Pod ÌṩÁ˱ÈÈÝÆ÷¸ü¸ß²ã´ÎµÄ³éÏó£¬ÊÇÒ»¸öÐéÄâ¸ÅÄÄÜ´øÀ´Ã÷ÏԵĺô¦£º
- Pod ×öΪһ¸ö¿ÉÒÔ¶ÀÁ¢ÔËÐеķþÎñµ¥Ôª£¬¼ò»¯ÁËÓ¦Óò¿ÊðµÄÄѶȣ¬ÒÔ¸ü¸ßµÄ³éÏó²ã´ÎΪӦÓò¿Êð¹ÜÌṩÁ˼«´óµÄ·½±ã¡£
- Pod ×öΪ×îСµÄÓ¦ÓÃʵÀý¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬Òò´Ë¿ÉÒÔ·½±ãµÄ½øÐв¿Êð¡¢Ë®Æ½À©Õ¹ºÍÊÕËõ¡¢·½±ã½øÐе÷¶È¹ÜÀíÓë×ÊÔ´µÄ·ÖÅä¡£
- Pod ÖеÄÈÝÆ÷¹²ÏíÏàͬµÄÊý¾ÝºÍÍøÂçµØÖ·¿Õ¼ä£¬Pod Ö®¼äÒ²½øÐÐÁËͳһµÄ×ÊÔ´¹ÜÀíÓë·ÖÅä¡£
Sidecar
ÎÒÃÇ¿ÉÒÔÔÚÒ»¸ö Pod Öа´ÕÕ˳ÐòÆô¶¯Ò»¸ö»ò¶à¸ö¸¨ÖúÈÝÆ÷£¬À´Íê³ÉһЩ¶ÀÁ¢ÓÚÖ÷½ø³Ì£¨Ö÷ÈÝÆ÷£©Ö®ÍâµÄ¹¤×÷£¬Íê³É¹¤×÷ºóÕâЩ¸¨ÖúÈÝÆ÷»áÒÀ´ÎÍ˳ö£¬Ö®ºóÖ÷ÈÝÆ÷²Å»áÆô¶¯£¬ÕâÖÖÈÝÆ÷Éè¼ÆÄ£Ê½½Ð×ö sidecar¡£±ÈÈç¶ÔÓÚǰ¶Ë Web Ó¦Óã¬Èç¹û°Ñ¹¹½¨ºóµÄ Js ÏîÄ¿·Åµ½ Nginx ¾µÏñµÄ/usr/share/nginx/html Ŀ¼Ï£¬Nginx ºÍ Js Ó¦ÓÃ×ö³ÉÒ»¸ö¾µÏñÔËÐÐÈÝÆ÷£¬Ã¿´ÎÓ¦ÓÃÓиüлòÕß Nginx Òª×öÉý¼¶¡¢¸üÐÂÅäÖòÙ×÷¶¼ÐèÒªÖØÐÂ×öÒ»¸ö¾µÏñ£¬·Ç³£Âé·³¡£ÓÐÁË Pod Ö®ºó£¬ÕâÑùµÄÎÊÌâ¾ÍºÜÈÝÒ×½â¾öÁË¡£ÎÒÃÇ¿ÉÒÔ°Ñǰ¶Ë Web Ó¦ÓÃºÍ Nginx ·Ö±ð×ö³É¾µÏñ£¬È»ºó°ÑËüÃÇ×÷Ϊһ¸ö Pod ÀïµÄÁ½¸öÈÝÆ÷"×éºÏ"ÔÚÒ»Æð¡£
ËùÓÐ spec.initContainers ¶¨ÒåµÄÈÝÆ÷£¬¶¼»á±È spec.containers ¶¨ÒåµÄÓû§ÈÝÆ÷ÏÈÆô¶¯¡£²¢ÇÒ£¬Init ÈÝÆ÷»á°´Ë³ÐòÖðÒ»Æô¶¯£¬Ö±µ½ËüÃǶ¼Æô¶¯²¢ÇÒÍ˳öÁË£¬Óû§ÈÝÆ÷²Å»áÆô¶¯¡£Õâ¾ÍÊÇÈÝÆ÷Éè¼ÆÄ£Ê½Àï×î³£ÓõÄÒ»ÖÖģʽ£ºsidecar¡£¹ËÃû˼Ò壬sidecar Ö¸µÄ¾ÍÊÇÎÒÃÇ¿ÉÒÔÔÚÒ»¸ö Pod ÖУ¬Æô¶¯Ò»¸ö¸¨ÖúÈÝÆ÷£¬À´Íê³ÉһЩ¶ÀÁ¢ÓÚÖ÷½ø³Ì£¨Ö÷ÈÝÆ÷£©Ö®ÍâµÄ¹¤×÷¡£
Pod ºÍ¿ØÖÆÆ÷
Äã¿ÉÒÔʹÓù¤×÷¸ºÔØ×ÊÔ´À´´´½¨ºÍ¹ÜÀí¶à¸ö Pod¡£ ×ÊÔ´µÄ¿ØÖÆÆ÷Äܹ»´¦Àí¸±±¾µÄ¹ÜÀí¡¢ÉÏÏߣ¬²¢ÔÚ Pod ʧЧʱÌṩ×ÔÓúÄÜÁ¦¡£ ÀýÈ磬Èç¹ûÒ»¸ö½Úµãʧ°Ü£¬¿ØÖÆÆ÷×¢Òâµ½¸Ã½ÚµãÉ쵀 Pod ÒѾֹͣ¹¤×÷£¬ ¾Í¿ÉÒÔ´´½¨Ìæ»»Ð﵀ Pod¡£µ÷¶ÈÆ÷»á½«ÌæÉí Pod µ÷¶Èµ½Ò»¸ö½¡¿µµÄ½ÚµãÖ´ÐС£
ÏÂÃæÊÇһЩ¹ÜÀíÒ»¸ö»òÕß¶à¸ö Pod µÄ¹¤×÷¸ºÔØ×ÊÔ´µÄʾÀý£º
- ReplicaSet
ReplicaSet ÊÇÐÂÒ»´úµÄ ReplicationController£¬ÓµÓиüÇ¿±í´ïÄÜÁ¦µÄ pod ±êǩѡÔñÆ÷¡£Ä¿µÄÊÇά»¤Ò»×éÔÚÈκÎʱºò¶¼´¦ÓÚÔËÐÐ״̬µÄ Pod ¸±±¾µÄÎȶ¨¼¯ºÏ¡£ Òò´Ë£¬Ëüͨ³£ÓÃÀ´±£Ö¤¸ø¶¨ÊýÁ¿µÄ¡¢ÍêÈ«ÏàͬµÄ Pod µÄ¿ÉÓÃÐÔ¡£
- Deployment
Ò»¸ö Deployment Ϊ Pods ºÍ ReplicaSets ÌṩÉùÃ÷ʽµÄ¸üÐÂÄÜÁ¦¡£Ä㸺ÔðÃèÊö Deployment ÖÐµÄ Ä¿±ê״̬£¬¶ø Deployment ¿ØÖÆÆ÷£¨Controller£© ÒÔÊÜ¿ØËÙÂʸü¸Äʵ¼Ê״̬£¬ ʹÆä±äΪÆÚÍû״̬¡£Äã¿ÉÒÔ¶¨Òå Deployment ÒÔ´´½¨Ð嵀 ReplicaSet£¬»òɾ³ýÏÖÓÐ Deployment£¬ ²¢Í¨¹ýÐ嵀 Deployment ÊÕÑøÆä×ÊÔ´¡£
- StatefulSet
StatefulSet ÊÇÓÃÀ´¹ÜÀíÓÐ״̬ӦÓõŤ×÷¸ºÔØ API ¶ÔÏó¡£StatefulSet ÓÃÀ´¹ÜÀíij Pod ¼¯ºÏµÄ²¿ÊðºÍÀ©Ëõ£¬ ²¢ÎªÕâЩ Pod Ìṩ³Ö¾Ã´æ´¢ºÍ³Ö¾Ã±êʶ·û¡£ºÍ Deployment ÀàËÆ£¬ StatefulSet ¹ÜÀí»ùÓÚÏàͬÈÝÆ÷¹æÔ¼µÄÒ»×é Pod¡£µ«ºÍ Deployment ²»Í¬µÄÊÇ£¬ StatefulSet ΪËüÃǵÄÿ¸ö Pod ά»¤ÁËÒ»¸öÓÐÕ³Ð﵀ ID¡£ÕâЩ Pod ÊÇ»ùÓÚÏàͬµÄ¹æÔ¼À´´´½¨µÄ£¬ µ«ÊDz»ÄÜÏà»¥Ìæ»»£ºÎÞÂÛÔõôµ÷¶È£¬Ã¿¸ö Pod ¶¼ÓÐÒ»¸öÓÀ¾Ã²»±äµÄ ID¡£
- DaemonSet
DaemonSet È·±£È«²¿£¨»òÕßijЩ£©½ÚµãÉÏÔËÐÐÒ»¸ö Pod µÄ¸±±¾¡£ µ±Óнڵã¼ÓÈ뼯Ⱥʱ£¬ Ò²»áΪËûÃÇÐÂÔöÒ»¸ö Pod ¡£ µ±Óнڵã´Ó¼¯ÈºÒƳýʱ£¬ÕâЩ Pod Ò²»á±»»ØÊÕ¡£É¾³ý DaemonSet ½«»áɾ³ýËü´´½¨µÄËùÓÐ Pod¡£DaemonSet µÄһЩµäÐÍÓ÷¨£ºÔÚÿ¸ö½ÚµãÉÏÔËÐм¯ÈºÊØ»¤½ø³Ì£¬ÔÚÿ¸ö½ÚµãÉÏÔËÐÐÈÕÖ¾ÊÕ¼¯ÊØ»¤½ø³Ì£¬ÔÚÿ¸ö½ÚµãÉÏÔËÐÐ¼à¿ØÊØ»¤½ø³Ì¡£
3.4¡¢kubernetes ²¿ÊðÔÀíºÍÁ÷³Ì°¸Àý

£¨1£©´´½¨Ò»¸öÃèÊö¼¯ÈºµÄËùÐè״̬ÅäÖÃµÄ YAML Îļþ¡£
£¨2£©Í¨¹ý kubectl£¨Kubernetes ÃüÁîÐнӿڣ©½« YAML ÎļþÓ¦Óõ½¼¯Èº¡£
£¨3£©Kubectl ½«ÇëÇóÌá½»¸ø kube-apiserver£¬ºóÕßÔÚ½«¸ü¸Ä¼Ç¼µ½Êý¾Ý¿â etcd£¬ ֮ǰ»á¶ÔÇëÇó½øÐÐÉí·ÝÑéÖ¤ºÍÊÚȨ¡£
£¨4£©Kube-controller-manager ³ÖÐø¼àÊÓϵͳÊÇ·ñÓÐеÄÇëÇ󣬲¢Å¬Á¦½«ÏµÍ³×´Ì¬µ÷½ÚÖÁËùÐè״̬ - Ôڴ˹ý³ÌÖд´½¨ ReplicaSet¡¢²¿ÊðºÍ Pod¡£
£¨5£©ÔÚËùÓпØÖÆÆ÷¶¼ÔËÐÐÖ®ºó£¬kube-scheduler »á¿´µ½ÓÐ Pod ´¦ÓÚ¡°¹ÒÆð¡±×´Ì¬£¬ÒòΪËüÃÇÉÐδ±»°²ÅÅÔÚ½ÚµãÉÏÔËÐС£scheduler ³ÌÐò»áΪ Pod ²éÕÒºÏÊʵĽڵ㣬ȻºóÓëÿ¸ö½ÚµãÖÐµÄ kubelet ͨÐÅÒÔ¿ØÖƲ¢Æô¶¯²¿Êð¡£
3.5¡¢Kubernetes ¼Ü¹¹¹Ø¼üÉè¼ÆÀíÄî
£¨1£© ÉùÃ÷ʽ API £º¿ª·¢Õß¿ÉÒÔ¹Ø×¢ÓÚÓ¦ÓÃ×ÔÉí£¬¶ø·ÇϵͳִÐÐϸ½Ú¡£±ÈÈç Deployment(ÎÞ״̬ӦÓÃ)¡¢ StatefulSet(ÓÐ״̬ӦÓÃ)¡¢Job(ÈÎÎñÀàÓ¦ÓÃ)µÈ²»Í¬×ÊÔ´ÀàÐÍ£¬ÌṩÁ˶Բ»Í¬ÀàÐ͹¤×÷¸ºÔصijéÏó;¶Ô Kubernetes ʵÏÖ¶øÑÔ£¬»ùÓÚÉùÃ÷ʽ API ¿ÉÒÔÌṩ¸ü¼Ó½¡×³µÄ·Ö²¼Ê½ÏµÍ³ÊµÏÖ¡£
£¨2£© ¿ÉÀ©Õ¹ÐԼܹ¹ £ºËùÓÐ K8s ×é¼þ¶¼ÊÇ»ùÓÚÒ»Öµġ¢¿ª·ÅµÄ API ʵÏֺͽ»»¥;Èý·½¿ª·¢ÕßÒ²¿Éͨ¹ý CRD(Custom Resource Definition)/Operator µÈ·½·¨ÌṩÁìÓòÏà¹ØµÄÀ©Õ¹ÊµÏÖ£¬¼«´óÌáÉýÁË K8s µÄÄÜÁ¦¡£
£¨3£© ¿ÉÒÆÖ²ÐÔ £ºK8s ͨ¹ýһϵÁгéÏóÈç Loadbalance Service(¸ºÔؾùºâ·þÎñ)¡¢CNI(ÈÝÆ÷ÍøÂç½Ó¿Ú)¡¢CSI(ÈÝ Æ÷´æ´¢½Ó¿Ú)£¬°ïÖúÒµÎñÓ¦ÓÿÉÒÔÆÁ±Îµ×²ã»ù´¡ÉèÊ©µÄʵÏÖ²îÒ죬ʵÏÖÈÝÆ÷Áé»îÇ¨ÒÆµÄÉè¼ÆÄ¿±ê¡£
Èý¡¢ÔÆÔÉú΢·þÎñ
¶à¸ö¡°Î¢·þÎñ¡±¹²Í¬ÐγÉÁËÒ»¸öÎïÀí¶ÀÁ¢µ«Âß¼ÍêÕûµÄ·Ö²¼Ê½Î¢·þÎñÌåϵ¡£ÕâЩ΢·þÎñÏà¶Ô¶ÀÁ¢£¬Í¨¹ý½âñîÑз¢¡¢²âÊÔÓ벿ÊðÁ÷³Ì£¬Ìá¸ßÕûÌåµü´úЧÂÊ¡£Î¢·þÎñģʽͨ¹ý·Ö²¼Ê½¼Ü¹¹½«Ó¦ÓÃˮƽÀ©Õ¹ºÍÈßÓಿÊ𣬴Ӹù±¾ÉϽâ¾öÁ˵¥ÌåÓ¦ÓÃÔÚÍØÕ¹ÐÔºÍÎȶ¨ÐÔÉÏ´æÔÚµÄÏÈÌì¼Ü¹¹È±ÏÝ¡£µ«Ò²Òª×¢Ò⵽΢·þÎñÄ£ÐÍÒ²ÃæÁÙ×Å·Ö²¼Ê½ÏµÍ³µÄµäÐÍÌôÕ½: ÈçºÎ¸ßЧµ÷ÓÃÔ¶³Ì·½·¨¡¢ÈçºÎʵÏÖ¿É¿¿µÄϵͳÈÝÁ¿Ô¤¹À¡¢ÈçºÎ½¨Á¢¸ºÔؾùºâÌåϵ¡¢ÈçºÎÃæÏòËÉñîºÏϵͳ½øÐм¯³É²âÊÔ¡¢ÈçºÎÃæÏò´ó¹æÄ£¸´ÔÓ¹ØÁªÓ¦ÓõIJ¿ÊðÓëÔËά¡£
ÔÚÔÆÔÉúʱ´ú£¬ÔÆÔÉú΢·þÎñÌåϵ½«³ä·ÖÀûÓÃÔÆ×ÊÔ´µÄ¸ß¿ÉÓúͰ²È«Ìåϵ£¬ÈÃÓ¦ÓûñµÃ¸üÓб£Õϵĵ¯ÐÔ¡¢¿ÉÓÃÐÔÓ밲ȫÐÔ¡£Ó¦Óù¹½¨ÔÚÔÆËùÌṩµÄ»ù´¡ÉèÊ©Óë»ù´¡·þÎñÖ®ÉÏ£¬³ä·ÖÀûÓÃÔÆ·þÎñËù´øÀ´µÄ±ã½ÝÐÔ¡¢Îȶ¨ÐÔ£¬½µµÍÓ¦Óüܹ¹µÄ¸´ÔÓ¶È¡£ÔÆÔÉúµÄ΢·þÎñÌåϵҲ½«°ïÖúÓ¦Óüܹ¹È«ÃæÉý¼¶£¬ÈÃÓ¦ÓÃÌìÈ»¾ßÓиüºÃµÄ¿É¹Û²âÐÔ¡¢¿É¿ØÖÆÐÔ¡¢¿ÉÈÝ´íÐÔµÈÌØÐÔ¡£
×Ô´Ó΢·þÎñ¼Ü¹¹ÀíÄîÔÚ 2011 ÄêÌá³öÒÔÀ´£¬µäÐ͵ļܹ¹Ä£Ê½°´³öÏÖµÄÏȺó˳Ðò´óÖ·ÖΪËÄ´ú¡£
µÚÒ»´ú£ºÓ¦ÓÃ×ÔÉíÐèÒª½â¾öÉÏÏÂÓÎѰַ¡¢Í¨Ñ¶¡¢ÈÝ´íµÈÎÊÌâ¡£Ëæ×Å΢·þÎñ¹æÄ£À©´ó£¬·þÎñѰַÂß¼µÄ´¦Àí±äµÃÔ½À´Ô½¸´ÔÓ£¬¼´Ê¹Í¬Ò»±à³ÌÓïÑÔµÄÁíÒ»¸öÓ¦Óã¬ÉÏÊö΢·þÎñÁ÷Á¿¹ÜÀíµÈµÄ»ù´¡ÄÜÁ¦ÎÞ·¨¸´Ó㬶¼ÐèÒªÖØÐÂʵÏÖÒ»±é¡£

µÚ¶þ´ú£ºÒýÈëÁËÅÔ··þÎñ×¢²áÖÐÐÄ£¨Èç ZooKeeper£©×÷Ϊе÷ÕßÀ´Íê³É·þÎñµÄ×Ô¶¯×¢²áºÍ·¢ÏÖ¡£·þÎñÖ®¼äµÄͨѶÒÔ¼°ÈÝ´í»úÖÆ¿ªÊ¼Ä£¿é»¯£¬ÐγɶÀÁ¢·þÎñ¿ò¼Ü¡£µ«Ëæ×Å·þÎñ¿ò¼ÜÄÚ¹¦ÄÜÈÕÒæÔö¶à£¬¿çÓïÑԵĻù´¡¹¦Äܸ´ÓÃÏÔµÃÊ®·ÖÀ§ÄÑ£¬Ê¹µÃ΢·þÎñµÄ¿ª·¢Õß±»ÆÈ±»ÏÞ¶¨ÔÚijÖÖÌØ¶¨ÓïÑÔÉÏ£¬ÕâҲΥ±³ÁË΢·þÎñµÄÃô½Ýµü´úÔÔò¡£

µÚÈý´ú£º·þÎñÍø¸ñ£¬ÔÀ´±»Ä£¿é»¯µ½·þÎñ¿ò¼ÜÀïµÄ΢·þÎñ»ù´¡ÄÜÁ¦£¬±»½øÒ»²½µÄ´ÓÒ»¸ö SDK Ñݽø³ÉΪһ¸ö¶ÀÁ¢½ø³Ì - Sidecar£¨±ß³µ£©¡£Õâ¸ö±ä»¯Ê¹µÃµÚ¶þ´ú¼Ü¹¹ÖжàÓïÑÔÖ§³ÖÎÊÌâµÃÒÔ³¹µ×½â¾ö£¬Î¢·þÎñ»ù´¡ÄÜÁ¦ÑݽøºÍÒµÎñÂß¼µü´ú³¹µ×½âñî¡£Õâ¸ö¼Ü¹¹¾ÍÊÇÔÚÔÆÔÉúʱ´úµÄ΢·þÎñ¼Ü¹¹ - Cloud Native Microservices£¬±ß³µ£¨Sidecar£©½ø³Ì¿ªÊ¼½Ó¹Ü΢·þÎñÓ¦ÓÃÖ®¼äµÄÁ÷Á¿£¬³ÐÔØµÚ¶þ´úÖзþÎñ¿ò¼ÜµÄ¹¦ÄÜ£¬°üÀ¨·þÎñ·¢ÏÖ¡¢µ÷ÓÃÈÝ´í¡¢·þÎñÖÎÀí¹¦ÄÜ£¬ÀýÈç£ºÈ¨ÖØÂ·ÓÉ¡¢»Ò¶È·ÓÉ¡¢Á÷Á¿ÖØ·Å¡¢·þÎñαװµÈ¡£

µÚËÄ´ú£ºServerless ΢·þÎñ£¬Î¢·þÎñ½øÒ»²½ÓÉÒ»¸öÓ¦Óüò»¯ÎªÎ¢Âß¼£¨Micrologic£©£¬´Ó¶ø¶Ô±ß³µÄ£Ê½Ìá³öÁ˸ü¸ßËßÇ󣬸ü¶à¿É¸´Óõķֲ¼Ê½ÄÜÁ¦´ÓÓ¦ÓÃÖаþÀ룬±»Ï³Áµ½±ß³µÖУ¬ÀýÈ磺״̬¹ÜÀí¡¢×ÊÔ´°ó¶¨¡¢Á´Â·×·×Ù¡¢Ê Îñ¹ÜÀí¡¢°²È«µÈ¡£Í¬Ê±£¬ÔÚ¿ª·¢²àÌá³«ÃæÏò±¾µØ±à³ÌµÄÀíÄÌṩ±ê×¼ API ÆÁ±Îµôµ×²ã×ÊÔ´¡¢·þÎñ¡¢ »ù´¡ÉèÊ©µÄ²îÒ죬½øÒ»²½½µµÍ΢·þÎñ¿ª·¢ÄѶȡ£Ò²¾ÍÊÇĿǰҵ½çÌá³öµÄ¶àÔËÐÐʱ΢·þÎñ¼Ü¹¹£¨Muti-Runtime Microservices£©¡£

ËÄ¡¢Serverless
¹ýȥһֱͨ¹ý¸÷ÖÖ;¾¶Ñ§Ï°¡¢Ñо¿ Serverless£¬µ±ÎÒÏëÔÚÕâ¸öÕ½ڸø Serverless ¸øÒ»¸ö¹Ù·½µÄ¶¨Ò壬·¢ÏְٶȰٿƾ¹È»Ã»ÓÐ Serverless Õâ¸ö´ÊÌõ£¬Ò²ËµÃ÷ÁË Serverless ÔÚÐÐÒµ»¹ÊÇÒ»¸ö·Ç³£ÐµĸÅÄÈÔÈ»´¦ÓÚ̽Ë÷ºÍ·¢Õ¹½×¶Î£¬²¢ÇÒ¶ÔÓÚ Serverless ҲûÓÐÒ»¸öȨÍþµÄ¶¨Ò壬µ«ÎÒÃÇ¿ÉÒÔ´Ó Serverless ±³ºóµÄÔ¸¾°ºÍ˼ÏëÀ´Àí½â Serverless ÊÇʲô£¿
ÎÒÃÇ¿´Ï AWS Ôõô¶¨Òå Serverless µÄ£º
Serverless µÄÈ«³ÆÊÇ Serverless Computing ÎÞ·þÎñÆ÷ÔËË㣬ÒÔÆ½Ì¨¼´·þÎñ£¨PaaS£©Îª»ù´¡£¬ÈÃÓû§¿ÉÒÔÔÚ²»¿¼ÂÇ·þÎñÆ÷µÄÇé¿öϹ¹½¨²¢ÔËÐÐÓ¦ÓóÌÐòºÍ·þÎñ£¬¿ª·¢ÕßÎÞÐè¹Ø×¢»ù´¡ÉèÊ©¹ÜÀíÈÎÎñ£¬ÀýÈç·þÎñÆ÷»ò¼¯ÈºÅäÖá¢ÐÞ²¹¡¢²Ù×÷ϵͳά»¤ºÍÈÝÁ¿Ô¤Öã¬Äܹ»Îª¼¸ºõÈκÎÀàÐ͵ÄÓ¦ÓóÌÐò»òºó¶Ë·þÎñ¹¹½¨ÎÞ·þÎñÆ÷Ó¦ÓóÌÐò¡£ÎÞ·þÎñÆ÷Ó¦ÓóÌÐòÊÇÓÉʼþÇý¶¯µÄ£¬²¢Í¨¹ýÓë¼¼ÊõÎÞ¹ØµÄ API »òÏûÏ¢ÊÕ·¢ÊµÏÖËÉÉ¢ñîºÏ¡£ÏìӦʼþ¶øÖ´ÐÐʼþÇý¶¯ÐÍ´úÂ룬ÀýÈç״̬¸ü¸Ä»òÖն˽ڵãÇëÇó£¬Ê¼þÇý¶¯Ðͼܹ¹½«´úÂëÓë״̬½âñËÉÉ¢ñîºÏ×é¼þÖ®¼äµÄ¼¯³Éͨ³£Ê¹ÓÃÏûÏ¢ÊÕ·¢Òì²½Íê³É¡£
¡°Serverless¡±Õâ¸öÃû×Ö±¾ÉíÃè»æÁ˸ü¼ÊõµÄÀïÃæ£ºÎÞ·þÎñÆ÷£¬ÕâÀïµÄ less Æäº¬Òå²»ÊÇ˵ӦÓõÄÔËÐв»ÐèÒª·þÎñÆ÷£¬¶øÊÇÕë¶ÔÓû§µÄÐÄÖǸºµ£ºÍ¹Ø×¢µãÀ´ËµµÄ£¬Óû§¹¹½¨Ò»¸öÓ¦ÓÃÎÞÐè¹ØÐÄ·þÎñÆ÷¡¢ÔËÐÐʱ¡¢À©ËõÈݵȼ¼ÊõʵʩµÄ¸ºµ££¬Í¨¹ý Serverless ƽ̨µÄÍйܷþÎñºÍº¯Êý¿ìËÙ¹¹½¨Ò»¸öȫеÄÓ¦Óá£
¡°Ãû¿ÉÃû£¬·Ç³£Ãû¡±¡£Serverless ¿ÉÒÔ·ÒëΪÎÞ·þÎñÆ÷£¬µ«È´ÎÞ·¨ÍêÕû²ûÊö±³ºóµÄ±¾ÖÊ¡¢Ô¸¾°ºÍ¼ÛÖµ¡£
ÎÒÃÇ¿´ Serverless ¸øÓû§´øÀ´ÁËʲô£¿
רע
¡°Less is more¡± ¡£ÆóÒµÔڴÊý×Ö»¯Ó¦ÓõÄÖÕ¼«Ä¿µÄÊÇʵÏÖÉÌÒµ¼ÛÖµµÄ×î´ó»¯»Ø±¨£¬Í¶ÈëÊý×Ö»¯Ó¦ÓôµÄ×ÊÔ´ºÍ³É±¾²»ÊÇÎÞÏ޵ģ¬ÕâЩͶÈëÖÐÄܹ»¸øÆóÒµ´øÀ´ÕæÕý¼ÛÖµµÄÊÇÒµÎñÂß¼/´úÂë£¬ÖØ¸´ÐԵļ¼ÊõÐÔ¹¤×÷£¨À©ËõÈÝ¡¢²¿Êð¡¢ÈÝÔÖ¡¢¼à¿Ø¡¢ÈÕÖ¾¡¢°²È«²¹¶¡µÈ£©ÊÇÀ´Ö§³ÅÒµÎñ´úÂëÌṩ·þÎñµÄ£¬±¾Éí²»²úÉúÈκÎÒµÎñ¼ÛÖµ¡£Serverless µÄ Less ¾ÍÊÇÈÃÓû§¾¡¿ÉÄÜ ÉÙ µÄ¹Ø×¢ºÍÖ´Ðз±ËöÇÒÖØ¸´ÐԵļ¼ÊõÐÔ¹¤×÷£¬More ¾ÍÊÇÓû§¾ÍÄܾ¡¿ÉÄÜ ¶à µÄ°Ñ×ÊÔ´¾Û½¹µ½Äܲú³ö¼ÛÖµµÄÒµÎñ´úÂëÉÏ¡£ËùÒÔÒ²¿ÉÒÔ˵£¬ Serverless Ò»ÖÖÈÃÓû§×¨×¢ÓÚÒµÎñ¼ÛÖµ½»¸¶µÄ·½·¨ ¡£
¿ì
ÌìÏÂÎ书¡¢Î¨¿ì²»ÆÆ¡£ÓÈÆäÔÚµ±ÈÕ¿ìËÙ±ä¸ïµÄÉÌÒµ»·¾³£¬ÊÇ·ñÄÜ¿ìËÙ¿´×¼»úÓö¡¢×¥×¡»úÓö£¬ÆóÒµµÄÊÔ´íÄÜÁ¦Êǹؼü£¬ÆóÒµÄܹ»¿ìËÙÊÔ´í£¬Òâζ×Å¿ÉÒÔ¿ìËÙ´´Ð£¬Äܹ»¿ìËÙ´´ÐÂÄÜÈÃÆóÒµÔÚ¸´ÔÓ¶à±äµÄ¾ºÕù»·¾³ÖлñµÃÓÅÊÆºÍ³É¹¦¡£¿ìËÙÊÔ´íÒÀÀµÓÚÆóÒµ°Ñ¹¦ÄܺÍÒµÎñµã×ÓÍÆµ½Êг¡µÄËÙ¶È£¬Õâ¸öËÙ¶ÈÓÉÆóÒµ½»¸¶Èí¼þµÄÖÜÆÚ¾ö¶¨£¬Serverless ÀíÄî¾ÍÊÇÈÃÆóÒµÖ»¹Ø×¢ÒµÎñ£¬Í¨¹ý±àÅÅÔÆÍйܷþÎñ»òÖ±½Ó²¿Êð´úÂë¼´¿É¹¹½¨Ö§³ÅÓ¦Ó㬠Ëõ¶ÌÁË´Ó´úÂ뿪·¢µ½Í¶ÈëÉú²úµÄʱ¼ä £¬ÕâÑùÆóÒµ¿ÉÒÔ»ñµÃǰËùδÓеĽ»¸¶Èí¼þ¼ÛÖµµÄËÙ¶È¡£
Óû§ÈçºÎʵÏÖÎÞÐè¹Ø×¢¼¼ÊõÉèÊ©£¬ÉõÖÁÎÞÐ貿ÊðÓ¦ÓþͿÉÒÔ¹¹½¨Ò»¸öÓ¦ÓõÄÄØ£¿Í¨¹ý 2 ÖÖÄÜÁ¦£º
1¡¢BaaS£¨Backend as a Service£©£¬¹«¹²µÄÍйܷþÎñ¡£¹«¹²µÄÍйܷþÎñͨ³£ÊÇÔÆ³§ÉÌÌṩµÄͨÓõġ¢¿ç³¡¾°¡¢¸úÒµÎñÎÞ½ôÃܹØÏµµÄ¹²Ïí·þÎñ¡£ÎÒÃÇÖªµÀ£¬¶ÔÓںܶà³õ´´ÆóÒµÀ´½²£¬65%µÄÓ¦Óà QPM ÊÇСÓÚ 100 µÄ£¬ÊǵäÐ͵ij¤Î²Ó¦Óã¬Èç¹ûÓ¦ÓÃÒÀÀµËùÓзþÎñ¶¼×Ô½¨µÄ»°£¬»á·ÖÉ¢ÔÚºËÐÄÒµÎñµÄͶÈ룬ģºýËûÃǶÔÓÚ´´ÔìÒµÎñ¼ÛÖµºÍÉÌÒµ¼ÛÖµµÄ×¢ÒâÁ¦¡£ÖîÈçµÇ¼¡¢Îļþϵͳ¡¢¶ÔÏó´æ´¢ºÍÊý¾Ý²Ö¿â¡¢ÓïÒô·ÖÎö¡¢Éí·ÝÑéÖ¤µÈÄÜÁ¦Í¨¹ýÍйÜÐÎʽ¹²Ïí¸øÆóÒµ£¬ÆóÒµ²»½ö¿ÉÒÔ¼õÉÙ´óÁ¿µÄ³É±¾£¬Ò²¼Ó¿ìÓ¦ÓõĹ¹½¨¡£
2¡¢FaaS£¨Function as a Service£©£¬º¯Êý¼´·þÎñ¡£FaaS ÊÇÒ»ÖÖ¹¹½¨ºÍ²¿Êð·þÎñÆ÷¶ËÈí¼þµÄз½·¨£¬Á£¶Èϸµ½Äܹ»¶ÀÁ¢µÄ²¿ÊðÒ»¸öº¯Êý¡£ÎÒÃÇͨ¹ý´«Í³·½Ê½²¿Êð·þÎñÆ÷¶ËÈí¼þʱ£¬ÎÒÃÇ´ÓÖ÷»úʵÀý¿ªÊ¼£¬Í¨³£ÊÇÐéÄâ»ú£¨VM£©ÊµÀý»òÈÝÆ÷£¬ÔÚÖ÷»úÖв¿ÊðÎÒÃǵÄÓ¦ÓóÌÐò£¬Èç¹ûÎÒÃǵÄÖ÷»úÊÇ VM »òÈÝÆ÷£¬ÄÇôÎÒÃǵÄÓ¦ÓóÌÐòÊÇÒ»¸ö²Ù×÷ϵͳ½ø³Ì¡£FaaS ¸Ä±äÁËÕâÖÖ²¿Êðģʽ£¬ ²¿ÊðÄ£ÐÍÖÐÉÙÁËÖ÷»úʵÀýºÍÓ¦ÓóÌÐò½ø³Ì£¬ÎÒÃÇÖ»¹Ø×¢ÊµÏÖÓ¦ÓóÌÐòÂß¼µÄ¸÷¸ö²Ù×÷ºÍº¯Êý£¬ÎÒÃǽ«ÕâЩº¯Êý´úÂëµ¥¶ÀÉÏ´«µ½Ôƹ©Ó¦ÉÌÌṩµÄ FaaS ƽ̨¡£º¯ÊýÔÚÔÆ·þÎñÍйܵķþÎñÆ÷½ø³ÌÖÐȱʡ´¦ÓÚ¿ÕÏÐ״̬£¬Ö±µ½ÐèÒªËüÃÇÔËÐеÄʱºò²Å»á±»¼¤»î£¬ ͨ¹ýÅäÖà FaaS ƽ̨À´¼àÌýÿ¸öº¯ÊýµÄ¼¤»îʼþ¡£ µ±¸Ãʼþ·¢Éúʱ£¬FaaS ƽ̨ʵÀý»¯º¯Êý£¬È»ºóʹÓô¥·¢Ê¼þµ÷ÓÃËü¡£ËùÒÔ FaaS ±¾ÖÊÉÏÊÇÒ»ÖÖʼþÇý¶¯µÄÄ£ÐÍ£¬³ýÁËÌṩÍйܺÍÖ´ÐдúÂëµÄƽ̨֮Í⣬FaaS ƽ̨»¹¼¯³ÉÁ˸÷ÖÖͬ²½ºÍÒ첽ʼþÔ´£¬HTTP API Íø¹Ø¾ÍÊÇÒ»ÖÖͬ²½Ê¼þÔ´£¬ÏûÏ¢×ÜÏß¡¢¶ÔÏó´æ´¢»òÀàËÆÓڵĶ¨Ê±Æ÷¾ÍÊÇÒ»ÖÖÒì²½Ô´¡£
ºÜ¶àÈË˵ Serverless ¾ÍÊÇ BaaS+FaaS£¬Ò²ÊDz»ÎÞµÀÀíµÄ¡£
×ܽáÀ´¿´£¬Serverless µÄ¼ÛÖµÓУº
1¡¢ÌáÉýµü´úËÙ¶È £ºÍ¨¹ý¼Ó¿ì¹¹½¨ºÍ·¢²¼ÖÜÆÚÒÔ¼°¼õÉÙÔËÓª¿ªÏú£¬¿ª·¢ÈËÔ±¿ÉÒÔ¿ìËÙ¹¹½¨Ð¹¦ÄÜ¡£×Ô¶¯»¯²âÊԺͷ¢²¼Á÷³Ì¿ÉÒÔ½µµÍ´íÎóÂÊ£¬Òò´Ë²úÆ·Äܹ»¸ü¿ìµØ½øÈëÊг¡¡£
2¡¢¼ÓËÙ´´Ð £ºÀûÓÃÄ£¿é»¯¼Ü¹¹£¬¿ª·¢ÈËÔ±¿ÉÒÔ¿ìËÙ¸ü¸ÄÈκε¥¸öÓ¦ÓóÌÐò×é¼þ£¬²¢½µµÍÕû¸öÓ¦ÓóÌÐòÃæÁٵķçÏÕ£¬Òò´ËÍŶӿÉÒÔ¸üƵ·±µØÊÔÑéÐÂÏë·¨¡£
3¡¢½µµÍ³É±¾ £º°´Ð踶·Ñ£¬ÀûÓð´¼ÛÖµ¸¶·ÑµÄ¶¨¼Ûģʽ£¬ÏÖ´úÓ¦ÓóÌÐò¿ÉÒÔ¼õÉÙ¹ý¶ÈÅäÖúÍÏÐÖÃ×ÊÔ´£¬´Ó¶ø½µµÍ³É±¾¡£¿ª·¢ÕßÎÞÐè¹Ø×¢Í¬ÖÊ»¯µÄ¡¢¸ºµ£·±ÖصĻùÓÚ·þÎñÆ÷µÈ»ù´¡ÉèÊ©µÄ¿ª·¢¡¢ÔËά¡¢°²È«¡¢¸ß¿ÉÓõȹ¤×÷£¬¿ª·¢ºÍά»¤³É±¾Ò²±äµÃ¸üµÍ¡£
4¡¢µ¯ÐÔÉìËõ£º ÄúµÄÓ¦ÓóÌÐò¿É×Ô¶¯À©Õ¹£¬»òͨ¹ýÇл»Õ¼ÓÃ×ÊÔ´£¨ÈçÍÌÍÂÁ¿¡¢Äڴ棩µÄµ¥Î»Êý£¨¶ø²»ÊÇÇл»µ¥¸ö·þÎñÆ÷µÄµ¥Î»Êý£©À´µ÷ÕûÈÝÁ¿£¬´Ó¶øÊµÏÖÀ©Õ¹¡£
¹úÄÚÍâ±È½Ï³öÃûµÄ Serverless ²úÆ·Óа¢ÀﺯÊý¼ÆËã¡¢ÌÚѶ Serverless¡¢AWS Lambda¡¢Azure Functions µÈ¡£½üÁ½ÄêÀ´ Serverless ½üÄêÀ´³Ê¼ÓËÙ·¢Õ¹Ç÷ÊÆ£¬Óû§Ê¹Óà Serverless ¼Ü¹¹ÔÚ¿É¿¿ÐÔ¡¢³É±¾ºÍÑз¢ÔËάЧÂʵȷ½Ãæ»ñµÃÏÔÖøÊÕÒæ£¬ÄÇÔÚÄÄЩ³¡¾°ÊÇ×îÊÊºÏ Serverless£¿×îÄÜ·¢»Ó Serverless ÓÅÊÆÄØ£¿
1¡¢Ð¡³ÌÐò/Web/Moible/API ºó¶Ë·þÎñ £ºÔÚС³ÌÐò¡¢Web/Moible Ó¦Óá¢API ·þÎñµÈ³¡¾°ÖУ¬ÒµÎñÂß¼¸´ÔÓ¶à±ä£¬µü´úÉÏÏßËÙ¶ÈÒªÇó¸ß£¬¶øÇÒÕâÀàÔÚÏßÓ¦Óã¬×ÊÔ´ÀûÓÃÂÊͨ³£Ð¡ÓÚ 30%£¬ÓÈÆäÊÇС³ÌÐòµÈ³¤Î²Ó¦Óã¬×ÊÔ´ÀûÓÃÂʸüÊǵÍÓÚ 10%¡£Serverless ÃâÔËά£¬°´Ð踶·ÑµÄÌØµã·Ç³£ÊʺϹ¹½¨Ð¡³ÌÐò /Web/Mobile/API ºó¶Ëϵͳ£¬Í¨¹ýÔ¤Áô¼ÆËã×ÊÔ´ + ʵʱ×Ô¶¯ÉìËõ£¬¿ª·¢ÕßÄܹ»¿ìËÙ¹¹½¨ÑÓʱÎȶ¨¡¢ÄܳÐÔØ¸ßƵ·ÃÎʵÄÔÚÏßÓ¦Óá£

2¡¢ÎïÁªÍø £ºÎïÁªÍøÒâζ×ųÉǧÉÏÍòµÄÉ豸»áÁ¬ÈëÍøÂ磬ʱ¿ÌÔÚ²»¶ÏµÄ²úÉúÊý¾Ý£¬Õâ¶ÔÊý¾ÝµÄ·ÖÎö¡¢´¦ÀíµÄ¼°Ê±ÐÔÌá³öÁ˺ܸߵÄÌôÕ½¡£Í¨¹ýʹÓà Serverless ¼Ü¹¹£¬ÎïÁªÍøÉ豸Ëù²É¼¯µÄÊý¾Ý½«¿ÉÒÔ×÷ÎªÔÆº¯ÊýµÄ´¥·¢Ê¼þ£¬¶øÊµÏÖÊý¾ÝµÄʵʱ´¦Àí¡¢·ÖÎöºÍÓ¦Óá£Ëæ×ÅÎïÁªÍøÉ豸¼ÆËãÄÜÁ¦µÄ½øÒ»²½ÌáÉý£¬Ôƺ¯Êý×÷Ϊ×îСÁ£¶ÈµÄ¼ÆËãµ¥Ôª£¬Óлú»á±»µ÷¶Èµ½É豸¶ËÔËÐУ¬ÊµÏÖ±ßÔµ¼ÆË㣬´ïµ½¡¸¶Ë - ÔÆ¡¹ÁªºÏµÄ Serverless ¼Ü¹¹¡£
3¡¢ÈÎÎñÅú´¦Àí£º ÔÚ¹¹½¨µäÐÍÈÎÎñÅú´¦Àí£¨ÈçͼÏñ´¦Àí¡¢´ó¹æÄ£ÒôÊÓÆµÎļþתÂ룩ϵͳʱ£¬ÐèÒª°üº¬¼ÆËã×ÊÔ´¹ÜÀí¡¢ÈÎÎñÓÅÏȼ¶µ÷¶È¡¢ÈÎÎñ±àÅÅ¡¢ÈÎÎñ¿É¿¿Ö´ÐеÈһϵÁй¦ÄÜ¡£Í¨¹ý Serverless ¼ÆËãÆ½Ì¨£¬Óû§Ö»ÐèҪרעÓÚÈÎÎñ´¦ÀíÂß¼µÄ´¦Àí£¬ÎÞÐè´Ó»úÆ÷»òÕßÈÝÆ÷²ã¿ªÊ¼¹¹½¨£¬Ò²ÎÞÐ迼ÂÇʹÓÃÏûÏ¢¶ÓÁнøÐÐÈÎÎñÐÅÏ¢µÄ³Ö¾Ã»¯ºÍ¼ÆËã×ÊÔ´·ÖÅ䣬¶øÇÒ Serverless ¼ÆËãµÄ¼«Öµ¯ÐÔ¿ÉÒԺܺõØÂú×ãÍ»·¢ÈÎÎñ϶ÔËãÁ¦µÄÐèÇó£¬Óû§ÎÞÐèʹÓà Kubernetes µÈÈÝÆ÷±àÅÅϵͳʵÏÖ×ÊÔ´µÄÉìËõºÍÈÝ´í£¬×ÔÐд»ò¼¯³É¼à¿Ø±¨¾¯ÏµÍ³¡£Í¨¹ý½«¶ÔÏó´æ´¢·þÎñ»¯²¢ºÍ Serverless ¼ÆËãÆ½Ì¨¼¯³ÉµÄ·½Ê½£¬ÄÜʵʱÏìÓ¦¶ÔÏó´´½¨¡¢É¾³ýµÈ²Ù×÷£¬ÊµÏÖÒÔ¶ÔÏó´æ´¢ÎªÖÐÐĵĴó¹æÄ£Êý¾Ý´¦Àí¡£Óû§¼È¿ÉÒÔͨ¹ýÔöÁ¿´¦Àí¶ÔÏó´æ´¢ÉϵÄÐÂÔöÊý¾Ý£¬Ò²¿ÉÒÔ´´½¨´óÁ¿º¯ÊýʵÀýÀ´²¢Ðд¦Àí´æ Á¿Êý¾Ý¡£

4¡¢ÔËά¼°¼¯³É£º ͨ¹ý¶Ô½ÓÔÆº¯ÊýÒÔ¼°ÔÆÉϵĸ÷¸ö²úÆ·¡¢ÈÕÖ¾·þÎñ¡¢¼à¿Ø¸æ¾¯ÏµÍ³£¬ÔÆÊ±´úµÄÔËάҲ¶¼¿ÉÒÔÓÃÔÆº¯ÊýÀ´¹¹½¨¡£¶¨Ê±´¥·¢µÄÔÆº¯Êý£¬½«¿ÉÒÔ·½±ãµØÌæ´úÐèÒªÔÚÖ÷»úÉÏÀ´ÔËÐеĶ¨Ê±ÈÎÎñ£»¶øÈÕÖ¾»ò¸æ¾¯´¥·¢µÄÔÆº¯Êý£¬½«¿ÉÒÔ¶ÔÔÆÖеÄʼþ×÷³öÁ¢¿Ì»ØÓ¦¼°´¦Àí¡£
Serverless ×÷ΪһÖÖȫеļ¼Êõ¼Ü¹¹£¬¾ßÓкܶàµÄÓŵ㣬Èç½µµÍÔËÓª³É±¾¡¢½µµÍÔËάÐèÇó¡¢½µµÍÈËÁ¦³É±¾ºÍ¼õÉÙ×ÊÔ´¿ªÏúµÈ¡£µ«¼¼ÊõûÓÐÒøµ¯£¬Serverless Ò²´¦ÔÚ·¢Õ¹ÆÚ£¬´æÔÚһЩ±×¶Ë£¬°üÀ¨£º
1¡¢²»Êʺϴ¦Àí¸´ÔÓµÄÒµÎñÂß¼£¬Ëü¸üÊʺϵ÷ÓÃÔÆÉÏµÄÆäËû·þÎñ£¬Õ³ºÏ¹Ø¼üµÄ²úÆ·¡£
2¡¢ÀäÆô¶¯µ¼ÖµĸßÑÓ³ÙÎÊÌâ¡£
3¡¢Serverless µ÷ÓÃÖ®¼ä²»Äܹ²Ïí״̬Èñàд¸´ÔÓ³ÌÐò±äµÃ¼«¶ÈÀ§ÄÑ¡£ÎÞ״̬ÊÇÏÖ´úÓ¦ÓÃ×·ÇóµÄÄ¿±ê£¬¡°12 ÒªËØ¡±Ò²³«µ¼Èç´Ë¡£µ« Serverless ½«ÎÞ״̬½øÐеĸü¼Ó³¹µ×£¬ÔÚ²»Í¬µÄµ÷ÓÃÖ®¼äÎÞ·¨¹²ÏíÄÚ´æ×´Ì¬¡£ÀýÈçµ¥»úÏÞÁ÷ÔÚ±¾µØÊÇÒ»¸ö AtomicInteger ±äÁ¿£¬µ«ÔÚ Serverless ¼Ü¹¹ÖÐËü±ä³É´æ´¢ÔÚÄÚ´æÊý¾Ý¿â£¨Redis£©ÖеÄÒ»Ìõ¼Ç¼£¬¸üгɱ¾¡¢±£Ö¤Ô×ÓÐÔµÈÒòËØÈÃÎÒÃǵıàÂë±äµÃÊý±¶¸´ÔÓ¡£¶ÔÓÚ´ó¶àÔÆÔÉúµÄ»¥ÁªÍøÓ¦ÓÃÀ´Ëµ£¬ÕâÖÖ³¹µ×µÄÎÞ״̬¼Ü¹¹ÊÇÒ»¸ö¾Þ´óµÄÌôÕ½£¬¶ø¶ÔÓÚ¶¯éüÓм¸Ê®Íò¡¢ÉϰÙÍòÐдúÂëµÄ¡¢³äÂúÁË״̬µÄÆóÒµÓ¦ÓÃÀ´Ëµ£¬Serverless µÄÎÞ״̬¸ÄÔ켸ºõÊÇÒ»¸öÎÞ·¨Íê³ÉµÄÈÎÎñ¡£
4¡¢ ±¾µØ¿ª·¢¡¢²âÊÔÀ§ÄÑ£¬Í¬Ê±Â߼ɢÂäÔÚ¸÷´¦£¬ÅŲéÎÊÌâÀ§ÄÑ¡£
5¡¢³§ÉÌËø¶¨¡£ÔƼÆËãÊÇÓ®Õßͨ³ÔµÄÐÐÒµ£¬´ó¶øÈ«µÄÔÆ³§ÉÌÓÅÊÆ¾Þ´ó£¬Serverless ¼Ó¾çÁËÕâÖÖÇ÷ÊÆ£¬Óû§µÄº¯Êý´úÂ벿Êðµ½ FaaS ºóÇ¨ÒÆ¹¤×÷Á¿¾Þ´ó£¬Í¬Ê±Ó¦ÓÃÖÐÒÀÀµÁË´óÁ¿Ôƹ«¹²·þÎñ£¬ÔÚеÄÔÆÆ½Ì¨¼«ÓпÉÄÜÕÒ²»µ½Ìæ´ú£¬×ö²»µ½Æ½»¬Ç¨ÒÆ¡£
Îå¡¢Service Mesh ¼¼Êõ
ÔÚÉÏÃæÔÆÔÉú΢·þÎñÕ½ڽéÉÜÁË΢·þÎñÁ÷Á¿¿ØÖƺÍÖÎÀíµÄ¼¼Êõ·¢Õ¹Àú³Ì£¬×ܽáÀ´¿´·ÖΪ£º

Spring Cloud¡¢Dubbo »ò¾©¶« JSF Ϊ´ú±íµÄµÚ¶þ´ú΢·þÎñ¿ò¼ÜËùÃæÁÙµÄÈý¸ö±¾ÖÊÎÊÌ⣺
1¡¢ÇÖÈëÐÔÇ¿¡£ÏëÒª¼¯³É SDK µÄÄÜÁ¦£¬³ýÁËÐèÒªÌí¼ÓÏà¹ØÒÀÀµ£¬ÍùÍù»¹ÐèÒªÔÚÒµÎñ´úÂëÖÐÔö¼ÓÒ»²¿·ÖµÄ´úÂë¡¢»ò×¢½â¡¢»òÅäÖã»ÒµÎñ´úÂëÓëÖÎÀí²ã´úÂë½çÏÞ²»ÇåÎú¡£
2¡¢ÎÞ·¨¿çÓïÑÔ¡£
3¡¢Öмä¼þÑݱäÀ§ÄÑ¡£ÓÉÓÚ°æ±¾Ë鯬»¯ÑÏÖØ£¬µ¼ÖÂÖмä¼þÏòǰÑݽøµÄ¹ý³ÌÖоÍÐèÒªÔÚ´úÂëÖмæÈݸ÷ÖÖ¸÷ÑùµÄÀϰ汾Âß¼£¬´ø×Å¡°¼ÏËø¡± ǰÐУ¬ÎÞ·¨ÊµÏÖ¿ìËÙµü´ú¡£
4¡¢ÄÚÈݶࡢÃż÷¸ß¡£Spring Cloud ±»³ÆÎªÎ¢·þÎñÖÎÀíµÄÈ«¼ÒͰ£¬°üº¬´ó´óСС¼¸Ê®¸ö×é¼þ£¬ÄÚÈÝÏ൱֮¶à£¬ÍùÍùÐèÒª¼¸Äêʱ¼äÈ¥ÊìϤÆäÖеĹؼü×é¼þ¡£¶øÒªÏëʹÓà Spring Cloud ×÷ΪÍêÕûµÄÖÎÀí¿ò¼Ü£¬ÔòÐèÒªÉîÈëÁ˽âÆäÖÐÔÀíÓëʵÏÖ£¬·ñÔòÓöµ½ÎÊÌ⻹ÊǺÜÄѶ¨Î»¡£
5¡¢ÖÎÀí¹¦Äܲ»È«¡£²»Í¬ÓÚ RPC ¿ò¼Ü£¬Spring Cloud ×÷ΪÖÎÀíÈ«¼ÒͰµÄµäÐÍ£¬Ò²²»ÊÇÍòÄܵģ¬ÖîÈçÐÒéת»»Ö§³Ö¡¢¶àÖØÊÚȨ»úÖÆ¡¢¶¯Ì¬ÇëÇó·ÓÉ¡¢¹ÊÕÏ×¢Èë¡¢»Ò¶È·¢²¼µÈ¸ß¼¶¹¦Äܲ¢Ã»Óи²¸Çµ½¡£¶øÕâЩ¹¦ÄÜÍùÍùÊÇÆóÒµ´ó¹æÄ£Â䵨²»¿É»ñȱµÄ¹¦ÄÜ£¬Òò´Ë¹«Ë¾ÍùÍù»¹ÐèҪͶÈëÆäËüÈËÁ¦½øÐÐÏà¹Ø¹¦ÄܵÄ×ÔÑлòÕßµ÷ÑÐÆäËü×é¼þ×÷Ϊ²¹³ä¡£
΢·þÎñʱ´ú£¬Service Mesh Ó¦Ô˶øÉú£¬ÆÁ±ÎÁË·Ö²¼Ê½ÏµÍ³µÄÖî¶à¸´ÔÓÐÔ£¬Èÿª·¢Õß¿ÉÒԻعéÒµÎñ£¬¾Û½¹ÕæÕýµÄ¼ÛÖµ¡£
Service Mesh Ò»´Ê×îÔçÓÉ¿ª·¢ Linkerd µÄ Buoyant ¹«Ë¾Ìá³ö£¬²¢ÓÚ 2016 Äê 9 Ô 29 ÈÕµÚÒ»´Î¹«¿ªÊ¹ÓÃÁËÕâÒ»ÊõÓï¡£William Morgan£¬Buoyant CEO£¬¶Ô Service Mesh ÕâÒ»¸ÅÄÒåÈçÏ£º
·þÎñÍø¸ñ£¨Service Mesh£©ÊÇ´¦Àí·þÎñ¼äͨÐŵĻù´¡ÉèÊ©²ã¡£Ëü¸ºÔð¹¹³ÉÏÖ´úÔÆÔÉúÓ¦ÓóÌÐòµÄ¸´ÔÓ·þÎñÍØÆËÀ´¿É¿¿µØ½»¸¶ÇëÇó¡£ÔÚʵ¼ùÖУ¬Service Mesh ͨ³£ÒÔÇáÁ¿¼¶ÍøÂç´úÀíÕóÁеÄÐÎʽʵÏÖ£¬ÕâЩ´úÀíÓëÓ¦ÓóÌÐò´úÂ벿ÊðÔÚÒ»Æð£¬¶ÔÓ¦ÓóÌÐòÀ´ËµÎÞÐè¸ÐÖª´úÀíµÄ´æÔÚ¡£
´ÓÕâ¶Î¶¨ÒåÖпÉÒÔ¶Á³ö£¬Service Mesh µÄ±¾ÖÊÊÇ»ù´¡ÉèÊ©²ã£¬ºËÐŦÄÜÊÇÇëÇó·Ö·¢£¬»úÖÆÊÇͨ¹ýÍøÂç´úÀí£¬ÌØµãÊǶÔÓ¦ÓÃ͸Ã÷¡£
¼òµ¥µØËµ£¬Service Mesh ÊÇÒ»¸öרעÓÚ´¦Àí·þÎñ¼äͨÐŵĻù´¡ÉèÊ©²ã¡£Service Mesh ÊÇ·Ö²¼Ê½Ó¦ÓÃÔÚ΢·þÎñÈí¼þ¼Ü¹¹Ö®ÉÏ·¢Õ¹ÆðÀ´µÄм¼Êõ£¬Ö¼ÔÚ½«ÄÇЩ΢·þÎñ¼äµÄÁ¬½Ó¡¢°²È«¡¢Á÷Á¿¿ØÖƺͿɹ۲âµÈͨÓù¦ÄÜϳÁΪƽ̨»ù´¡ÉèÊ©£¬ÊµÏÖÓ¦ÓÃÓëÆ½Ì¨»ù´¡ÉèÊ©µÄ½âñî¡£½âñîÈÿª·¢Õß¾Û½¹ÓÚÒµÎñÂß¼±¾Éí¶øÎÞÐè¹Ø×¢Î¢·þÎñÏà¹ØÖÎÀíÎÊÌ⣬ÌáÉýÓ¦Óÿª·¢Ð§Âʲ¢¼ÓËÙÒµÎñ̽Ë÷ºÍ´´Ð¡£ÒòΪ´óÁ¿·Ç¹¦ÄÜÐÔ´ÓÒµÎñ½ø³Ì°þÀëµ½ÁíÍâ½ø³ÌÖУ¬Service Mesh ÒÔÎÞÇÖÈëµÄ·½Ê½ÊµÏÖÁËÓ¦ÓÃÇáÁ¿»¯¡£

·þÎñÍø¸ñ´Ó×ÜÌå¼Ü¹¹ÉÏÀ´½²±È½Ï¼òµ¥£¬²»¹ýÊÇÒ»¶Ñ½ô°¤×Ÿ÷Ïî·þÎñµÄÓû§´úÀí£¬Íâ¼ÓÒ»×éÈÎÎñ¹ÜÀíÁ÷³Ì×é³É¡£´úÀíÔÚ·þÎñÍø¸ñÖб»³ÆÎªÊý¾Ý²ã»òÊý¾ÝÆ½Ãæ£¨data plane£©£¬¹ÜÀíÁ÷³Ì±»³ÆÎª¿ØÖƲã»ò¿ØÖÆÆ½Ã棨control plane£©¡£Êý¾Ý²ã½Ø»ñ²»Í¬·þÎñÖ®¼äµÄµ÷Óò¢¶ÔÆä½øÐС°´¦Àí¡±£»¿ØÖƲãе÷´úÀíµÄÐÐΪ£¬²¢ÎªÔËάÈËÔ±Ìṩ API£¬ÓÃÀ´²Ù¿ØºÍ²âÁ¿Õû¸öÍøÂç¡£
¸ü½øÒ»²½µØËµ£¬·þÎñÍø¸ñÊÇÒ»¸öרÓõĻù´¡ÉèÊ©²ã£¬Ö¼ÔÚ¡°ÔÚ΢·þÎñ¼Ü¹¹ÖÐʵÏÖ¿É¿¿¡¢¿ìËٺͰ²È«µÄ·þÎñ¼äµ÷Óᱡ£Ëü²»ÊÇÒ»¸ö¡°·þÎñ¡±µÄÍø¸ñ£¬¶øÊÇÒ»¸ö¡°´úÀí¡±µÄÍø¸ñ£¬·þÎñ¿ÉÒÔ²åÈëÕâ¸ö´úÀí£¬´Ó¶øÊ¹ÍøÂç³éÏ󻯡£ÔÚµäÐ͵ķþÎñÍø¸ñÖУ¬ÕâЩ´úÀí×÷Ϊһ¸ö sidecar£¨±ß³µ£©±»×¢È뵽ÿ¸ö·þÎñ²¿ÊðÖС£·þÎñ²»Ö±½Óͨ¹ýÍøÂçµ÷Ó÷þÎñ£¬¶øÊǵ÷ÓÃËüÃDZ¾µØµÄ sidecar ´úÀí£¬¶ø sidecar ´úÀíÓÖ´ú±í·þÎñ¹ÜÀíÇëÇ󣬴Ӷø·â×°ÁË·þÎñ¼äͨÐŵĸ´ÔÓÐÔ¡£Ï໥Á¬½ÓµÄ sidecar ´úÀí¼¯ÊµÏÖÁËËùνµÄÊý¾ÝÆ½Ãæ£¬ÕâÓëÓÃÓÚÅäÖôúÀíºÍÊÕ¼¯Ö¸±êµÄ·þÎñÍø¸ñ×é¼þ£¨¿ØÖÆÆ½Ã棩ÐγɶԱȡ£
×ܶøÑÔÖ®£¬Service Mesh µÄ»ù´¡ÉèÊ©²ãÖ÷Òª·ÖΪÁ½²¿·Ö£º¿ØÖÆÆ½ÃæÓëÊý¾ÝÆ½Ãæ¡£µ±Ç°Á÷ÐеÄÁ½¿î¿ªÔ´·þÎñÍø¸ñ Istio ºÍ Linkerd ʵ¼ÊÉ϶¼ÊÇÕâÖÖ¹¹Ôì¡£

ÒÔ Istio ΪÀý
1¡¢¿ØÖÆÆ½Ã棺¿ØÖÆÃæÊÇÓÃÀ´ÅäÖá¢¼à¿Ø¡¢Õ¹Ê¾Êý¾ÝÃæÍøÂçÁ÷Á¿µÄÒ»×é³ÌÐò¡£
a) ²»Ö±½Ó½âÎöÊý¾Ý°ü¡£
b) Óë¿ØÖÆÆ½ÃæÖеĴúÀíͨÐÅ£¬Ï·¢²ßÂÔºÍÅäÖá£
c) ¸ºÔðÍøÂçÐÐΪµÄ¿ÉÊÓ»¯¡£
d) ͨ³£Ìṩ API »òÕßÃüÁîÐй¤¾ß¿ÉÓÃÓÚÅäÖð汾»¯¹ÜÀí£¬±ãÓÚ³ÖÐø¼¯³ÉºÍ²¿Êð¡£
2¡¢Êý¾ÝÆ½Ãæ
a) Ö±½Ó´¦ÀíÈëÕ¾ºÍ³öÕ¾Êý¾Ý°ü£¬×ª·¢¡¢Â·ÓÉ¡¢½¡¿µ¼ì²é¡¢¸ºÔؾùºâ¡¢ÈÏÖ¤¡¢¼øÈ¨¡¢²úÉú¼à¿ØÊý¾ÝµÈ¡£
b) Service Mesh µÄÊý¾ÝÃæÊÇÒ»¸ö¸ö sidecar Ó¦ÓóÌÐò£¬sidecar ´¦ÀíµÄÊÇ΢·þÎñµÄÍøÂçÊý¾Ýת·¢¡£Istio ʹÓà Enovy ÏîÄ¿×÷Ϊ sidecar µÄʵÏÖ¡£
c) ¶ÔÓ¦ÓÃÀ´ËµÍ¸Ã÷£¬¼´¿ÉÒÔ×öµ½ÎÞ¸ÐÖª²¿Êð¡£
d) µ± Istio Óë Kubernetes Ò»ÆðÓÃÀ´¹¹½¨ Cloud Native Ó¦ÓÃʱ£¬sidecar ±¾Éí×÷Ϊ Kubernetes Pod ÖеÄÒ»¸öÈÝÆ÷ÔËÐС£
ÄÇô Service Mesh ´øÀ´µÄÕæÕý¼ÛÖµÓÐÄÄÐ©ÄØ£¿
1¡¢Î¢·þÎñÖÎÀíÓëÒµÎñÂß¼µÄ½âñî¡£·þÎñÍø¸ñ°Ñ SDK ÖеĴ󲿷ÖÄÜÁ¦´ÓÓ¦ÓÃÖаþÀë³öÀ´£¬²ð½âΪ¶ÀÁ¢½ø³Ì£¬ÒÔ sidecar µÄģʽ½øÐв¿Êð¡£·þÎñÍø¸ñͨ¹ý½«·þÎñͨÐż°Ïà¹Ø¹Ü¿Ø¹¦ÄÜ´ÓÒµÎñ³ÌÐòÖзÖÀ벢ϳÁµ½»ù´¡ÉèÊ©²ã£¬Ê¹ÆäºÍÒµÎñϵͳÍêÈ«½âñʹ¿ª·¢ÈËÔ±¸ü¼ÓרעÓÚÒµÎñ±¾Éí¡£
2¡¢Ò칹ϵͳµÄͳһÖÎÀí¡£Ëæ×Åм¼ÊõµÄ·¢Õ¹ºÍÈËÔ±¸üÌæ£¬ÔÚͬһ¼Ò¹«Ë¾ÖÐÍùÍù»á³öÏÖ²»Í¬ÓïÑÔ¡¢²»Í¬¿ò¼ÜµÄÓ¦ÓúͷþÎñ£¬ÎªÁËÄܹ»Í³Ò»¹Ü¿ØÕâЩ·þÎñ£¬ÒÔÍùµÄ×ö·¨ÊÇΪÿÖÖÓïÑÔ¡¢Ã¿ÖÖ¿ò¼Ü¶¼¿ª·¢Ò»Ì×ÍêÕûµÄ SDK£¬Î¬»¤³É±¾·Ç³£Ö®¸ß£¬¶øÇÒ¸ø¹«Ë¾µÄÖмä¼þÍŶӴøÀ´Á˺ܴóµÄÌôÕ½¡£ÓÐÁË·þÎñÍø¸ñÖ®ºó£¬Í¨¹ý½«Ö÷ÌåµÄ·þÎñÖÎÀíÄÜÁ¦Ï³Áµ½»ù´¡ÉèÊ©£¬¶àÓïÑÔµÄÖ§³Ö¾ÍÇáËɺܶàÁË¡£Ö»ÐèÒªÌṩһ¸ö·Ç³£ÇáÁ¿¼¶µÄ SDK£¬ÉõÖÁºÜ¶àÇé¿ö϶¼²»ÐèÒªÒ»¸öµ¥¶ÀµÄ SDK£¬¾Í¿ÉÒÔ·½±ãµØÊµÏÖ¶àÓïÑÔ¡¢¶àÐÒéµÄͳһÁ÷Á¿¹Ü¿Ø¡¢¼à¿ØµÈÐèÇó¡£
3¡¢¿É¹Û²ìÐÔ¡£ÒòΪ·þÎñÍø¸ñÊÇÒ»¸öרÓõĻù´¡ÉèÊ©²ã£¬ËùÓеķþÎñ¼äͨÐŶ¼ÒªÍ¨¹ýËü£¬ËùÒÔËüÔÚ¼¼Êõ¶ÑÕ»Öд¦ÓÚ¶ÀÌØµÄλÖã¬ÒÔ±ãÔÚ·þÎñµ÷Óü¶±ðÉÏÌṩͳһµÄÒ£²âÖ¸±ê¡£ÕâÒâζ×Å£¬ËùÓзþÎñ¶¼±»¼à¿ØÎª¡°ºÚºÐ¡±¡£·þÎñÍø¸ñ²¶»ñÖîÈçÀ´Ô´¡¢Ä¿µÄµØ¡¢ÐÒé¡¢URL¡¢×´Ì¬Âë¡¢ÑÓ³Ù¡¢³ÖÐøÊ±¼äµÈÏß·Êý¾Ý¡£Õâ±¾ÖÊÉϵÈͬÓÚ web ·þÎñÆ÷ÈÕÖ¾¿ÉÒÔÌṩµÄÊý¾Ý£¬µ«ÊÇ·þÎñÍø¸ñ¿ÉÒÔΪËùÓзþÎñ²¶»ñÕâЩÊý¾Ý£¬¶ø²»½ö½öÊǵ¥¸ö·þÎñµÄ web ²ã¡£ÐèÒªÖ¸³öµÄÊÇ£¬ÊÕ¼¯Êý¾Ý½ö½öÊǽâ¾ö΢·þÎñÓ¦ÓóÌÐòÖпɹ۲ìÐÔÎÊÌâµÄÒ»²¿·Ö¡£´æ´¢Óë·ÖÎöÕâЩÊý¾ÝÔòÐèÒª¶îÍâÄÜÁ¦µÄ»úÖÆµÄ²¹³ä£¬È»ºó×÷ÓÃÓÚ¾¯±¨»òʵÀý×Ô¶¯ÉìËõµÈ¡£
4¡¢Á÷Á¿¿ØÖÆ¡£Í¨¹ý Service Mesh£¬¿ÉÒÔΪ·þÎñÌṩÖÇÄÜ·ÓÉ£¨À¶Â̲¿Êð¡¢½ð˿ȸ·¢²¼¡¢A/B test£©¡¢³¬Ê±ÖØÊÔ¡¢ÈÛ¶Ï¡¢¹ÊÕÏ×¢Èë¡¢Á÷Á¿¾µÏñµÈ¸÷ÖÖ¿ØÖÆÄÜÁ¦¡£¶øÒÔÉÏÕâЩÍùÍùÊÇ´«Í³Î¢·þÎñ¿ò¼Ü²»¾ß±¸£¬µ«ÊǶÔϵͳÀ´ËµÖÁ¹ØÖØÒªµÄ¹¦ÄÜ¡£ÀýÈ磬·þÎñÍø¸ñ³ÐÔØÁË΢·þÎñÖ®¼äµÄͨÐÅÁ÷Á¿£¬Òò´Ë¿ÉÒÔÔÚÍø¸ñÖÐͨ¹ý¹æÔò½øÐйÊÕÏ×¢È룬ģÄⲿ·Ö΢·þÎñ³öÏÖ¹ÊÕϵÄÇé¿ö£¬¶ÔÕû¸öÓ¦ÓõĽ¡×³ÐÔ½øÐвâÊÔ¡£ÓÉÓÚ·þÎñÍø¸ñµÄÉè¼ÆÄ¿µÄÊÇÓÐЧµØ½«À´Ô´ÇëÇóµ÷ÓÃÁ¬½Óµ½Æä×îÓÅÄ¿±ê·þÎñʵÀý£¬ËùÒÔÕâЩÁ÷Á¿¿ØÖÆÌØÐÔÊÇ¡°ÃæÏòÄ¿µÄµØµÄ¡±¡£ÕâÕýÊÇ·þÎñÍø¸ñÁ÷Á¿¿ØÖÆÄÜÁ¦µÄÒ»´óÌØµã¡£
5¡¢°²È«¡£ÔÚijÖ̶ֳÈÉÏ£¬µ¥Ìå¼Ü¹¹Ó¦ÓÃÊÜÆäµ¥µØÖ·¿Õ¼äµÄ±£»¤¡£È»¶ø£¬Ò»µ©µ¥Ìå¼Ü¹¹Ó¦Óñ»·Ö½âΪ¶à¸ö΢·þÎñ£¬ÍøÂç¾Í»á³ÉΪһ¸öÖØÒªµÄ¹¥»÷Ãæ¡£¸ü¶àµÄ·þÎñÒâζןü¶àµÄÍøÂçÁ÷Á¿£¬Õâ¶ÔºÚ¿ÍÀ´ËµÒâζןü¶àµÄ»ú»áÀ´¹¥»÷ÐÅÏ¢Á÷¡£¶ø·þÎñÍø¸ñǡǡÌṩÁ˱£»¤ÍøÂçµ÷ÓõÄÄÜÁ¦ºÍ»ù´¡ÉèÊ©¡£·þÎñÍø¸ñµÄ°²È«Ïà¹ØµÄºÃ´¦Ö÷ÒªÌåÏÖÔÚÒÔÏÂÈý¸öºËÐÄÁìÓò£º·þÎñµÄÈÏÖ¤¡¢·þÎñ¼äͨѶµÄ¼ÓÃÜ¡¢°²È«Ïà¹Ø²ßÂÔµÄÇ¿ÖÆÖ´ÐС£
Service Mesh ºÍÔÆÔÉú
ÎÒÃÇÖªµÀÔÆÔÉúµÄÈý¼ÝÂí³µÎª Serverless¡¢Service Mesh¡¢Kubernetes£¬¶ø Istio ÒѳÉΪÁË Sevice Mesh µÄÊÂʵ±ê×¼£¬µ±ÎÒÃÇÀí½â Kubernetes ºÍ Istio Ãû×ֵĺ¬Ò壬·¢ÏÖÆäÖеİÂÃKubernetes Ãû×ÖÒâΪ¶æÊÖ£¬ÊÇÔÆÔÉúµÄ²Ù×÷ϵͳ£¬Istio µÄÒâ˼Ϊ´¬·«£¬Òâζ×ÅÎÒÃÇÒªµ½´ïÖÕ¼«ÔÆÔÉúÄ¿±ê£¬²»½öÒªÓжæÊÖ£¬»¹ÐèÒª´¬·«¡£ÕâÒ²ÄܽÒʾ CNCF µÄÒ°Ðĺͷ½Ïò¡£
Kubernetes µÄ±¾ÖÊÊÇÓ¦ÓõÄÉúÃüÖÜÆÚ¹ÜÀí£¬¾ßÌåÀ´Ëµ¾ÍÊDz¿ÊðºÍ¹ÜÀí£¨À©ËõÈÝ¡¢×Ô¶¯»Ö¸´¡¢·¢²¼£©£¬Î¢·þÎñÌṩÁË¿ÉÀ©Õ¹¡¢¸ßµ¯ÐԵIJ¿ÊðºÍ¹ÜÀíÆ½Ì¨¡£Service Mesh µÄ»ù´¡ÊÇ͸Ã÷´úÀí£¬Í¨¹ý sidecar proxy À¹½Øµ½Î¢·þÎñ¼äÁ÷Á¿ºóÔÙͨ¹ý¿ØÖÆÆ½ÃæÅäÖùÜÀí΢·þÎñµÄÐÐΪ¡£Service Mesh ½«Á÷Á¿¹ÜÀí´Ó Kubernetes ÖнâñService Mesh ÄÚ²¿µÄÁ÷Á¿ÎÞÐè kube-proxy ×é¼þµÄÖ§³Ö£¬Í¨¹ýΪ¸ü½Ó½ü΢·þÎñÓ¦ÓòãµÄ³éÏ󣬹ÜÀí·þÎñ¼äµÄÁ÷Á¿¡¢°²È«ÐԺͿɹ۲ìÐÔ¡£
Èç¹û˵ Kubernetes ¹ÜÀíµÄ¶ÔÏóÊÇ Pod£¬ÄÇô Service Mesh ÖйÜÀíµÄ¶ÔÏó¾ÍÊÇÒ»¸ö¸ö Service£¬ËùÒÔ˵ʹÓà Kubernetes ¹ÜÀí΢·þÎñºóÔÙÓ¦Óà Service Mesh ¾ÍÊÇË®µ½Çþ³ÉÁË£¬Èç¹ûÁ¬ Service ÄãÒ²²»Ïë¹ÜÁË£¬ÄÇÄã¾ÍÐèÒª Serverless ÁË¡£
¾ÍÏñ֮ǰ˵µÄÈí¼þ¿ª·¢Ã»ÓÐÒøµ¯£¬´«Í³Î¢·þÎñ¼Ü¹¹ÓÐÐí¶àÍ´µã£¬¶ø·þÎñÍø¸ñÒ²²»ÀýÍ⣬ҲÓÐËüµÄ¾ÖÏÞÐÔ¡£
1¡¢Ôö¼ÓÁ˸´ÔÓ¶È¡£·þÎñÍø¸ñ½« sidecar ´úÀíºÍÆäËü×é¼þÒýÈëµ½ÒѾºÜ¸´Ôӵķֲ¼Ê½»·¾³ÖУ¬»á¼«´óµØÔö¼ÓÕûÌåÁ´Â·ºÍ²Ù×÷ÔËάµÄ¸´ÔÓÐÔ¡£
2¡¢ÔËάÈËÔ±ÐèÒª¸üרҵ¡£ÔÚÈÝÆ÷±àÅÅÆ÷£¨Èç Kubernetes£©ÉÏÌí¼Ó Istio Ö®ÀàµÄ·þÎñÍø¸ñ£¬Í¨³£ÐèÒªÔËάÈËÔ±³ÉΪÕâÁ½ÖÖ¼¼ÊõµÄר¼Ò£¬ÒÔ±ã³ä·ÖʹÓöþÕߵŦÄÜÒÔ¼°¶¨Î»»·¾³ÖÐÓöµ½µÄÎÊÌâ¡£
3¡¢ÑÓ³Ù¡£´ÓÁ´Â·²ãÃæÀ´½²£¬·þÎñÍø¸ñÊÇÒ»ÖÖÇÖÈëÐԵġ¢¸´Ôӵļ¼Êõ£¬¿ÉÒÔΪϵͳµ÷ÓÃÔö¼ÓÏÔÖøµÄÑÓ³Ù¡£Õâ¸öÑÓ³ÙÊǺÁÃë¼¶±ðµÄ£¬µ«ÊÇÔÚÌØÊâÒµÎñ³¡¾°Ï£¬Õâ¸öÑÓ³Ù¿ÉÄÜÒ²ÊÇÄÑÒÔÈÝÈ̵ġ£
4¡¢Æ½Ì¨µÄÊÊÅä¡£·þÎñÍø¸ñµÄÇÖÈëÐÔÆÈʹ¿ª·¢ÈËÔ±ºÍÔËάÈËÔ±ÊÊÓ¦¸ß¶È×ÔÖÎµÄÆ½Ì¨²¢×ñÊØÆ½Ì¨µÄ¹æÔò¡£
Áù¡¢DevOps
DevOps ¾ÍÊÇΪÁËÌá¸ßÈí¼þÑз¢Ð§ÂÊ£¬¿ìËÙÓ¦¶Ô±ä»¯£¬³ÖÐø½»¸¶¼ÛÖµµÄµÄһϵÁÐÀíÄîºÍʵ¼ù£¬Æä»ù±¾Ë¼Ïë¾ÍÊdzÖÐø²¿Êð£¨CD)£¬ÈÃÈí¼þµÄ¹¹½¨¡¢²âÊÔ¡¢·¢²¼Äܹ»¸ü¼Ó¿ì½Ý¿É¿¿£¬ÒÔ¾¡Á¿Ëõ¶Ìϵͳ±ä¸ü´ÓÌá½»µ½×îºó°²È«²¿Êðµ½Éú²úϵͳµÄʱ¼ä¡£
ҪʵÏÖ³ÖÐø²¿Êð£¨CD)£¬¾Í±ØÐë¶ÔÒµÎñ½øÐж˵½¶Ë·ÖÎö£¬°ÑËùÓÐÏà¹Ø²¿ÃŵIJÙ×÷ͳһ¿¼ÂǽøÐÐÓÅ»¯£¬ÀûÓÃËù¿ÉÓõļ¼ÊõºÍ·½·¨£¬ÓÃÒ»ÖÖÀíÄîÀ´ÕûºÏ×ÊÔ´¡£DevOps Ìᳫ´òÆÆ¿ª·¢¡¢²âÊÔºÍÔËά֮¼äµÄ±ÚÀÝ£¬ÀûÓü¼ÊõÊÖ¶ÎʵÏÖ¸÷¸öÈí¼þ¿ª·¢»·½ÚµÄ×Ô¶¯»¯ÉõÖÁÖÇÄÜ»¯£¬±»Ö¤Êµ¶ÔÌá¸ßÈí¼þÉú²úÖÊÁ¿¡¢°²È«£¬Ëõ¶ÌÈí¼þ·¢²¼ÖÜÆÚµÈ¶¼Óзdz£Ã÷ÏԵĴٽø×÷Óã¬Ò²Íƶ¯ÁË IT ¼¼ÊõµÄ·¢Õ¹¡£
DevOps ÔÔò
- ÎÄ»¯£¨Culture£©
Ò»°ã´ó¼Ò¹Ø×¢µÄ¶¼ÊǼ¼ÊõºÍ¹¤¾ß£¬µ«Êµ¼ÊÉÏÒª½â¾öµÄºËÐÄÎÊÌâÊǺÍÒµÎñ¡¢ºÍÈËÏà¹ØµÄÎÊÌâ¡£Ìá¸ßЧÂÊ£¬¼ÓÇ¿Ð×÷£¬¾ÍÐèÒª²»Í¬µÄÍŶÓÖ®¼ä¸üºÃµÄ¹µÍ¨¡£Èç¹ûÿ¸öÈËÄܹ»¸üºÃµÄÏ໥Àí½â¶Ô·½µÄÄ¿±êºÍ¹ØÇеĶÔÏó£¬ÄÇôÐ×÷µÄÖÊÁ¿¾Í¿ÉÒÔÃ÷ÏÔµÄÌá¸ß¡£
DevOps ʵʩÖÐÃæ¶ÔµÄÊ×Ҫì¶ÜÔÚÓÚ²»Í¬ÍŶӵĹØ×¢µãÍêÈ«²»Ò»Ñù¡£ÔËάÈËԱϣÍûϵͳÔËÐпɿ¿£¬ËùÒÔϵͳÎȶ¨ÐԺͰ²È«ÐÔÊǵÚһλ¡£¶ø¿ª·¢ÈËÔ±ÔòÏë×ÅÈçºÎ¾¡¿ìÈÃй¦ÄÜÉÏÏߣ¬ÊµÏÖ´´ÐºÍÍ»ÆÆ£¬Îª¿Í»§Ìṩ¸ü´ó¼ÛÖµ¡£²»Í¬µÄÒµÎñÊӽǣ¬±ØÈ»µ¼ÖÂÎó»áºÍĦ²Á£¬µ¼ÖÂË«·½¶¼¾õµÃ¶Ô·½ÔÚ×èÄÓ×Ô¼ºÍê³É¹¤×÷¡£ÒªÊµÊ© DevOps£¬¾ÍÊ×ÏÈÒªÈÿª·¢ºÍÔËάÈËÔ±ÈÏʶµ½ËûÃǵÄÄ¿±êÊÇÒ»Öµģ¬Ö»Êǹ¤×÷¸Úλ²»Í¬£¬ÐèÒª¹²µ£ÔðÈΡ£Õâ¾ÍÊÇ DevOps ÐèÒªÊ×ÏÈÔÚÎÄ»¯²ãÃæ½â¾öµÄÎÊÌâ¡£Ö»Óнâ¾öÁËÈÏÖªÎÊÌ⣬²ÅÄÜ´òÆÆ²»Í¬ÍŶÓÖ®µÄºè¹µ£¬ÊµÏÖÁ÷³Ì×Ô¶¯»¯£¬°Ñ´ó¼ÒµÄ¹¤×÷ÈںϳÉÒ»Ìå¡£
- ×Ô¶¯»¯£¨Automation£©
DevOps µÄ³ÖÐø¼¯³ÉµÄÄ¿±ê¾ÍÊÇС²½¿ìÅÜ£¬¿ìËÙµü´ú£¬Æµ·±·¢²¼¡£Òª°ÑÕâ¸öÀíÄîÂäʵ£¬¾ÍÐèÒª¹æ·¶»¯ºÍÁ÷³Ì»¯£¬ÈÿÉÒÔ×Ô¶¯»¯µÄ»·½ÚʵÏÖ×Ô¶¯»¯¡£
- ¶ÈÁ¿£¨Measurement£©
ͨ¹ýÊý¾Ý¿ÉÒÔ¶Ôÿ¸ö»î¶¯ºÍÁ÷³Ì½øÐжÈÁ¿ºÍ·ÖÎö£¬ÕÒµ½¹¤×÷ÖдæÔ򵀮¿¾±ºÍ©¶´ÒÔ¼°¶ÔÓÚΣ¼±Çé¿öµÄ¼°Ê±±¨¾¯µÈ¡£Í¨¹ý·ÖÎö£¬¿ÉÒÔ¶ÔÍŶӹ¤×÷ºÍϵͳ½øÐе÷Õû£¬ÈÃЧÂʸĽøÐγɱջ·¡£¶ÈÁ¿Ê×ÏÈÒª½â¾öÊý¾Ý׼ȷÐÔ¡¢ÍêÕûÐԺͼ°Ê±ÐÔÎÊÌ⣬Æä´ÎÒª½¨Á¢ÕýÈ·µÄ·ÖÎöÖ¸±ê¡£DevOps ¹ý³Ì¿¼ºËµÄ±ê×¼Ó¦¸Ã¹ÄÀøÍŶӸü¼Ó×¢ÖØ¹¤¾ßµÄ½¨É裬×Ô¶¯»¯µÄ¼ÓËٺ͸÷¸ö»·½ÚÓÅ»¯£¬ÕâÑù²ÅÄÜ×î´ó¿ÉÄÜ·¢»Ó¶ÈÁ¿µÄ×÷Óá£
- ¹²Ïí£¨Sharing£©
ҪʵÏÖÕæÕýµÄÐ×÷£¬»¹ÐèÒªÍŶÓÔÚ֪ʶ²ãÃæ´ï³ÉÒ»Ö¡£Í¨¹ý¹²Ïí֪ʶ£¬ÈÃÍŶӹ²Í¬½ø²½¡£¿É¼û¶È visibility£¬Í¸Ã÷ÐÔ transparency£¬ÖªÊ¶µÄ´«µÝ transfer of knowledge¡£
IaC
IaC £¨Infrastructure as Code£©Ìá³öϵͳ½¨ÉèµÄºËÐÄÀíÄ¼æ¹Ë¸ßЧºÍ°²È«£¬ÈÃÔËάϵͳµÄ½¨Éè¸ü¼ÓÓÐÐò¡£
ÔËάƽ̨һ°ã¶¼¾Àú¹ýÈçϼ¸¸ö·¢Õ¹½×¶Î£ºÊÖ¹¤¡¢½Å±¾¡¢¹¤¾ß¡¢Æ½Ì¨¡¢ÖÇÄÜ»¯ÔËάµÈ£¬µ«×ÜÌåÀ´Ëµ·ÖΪÁ½ÀָࣺÁîʽ£¬ÉùÃ÷ʽ¡£
ÔÚ¸´ÔÓµÄÔËά³¡¾°Ï£¬Ö¸ÁîʽµÄÔËά·½Ê½¾ßÓбä¸ü²Ù×÷¸±×÷Ó㺲»Í¸Ã÷¡¢Ö¸ÁîÐÔ½Ó¿ÚÒ»°ã²»¾ßÓÐÃݵÈÐÔ¡¢ÄÑÒÔʵÏÖ¸´Ôӵıä¸ü¿ØÖÆ¡¢ÖªÊ¶ÄÑÒÔ»ýÀۺͷÖÏí¡¢±ä¸üȱ·¦²¢·¢ÐÔµÈȱµã¡£
ÈËÃÇÌá³öÁËÉùÃ÷ʽµÄ±à³ÌÀíÄî¡£Óû§½ö½öͨ¹ýÒ»ÖÖ·½Ê½ÃèÊöÆäÒªµ½´ïµÄÄ¿µÄ£¬¶ø²¢²»¾ßÌå˵Ã÷ÈçºÎ´ïµ½Ä¿±ê¡£ÉùÃ÷ʽ½Ó¿Úʵ¼ÊÉÏ´ú±íÁËÒ»ÖÖ˼άģʽ£º°ÑϵͳµÄºËÐŦÄܽøÐгéÏóºÍ·â×°£¬ÈÃÓû§ÔÚÒ»¸ö¸ü¸ßµÄ²ã´ÎÉϽøÐвÙ×÷¡£ÉùÃ÷ʽ½Ó¿ÚÊÇÒ»ÖÖºÍÔÆ¼ÆËãʱ´úÏàÆõºÏµÄ˼ά·¶Ê½¡£Ç°ÃæÁгöµÄÖ¸ÁîʽµÄȱµã¶¼¿ÉÒÔÓÉÉùÃ÷ʽ½Ó¿ÚÀ´ÃÖ²¹¡£
GitOps
GitOps ×÷Ϊ IaC ÔËάÀíÄîµÄÒ»ÖÖ¾ßÌåÂ䵨·½Ê½£¬¾ÍÊÇʹÓà Git À´´æ´¢¹ØÓÚÓ¦ÓÃϵͳµÄ×îÖÕ״̬µÄÉùÃ÷ʽÃèÊö¡£GitOps µÄºËÐÄÊÇÒ»¸ö GitOps ÒýÇæ£¬Ëü¸ºÔð¼à¿Ø Git ÖеÄ״̬£¬Ã¿µ±Ëü·¢ÏÖ״̬Óиı䣬Ëü¾Í¸ºÔð°ÑÄ¿±êÓ¦ÓÃϵͳÖеÄ״̬ÒÔ°²È«¿É¿¿µÄ·½Ê½Ç¨ÒƵ½Ä¿±ê״̬£¬ÊµÏÖ²¿Êð¡¢Éý¼¶¡¢ÅäÖÃÐ޸ġ¢»Ø¹öµÈ²Ù×÷¡£
Git Öд洢ÓжÔÓÚÓ¦ÓÃϵͳµÄÍêÕûÃèÊöÒÔ¼°ËùÓÐÐÞ¸ÄÀúÊ·¡£·½±ãÖØ½¨µÄͬʱ£¬Ò²±ãÓÚ¶ÔϵͳµÄ¸üÐÂÀúÊ·½øÐв鿴£¬·ûºÏ DevOps ËùÌᳫµÄ͸Ã÷»¯ÔÔò¡£Í¬Ê±£¬GitOps Ò²¾ßÓÐÉùÃ÷ʽÔËάµÄËùÓÐÓŵ㡣ºÍ GitOps ÅäÌ×µÄÒ»¸ö»ù±¾¼ÙÉèÊDz»¿É±ä»ù´¡ÉèÊ©£¬ËùÒÔ GitOps ºÍ Kubernetes ÔËά¿ÉÒԷdz£ºÃµÄÅäºÏ¡£
ÔÆÔÉú¿ªÔ´Éú̬µÄ½¨É裬»ù±¾Í³Ò»ÁËÈí¼þ²¿ÊðºÍÔËάµÄ»ù±¾Ä£Ê½¡£¸üÖØÒªµÄÊÇ£¬ÔÆÔÉú¼¼ÊõµÄ¿ìËÙÑݽø£¬¼¼Êõ¸´ÔÓÐÔ²»¶ÏϳÁµ½ÔÆ£¬¸³ÄÜ¿ª·¢Õ߸öÌåÄÜÁ¦£¬²»¶ÏÌáÉýÁËÓ¦Óÿª·¢Ð§ÂÊ¡£
Ê×ÏÈÊÇÈÝÆ÷¼¼ÊõºÍ Kubernetes ·þÎñ±àÅż¼ÊõµÄ½áºÏ£¬½â¾öÁËÓ¦Óò¿Êð×Ô¶¯»¯¡¢±ê×¼»¯¡¢ÅäÖû¯ÎÊÌâ¡£CNCF ´òÆÆÁËÔÆÉÏÆ½Ì¨µÄ±ÚÀÝ£¬Ê¹½¨Éè¿çƽ̨µÄÓ¦ÓóÉΪ¿ÉÄÜ£¬³ÉΪÊÂʵÉϵÄÔÆÉÏÓ¦Óÿª·¢Æ½Ì¨µÄ±ê×¼£¬¼«´ó¼ò»¯Á˶àÔÆ²¿Êð¡£
Ò»¸öÍêÕû¿ª·¢Á÷³ÌÉæ¼°µ½ºÜ¶à²½Ö裬¶ø»·½ÚÔ½¶à£¬Ò»´ÎÑ»·»¨·ÑµÄʱ¼äÔ½³¤£¬Ð§ÂʾÍÔ½µÍ¡£Î¢·þÎñͨ¹ý°Ñ¾ÞʯӦÓòð½âΪÈô¸Éµ¥¹¦ÄܵķþÎñ£¬¼õÉÙÁË·þÎñ¼äµÄñîºÏÐÔ£¬Èÿª·¢ºÍ²¿Êð¸ü¼Ó±ã½Ý£¬¿ÉÒÔÓÐЧ½µµÍ¿ª·¢ÖÜÆÚ£¬Ìá¸ß²¿ÊðÁé»îÐÔ¡£Service Mesh ÈÃÖмä¼þµÄÉý¼¶ºÍÓ¦ÓÃϵͳµÄÉý¼¶ÍêÈ«½âñÔÚÔËάºÍ¹Ü¿Ø·½ÃæµÄÁé»îÐÔ»ñµÃÌáÉý¡£Serverless ÈÃÔËά¶Ô¿ª·¢Í¸Ã÷£¬¶ÔÓÚÓ¦ÓÃËùÐè×ÊÔ´½øÐÐ×Ô¶¯ÉìËõ¡£FaaS ÊÇ Serverless µÄÒ»ÖÖʵÏÖ£¬Ôò¸ü¼Ó¼ò»¯ÁË¿ª·¢ÔËάµÄ¹ý³Ì£¬´Ó¿ª·¢µ½×îºó²âÊÔÉÏÏß¶¼¿ÉÒÔÔÚÒ»¸ö¼¯³É¿ª·¢»·¾³ÖÐÍê³É¡£ÎÞÂÛÄÄÒ»ÖÖ³¡¾°£¬ºǫ́µÄÔËάƽ̨µÄ¹¤×÷¶¼ÊDz»¿ÉÒÔȱÉٵģ¬Ö»ÊÇͨ¹ý¼¼ÊõÈÃÀ©ÈÝ¡¢ÈÝ´íµÈ¼¼Êõ¶Ô¿ª·¢ÈËԱ͸Ã÷£¬ÈÃЧÂʸü¸ß¡£
5¡¢iPaaS£¨¾©¶«Ç°Ì¨Ñз¢±ê×¼£©ÔÚÔÆÔÉúµÄ˼¿¼ºÍ̽Ë÷
ÒÔÏÂÊÇ iPaaS Ô¸¾°ÔÚÄÜÁ¦Í¼Æ×ÖеĹ᳹¡£

Ëæ×Å iPaaS ¸³ÄÜ¿ª·¢Õß´ÓÊÔË®½×¶ÎÕýÂõÏò¸³Äܽ׶Σ¬ÎÒÃÇ¶Ô iPaaS µÄÄÜÁ¦ÓÐÁ˲»Í¬µÄÀí½âºÍ˼¿¼£¬´Ó×î³õ¾Û½¹µÄ 5 ´óÄÜÁ¦£¬µ½ÎÒÃÇ´ÓÓû§½Ç¶È¡¢´ÓÒµÎñ³¡¾°³ö·¢»ò½âÆÊ iPaaS µÄÄÚÔÚ¼ÛÖµÀ´¿´£¬¿ÉÒԵóö²»Ò»ÑùµÄÄÜÁ¦ºÍ¼ÛÖµ£¬ÎÒ°ÑÕâЩÄÜÁ¦Ðγɲ»Í¬µÄÖ÷Ïߣ¬ÒÔÇ£ÒýÎÒÃÇÄܽ¨Éè³öÒ»¸öÓлîÁ¦¡¢ÒÔÒµÎñ³¡¾°ÎªÖÐÐÄµÄ iPaaS Ìåϵ¡£
a) iPaaS µÄºËÐÄ˼ÏëºÍ»ù´¡ÊDZê×¼£¬¸ú¾ßÌåʵÏÖ·½Ê½»®Çå½çÏÞ£¬Òâζ×ÅÊdzéÏóµÄ¡¢Îȶ¨µÄ£¬Ò²ÊÇ¿ª·ÅºÍ¿ÉÀ©Õ¹µÄ¡£±ê×¼ÊÇ iPaaS ÐγÉÌåϵµÄÀíÂÛ»ù´¡¡£
b) iPaaS ¹âÓбê×¼»¹²»ÐУ¬Ë¶¼¿ÉÒÔ¸ãÒ»Ì×±ê×¼À´£¬Èç¹ûÎÒÃÇÄÜÌṩ¿ª·¢Õß»ùÓÚ±ê׼ϵÄÁ¢ÌåʽºÍһվʽ¼¼Êõ¿ª·¢ºÍ¹²½¨Æ½Ì¨£¬Èÿª·¢Õß¿ÉÒÔµÍÃż÷¡¢Áé»îºÍ¸ßЧ¶¨ÖƺͿª·¢£¬Õâ¸ö¶Ô¿ª·¢ÕßµÄÎüÒýÁ¦ÊÇÎÞÇîµÄ¡£ËùÒÔ iPaaS ¼¼Êõ¿ª·ÅÌåϵÊÇÊõ£¬Êǹ¤¾ß¡£
c) µ«Óбê×¼ºÍ¼¼Êõ¿ª·ÅÌåϵҲ²»¹»£¬ÄÜÁ¦¶¼Êǵã×´µÄ£¬ÎÞ·¨Ìåϵ»¯½â¾öÒµÎñµÄ³¡¾°»¯ÐèÇó¡£iPaaS µÄ±³ºóÒ»¸öÖØ´ó¼ÛÖµÊÇÒ»¸öÇ¿´óµÄÒµÎñƽ̨£¬ÎÒÃÇÒ²³ÆÎª SaaS£¬SaaS ÊÇÍÁÈÀ£¬Èñê×¼ºÍ¼¼Êõ¿ª·ÅÌåϵ¿ÉÒÔ´ÓÊ÷ľ±ä³ÉÊ÷ÁÖ£¬×ÌÉú³ö¸÷ÖÖ¸÷ÑùµÄÒµÎñ½â¾ö·½°¸¡£
d) iPaaS ÒªÐγɳÖÐø·±ÈÙµÄÉú̬£¬Ò»¸ö¸ãЦÄÜÁ¦³ÁµíºÍ¹²ÏíµÄÌåϵ±Ø²»¿ÉÉÙ£¬³ÁµíºÍ¹²ÏíÈà iPaaS Éú̬ˮ³ØÖеÄˮԽÀ´Ô½¶à¡£
e) ¾©¶«ÒµÎñ¿ìËÙ·¢Õ¹£¬´ßÉú³öÁ˸÷ÖÖ¸÷ÑùµÄÐÂÕ¾µãºÍÐÂÈüµÀ£¬Í¨Óðæ¿ÉÒÔÈà iPaaS ¿ìËÙÍê³É¶ÀÁ¢²¿ÊðºÍ½»¸¶¡£ÕâÒ²ÊÇ iPaaS ÃæÁÙµÄÒ»¸ö´óµÄÒµÎñ³¡¾°¡£
f) iPaaS ²»µ«ÊǼ¼Êõ£¬Ç¿µ÷Éè¼Æ¡¢Ñз¢¡¢²âÊÔÔËά´òÆÆÁ÷³Ì±ÚÀÝ£¬Í³Ò»Ä¿±ê£¬±ê×¼Á÷³Ì£¬ÌáÉýÐ×÷ЧÂʺÍÖÊÁ¿¡£
g) ×îºó£¬ÊÇÈ«³¡¾°µÄ½â¾ö·½°¸£¬½â¾ö·½°¸ÆäʵÊÇÒ»ÖÖ·þÎñ¾«Éñ£¬±ê×¼¡¢¼¼ÊõÌåϵºÜÖØÒª£¬µ«Èç¹ûÎÒÃÇÄÜÉîÈëÒµÎñ³¡¾°£¬ÐγÉÇåÎúµÄ½â¾ö·½°¸¾ØÕ󣬿ÉÒÔÈÃÓû§¸ßЧÂú×ã×Ô¼ºµÄÐèÇ󡣯½Ì¨»¯½¨ÉèÒªÍÑÀëÒµÎñ£¬½â¾ö·½°¸·õ»¯ÒªÉîÈëÒµÎñ¡£
ÎÒÃÇ°Ñ iPaaS ºËÐÄÀíÄî¡¢¼ÛÖµ¡¢·½Ïò¸úÔÆÔÉúÌåϵ½øÐÐÕûÌåÐÔ·ÖÎö£¬·¢ÏÖ¶þÕßÔÚºÜ¶à·½ÃæÊÇÏàͬµÄ£¬ÏÂÃæÊÇÊáÀíµÄ iPaaS ºÍÔÆÔÉú¼ÛÖµºÍÄÜÁ¦±³ºóʵÏÖÔÀíºÍÀíÄîµÄ¶Ô±È£º

¶Ô±ÈÔÆÔÉúµÄÀíÄîºÍ¼¼Êõ£¬iPaaS ÔÚһЩ·½ÃæµÄ½¨Éè×öµÄÉпɣ¬°üÀ¨£º
1¡¢½¨Á¢ÁËÍÑÀëÁ˾ßÌå¿Í»§ºÍÒµÎñ³¡¾°µÄͨÓÃÌåϵ»¯±ê×¼£¬¸Ã±ê×¼Èà iPaaS ±ä³ÉÒ»¸ö¸ß¶È¿ª·ÅµÄÌåϵ£¬Í¬Ê±¿Éͨ¹ý´®ÁªÉè¼ÆÆ½Ì¨¡¢²âÊÔÆ½Ì¨¡¢¼à¿ØÆ½Ì¨µÈÐγÉÒ»¸öÒ»Õ¾Ê½ÔÆÉÏ¿ª·¢ºÍÐ×÷ƽ̨£»
2¡¢Ç¿´óºÍÁ¢ÌåʽµÄ¼¼Êõ¿ª·Å¹²½¨Ìåϵ£¬Èÿª·¢ÕßÎÞÐè¹Ø×¢ÖØ¸´ÐÔÀͶ¯ºÍµ×²ã¼¼ÊõÉèÊ©ºÍ¼¼Êõ¸´ÔÓ¶È£¬´Ó¶ø¿É¾Û½¹ºÍרעÔÚÒµÎñ´úÂëºÍ¸öÐÔ»¯ÐèÇóµÄ¶¨ÖÆÉÏ£¬¿ª·¢ÕßµÄÑз¢Ð§ÂʺÍÐèÇ󽻸¶Ð§Âʵõ½ÁËÃ÷ÏÔµÄÌáÉý¡£¸²¸Ç´Ó´óǰ¶Ë£¨iHub£©¡¢Low Code¡¢FaaS¡¢Í¨Óð桢΢ǰ¶Ëµ½Öкǫ́¹ÜÀíϵͳ½â¾ö·½°¸£¨Drip Ë®µÎ£©£»
3¡¢iPaaS ±ê×¼+¹²ÏíÄÜÁ¦µÄ¸´Óã¬ÔÚÅäÌ×¼¼Êõ¿ª·ÅÌåϵ£¬¿ÉÖ§³Å¿ìËÙÂú×ãÒµÎñµÄ¸÷ÀàÐèÇó£¬ÖúÁ¦ÒµÎñƵ·±ÊÔ´íºÍ´´Ð¡£
4¡¢iPaaS ±³ºóµÄϵͳºÍƽ̨֧³ÅÁË 10+¸ö¾©¶«´ó´Ù£¬´ó´ÙÆÚ¼äÎÞʹʺÍÎÊÌ⣬ÇиßÐÔÄܸ߿ÉÓõĽӿڱ£Ö¤ÁË´ó´ÙÒµÎñµÄƽÎÈÔËÓª¡£
5¡¢iPaaS ÒÑ¿ªÊ¼¸³Äܾ©¶«ÔÚ¸÷¸öº£ÍâÕ¾µã£¨Ì©¹úÕ¾¡¢Ó¡ÄáÕ¾£©ºÍÉÌÒµ»¯ÏîÄ¿£¬ÖúÁ¦ÁãÊÛ¼¼ÊõºÍÒµÎñÄÜÁ¦×ß³ö¹«Ë¾¡£
µ«Í¬Ê±ÎÒÃÇ·¢ÏÖ iPaaS »¹´æÔÚ±¡ÈõµÄ»·½Ú»òؽ´ý¼ÓÇ¿ÌáÉýµÄµØ·½£¬½áºÏÔÆÔÉúµÄÀíÄîºÍ¼¼Êõ£¬ÒÔÏÂÊÇÎÒÃǵÄ˼¿¼ºÍ¿ÉÄܵĹ滮¡£
1¡¢Ó¦Óá°ÔÆÔÉú»¯¡±
ÔÆÔÉúÓ¦ÓÃÔÚ¹¹½¨Ö®³õ¾Í»ùÓÚÒ»¸öÖØÒªÇ°Ì᣺ÉúÔÚÔÆÉÏ£¬³¤ÔÚÔÆÉÏ¡£Õâ¾ÍÒªÇóÓ¦ÓÃÈçͬÐÂÉú¶ùÒ»Ñù£¬³ýÁ˱£ÁôÒµÎñ´úÂëÍ⣬·Ç¹¦ÄÜÐÔ´úÂëºÍÖмä¼þ´úÂë¶¼Ó¦°þÀë³öÀ´£¬½»ÓÉÔÆÉèÊ©À´½Ó¹Ü£¬ÒÔʵÏÖÔÆÔÉúµÄÀíÄӦÓõ®ÉúÆð¾ÍÉú/³¤ÔÚÔÆÉÏ£¬Äܹ»×î´ó»¯µØ·¢»ÓÔÆµÄÓÅÊÆºÍ¼ÛÖµ£¬ÊµÏÖ²»ÔÚ¹Ø×¢·Ç¹¦ÄÜÐÔÐèÇóµÄͬʱϵͳÌìÈ»¾ß±¸ÇáÁ¿¡¢µ¯ÐÔ¡¢Ãô½ÝºÍ×Ô¶¯»¯Ìص㡣×Ý¹Û iPaaS ºó¶ËÓ¦Óüܹ¹£¬Ó¦ÓõĴ洢¡¢ÏûÏ¢¡¢·þÎñÁ÷Á¿ÖÎÀí¡¢¸ß¿ÉÓá¢ÈÛ¶ÏÈÝ´í¡¢×Ô¶¯»Ö¸´ÄÜÁ¦¶¼ÊÇͨ¹ýÏà¹Ø¼¯³ÉÔÚÓ¦ÓÃÖдúÂë»òÖмä¼þ SDK À´ÊµÏֵģ¬ÃæÁÙÉý¼¶À§ÄÑ¡¢ÎÞ·¨¿çÔÆ²¿ÊðµÈÎÊÌâ¡£ÔÚÔÆÔÉúʱ´ú£¬ÔưÑÈý·½ÈíÓ²¼þµÄÄÜÁ¦Éý¼¶³ÉÁË·þÎñ£¬±ÈÈç¡°ÈçºÎ»ñÈ¡´æ´¢¡±±ä³ÉÁËÈô¸É·þÎñ£¬°üÀ¨¶ÔÏó´æ´¢·þÎñ¡¢¿é´æ´¢·þÎñµÈ£¬ÕâЩ·þÎñ°Ñ·Ö²¼Ê½³¡¾°Öеĸ߿ÉÓÃÌôÕ½¡¢×Ô¶¯À©ËõÈÝÌôÕ½¡¢°²È«ÌôÕ½¡¢ÔËάÉý¼¶ÌôÕ½µÈ¶¼´¦ÀíÁË¡£ËùÒÔÓ¦ÓÃÐèÒª¾¹ý¶ÔÖмä¼þÖ±½ÓÒÀÀµ½øÐнâñÕâ¸ö¹ý³Ì²»ÊÇÒ»õí¶ø¾ÍµÄ£¬ÒÀÀµÓ¦ÓÃÔËÐеÄÔÆ¼ÆËã»·¾³µÄˮƽ£¬µ«ÊÇÓ¦ÓýøÐжԼ¼Êõ»ù´¡ÉèÊ©ºÍ¼¼ÊõÖмä¼þµÄÖ±½ÓÒÀÀµµÄ½âñîÊDZØÒªµÄ£¬Í¨¹ýÒ»¸ö±ê×¼¼¼ÊõÖмä²ãÀ´¸ôÀëÓ¦Óú;ßÌåµÄ¼¼Êõ£¬Äܹ»ÔÚÌõ¼þ³ÉÊìµÄʱºò£¬°ïÖúÓ¦ÓÿìËÙʵÏÖÔÆÔÉú»¯²¢²¿ÊðÔÚÔÆÉÏ¡£ÒÔÏÂÊÇ iPaaS ʵÏÖÔÆÔÉúÓ¦Óüܹ¹µÄת±ä£º

2¡¢Serverless
iPaaS ÌåϵÔÚǰ̨£¬Ãæ¶ÔןܶàÂß¼Ãܼ¯ÐÍÐèÇó£¬ÕâЩÐèÇó±ä¸üƵ·±£¬ÈçÊý¾Ý¸ñʽ»¯¡¢Êý¾Ý×Ö¶Îת»»ºÍ¼Ó¹¤¡¢Êý¾Ý±ê×¼»¯´¦ÀíµÈ£¬ÕâЩÐèÇóÓô«Í³µÄÑз¢Á÷³ÌÈç Java ½»¸¶ÖÜÆÚ»áºÜ³¤£¬Æµ·±ÉÏÏ߯µ·±±ä¸üµ¼ÖÂÏßÉÏϵͳÔËÐÐÎȶ¨Ôì³ÉÍþв£¬Õë¶ÔÕâЩ³¡¾°£¬iPaaS Ìṩ¼´Ð´¼´Óá¢Ãë¼¶ÉÏÏߵĺ¯Êý±àдƽ̨£¬Í¨¹ý°Ñº¯Êý×¢Èëµ½Ó¦ÓóÌÐòÖУ¬Ìṩ±¾µØµ÷Ó㬼«´óÌáÉýÁËÂß¼ÐÔÐèÇ󽻸¶Ð§ÂÊ£¬Í¬Ê±Ò²Ìṩʼþ´¥·¢µÄ·½Ê½Ö´Ðк¯Êý£¬¼´½âñîÁ˼¼ÊõºÍƽ̨£¬ÓÖÌáÉýÁË×ÊÔ´ÀûÓÃÂÊ¡£²»¹ýÏÖÔڵĺ¯Êýƽֻ̨ÊÇÃæ¶ÔÊǹ«Ë¾µÄ¿ª·¢Õߣ¬ÓÃÀ´ÊµÏÖ¿ìËÙ½»¸¶ºÍ¸öÐÔ»¯Âß¼ÐèÇóµÄ¿ìËÙ¶¨ÖÆ£¬ÒªÊµÏÖÕæÕýµÄ FaaS£¬±ØÐëÒªÄÜ×öµ½»ùÓÚʼþ´¥·¢»úÖÆ¡¢×Ô¶¯µ¯ÐÔÉìËõ¡¢°´Ð踶·ÑµÈÌØµã¡£iPaaS ÔÚʵÏÖ Serverless »¯µÄ·ÉÏʼÖÕ±§×Å¿ª·ÅµÄÐÄ̬£¬ÀûÓÃÔÆ»ò×ÔÑÐʵÏÖº¯Êýƽ̨µÄ Serverless »¯£¬¶¼ÊÇÎÒÃÇÀÖ¼ûµÄ¡£ÒÔÏÂÊÇδÀ´ iPaaS º¯Êýƽ̨µÄ·½ÏòºÍ¹æ»®£º

ÉÏͼ±ê×¢ÁË 2 ÖÖº¯ÊýÖ´Ðеķ½Ê½£¬µÚÒ»ÕÅÊÇͨ¹ýº¯Êý¹ÜÀíÆ½Ì¨°Ñº¯Êý·Ö·¢µ½Ó¦Óñ¾µØ£¬Õë¶ÔµÄÊǶԺ¯ÊýÖ´ÐÐÑÓ³ÙÃô¸ÐµÄ³¡¾°£¬Ó¦ÓÃÖ±½Óµ÷Ó÷ַ¢µ½Í¬Ò»¸ö½ø³ÌÖеĺ¯Êý£¬»ñµÃÏàÓ¦½á¹û»òÍê³Éij¸öÄÜÁ¦£»µÚ¶þÖÖ·½Ê½ÊÇ iPaaS δÀ´ÐèÒªÍêÉÆµÄÄÜÁ¦£¬Í¨¹ý½¡È«»ùÓÚʼþ´¥·¢µÄº¯Êýµ÷ÓûúÖÆÀ´ÊµÏÖ°´Ð踶·Ñ£¬Í¨¹ý Kubernetes+Docker ¼¼ÊõÀ´¹¹½¨¿ÉʵÏÖ×Ô¶¯µ¯ÐÔÉìËõÄÜÁ¦µÄ Serverless »¯¼Ü¹¹¡£
3¡¢Service Mesh
Ãæ¶Ô RPC ·þÎñ¿ò¼ÜÈç JSF¡¢Dubbo ´æÔÚµÄÇÖÈëÐÔÇ¿¡¢ÎÞ·¨¿çÓïÑÔ¡¢Öмä¼þÑݱäÀ§ÄÑ¡¢ÄÚÈݶࡢÃż÷¸ß¡¢ÖÎÀí¹¦Äܲ»È«µÈÎÊÌ⣬΢·þÎñµÄ·¢ÏÖ¡¢Á÷Á¿¹ÜÀí¡¢Á÷Á¿¿É¹Û²âÐÔµÈÄÜÁ¦ÍêÈ«¿ÉÒÔÈøúÓ¦Óòߵ׽âñîµÄ Service Mesh ¼¼ÊõÀ´ÊµÏÖ¡£×÷ΪÐÂÒ»´ú Service Mesh ²úÆ·µÄÁ캽Õߣ¬Istio ´´ÐÂÐÔµÄÔÚÔÓÐÍø¸ñ²úÆ·µÄ»ù´¡ÉÏ£¬Ìí¼ÓÁË¿ØÖÆÆ½ÃæÕâÒ»½á¹¹£¬Ê¹Æä²úÆ·ÐÎ̬¸ü¼ÓµÄÍêÉÆ¡£ÕâÒ²ÊÇΪʲô Istio ±»³Æ×÷µÚ¶þ´ú Service Mesh µÄÔÒò¡£Istio ÄÜÌṩ£º
1) Ϊ HTTP¡¢gRPC¡¢WebSocket ºÍ TCP Á÷Á¿×Ô¶¯¸ºÔؾùºâ¡£
2) ͨ¹ý·á¸»µÄ·ÓɹæÔò¡¢ÖØÊÔ¡¢¹ÊÕÏ×ªÒÆºÍ¹ÊÕÏ×¢Èë¶ÔÁ÷Á¿ÐÐΪ½øÐÐϸÁ£¶È¿ØÖÆ¡£
3) ÌṩÍêÉÆµÄ¿É¹Û²ìÐÔ·½ÃæµÄÄÜÁ¦£¬°üÀ¨¶ÔËùÓÐÍø¸ñ¿ØÖÆÏµÄÁ÷Á¿½øÐÐ×Ô¶¯»¯¶ÈÁ¿¡¢ÈÕÖ¾¼Ç¼ºÍ×·×Ù¡£
4) ÌṩÉí·ÝÑéÖ¤ºÍÊÚȨ²ßÂÔ£¬ÔÚ¼¯ÈºÖÐʵÏÖ°²È«µÄ·þÎñ¼äͨÐÅ¡£

iPaaS ΪÁËÊÊÓ¦¸÷ÀàÔÆ»·¾³ºÍ¼¼ÊõÉèÊ©£¬½èÖú±ê×¼¼¼Êõ API À´ÆÁ±ÎÓ¦Óú;ßÌå¼¼Êõ£¬Í¨¹ýͳһÊÊÅäÆ÷À´ÊÊÅ䲻ͬµÄ¼¼ÊõÉèÊ©ºÍÖмä¼þ£¬Ê¹ iPaaS ¿ÉÒÔÔÚ²»Í¬»·¾³ÖÐʵÏֵͳɱ¾ÒÆÖ²¡£ËùÒÔÒÔÉÏ·½°¸²»½öÈà iPaaS ²»ÒÀÀµ Istio£¬Í¬Ê±¼¯³É Istio Äܹ»¸øÆ½Ì¨´øÀ´Öî¶àÈç¶ÔÓ¦ÓÃ͸Ã÷¡¢¿ÉÀ©Õ¹ÐÔ¡¢¿ÉÒÆÖ²ÐÔ¡¢²ßÂÔÒ»ÖÂÐÔÓÅÊÆ¡£
4¡¢Ò»¼üʽÉÌÒµ»¯ÏîÄ¿½»¸¶·½°¸
1£©Í¨Óðæ
iPaaS ºó¶ËͨÓðæÄÜÁ¦ÒѾ¾¹ýÁ˽ü 1 Äê°ëµÄ¸ÄÔìºÍÑݽø£¬Ä¿Ç°ºËÐÄÄÜÁ¦Í¨ÓÃÐÔ¡¢°´Ðè¸ù¾Ý Maven ´ò°ü¡¢SPI & BPaaS ÄÜÁ¦À©Õ¹ºÍ¶¨ÖƵȷ½ÃæÒѾ·¢Õ¹µ½Ò»¶¨µÄˮƽ£¬¿ÉÒÔ×öµ½²»ÐèÒª»¨·ÑºÜ¶àÑз¢×ÊԴϽϿì°ÑÌåÏµÇ¨ÒÆµ½ÐÂÕ¾µã£¬Ç°ÌáÊÇÐÂÕ¾µãÒª¾ß±¸¾©¶«ÔƼ¼Êõ»ù´¡ÉèÊ©£¬Ò²¾ÍÊǾ©¶« IaaS ºÍ PaaS¡£±¾ÎÄÇ°ÃæÒ²½²µ½¼¼ÊõÉÌÒµ»¯×÷Ϊ¾©¶«Ôö³¤µÄÐÂÇúÏߣ¬¿ÉÒÔÔ¤¼ûδÀ´»á´ßÉúÔ½À´Ô½¶àµÄÉÌÒµ»¯ÈüµÀºÍÏîÄ¿£¬iPaaS ÕûÌåÌåϵ½âñ¶« TPaaS ÊÆÔÚ±ØÐС£ËùÒÔΪÁË iPaaS ͨÓðæµÄ·½ÏòÊǽøÐвߵ׵Ľâñî JD TPaaS ¸ÄÔ죬ͨ¹ý±ê×¼¼¼Êõ API+¼¼ÊõÊÊÅä²ãÀ´¸ôÀë &ÊÊÅäµ×²ã¼¼Êõ¡£

2£©Ò»¼üʽ½»¸¶·½°¸
ϵͳÓÐÁËͨÓðæÄÜÁ¦ºó£¬ÎÒÃÇ·¢ÏÖÔÚÏìӦеÄÕ¾µãºÍÉÌÒµ»¯ÏîÄ¿¹ý³ÌÖÐ×î´óµÄ¹¤×÷Á¿ºÍÄÑÌâÊÇÈçºÎ¿ìËÙÒÆÖ²¡¢²¿ÊðÕûÌåÆ½Ì¨Ìåϵµ½¿Í»§»·¾³£¬¿ÉÄÜÊǹ«ÓÐÔÆ¡¢Ë½ÓÐÔÆ£¬ÉõÖÁ»ìºÏÔÆ£¬Õâ¾ÍÐèÒªÎÒÃÇÒÀ¾ÝÔÆÔÉú¼¼ÊõÉè¼Æ³öÒ»Ì׿ÉÒÔ¿ìËÙ²¿ÊðÍêÕû iPaaS Ìåϵµ½²»Í¬¿Í»§ÔÆ»·¾³µÄÄÜÁ¦£¬ÇÒÌåϵ¿ÉÒÔ×öµ½Îȶ¨ºÍÒ»ÖÂÐԵķ½Ê½ÔËÐС£ÒÔÏÂÊÇÎÒÃdzõ²½Éè¼ÆµÄ·½°¸£º

5¡¢³ÖÐøÌáÉý iPaaS ƽ̨ÈÍÐÔ
Ó¦ÓÃͨ¹ý½ÓÈëÔÆÔÉú·þÎñ¿ÉÒÔÌìÈ»»ñµÃ¿É¹Û²âÐÔ¡¢¸ß¿ÉÓá¢ÈÝ´íÐÔ¡¢×ÔÓúµÈÄÜÁ¦£¬´Ó¶ø¹¹½¨ÈÍÐÔÓ¦Óá£Í¬Ê±ÔÆÔÉúµÄ¼Ü¹¹ÔÔòҲͬÑùÔÚÎÒÃÇ¿ª·¢ÕßÔÚ¿ª·¢ºÍÉè¼ÆÈí¼þ¼Ü¹¹Ê±Æðµ½·Ç³£ºÃµÄÖ¸µ¼×÷Ó㬰üÀ¨·þÎñ»¯¡¢µ¯ÐÔ¡¢¿É¹Û²ìÐÔ¡¢ÈÍÐÔ¡¢×Ô¶¯»¯¡¢ÁãÐÅÈεÈÔÔò£¬°ïÖúÎÒÃǸüºÃµÄ½¨ÉèϵͳµÄ¸ß¿ÉÓûù´¡ÄÜÁ¦£¬°üÀ¨£º´Ó¼Ü¹¹Éè¼ÆÉÏ£¬ÈÍÐÔ°üÀ¨·þÎñÒì²½»¯ÄÜÁ¦¡¢ÖØÊÔ/ÏÞÁ÷/½µ¼¶/ÈÛ¶Ï / ·´Ñ¹¡¢Ö÷´Óģʽ¡¢¼¯ÈºÄ£Ê½¡¢AZ Äڵĸ߿ÉÓᢵ¥Ôª»¯¡¢¿ç region ÈÝÔÖ¡¢ÒìµØ¶à»îÈÝÔֵȡ£
iPaaS ÔÚÔÆÔÉúÁìÓò»¹´¦ÔÚ˼Ë÷ºÍ̽Ë÷µÄ½×¶Î£¬±¾ÎÄÖ»ÊÇÏ£ÍûÄܹ»Å×שÒýÓñ£¬ÎÄÖвûÊöµÄÀí½âºÍÏë·¨¿ÉÄÜ´æÔÚç¢Â©¡¢´íÎó£¬Ò²Ï£Íû¶ÁÕßÃDZ§×Å¿íÈÝÀ´ÔĶÁºÍ»Ø¸´£¬ÓÐÈκÎÎÊÌâ¡¢½¨ÒéÇë»Ø¸´±¾ÎÄ»ò·¢ËÍÓʼþµ½ i-paas@jd.com¡£
|