΢·þÎñµÄµ®Éú΢·þÎñ¼Ü¹¹£¨Microservice Architect£©ÊÇÒ»Öּܹ¹Ä£Ê½£¬ËüÌᳫ½«µ¥¿é¼Ü¹¹µÄÓ¦Óû®·Ö³ÉÒ»×éСµÄ·þÎñ£¬·þÎñÖ®¼ä»¥Ïàе÷¡¢»¥ÏàÅäºÏ£¬ÎªÓû§Ìṩ×îÖÕ¼ÛÖµ¡£Ã¿¸ö·þÎñÔËÐÐÔÚÆä¶ÀÁ¢µÄ½ø³ÌÖУ¬·þÎñÓë·þÎñ¼ä²ÉÓÃÇáÁ¿¼¶µÄͨÐÅ»úÖÆ»¥Ï๵ͨ¡£Ã¿¸ö·þÎñ¶¼Î§ÈÆ×žßÌåÒµÎñ½øÐй¹½¨£¬²¢ÇÒÄܹ»±»¶ÀÁ¢µÄ²¿Êðµ½Éú²ú»·¾³¡¢ÀàÉú²ú»·¾³µÈ¡£
΢·þÎñ¼Ü¹¹ËäÈ»µ®ÉúµÄʱ¼ä²¢²»³¤£¬µ«ÆäÔÚ¸÷ÖÖÑݽ²¡¢ÎÄÕ¡¢Êé¼®ÉÏËù³öÏֵįµÂÊÒѾÈúܶàÈËÒâʶµ½Ëü¶ÔÈí¼þ¼Ü¹¹ÁìÓòËù´øÀ´µÄÓ°Ïì¡£
±³¾°
Æäʵ£¬Î¢·þÎñµÄµ®Éú²¢·ÇżȻ¡£ËüÊÇ»¥ÁªÍø¸ßËÙ·¢Õ¹£¬Ãô½Ý¡¢¾«Òæ¡¢³ÖÐø½»¸¶·½·¨ÂÛµÄÉîÈëÈËÐÄ£¬ÐéÄ⻯¼¼ÊõÓëDevOpsÎÄ»¯µÄ¿ìËÙ·¢Õ¹ÒÔ¼°´«Í³µ¥¿é¼Ü¹¹ÎÞ·¨ÊÊÓ¦¿ìËٱ仯µÈ¶àÖØÒòËØµÄÍÆ¶¯ÏÂËùµ®ÉúµÄ²úÎ
1. »¥ÁªÍøÐÐÒµµÄ¿ìËÙ·¢Õ¹
¹ýÈ¥µÄÊ®ÄêÖУ¬»¥ÁªÍø¶ÔÎÒÃǵÄÉú»î²úÉúÁË·Ì츲µØµÄ±ä»¯¡£¹ºÎï¡¢´ò³µ¡¢¶©²Í¡¢Ö§¸¶£¬ÉõÖÁÃÀ¼×¡¢Ï´³µµÈ£¬Ïëµ½µÄ£¬Ïë²»µ½µÄ»î¶¯¶¼¿ÉÒÔͨ¹ý»¥ÁªÍøÍê³É£¬Ô½À´Ô½¶àµÄ´«Í³ÐÐÒµ¹«Ë¾Ò²¿ªÊ¼ÒÀÀµ»¥ÁªÍø¼¼Êõ´òÔìÆäºËÐľºÕùÓÅÊÆ¡£»¥ÁªÍøÊ±´úµÄ²úƷͨ³£ÓÐÁ½ÀàÌØµã£ºÐèÇó±ä»¯¿ìºÍÓû§ÈºÌåÅÓ´ó¡£ÔÚÕâÖÖÇé¿öÏ£¬ÈçºÎ´Óϵͳ¼Ü¹¹µÄ½Ç¶È³ö·¢£¬¹¹½¨Áé»î¡¢Ò×À©Õ¹µÄϵͳ£¬¿ìËÙÓ¦¶ÔÐèÇóµÄ±ä»¯£»Í¬Ê±£¬Ëæ×ÅÓû§Á¿µÄÔö¼Ó£¬ÈçºÎ±£Ö¤ÏµÍ³µÄ¿ÉÉìËõÐÔ¡¢¸ß¿ÉÓÃÐÔ£¬³ÉΪϵͳ¼Ü¹¹ÃæÁÙµÄÌôÕ½¡£
2. Ãô½Ý¡¢¾«Òæ·½·¨ÂÛµÄÉîÈëÈËÐÄ
×ݹÛITÐÐÒµ¹ýÈ¥µÄÊ®Ä꣬Ãô½Ý¡¢¾«Òæ¡¢³ÖÐø½»¸¶µÈ¼ÛÖµ¹Û¡¢·½·¨ÂÛµÄÌá³öÒÔ¼°Êµ¼ù£¬Èúܶà×éÖ¯Òâʶµ½Ó¦±äÊг¡±ä»¯¡¢Ìá¸ßÏìÓ¦Á¦µÄÖØÒªÐÔ¡£¾«Òæ´´Òµ£¨Lean
Startup£©°ïÖú×éÖ¯·ÖÎö²¢½¨Á¢×îС¿ÉʵÐвúÆ·£¨Minimum Viable Product£©£¬Í¨¹ýµü´ú³ÖÐø¸Ä½ø£»Ãô½Ý·½·¨°ïÖú×éÖ¯Ïû³ýÀË·Ñ£¬Í¨¹ý·´À¡²»¶ÏÕÒµ½ÕýÈ·µÄ·½Ïò£»³ÖÐø½»¸¶°ïÖú×éÖ¯¹¹½¨¸ü¿ì¡¢¸ü¿É¿¿¡¢¿ÉƵ·±·¢²¼µÄ½»¸¶»úÖÆ¡£¾¹ýÕâЩ·½·¨ÂÛÒÔ¼°Êµ¼ùµÄÍÆÐкͳ¢ÊԺ󣬴Ӻê¹ÛÉ϶øÑÔ£¬´ó²¿·Ö×éÖ¯ÒѾ»ù±¾ÉÏÐγÉÁËÒ»Ì׿É×ñÑ¡¢¿É²Î¿¼¡¢¿ÉʵʩµÄ½»¸¶Ìåϵ¡£Õâʱºò£¬Öð½¥ÍêÉÆ²¢¸Ä½ø¸÷¸öϸ½ÚµÄÐèÇó¾Í»á¸ü¼ÓÇ¿ÁÒ¡£Ëùνϸ½Ú£¬¾ÍÊÇÀàËÆÈçºÎÕÒµ½Áé»îÐԸߡ¢À©Õ¹ÐԺõļܹ¹·½Ê½¡¢ÈçºÎÓøüÓÐЧµÄ¼¼Êõ¡¢¹¤¾ß½â¾öÒµÎñÎÊÌâµÈ¡£
3. ÐéÄ⻯¼¼ÊõÓëDevOpsÎÄ»¯µÄ¿ìËÙ·¢Õ¹
ÐéÄ⻯¼¼ÊõºÍ»ù´¡ÉèÊ©×Ô¶¯»¯(Infrastructure As Code)µÄ¿ìËÙ·¢Õ¹¼«´óµÄ¼ò»¯ÁË»ù´¡ÉèÊ©µÄ´´½¨¡¢ÅäÖÃÒÔ¼°ÏµÍ³µÄ°²×°ºÍ²¿Êð¡£Æ©ÈçÔÆÆ½Ì¨µÄ³ÉÊìÒÔ¼°ÏñChef¡¢Puppet¡¢AnsibleµÈ¹¤¾ßµÄʹÓã¬Èøü¶àµÄ»ù´¡ÉèÊ©Äܹ»Í¨¹ý×Ô¶¯»¯µÄ·½Ê½¶¯Ì¬´´½¨¡£Í¬Ê±£¬ÈÝÆ÷»¯¼¼ÊõµÄ·¢Õ¹ÒÔ¼°DockerµÄ³öÏÖ£¬¸üÊǽ«ÐéÄ⻯¼¼ÊõÍÆÏòÁËÒ»¸öÊ·ÎÞǰÀýµÄ¸ß³±¡£ÁíÍ⣬DevOpsÎÄ»¯µÄÍÆÐдòÆÆÁË´«Í³¿ª·¢ÓëÔËά֮¼äµÄ±ÚÀÝ£¬°ïÖú×éÖ¯Ðγɸü¸ßЧµÄ¡¢¿ª·¢ÓëÔËά¸ß¶ÈÐ×÷µÄ½»¸¶ÍŶӡ£ÕâЩ¼¼ÊõÓëÎÄ»¯µÄ¿ìËÙ·¢Õ¹£¬¼«´ó³Ì¶ÈÉϽâ¾öÁË´«Í³»·¾³´´½¨ÄÑ¡¢ÅäÖÃÄÑÒÔ¼°¡®×îºóÒ»¹«ÀµÄ²¿ÊðÄÑ¡¢½»¸¶ÄѵÈÎÊÌ⣬³ÉÎªÍÆ¶¯Î¢·þÎñµ®Éú¡¢·¢Õ¹µÄÖØÒªÒòËØÖ®Ò»¡£
4. µ¥¿é¼Ü¹¹ÏµÍ³ÃæÁÙµÄÌôÕ½
¼¸ÄêǰÎÒÃÇÊìϤµÄ´«Í³ITϵͳ£¬Ò²¿ÉÒÔ³ÆÖ®Îªµ¥¿é¼Ü¹¹ÏµÍ³£¬ÊÇÒÔ¼¼Êõ·Ö²ã£¬Æ©ÈçÂß¼²ã¡¢Êý¾Ý²ãµÈ¡£µ«Ëæ×ÅÓû§ÐèÇó¸öÐÔ»¯¡¢²úÆ·ÉúÃüÖÜÆÚ±ä¶Ì¡¢Êг¡ÐèÇó²»Îȶ¨µÈÒòËØµÄ³öÏÖ£¬µ¥¿é¼Ü¹¹ÏµÍ³ÃæÁÙ×ÅÔ½À´Ô½¶àµÄÌôÕ½¡£Òò´Ë£¬ÈçºÎÕÒµ½Ò»ÖÖ¸üÓÐЧµÄ¡¢¸üÁé»î¡¢¸üÊÊÓ¦µ±Ç°»¥ÁªÍøÊ±´úÐèÇóµÄϵͳ¼Ü¹¹·½Ê½£¬³ÉΪ´ó¼Ò¹Ø×¢µÄ½¹µã¡£
ËùÒÔ˵£¬Î¢·þÎñµÄµ®Éú¾ö²»ÊÇżȻ£¬ÊǶàÖØÒòËØÍÆ¶¯ÏµıØÈ»²úÎï¡£
΢·þÎñÓëSOA
SOA¼òÊö
ÔçÔÚ1996Ä꣬Gartner¾ÍÌá³öÃæÏò·þÎñ¼Ü¹¹£¨SOA£©¡£SOA²ûÊöÁË¡°¶ÔÓÚ¸´ÔӵįóÒµITϵͳ£¬Ó¦°´ÕÕ²»Í¬µÄ¡¢¿ÉÖØÓõÄÁ£¶È»®·Ö£¬½«¹¦ÄÜÏà¹ØµÄÒ»×鹦ÄÜÌṩÕß×éÖ¯ÔÚÒ»ÆðΪÏû·ÑÕßÌṩ·þÎñ¡±£¬ÆäÄ¿µÄÊÇΪÁ˽â¾öÆóÒµÄÚ²¿²»Í¬IT×ÊÔ´Ö®¼äÎÞ·¨»¥Áª¶øµ¼ÖµÄÐÅÏ¢¹ÂµºÎÊÌâ¡£
2002Ä꣬SOA±»³Æ×÷"ÏÖ´úÓ¦Óÿª·¢ÁìÓò×îÖØÒªµÄ¿ÎÌâÖ®Ò»"£¬ÆäÕýÔÚ°ïÖúÆóÒµ´Ó×ÊÔ´ÀûÓõĽǶȳö·¢£¬½«IT×ÊÔ´ÕûºÏ³É¿É²Ù×÷µÄ¡¢»ùÓÚ±ê×¼µÄ·þÎñ£¬Ê¹ÆäÄܱ»ÖØÐÂ×éºÏºÍÓ¦Óá£
µ«ÊÇ£¬ÓÉÓÚSOA±¾ÉíµÄ¹ãÒåÐÔÒÔ¼°³éÏóÐÔ£¬ÔÚÆäµ®ÉúµÄÏ൱³¤Ò»¶Îʱ¼äÄÚ£¬ÈËÃǶÔSOA´æÔÚ×Ų»Í¬µÄÈÏÖªºÍÀí½â¡£
Ö±µ½2000Äê×óÓÒ£¬ESB(Enterprise Service Bus)¡¢WebService¡¢SOAPµÈÕâÀ༼ÊõµÄ³öÏÖ£¬²ÅʹµÃSOA½¥½¥Â䵨¡£Í¬Ê±£¬¸ü¶àµÄ³§ÉÌÏñIBM¡¢OracleµÈÒ²·Ö±ðÌá³ö»ùÓÚSOAµÄ½â¾ö·½°¸»òÕß²úÆ·¡£
΢·þÎñÓëSOAʵ¼ÊÉÏ£¬Î¢·þÎñ¼Ü¹¹²¢²»ÊÇÒ»¸öȫеĸÅÄî¡£×Ðϸ·ÖÎöSOAµÄ¸ÅÄ¾Í»á·¢ÏÖ£¬ÆäºÍÎÒÃǽñÌìËù̸µ½µÄ΢·þÎñ˼Ï뼸ºõÒ»Ö¡£ÄÇÔÚSOAµ®ÉúÕâô¶àÄêºó£¬ÎªÊ²Ã´ÓÖÌá³öÁË΢·þÎñ¼Ü¹¹ÄØ£¿
¼øÓÚ¹ýȥʮ¼¸Ä껥ÁªÍøÐÐÒµµÄ¸ßËÙ·¢Õ¹£¬ÒÔ¼°Ãô½Ý¡¢³ÖÐø¼¯³É¡¢³ÖÐø½»¸¶¡¢DevOps£¬ÔƼ¼ÊõµÈµÄÉîÈëÈËÐÄ£¬·þÎñ¼Ü¹¹µÄ¿ª·¢¡¢²âÊÔ¡¢²¿ÊðÒÔ¼°¼à¿ØµÈ£¬Ïà±ÈÎÒÃÇÌáµ½µÄ´«Í³µÄSOAʵÏÖ£¬ÒѾ´óÏྶͥ£¬Ö÷񻂿±ðÈçϱíËùʾ£º
Ïà±È´«Í³SOAµÄ·þÎñʵÏÖ·½Ê½£¬Î¢·þÎñ¸ü¾ßÓÐÁé»îÐÔ¡¢¿ÉʵʩÐÔÒÔ¼°¿ÉÀ©Õ¹ÐÔ£¬ÆäÇ¿µ÷µÄÊÇÒ»ÖÖ¶ÀÁ¢²âÊÔ¡¢¶ÀÁ¢²¿Êð¡¢¶ÀÁ¢ÔËÐеÄÈí¼þ¼Ü¹¹Ä£Ê½¡£
΢·þÎñ¼Ü¹¹µÄ¶¨Òå
Æäʵ£¬¼´±ãÁ˽âÁËÉÏÃæµÄ½éÉÜ£¬Ò²ºÜÄѶÔ΢·þÎñÏÂÒ»¸ö׼ȷµÄ¶¨Òå¡£¾ÍÏñNoSQL£¬ÎÒÃÇ̸ÂÛÁ˺ü¸ÄêµÄNoSQL£¬ÖªµÀNoSQL´ú±í×ÅʲôÑùµÄº¬Ò壬Ҳ¿ÉÒÔ¸ù¾Ý²»Í¬µÄÓ¦Óó¡¾°Ñ¡Ôñ²»Í¬µÄNoSQLÊý¾Ý¿â£¬µ«ÊÇÎÒÃÇ»¹ÊǺÜÄѶÔËüÏÂÒ»¸ö׼ȷµÄ¶¨Òå¡£ÀàËÆµÄ£¬¹ØÓÚʲôÊÇ¡®º¯Êýʽ±à³Ì¡¯£¬Ò²»ò¶à»òÉÙ´æÔÚͬÑùµÄ¾½¾³¡£ÎÒÃÇ¿ÉÒÔÇáËɵÄÑ¡Ôñ²»Í¬µÄº¯Êýʽ±à³ÌÓïÑÔ£¬¿ÉÒÔÇáËɵÄд³öº¯Êýʽ±à³Ì·ç¸ñµÄ´úÂ룬µ«ºÜÄѶÔʲôÊǺ¯Êýʽ±à³ÌÏÂÒ»¸ö׼ȷµÄ¶¨Òå¡£
ʵ¼ÊÉÏ£¬´ÓÒµ½çµÄÌÖÂÛÀ´¿´,΢·þÎñ±¾Éí²¢Ã»ÓÐÒ»¸öÑϸñµÄ¶¨Òå¡£²»¹ý£¬ThoughtWorksµÄÊ×ϯ¿ÆÑ§¼Ò£¬Âí¶¡
-¸£ÀÕÏÈÉú¶Ô΢·þÎñµÄÕâ¶ÎÃèÊö£¬Ëƺõ¸ü¼Ó¾ßÌå¡¢ÌùÇУ¬Í¨Ë×Ò×¶®£º
Microservice
The microservice architectural style
is an approach to developing a single application as
a suite of small services, each running in its own process
and communicating with lightweight mechanisms, often
an HTTP resource API. These services are built around
business capabilities and independently deployable by
fully automated deployment machinery. There is a bare
minimum of centralized management of these services,
which may be written in different programming languages
and use different data storage technologies.
΢·þÎñ¼Ü¹¹
΢·þÎñ¼Ü¹¹ÊÇÒ»Öּܹ¹Ä£Ê½£¬ËüÌᳫ½«µ¥Ò»Ó¦ÓóÌÐò»®·Ö³ÉÒ»×éСµÄ·þÎñ£¬·þÎñÖ®¼ä»¥Ïàе÷¡¢»¥ÏàÅäºÏ£¬ÎªÓû§Ìṩ×îÖÕ¼ÛÖµ¡£Ã¿¸ö·þÎñÔËÐÐÔÚÆä¶ÀÁ¢µÄ½ø³ÌÖУ¬·þÎñÓë·þÎñ¼ä²ÉÓÃÇáÁ¿¼¶µÄͨÐÅ»úÖÆ»¥Ï๵ͨ£¨Í¨³£ÊÇ»ùÓÚHTTPÐÒéµÄRESTful
API£©¡£Ã¿¸ö·þÎñ¶¼Î§ÈÆ×žßÌåÒµÎñ½øÐй¹½¨£¬²¢ÇÒÄܹ»±»¶ÀÁ¢µÄ²¿Êðµ½Éú²ú»·¾³¡¢ÀàÉú²ú»·¾³µÈ¡£ÁíÍ⣬Ӧµ±¾¡Á¿±ÜÃâͳһµÄ¡¢¼¯ÖÐʽµÄ·þÎñ¹ÜÀí»úÖÆ£¬¶Ô¾ßÌåµÄÒ»¸ö·þÎñ¶øÑÔ£¬Ó¦¸ù¾ÝÒµÎñÉÏÏÂÎÄ£¬Ñ¡ÔñºÏÊʵÄÓïÑÔ¡¢¹¤¾ß¶ÔÆä½øÐй¹½¨¡£
×ܽáÏÂÀ´£¬Î¢·þÎñ¼Ü¹¹ÖеĺËÐIJ¿·Ö°üÀ¨ÒÔϼ¸µã£º
С, ÇÒרעÓÚ×ö?¼þÊÂÇé
¶ÀÁ¢µÄ½ø³ÌÖÐ
ÇáÁ¿¼¶µÄͨÐÅ»úÖÆ
ËÉñîºÏ¡¢¶ÀÁ¢²¿Êð
×ܽáËæ×ÅÊг¡µÄ¿ìËÙ·¢Õ¹£¬ÒµÎñµÄ²»¶ÏÀ©´ó£¬µ¥¿é¼Ü¹¹Ó¦ÓÃÃæÁÙ×ÅÔ½À´Ô½¶àµÄÌôÕ½£¬Æä¸ÄÔìÓëÖØ¹¹ÊÆÔÚ±ØÐС£¶øÎ¢·þÎñ¼Ü¹¹µÄµ®Éú£¬ÊÇ»¥ÁªÍø¸ßËÙ·¢Õ¹£¬ÐéÄ⻯¼¼ÊõÓ¦ÓÃÒÔ¼°³ÖÐø½»¸¶¡¢DevOpsÉîÈëÈËÐĵÄ×ۺϲúÎï¡£Ëæ×ÅÓû§ÐèÇó¸öÐÔ»¯¡¢²úÆ·ÉúÃüÖÜÆÚ±ä¶Ì£¬Î¢·þÎñ¼Ü¹¹ÊÇδÀ´Èí¼þÈí¼þ¼Ü¹¹³¯×ÅÁé»îÐÔ¡¢À©Õ¹ÐÔ¡¢ÉìËõÐÔÒÔ¼°¸ß¿ÉÓÃÐÔ·¢Õ¹µÄ±ØÈ»·½Ïò¡£Í¬Ê±£¬ÒÔDockerΪ´ú±íµÄÈÝÆ÷ÐéÄ⻯¼¼ÊõµÄÊ¢ÐУ¬½«´ó´ó½µµÍ΢·þÎñʵʩµÄ³É±¾£¬ÎªÎ¢·þÎñÂ䵨ÒÔ¼°´ó¹æÄ£Ê¹ÓÃÌṩÁ˼áʵµÄ»ù´¡ºÍ±£ÕÏ¡£
|