±à¼ÍƼö: |
±¾ÎÄÊ×ÏȽéÉÜÁ˼ܹ¹µÄ·ÖÀàÒÔ¼°¼Ü¹¹Ä£Ê½Óë¼Ü¹¹·ç¸ñÆä´Î½éÉÜÁËDDD
ÁìÓòÇý¶¯Éè¼ÆºÍ΢·þÎñÓëÔÆÔÉú¼Ü¹¹,×îºó½éÉÜ Kuberentes Ó¦Óã¬Á˽âÏêÇéÇëÔĶÁÏÂÎÄ¡£
±¾ÎÄÀ´×ÔÓÚÖªºõ,ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
Èí¼þ¿ª·¢¾ÍÊǰÑÒ»¸ö¸´ÔÓµÄÎÊÌâ·Ö½âΪһϵÁмòµ¥µÄÎÊÌ⣬ÔÙ°ÑһϵÁмòµ¥µÄ½â¾ö·½°¸×éºÏ³ÉÒ»¸ö¸´ÔӵĽâ¾ö·½°¸¡£¶øÈí¼þ¿ª·¢ÖÐ×î´óµÄÌôÕ½£¬¾ÍÊǼ´Äܹ»¿ìËÙ¸ßЧµØÕë¶ÔÐèÇó¡¢»·¾³µÄ±ä»¯×ö³ö¸Ä±ä£¬Ò²Äܹ»³ÖÐøÌṩÎȶ¨¡¢¸ß¿ÉÓõķþÎñ¡£¶øÈí¼þ¼Ü¹¹£¬¾ÍÊÇÈí¼þϵͳµÄ¹Ç÷ÀÓë¿ò¼Ü¡£
Ëùν¼Ü¹¹£¬¼ûÈʼûÖÇ£¬ºÜÄÑÓÐÒ»¸öÃ÷È·»ò±ê×¼µÄ¶¨Ò壻µ«¼Ü¹¹²¢·Ç¾µ»¨Ë®Ô»òÑô´º°×Ñ©£¬ÓÐϵͳµÄµØ·½¾ÍÐèÒª¼Ü¹¹£¬´óµ½º½¿Õ·É»ú£¬Ð¡µ½Ò»¸öµçÉÌϵͳÀïÃæµÄÒ»¸ö¹¦ÄÜ×é¼þ£¬¶¼ÐèÒªÉè¼ÆºÍ¼Ü¹¹¡£³éÏó¶øÑÔ£¬¼Ü¹¹¾ÍÊǶÔϵͳÖеÄʵÌåÒÔ¼°ÊµÌåÖ®¼äµÄ¹ØÏµËù½øÐеijéÏóÃèÊö£¬ÊǶÔÎï/ÐÅÏ¢µÄ¹¦ÄÜÓëÐÎÊ½ÔªËØÖ®¼äµÄ¶ÔÓ¦Çé¿öËù×öµÄ·ÖÅ䣬ÊǶÔÔªËØÖ®¼äµÄ¹ØÏµÒÔ¼°ÔªËØÍ¬Öܱ߻·¾³Ö®¼äµÄ¹ØÏµËù×öµÄ¶¨Òå¡£¼Ü¹¹Äܽ«Ä¿±êϵͳ°´Ä³¸öÔÔò½øÐÐÇз֣¬ÇзֵÄÔÔò£¬ÊÇÒª±ãÓÚ²»Í¬µÄ½ÇÉ«½øÐв¢Ðй¤×÷£¬½á¹¹Á¼ºÃµÄ´´Ôì»î¶¯ÒªÓÅÓÚºÁÎ޽ṹµÄ´´Ôì»î¶¯¡£
Èí¼þ¼Ü¹¹µÄºËÐļÛÖµ£¬¼´ÊÇ¿ØÖÆÏµÍ³µÄ¸´ÔÓÐÔ£¬½«ºËÐÄÒµÎñÂß¼ºÍ¼¼Êõϸ½ÚµÄ·ÖÀëÓë½âñî¡£Èí¼þ¼Ü¹¹ÊÇϵͳµÄ²Ýͼ£¬ËüÃèÊöµÄ¶ÔÏóÊÇÖ±½Ó¹¹³ÉϵͳµÄ³éÏó×é¼þ£»¸÷¸ö×é¼þÖ®¼äµÄÁ¬½ÓÔòÃ÷È·ºÍÏà¶ÔϸÖµØÃèÊö×é¼þÖ®¼äµÄͨÐÅ¡£ÔÚʵÏֽ׶Σ¬ÕâЩ³éÏó×é¼þ±»Ï¸»¯ÎªÊµ¼ÊµÄ×é¼þ£¬±ÈÈç¾ßÌåij¸öÀà»òÕß¶ÔÏó¡£ÔÚÃæÏò¶ÔÏóÁìÓòÖУ¬×é¼þÖ®¼äµÄÁ¬½Óͨ³£ÓýӿÚÀ´ÊµÏÖ¡£¼Ü¹¹Ê¦µÄÖ°ÔðÊÇŬÁ¦ÑµÁ·×Ô¼ºµÄ˼ά£¬ÓÃËüÈ¥Àí½â¸´ÔÓµÄϵͳ£¬Í¨¹ýºÏÀíµÄ·Ö½âºÍ³éÏó£¬Àí½â²¢½âÎöÐèÇ󣬴´½¨ÓÐÓõÄÄ£ÐÍ£¬È·ÈÏ¡¢Ï¸»¯²¢À©Õ¹Ä£ÐÍ£¬¹ÜÀí¼Ü¹¹£»Äܹ»½øÐÐϵͳ·Ö½âÐγÉÕûÌå¼Ü¹¹£¬Äܹ»ÕýÈ·µÄ¼¼ÊõÑ¡ÐÍ£¬Äܹ»Öƶ¨¼¼Êõ¹æ¸ñ˵Ã÷²¢ÓÐÐ§ÍÆ¶¯ÊµÊ©Â䵨¡£
Èí¼þ¼Ü¹¹·ÖÀà
ÔÚ±ÊÕßµÄ֪ʶÌåϵÖУ¬Êµ¼ÊÉϽ«¼Ü¹¹·ÖΪҵÎñ¼Ü¹¹¡¢Ó¦Óüܹ¹¡¢ÔÆ»ù´¡¼Ü¹¹Õ⼸´óÀ࣬ҵÎñ¼Ü¹¹Ö÷Òª×ÅÑÛÓÚ¿ØÖÆÒµÎñµÄ¸´ÔÓÐÔ£¬»ù´¡¼Ü¹¹×ÅÑÛÓÚ½â¾ö·Ö²¼Ê½ÏµÍ³ÖдæÔÚµÄһϵÁÐÎÊÌâ¡£ÎÞÂÛºÎÖּܹ¹£¬¶¼Ï£ÍûÄÜʵÏÖϵͳµÄ¿É±äµÄͬʱ±£ÕÏÒµÎñµÄ¸ß¿ÉÓá£ÁíÒ»¸ö²ãÃæ£¬¸ù¾ÝÆóÒµÖÐÖ°ÔðµÄ»®·Ö£¬ÎÒÃÇÍùÍù¿ÉÒÔ½«Èí¼þ¼Ü¹¹£¬¼°¹ØÁªµÄ¼Ü¹¹Ê¦»®·ÖΪÒÔϼ¸Àࣺ
ÒµÎñ¼Ü¹¹/½â¾ö·½°¸¼Ü¹¹£ººËÐÄÊǽâ¾öÒµÎñ´øÀ´µÄϵͳ¸´ÔÓÐÔ£¬Á˽â¿Í»§/ÒµÎñ·½µÄÍ´µã£¬ÏîÄ¿¶¨Ò壬ÏÖÓл·¾³£»ÊáÀí¸ß½×ÐèÇóºÍ·Ç¹¦ÄÜÐÔÐèÇ󣬽øÐÐÎÊÌâÓò»®·ÖÓëÁìÓò½¨Ä£µÈ¹¤×÷£»¹µÍ¨£¬·½°¸½¨Ò飬¶à´Îµü´ú£¬½»¸¶×ÜÌå¼Ü¹¹¡£
Ó¦Óüܹ¹£º¸ù¾ÝÒµÎñ³¡¾°µÄÐèÒª£¬Éè¼ÆÓ¦ÓõIJã´Î½á¹¹£¬Öƶ¨Ó¦Óù淶¡¢¶¨Òå½Ó¿ÚºÍÊý¾Ý½»»¥ÐÒéµÈ¡£²¢¾¡Á¿½«Ó¦Óõĸ´ÔÓ¶È¿ØÖÆÔÚÒ»¸ö¿ÉÒÔ½ÓÊܵÄˮƽ£¬´Ó¶øÔÚ¿ìËÙµÄÖ§³ÅÒµÎñ·¢Õ¹µÄͬʱ£¬ÔÚ±£Ö¤ÏµÍ³µÄ¿ÉÓÃÐԺͿÉά»¤ÐÔµÄͬʱ£¬È·±£Ó¦ÓÃÂú×ã·Ç¹¦ÄÜÊôÐÔÒªÇó£¨ÐÔÄÜ¡¢°²È«¡¢Îȶ¨ÐԵȣ©¡£
Êý¾Ý¼Ü¹¹£º×¨×¢ÓÚ¹¹½¨Êý¾ÝÖÐ̨£¬Í³Ò»Êý¾Ý¶¨Ò广·¶£¬±ê×¼»¯Êý¾Ý±í´ï£¬ÐγÉÓÐЧÒ×ά»¤µÄÊý¾Ý×ʲú¡£´òÔìͳһµÄ´óÊý¾Ý´¦ÀíÆ½Ì¨£¬°üÀ¨Êý¾Ý¿ÉÊÓ»¯ÔËӪƽ̨¡¢Êý¾Ý¹²ÏíÆ½Ì¨¡¢Êý¾ÝȨÏÞ¹ÜÀíÆ½Ì¨µÈ¡£
Öмä¼þ¼Ü¹¹£º×¨×¢ÓÚÖмä¼þϵͳµÄ¹¹½¨£¬ÐèÒª½â¾ö·þÎñÆ÷¸ºÔØ£¬·Ö²¼Ê½·þÎñµÄ×¢²áºÍ·¢ÏÖ£¬ÏûϢϵͳ£¬»º´æÏµÍ³£¬·Ö²¼Ê½Êý¾Ý¿âµÈÎÊÌ⣬ͬʱ¼Ü¹¹Ê¦ÒªÔÚ
CAP Ö®¼ä½øÐÐȨºâ¡£
ÔËά¼Ü¹¹£º¸ºÔðÔËάϵͳµÄ¹æ»®¡¢Ñ¡ÐÍ¡¢²¿ÊðÉÏÏߣ¬½¨Á¢¹æ·¶»¯µÄÔËάÌåϵ¡£
ÎïÀí¼Ü¹¹£ºÎïÀí¼Ü¹¹¹Ø×¢Èí¼þÔª¼þÊÇÈçºÎ·Åµ½Ó²¼þÉϵģ¬×¨×¢ÓÚ»ù´¡ÉèÊ©£¬Ä³ÖÖÈíÓ²¼þÌåϵ£¬ÉõÖÁÔÆÆ½Ì¨£¬°üÀ¨»ú·¿´î½¨¡¢ÍøÂçÍØÆË½á¹¹£¬ÍøÂç·ÖÁ÷Æ÷¡¢´úÀí·þÎñÆ÷¡¢Web
·þÎñÆ÷¡¢Ó¦Ó÷þÎñÆ÷¡¢±¨±í·þÎñÆ÷¡¢ÕûºÏ·þÎñÆ÷¡¢´æ´¢·þÎñÆ÷ºÍÖ÷»úµÈ¡£
¼Ü¹¹Ä£Ê½Óë¼Ü¹¹·ç¸ñ
Èí¼þ¼Ü¹¹Éè¼ÆµÄÒ»¸öºËÐÄÎÊÌâÊÇÄÜ·ñʹÓÃÖØ¸´µÄ¼Ü¹¹Ä£Ê½£¬¼´ÄÜ·ñ´ïµ½¼Ü¹¹¼¶µÄÈí¼þÖØÓá£Ò²¾ÍÊÇ˵£¬ÄÜ·ñÔÚ²»Í¬µÄÈí¼þϵͳÖУ¬Ê¹ÓÃͬһ¼Ü¹¹¡£µ±ÎÒÃÇÌÖÂÛÈí¼þ¼Ü¹¹Ê±£¬³£³£»áÌá¼°Èí¼þ¼Ü¹¹Ä£Ê½£¨Architectural
Pattern£©ÓëÈí¼þ¼Ü¹¹·ç¸ñ£¨Architectural Style£©¡£
Èí¼þ¼Ü¹¹Ä£Ê½ÍùÍù»áÓÃÓÚ¾ßÌ嵨½â¾öij¸ö¾ßÌåµÄÖØ¸´µÄ¼Ü¹¹ÎÊÌ⣬¶ø¼Ü¹¹·ç¸ñÔòÊǶÔÓÚij¸ö¾ßÌåµÄ¼Ü¹¹Éè¼Æ·½°¸µÄÃüÃû¡£Èí¼þ¼Ü¹¹·ç¸ñÊÇÃèÊöÄ³Ò»ÌØ¶¨Ó¦ÓÃÁìÓòÖÐϵͳ×éÖ¯·½Ê½µÄ¹ßÓÃģʽ£»¼Ü¹¹·ç¸ñ·´Ó³ÁËÁìÓòÖÐÖÚ¶àϵͳËù¹²ÓеĽṹºÍÓïÒåÌØÐÔ£¬²¢Ö¸µ¼ÈçºÎ½«¸÷¸öÄ£¿éºÍ×ÓϵͳÓÐЧ×éÖ¯³ÉÒ»¸öÍêÕûµÄϵͳ¡£
ÔÚ±ÊÕßµÄϵÁÐÎÄÕÂÖУ¬CRUD¡¢·Ö²ã¼Ü¹¹¡¢Áù±ßÐμܹ¹¡¢Ñó´Ð¼Ü¹¹¡¢REST ÒÔ¼° DDD£¬¶¼ËãÊǼܹ¹·ç¸ñ£»¶ø
CQRS¡¢EDA¡¢UDLA¡¢Î¢·þÎñµÈÔò±»»®·Öµ½¼Ü¹¹Ä£Ê½ÖС£
ϵͳ¸´ÔÓÐÔµÄÀ´Ô´ÓëÓ¦¶Ô
ÔÚÈí¼þ¿ª·¢ÖУ¬³ÌÐòÔ±ÍùÍùÄܹ»ÍÑÀëÏÖʵ¹æÂɵÄÊø¸¿£¬´´Ôì³öÌìÂíÐпյÄÊÀ½ç£¬ÆäÒ²ÊÇ×î¾ßÓд´ÔìÁ¦µÄ»î¶¯Ö®Ò»¡£±à³ÌΨһÐèÒªµÄÊÇ´´ÔìÁ¦Ë¼Î¬ºÍ˼ά×éÖ¯ÄÜÁ¦£¬ÕâÒâζ×ÅÔÚÈí¼þ¿ª·¢¹ý³ÌÖÐ×î´óÏÞÖÆÊÇÀí½âÎÒÃÇÕýÔÚ´´½¨µÄ¶ÔÏó¡£Ëæ×ÅÈí¼þµÄÑݽø£¬¼ÓÈë¸ü¶àµÄ¹¦Äܵ㣬ϵͳ±äµÃÔ½À´Ô½¸´ÔÓ£º¸÷¸öÄ£¿é£¨Module£©¼ä´æÔÚן÷ÖÖ΢ÃîµÄÒÀÀµ¹ØÏµ¡£ÏµÍ³µÄ¸´ÔÓÐÔËæ×Åʱ¼ä»ýÀÛ£¬¶ÔÓÚ³ÌÐòÔ±À´Ëµ£¬ÐÞ¸Äϵͳʱ¿¼ÂÇÖÜÈ«ËùÓеĵÄÏà¹ØÒòËØ±äµÃÔ½À´Ô½À§ÄÑ¡£Õâ¾Í»áʹÈí¼þ¿ª·Å½ø¶È±ä»ºÂý£¬²¢ÇÒÒýÈë
Bug£¬¶øµ¼ÖÂ»á½øÒ»²½ÑÓ»º¿ª·¢½ø¶È£¬Ôö¼Ó¿ª·¢³É±¾¡£ÔÚÈκÎÒ»¸öϵͳµÄÉúÃüÖÜÆÚÖУ¬¸´ÔÓÐÔ²»¿É±ÜÃâ»áÔö¼Ó£»ÏµÍ³Ô½´ó£¬ÐèÒª¸ü¶àµÄÈË¿ª·¢£¬¹ÜÀíϵͳ¸´ÔÓÐԵŤ×÷¾ÍÔ½À§ÄÑ¡£
Eric Evans ÔÚ Domain©\Driven Design Ò»ÊéÖÐͲÛÁËËùνµÄÒâ´óÀûÃæÊ½¼Ü¹¹£¬¼´´úÂëȷʵ×öÁËÓÐÓõÄÊ£¬µ«ºÜÄѽâÊÍËüÊÇÈçºÎÈ¥Ö´Ðеģ»ËûÈÏΪÔì³ÉÕâÖÖ¾½¾³µÄÖ÷ÒªÔÒòÊÇ£¬½«ÁìÓòÎÊÌâµÄ¸´ÔÓ¶ÈÓë¼¼Êõϸ½ÚµÄ¸´ÔÓ¶È»ìºÏÔÚÁËÒ»Æð£¬×îÖÕµ¼ÖÂÕûÌ帴ÔӶȵÄÖ¸Êý¼¶Ôö³¤¡£

¸´ÔÓÐÔ²»ÊÇÆ¾¿Õ¶øÀ´£¬ºÜ¶àʱºòÒ²²»ÊÇ¿ÌÒâΪ֮£¬ÕâÒ²¾ÍÒâζן´ÔÓÐÔµÄÔö¼ÓÍùÍù²»»áÒÔÎÒÃǵÄÖ÷¹ÛÒâÖ¾Îª×ªÒÆ¡£¾ÍÏñ·¿¼äÀïµÄ´óÏó£¬ÎÒÃÇÎÞ·¨Ìӱܣ¬Ò²²»ÄÜÊÓ¶ø²»¼û¡£¸´ÔÓÐÔµÄÀ´Ô´¿ÉÄÜÊÇ£º
Îü»ýÓë³ÖÐøµü´ú£ºÔöÁ¿Ê½Éè¼ÆÒâζ×ÅÈí¼þÉè¼ÆÓÀ²»½áÊø£¬Éè¼ÆÔÚϵͳµÄÉúÃüÖÜÆÚÖгÖÐø·¢Éú£¬³ÌÐòԱҪʱ¿Ì¿¼ÂÇÉè¼ÆÎÊÌâ¡£ÔöÁ¿¿ª·¢Ò²Òâζ×ųÖÐøÖØ¹¹¡£Ò»¸öϵͳµÄ³õʼÉè¼Æ¼¸ºõ´ÓÀ´¶¼²»ÊÇ×îºÃµÄ·½°¸¡£Ëæ×žÑéµÄÔö¼Ó£¬±ØÈ»»á·¢ÏÖ¸üºÃµÄÉè¼Æ·½°¸¡£
½»»¥ÇÒÎÞÀ©Õ¹ÐÔÉè¼Æ£ºµ±Îü»ýЧӦµ¼ÖµĴó¹æÄ£ÏµÍ³£¬½áºÏÁ˽»»¥Õâ¸öÌØÐÔ£¬»áʹ¼¼Êõϵͳ¸ü¼Ó¸´ÔÓ¡£Ò»¸ö¼¼Êõϵͳ³ýÁË×÷ÓÃÓÚ×ÔÉí£¬»¹»áÓëÆäËü´óÁ¿ÏµÍ³²úÉú½»»¥¡£±ÈÈçϵ¥¹ºÂòÒ»¼þÉÌÆ·£¬ÄÇô¶©µ¥ÏµÍ³£¬ÉÌÆ·ÏµÍ³£¬Ö§¸¶ÏµÍ³£¬ÎïÁ÷ϵͳ£¬¿¨È¯ÏµÍ³¾Í»á½»»¥Ð×÷¡£ÕâÑùÎü»ýµÄ¸´ÔÓÐÔ£¬ÓÉÓÚ½»»¥ÌØÐԵijöÏÖ£¬»á³ÊÏÖ¼¸ºÎ¼¶ÊýÉÏÉý¡£
²»ºÏÀíµÄÒµÎñ·â×°£º²»ºÏÀíµÄÒµÎñ·â×°ÊÇÒ»¸öÏà¶Ô¿í·ºµÄ¸ÅÄÆä¾ßÌåµÄ±íÏÖÆ©ÈçÃæÏò¹ý³Ì¶ø²»ÊǶÔÏ󡢷ֲ㲻ºÏÀíµÈ¡£
ȱ·¦Í³Ò»ÓïÑÔ£ºµäÐ͵ÄÃô½Ý¿ª·¢µÄ½á¹¹£¬Á÷Ë®ÏßÉϵĸ÷¸ö½ÇÉ«ÍùÍù»áרעÓÚ×Ô¼º¸ºÔðµÄ»·½Ú£¬¾«Ï¸»¯µÄ·Ö¹¤Ò²ÏÞÖÆÁËÿ¸ö½ÇÉ«µÄÈ«¾ÖÊӽǣ»ËäÈ»ÎÒÃǾ³£ÌᳫËùνµÄÖ÷ÈËÎÌÒâʶ£¬µ«ÊÇÔÚÂäµØÊ±ÓÖºÜÄÑÈ¥ÍÆ½ø¡£
ȱ·¦Ô¼ÊøÓë¹æ·¶£ºÔÚÍŶÓÐ×÷¿ª·¢µÄ±³¾°Ï£¬È±Éٹ淶ºÍÔ¼Êø»áÑÏÖØË𺦼ܹ¹µÄÒ»ÖÂÐÔ£¨Consistency£©£¬´úÂëµÄ¿Éά»¤ÐÔ½«¼±¾çϽµ¡£¿ÉÄܹ淶ÔÚʵÏÖ²ãÃæ¾ÍÊÇÃüÃû¡¢·Ö°üµÈ²»Ó°Ïì´úÂëÔËÐеÄСÎÊÌ⣬µ«ÊÇǧÀïÖ®µÌ£¬À£ÓÚÒÏѨ£¬ÕýÊÇÕâЩ΢ĩµÄ²»×¢Òâµ¼ÖÂÁËÕûÌ帴ÔÓÐÔµÄÑ©±À¡£
¸´ÔÓÐÔµÄÓ¦¶ÔÓÀÔ¶²»»áÊÇÒ»ÀÍÓÀÒÝ£¬ÎÒÃÇÐèÒª²»¶ÏµØÍƳ³öУ¬ÊǶ¯Ì¬¡¢½¥½øµÄÖØËÜ×Ô¼º¶ÔÈí¼þϵͳµÄÈÏʶ£¬²»¶ÏÈÏʶÎÊÌâºÍѰÕÒ¸üÓŽâµÄ³ÖÐøµü´ú¡£µÚÒ»¸ö¿ØÖƸ´ÔÓÐÔµÄ;¾¶ÊÇ´úÂë¼òµ¥£¬ÒâͼÇåÎú£¨Obvious£©¡£ÀýÈç:
¼õÉÙÌØÊⳡ¾°µÄ´¦Àí£¬»ò±äÁ¿ÃüÃûÒ»ÖÂÐÔ¶¼ÄܽµµÍϵͳ¸´ÔÓÐÔ¡£ÁíÒ»ÖÖ·½Ê½¾ÍÊǶԸ´ÔÓÎÊÌâµÄ³éÏóÈ»ºó·Ö¶øÖÎÖ®¡£
ÁìÓòÇý¶¯Éè¼Æ

±¾²¿·Ö½ÚÑ¡×Ô¡¶ÁìÓòÇý¶¯Éè¼Æ¡·
DDD ÁìÓòÇý¶¯Éè¼Æ£¬ÆðÔ´ÓÚ 2004 ÄêÖøÃû½¨Ä£×¨¼Ò Eric Evans ·¢±íµÄËû×î¾ßÓ°ÏìÁ¦µÄÖøÃûÊé¼®£º¡¶Domain-Driven
Design ¨C Tackling Complexity in the Heart of Software¡·£¬Eric
Evans ÔÚ¸ÃÊéÖÐÖ»ÊÇÌṩÁËÒ»Ì×ÔʼÀíÂÛ£¬²¢Ã»ÓÐÌṩһÌ×·½·¨ÂÛ£¬Òò´Ë¶àÄêÀ´¶ÔÓÚ DDD Ò²ÊǼûÈʼûÖÇ¡£¸üÔçЩʱºò
MartinFowler Ôø¾Ìá³öƶѪģÐÍÓë³äѪģÐ͵ĸÅÄËûÈÏΪÎÒÃÇ´ó¶àÊýϵͳÒÔ POJO ×÷ΪģÐÍ£¬Ö»ÓÐÆÕͨµÄ
getter¡¢setter ·½·¨£¬Ã»ÓÐÕæÕýµÄÐÐΪ£¬ºÃÏñȱÉÙѪҺµÄÈË£¬ÔÚ Evans ¿´À´£¬DDD ÖÐÄ£ÐͶ¼ÊÇÒÔ³äѪÐÎʽ´æÔÚ£¬Ò²¾ÍÊÇ˵ÔÚ
DDD ÖУ¬ÎÒÃÇÉè¼ÆµÄÄ£ÐͲ»½ö°üº¬ÃèÊöÒµÎñÊôÐÔ£¬»¹Òª°üº¬Äܹ»ÃèÊö¶¯×÷µÄ·½·¨£¬²»Í¬µÄÊÇ£¬ÁìÓòÖÐһЩ¸ÅÄî²»ÄÜÓÃÔÚÄ£ÐͶÔÏó£¬Èç²Ö´¢¡¢¹¤³§¡¢·þÎñµÈ£¬ÈçÇ¿¼ÓÓÚÄ£ÐÍÖУ¬½«ÆÆ»µÄ£Ð͵͍Òå¡£

ÁìÓòÇý¶¯Éè¼ÆµÄÕ½ÂÔºËÐļ´Êǽ«ÎÊÌâÓòÓëÓ¦Óüܹ¹Ïà°þÀ룬½«ÒµÎñÓïÒåÏÔÏÖ»¯£¬°ÑÔÏÈ»ÞɬÄѶ®µÄÒµÎñËã·¨Âß¼£¬Í¨¹ýÁìÓò¶ÔÏó£¨Domain
Object£©£¬Í³Ò»ÓïÑÔ£¨Ubiquitous Language£©×ª»¯ÎªÁìÓò¸ÅÄîÇåÎúµÄÏÔÐÔ»¯±í´ï³öÀ´¡£
ͳһÓïÑÔ£¬Èí¼þµÄ¿ª·¢ÈËÔ±/ʹÓÃÈËÔ±¶¼Ê¹ÓÃͬһÌ×ÓïÑÔ£¬¼´¶Ôij¸ö¸ÅÄÃû´ÊµÄÈÏÖªÊÇͳһµÄ£¬½¨Á¢ÇåÎúµÄÒµÎñÄ£ÐÍ£¬ÐγÉͳһµÄÒµÎñÓïÒå¡£½«Ä£ÐÍ×÷ΪÓïÑÔµÄÖ§Öù¡£È·±£ÍŶÓÔÚÄÚ²¿µÄËùÓн»Á÷ÖУ¬´úÂëÖУ¬»Í¼£¬Ð´¶«Î÷£¬ÌرðÊǽ²»°µÄʱºò¶¼ÒªÊ¹ÓÃÕâÖÖÓïÑÔ¡£ÀýÈçÕ˺ţ¬×ªÕË£¬Í¸Ö§²ßÂÔ£¬ÕâЩ¶¼ÊǷdz£ÖØÒªµÄÁìÓò¸ÅÄÈç¹ûÕâЩÃüÃû¶¼ºÍÎÒÃÇÈÕ³£ÌÖÂÛÒÔ¼°
PRD ÖеÄÃèÊö±£³ÖÒ»Ö£¬½«»á¼«´óÌáÉý´úÂëµÄ¿É¶ÁÐÔ£¬¼õÉÙÈÏÖª³É±¾¡£¡£±ÈÈç²»ÔÙ»áÓÐÈËÔÚ»áÒéÖжԡ°¹¤µ¥¡±¡¢¡°ÉóºËµ¥¡±¡¢¡°±íµ¥¡±¶ø·´¸´È·ÈϺ¬ÒåÁË£¬DDD
µÄÄ£Ðͽ¨Á¢²»»á±» DB Ëù°ó¼Ü¡£
ÃæÏòÁìÓò£¬ÒµÎñÓïÒåÏÔÐÔ»¯£¬ÒÔÁìÓòȥ˼¿¼ÎÊÌ⣬¶ø²»ÊÇÄ£¿é¡£½«ÒþʽµÄÒµÎñÂß¼´ÓÒ»ÍÆ if-else ÀïÃæ³éÈ¡³öÀ´£¬ÓÃͨÓÃÓïÑÔÈ¥ÃüÃû¡¢È¥Ð´´úÂ롢ȥÀ©Õ¹£¬ÈÃÆä±ä³ÉÏÔʾ¸ÅÄºÜ¶àÖØÒªµÄÒµÎñ¸ÅÄ°´ÕÕÊÂÎñ½Å±¾µÄд·¨£¬Æäº¬ÒåÍêÈ«ÑÍûÔÚ´úÂëÂß¼ÖÐûÓÐÍ»ÏÔ³öÀ´¡£
Ö°Ôð»®·Ö£¬¸ù¾Ýʵ¼ÊÒµÎñºÏÀí»®·ÖÄ£ÐÍ£¬Ä£ÐÍÖ®¼äÒÀÀµ½á¹¹ºÍ±ß½ç¸ü¼ÓÇåÎú£¬±ÜÃâÁË»ìÂÒµÄÒÀÀµ¹ØÏµ£¬½ø¶øÔö¼Ó¿É¶ÁÐÔ¡¢¿Éά»¤ÐÔ£»µ¥Ò»Ö°Ôð£¬Ä£ÐÍÖ»¹Ø×¢×ÔÉíµÄ±¾Ö°¹¤×÷£¬±ÜÃ⡰ԽȨ¡±¶øµ¼Ö»ìÂҵĵ÷ÓùØÏµ¡£Í¨¹ý½¨Ä££¬¸üºÃµÄ±í´ïÏÖʵÊÀ½çÖеĸ´ÔÓÒµÎñ£¬Ëæ×Åʱ¼äµÄ·¢Õ¹£¬²»¶ÏÔö¼Óϵͳ¶Ôʵ¼ÊÒµÎñµÄ³Áµí£¬Ò²½«¸üºÃµÄͨ¹ýÇåÎúµÄ´úÂëÃèÊöÒµÎñÂß¼£¬Ä£Ð͵ÄÄÚ¾ÛÔö¼ÓÁËϵͳµÄ¸ß¶ÈÄ£¿é»¯£¬ÌáÉý´úÂëµÄ¿ÉÖØÓÃÐÔ£¬¶Ô±È´«Í³Èý²ãģʽÖУ¬ºÜÓпÉÄÜ´óÁ¿Öظ´µÄ¹¦ÄÜÉ¢ÂäÔÚ¸÷¸ö
Service ÄÚ²¿¡£
΢·þÎñÓëÔÆÔÉú¼Ü¹¹
±¾²¿·Ö½ÚÑ¡×Ô¡¶Î¢·þÎñÓëÔÆÔÉú¡·

µ¥Ìå·Ö²ã¼Ü¹¹
ÔÚ Web Ó¦ÓóÌÐò·¢Õ¹µÄÔçÆÚ£¬´ó²¿·Ö¹¤³ÌÊǽ«ËùÓеķþÎñ¶Ë¹¦ÄÜÄ£¿é´ò°üµ½µ¥¸ö¾ÞʯÐÍ£¨Monolith£©Ó¦ÓÃÖУ¬Æ©ÈçºÜ¶àÆóÒµµÄ
Java Ó¦ÓóÌÐò´ò°üΪ war °ü£¬×îÖÕ»áÐγÉÈçϵļܹ¹£º

¾ÞʯÐÍÓ¦ÓÃÒ×Óڴ¿ª·¢»·¾³¡¢Ò×ÓÚ²âÊÔ¡¢Ò×ÓÚ²¿Êð£»ÆäȱÏÝÒ²·Ç³£Ã÷ÏÔ£¬ÎÞ·¨½øÐоֲ¿¸Ä¶¯Ó벿Ê𣬱àÒëʱ¼ä¹ý³¤£¬»Ø¹é²âÊÔÖÜÆÚ¹ý³¤£¬¿ª·¢Ð§ÂʽµµÍµÈ¡£¼¯ÖÐʽ¼Ü¹¹·ÖΪ±ê×¼µÄÈý²ã£ºÊý¾Ý·ÃÎʲ㡢·þÎñ²ãºÍ
Web ²ã¡£
ÔÚ Web2.0 ʱ´ú¸Õ¸ÕÁ÷ÐеÄʱºò£¬»¥ÁªÍøÓ¦ÓÃÓëÆóÒµ¼¶Ó¦Óò¢Ã»Óб¾ÖʵÄÇø±ð£¬¼¯ÖÐʽ¼Ü¹¹·ÖΪ±ê×¼µÄÈý²ã£ºÊý¾Ý·ÃÎʲ㡢·þÎñ²ãºÍ
Web ²ã¡£
Êý¾Ý·ÃÎʲãÓÃÓÚ¶¨ÒåÊý¾Ý·ÃÎʽӿڣ¬ÊµÏÖ¶ÔÕæÊµÊý¾Ý¿âµÄ·ÃÎÊ£»
·þÎñ²ãÓÃÓÚ¶ÔÓ¦ÓÃÒµÎñÂß¼½øÐд¦Àí£»
Web ²ãÓÃÓÚ´¦ÀíÒì³£¡¢Âß¼Ìø×ª¿ØÖÆ¡¢Ò³ÃæäÖȾģ°åµÈ¡£
SOA ÃæÏò·þÎñ¼Ü¹¹
SOA£¨Service-Oriented Architecture£© ÃæÏò·þÎñ¼Ü¹¹£¬ÊÇÔÚ»¥ÁªÍøÓ¦ÓùæÄ£Ñ¸ËÙÔö³¤£¬¼¯ÖÐʽ¼Ü¹¹ÒÑÎÞ·¨×öµ½ÎÞÏÞÖÆµØÌáÉýϵͳµÄÍÌÍÂÁ¿µÄ±³¾°Ï£¬²úÉúµÄÉæ¼°Ä£¿é»¯¿ª·¢¡¢·Ö²¼Ê½À©Õ¹²¿ÊðµÈÏà¶Ô¿í·ºµÄ¸ÅÄî¡£

SOA ÊÇÒ»¸ö×é¼þÄ£ÐÍ£¬Ëü½«Ó¦ÓóÌÐòµÄ²»Í¬¹¦Äܵ¥Ôª£¨³ÆÎª·þÎñ£©Í¨¹ýÕâЩ·þÎñÖ®¼ä¶¨ÒåÁ¼ºÃµÄ½Ó¿ÚºÍÆõÔ¼ÁªÏµÆðÀ´¡£SOA
ÖеĽӿڶÀÁ¢ÓÚʵÏÖ·þÎñµÄÓ²¼þƽ̨¡¢²Ù×÷ϵͳºÍ±à³ÌÓïÑÔ£¬²ÉÓÃÖÐÁ¢µÄ·½Ê½½øÐж¨Òå¡£ÕâʹµÃ¹¹½¨ÔÚ¸÷ÖÖ¸÷ÑùµÄϵͳÖеķþÎñ¿ÉÒÔÒÔÒ»ÖÖͳһºÍͨÓõķ½Ê½½øÐн»»¥¡£ÃæÏò·þÎñ¼Ü¹¹£¬Ëü¿ÉÒÔ¸ù¾ÝÐèÇóͨ¹ýÍøÂç¶ÔËÉÉ¢ñîºÏµÄ´ÖÁ£¶ÈÓ¦ÓÃ×é¼þ½øÐзֲ¼Ê½²¿Êð¡¢×éºÏºÍʹÓ᣷þÎñ²ãÊÇ
SOA µÄ»ù´¡£¬¿ÉÒÔÖ±½Ó±»Ó¦Óõ÷Ó㬴ӶøÓÐЧ¿ØÖÆÏµÍ³ÖÐÓëÈí¼þ´úÀí½»»¥µÄÈËΪÒÀÀµÐÔ¡£
ʵʩ SOA µÄ¹Ø¼üÄ¿±êÊÇʵÏÖÆóÒµ IT ×ʲúµÄ×î´ó»¯×÷Óá£ÒªÊµÏÖÕâһĿ±ê£¬¾ÍÒªÔÚʵʩ SOA µÄ¹ý³ÌÖÐÀμÇÒÔÏÂÌØÕ÷£º¿É´ÓÆóÒµÍⲿ·ÃÎÊ¡¢ËæÊ±¿ÉÓᢴÖÁ£¶ÈµÄ·þÎñ½Ó¿Ú·Ö¼¶¡¢ËÉÉ¢ñîºÏ¡¢¿ÉÖØÓõķþÎñ¡¢·þÎñ½Ó¿ÚÉè¼Æ¹ÜÀí¡¢±ê×¼»¯µÄ·þÎñ½Ó¿Ú¡¢Ö§³Ö¸÷ÖÖÏûϢģʽ¡¢¾«È·¶¨ÒåµÄ·þÎñÆõÔ¼¡£

·þÎñÏû·ÑÕߣ¨Service Consumer£©¿ÉÒÔͨ¹ý·¢ËÍÏûÏ¢À´µ÷Ó÷þÎñ£¬ÕâЩÏûÏ¢ÓÉÒ»¸ö·þÎñ×ÜÏߣ¨Service
Bus£©×ª»»ºó·¢Ë͸øÊʵ±µÄ·þÎñʵÏÖ¡£ÕâÖÖ·þÎñ¼Ü¹¹¿ÉÒÔÌṩһ¸öÒµÎñ¹æÔòÒý£¨Business Rules
Engine£©£¬¸ÃÒýÇæÈÝÐíÒµÎñ¹æÔò±»ºÏ²¢ÔÚÒ»¸ö·þÎñÀï»ò¶à¸ö·þÎñÀï¡£ÕâÖּܹ¹Ò²ÌṩÁËÒ»¸ö·þÎñ¹ÜÀí»ù´¡£¨Service
Management Infrastructure£©£¬ÓÃÀ´¹ÜÀí·þÎñ£¬ÀàËÆÉóºË£¬ÁÐ±í£¨billing£©£¬ÈÕÖ¾µÈ¹¦ÄÜ¡£´ËÍ⣬¸Ã¼Ü¹¹¸øÆóÒµÌṩÁËÁé»îµÄÒµÎñÁ÷³Ì£¬¸üºÃµØ´¦Àí¿ØÖÆÇëÇó£¨Regulatory
Requirement£©£¬ÀýÈç Sarbanes Oxley£¨SOX£©£¬²¢ÇÒ¿ÉÒÔÔÚ²»Ó°ÏìÆäËû·þÎñµÄÇé¿öϸü¸ÄijÏî·þÎñ¡£
ÓÉÓÚ·Ö²¼Ê½ÏµÍ³Ê®·Ö¸´ÔÓ£¬Òò´Ë²úÉúÁË´óÁ¿µÄÓÃÓÚ¼ò»¯·Ö²¼Ê½ÏµÍ³¿ª·¢µÄ·Ö²¼Ê½Öмä¼þºÍ·Ö²¼Ê½Êý¾Ý¿â£¬·þÎñ»¯µÄ¼Ü¹¹Éè¼ÆÀíÄîÒ²±»Ô½À´Ô½¶àµÄ¹«Ë¾ËùÈÏͬ¡£ÈçÏÂÊÇ
Dubbo ¹Ù·½Îĵµ¹«²¼ÁËÒ»ÕÅÓÐ¹Ø SOA ϵͳÑÝ»¯¹ý³ÌµÄͼƬ£º

MSA ΢·þÎñ¼Ü¹¹
΢·þÎñ£¨Microservices Architecture Pattern£©ÓÉ Martin Fowler
ÔÚ 2014 ÄêÌá³öµÄ£¬ÊÇÏ£Íû½«Ä³¸öµ¥Ò»µÄµ¥ÌåÓ¦Óã¬×ª»¯Îª¶à¸ö¿ÉÒÔ¶ÀÁ¢ÔËÐС¢¶ÀÁ¢¿ª·¢¡¢¶ÀÁ¢²¿Êð¡¢¶ÀÁ¢Î¬»¤µÄ·þÎñ»òÕßÓ¦Óõľۺϣ¬´Ó¶øÂú×ãÒµÎñ¿ìËٱ仯¼°·Ö²¼Ê½¶àÍŶӲ¢Ðпª·¢µÄÐèÇó¡£È翵Íþ¶¨ÂÉ£¨Conway¡¯s
Law£©ËùÑÔ£¬ÈκÎ×éÖ¯ÔÚÉè¼ÆÒ»Ì×ϵͳ£¨¹ãÒå¸ÅÄʱ£¬Ëù½»¸¶µÄÉè¼Æ·½°¸ÔڽṹÉ϶¼Óë¸Ã×éÖ¯µÄͨÐŽṹ±£³ÖÒ»Ö£¬Î¢·þÎñÓë΢ǰ¶Ë²»½ö½öÊǼ¼Êõ¼Ü¹¹µÄ±ä»¯£¬»¹°üº¬ÁË×éÖ¯·½Ê½¡¢¹µÍ¨·½Ê½µÄ±ä»¯¡£

¶ÔÓÚ΢·þÎñ£¬²»Í¬±³¾°µÄÈËÒ²Óв»Í¬µÄ¼û½â£¬¶ÔÓÚÊìϤ SOA µÄ¿ª·¢Õߣ¬Î¢·þÎñÒ²¿ÉÒÔÈÏΪÊÇÈ¥³ýÁË ESB
µÄ SOA µÄÒ»ÖÖʵÏÖ·½°¸£»ESB ÊÇ SOA ¼Ü¹¹ÖеÄÖÐÐÄ×ÜÏߣ¬Éè¼ÆÍ¼ÐÎÓ¦¸ÃÊÇÐÇÐε쬶øÎ¢·þÎñÊÇÈ¥ÖÐÐÄ»¯µÄ·Ö²¼Ê½Èí¼þ¼Ü¹¹¡£SOA
¸ü¶àÇ¿µ÷ÖØÓ㬶øÎ¢·þÎñÆ«ÏòÓÚÖØÐ´¡£SOA Æ«Ïòˮƽ·þÎñ£¬Î¢·þÎñÆ«Ïò´¹Ö±·þÎñ£»SOA Æ«Ïò×ÔÉ϶øÏµÄÉè¼Æ£¬Î¢·þÎñÆ«Ïò×Ô϶øÉϵÄÉè¼Æ¡£

΢·þÎñÓë΢ǰ¶ËÔÀíºÍÈí¼þ¹¤³Ì£¬ÃæÏò¶ÔÏóÉè¼ÆÖеÄÔÀíͬÑùÏàͨ£¬¶¼ÊÇ×ñѵ¥Ò»Ö°Ôð(Single Responsibility)¡¢¹Ø×¢·ÖÀë(Separation
of Concerns)¡¢Ä£¿é»¯(Modularity)Óë·Ö¶øÖÎÖ®(Divide & Conquer)µÈ»ù±¾µÄÔÔò¡£´Ó¾ÞʯÐÍÓ¦Óõ½Î¢·þÎñµÄÑÜ»¯Ò²²¢·ÇÒ»õí¶ø¾Í£¬ÈçÏÂͼҲÑÝʾÁ˼òµ¥µÄ½¥½øÊ½Ìæ´ú¹ý³Ì£º


Cloud Native ÔÆÔÉú¼Ü¹¹
ÔÆÔÉúÊÇͨ¹ý¹¹½¨ÍŶӡ¢ÎÄ»¯ºÍ¼¼Êõ£¬ÀûÓÃ×Ô¶¯»¯ºÍ¼Ü¹¹À´¹ÜÀíϵͳµÄ¸´ÔÓÐԺͽâ·ÅÉú²úÁ¦¡£
¡ª Joe Beda£¬Heotio CTO£¬ÁªºÏ´´Ê¼ÈË

Pivotal ÊÇÔÆÔÉúÓ¦ÓõÄÌá³öÕߣ¬²¢ÍƳöÁË Pivotal Cloud Foundry ÔÆÔÉúÓ¦ÓÃÆ½Ì¨ºÍ
Spring ¿ªÔ´ Java ¿ª·¢¿ò¼Ü£¬³ÉÎªÔÆÔÉúÓ¦Óüܹ¹ÖÐÏÈÇýÕߺÍ̽·Õß¡£ÔçÔÚ 2015 Äê Pivotal
¹«Ë¾µÄ Matt Stine дÁËÒ»±¾½Ð×öÇ¨ÒÆµ½ÔÆÔÉúÓ¦Óüܹ¹µÄС²á×Ó£¬ÆäÖÐ̽ÌÖÁËÔÆÔÉúÓ¦Óüܹ¹µÄ¼¸¸öÖ÷ÒªÌØÕ÷£º·ûºÏ
12 Factors Ó¦Óá¢ÃæÏò΢·þÎñ¼Ü¹¹¡¢×Ô·þÎñÃô½Ý¼Ü¹¹¡¢»ùÓÚ API µÄÐ×÷ÒÔ¼°¿¹´àÈõÐÔ¡£2015
Äê Google Ö÷µ¼³ÉÁ¢ÁËÔÆÔÉú¼ÆËã»ù½ð»á£¨CNCF£©£¬Æð³õ CNCF ¶ÔÔÆÔÉú£¨Cloud Native£©µÄ¶¨Òå°üº¬ÒÔÏÂÈý¸ö·½Ã棺ӦÓÃÈÝÆ÷»¯¡¢ÃæÏò΢·þÎñ¼Ü¹¹¡¢Ó¦ÓÃÖ§³ÖÈÝÆ÷µÄ±àÅŵ÷¶È¡£

ÔÆÔÉúÓ¦ÓóÌÐò¼òµ¥µØ¶¨ÒåΪ´ÓÍ·¿ªÊ¼ÎªÔƼÆËã¼Ü¹¹¶ø¹¹½¨Ó¦ÓóÌÐò£»ÕâÒâζ×Å£¬Èç¹ûÎÒÃǽ«Ó¦ÓóÌÐòÉè¼ÆÎªÔ¤ÆÚ½«²¿ÊðÔÚ·Ö²¼Ê½¡¢¿ÉÀ©Õ¹µÄ»ù´¡¼Ü¹¹ÉÏ£¬ÎÒÃǵÄÓ¦ÓóÌÐò¾ÍÊÇÔÆÔÉúµÄ¡£Ëæ×Ź«¹²Ôƽ«³ÐÔØÔ½À´Ô½¶àµÄËãÁ¦£¬Î´À´ÔƼÆË㽫ÊÇÖ÷Á÷µÄ
IT ÄÜÁ¦½»¸¶·½Ê½£¬CNCF Ò²¶ÔÔÆÔÉú½øÐÐÁËÖØÐ¶¨Òå£ºÔÆÔÉú¼¼ÊõÓÐÀûÓÚ¸÷×éÖ¯ÔÚ¹«ÓÐÔÆ¡¢Ë½ÓÐÔÆºÍ»ìºÏÔÆµÈÐÂÐͶ¯Ì¬»·¾³ÖУ¬¹¹½¨ºÍÔËÐпɵ¯ÐÔÀ©Õ¹µÄÓ¦Óã»ÔÆÔÉúµÄ´ú±í¼¼Êõ°üÀ¨ÈÝÆ÷¡¢·þÎñÍø¸ñ¡¢Î¢·þÎñ¡¢²»¿É±ä»ù´¡ÉèÊ©ºÍÉùÃ÷ʽ
API¡£
Codeless ¶ÔÓ¦µÄÊÇ·þÎñ¿ª·¢£¬ÊµÏÖÁËÔ´´úÂëÍйܣ¬ÄãÖ»ÐèÒª¹Ø×¢ÄãµÄ´úÂëʵÏÖ£¬¶ø²»ÐèÒª¹ØÐÄÄãµÄ´úÂëÔÚÄÄ£¬ÒòΪÔÚÕû¸ö¿ª·¢¹ý³ÌÖÐÄã¶¼²»»á¸ÐÊܵ½´úÂë¿âºÍ´úÂë·ÖÖ§µÄ´æÔÚ¡£
Applicationless ¶ÔÓ¦µÄÊÇ·þÎñ·¢²¼£¬ÔÚ·þÎñ»¯¿ò¼ÜÏ£¬ÄãµÄ·þÎñ·¢²¼²»ÔÙÐèÒªÉêÇëÓ¦Óã¬Ò²²»ÐèÒª¹Ø×¢ÄãµÄÓ¦ÓÃÔÚÄÄ¡£
Serverless ¶ÔÓ¦µÄÔòÊÇ·þÎñÔËά£¬ÓÐÁË Serverless »¯ÄÜÁ¦£¬Äã²»ÔÙÐèÒª¹Ø×¢ÄãµÄ»úÆ÷×ÊÔ´£¬Servlerless
»á°ïÄã¸ã¶¨»úÆ÷×ÊÔ´µÄµ¯ÐÔÀ©ËõÈÝ
ÕâЩ¼¼Êõ×éºÏ´îÅ䣬Äܹ»¹¹½¨ÈÝ´íÐԺá¢Ò×ÓÚ¹ÜÀíºÍ±ãÓÚ¹Û²ìµÄËÉñîºÏϵͳ£»ÔÙ½áºÏ¿É¿¿µÄ×Ô¶¯»¯ÊֶΣ¬ÔÆÔÉú¼¼ÊõÄܹ»Ê¹¹¤³ÌʦÇáËɵضÔϵͳ×÷³öƵ·±ºÍ¿ÉÔ¤²âµÄÖØ´ó±ä¸ü¡£Óɴ˿ɼû£¬ÔÆÔÉúÊDZ£ÕÏϵͳÄÜÁ¦Á鶯ÐÔµØÓÐЧץÊÖ£»ÔÆÔÉú¼¼ÊõÓÐÀûÓÚ¸÷×éÖ¯ÔÚ¹«ÓÐÔÆ¡¢Ë½ÓÐÔÆºÍ»ìºÏÔÆµÈÐÂÐͶ¯Ì¬»·¾³ÖУ¬¹¹½¨ºÍÔËÐпɵ¯ÐÔÀ©Õ¹µÄÓ¦Óá£Î¢·þÎñ¼Ü¹¹·Ç³£ÊʺÏÔÆÔÉúÓ¦ÓóÌÐò£»µ«ÊÇ£¬ÔÆÔÉúͬÑù´æÔÚ×ÅÒ»¶¨µÄÏÞÖÆ£¬Èç¹ûÄãµÄÔÆÔÉúÓ¦ÓóÌÐò²¿ÊðÔÚ
AWS µÈ¹«ÓÐÔÆÉÏ£¬ÔòÔÆÔÉú API ²»ÊÇ¿çÔÆÆ½Ì¨µÄ¡£

ÔÆÔÉúÓ¦ÓõĹؼüÊôÐÔ°üÀ¨ÁË£ºÊ¹ÓÃÇáÁ¿¼¶µÄÈÝÆ÷´ò°ü¡¢Ê¹ÓÃ×îºÏÊʵÄÓïÑԺͿò¼Ü¿ª·¢¡¢ÒÔËÉñîºÏµÄ΢·þÎñ·½Ê½Éè¼Æ¡¢ÒÔ
API ΪÖÐÐĵĽ»»¥ºÍÐ×÷¡¢ÎÞ״̬ºÍÓÐ״̬·þÎñÔڼܹ¹ÉϽçÏÞÇåÎú¡¢²»ÒÀÀµÓڵײã²Ù×÷ϵͳºÍ·þÎñÆ÷¡¢²¿ÊðÔÚ×Ô·þÎñ¡¢µ¯ÐÔµÄÔÆ»ù´¡ÉèÊ©ÉÏ¡¢Í¨¹ýÃô½ÝµÄ
DevOps Á÷³Ì¹ÜÀí¡¢×Ô¶¯»¯ÄÜÁ¦¡¢Í¨¹ý¶¨ÒåºÍ²ßÂÔÇý¶¯µÄ×ÊÔ´·ÖÅä¡£ÔÆÔÉúÊÇ·Ö²¼Ê½Ó¦Óõ±ÏÂÖØÒªµÄ·¢Õ¹Â·¾¶£¬ÆäÖÕ̬Ӧµ±ÊÇ
Distributionless£¬ËùÓÐÓë·Ö²¼Ê½Ïà¹ØµÄÎÊÌâÓÉÔÆÆ½Ì¨½â£¬·Ö²¼Ê½Ó¦ÓõĿª·¢»á¸ú´«Í³Ó¦ÓõĿª·¢Ò»Ñù·½±ã£¬ÉõÖÁ¸ü¼Ó±ã½Ý¡£
ÔÆ»ù´¡¼Ü¹¹
±¾²¿·Ö½ÚÑ¡×Ô¡¶·Ö²¼Ê½»ù´¡¼Ü¹¹Ö®ÐéÄ⻯Óë±àÅÅ¡·

ÐéÄâ»ú
ÐéÄâ»úÓÉÄ³Ð©ÌØ¶¨µÄÓ²¼þºÍÄÚºËÐéÄ⻯×é³É£¬ÔËÐпͻ§²Ù×÷ϵͳ¡£³ÆÎª¹ÜÀí³ÌÐòµÄÈí¼þ´´½¨ÐéÄ⻯Ӳ¼þ£¬Æä¿ÉÒÔ°üÀ¨ÐéÄâ´ÅÅÌ£¬ÐéÄâÍøÂç½Ó¿Ú£¬ÐéÄâ
CPU µÈ¡£ÐéÄâ»ú»¹°üÀ¨¿ÉÒÔÓë´ËÐéÄâÓ²¼þͨÐŵıö¿ÍÄںˡ£¹ÜÀí³ÌÐò¿ÉÒÔÍйܣ¬ÕâÒâζ×ÅËüÊÇһЩÔÚÖ÷»ú²Ù×÷ϵͳ£¨MacOS£©ÉÏÔËÐеÄÈí¼þ£¬ÈçʾÀýÖÐËùʾ¡£ËüÒ²¿ÉÒÔÊÇÂã»ú£¬Ö±½ÓÔÚ»úÆ÷Ó²¼þÉÏÔËÐУ¨Ìæ»»ÄãµÄ²Ù×÷ϵͳ£©¡£ÎÞÂÛÄÄÖÖ·½Ê½£¬¹ÜÀí³ÌÐò·½·¨¶¼±»ÈÏΪÊÇÖØÁ¿¼¶µÄ£¬ÒòΪËüÐèÒªÐéÄ⻯¶à¸ö²¿·Ö£¨Èç¹û²»ÊÇÈ«²¿Ó²¼þºÍÄںˣ©¡£

VM ÐèÒªÓ²¼þÐéÄ⻯²ÅÄÜʵÏÖ»úÆ÷¼¶¸ôÀ룬¶øÈÝÆ÷ÔòÖ»ÐèÒªÔÚͬһ²Ù×÷ϵͳÄÚ½øÐиôÀë²Ù×÷¡£ Ëæ×ŸôÀë¿Õ¼äÊýÁ¿µÄÔö¼Ó£¬¿ªÏú²îÒì±äµÃ·Ç³£Ã÷ÏÔ¡£
ÈÝÆ÷
ÔÚ¹ýÈ¥¼¸ÄêÀï£¬ÔÆÆ½Ì¨·¢Õ¹Ñ¸ËÙ£¬µ«ÆäÖÐÀ§ÈÅÔËά¹¤³Ìʦ×î¶àµÄ£¬ÊÇÐèҪΪ¸÷ÖÖåÄÒìµÄ¿ª·¢ÓïÑÔ°²×°ÏàÓ¦µÄÔËÐÐʱ»·¾³¡£ËäÈ»×Ô¶¯»¯ÔËά¹¤¾ß¿ÉÒÔ½µµÍ»·¾³´î½¨µÄ¸´ÔÓ¶È£¬µ«ÈÔÈ»²»ÄÜ´Ó¸ù±¾ÉϽâ¾ö»·¾³µÄÎÊÌâ¡£

Docker µÄ³öÏÖ³ÉΪÁËÈí¼þ¿ª·¢ÐÐҵеķÖË®Á룬ÈÝÆ÷¼¼ÊõµÄ³ÉÊìÒ²±êÖ¾×ż¼ÊõмÍÔªµÄ¿ªÆô¡£Docker
ÌṩÁËÈÿª·¢¹¤³Ìʦ¿ÉÒÔ½«Ó¦ÓúÍÒÀÀµ·â×°µ½Ò»¸ö¿ÉÒÆÖ²µÄÈÝÆ÷ÖеÄÄÜÁ¦£¬ÕâÏî¾Ù´ëʹµÃ Docker ´óÓÐϯ¾íÕû¸öÈí¼þÐÐÒµ²¢ÇÒ½ø¶ø¸Ä±äÐÐÒµÓÎÏ·¹æÔòµÄÇ÷ÊÆ£¬ÕâÏñ¼«Á˵±ÄêÖÇÄÜÊÖ»ú¸Õ³öÏÖʱµÄ³¡¾°¡ª¡ª¸Ä±äÁËÕû¸öÊÖ»úÐÐÒµµÄÓÎÏ·¹æÔò¡£Docker
ͨ¹ý¼¯×°ÏäʽµÄ·â×°·½Ê½£¬Èÿª·¢¹¤³ÌʦºÍÔËά¹¤³Ìʦ¶¼Äܹ»ÒÔ Docker ËùÌṩµÄ¾µÏñ·Ö·¢µÄ±ê×¼»¯·½Ê½·¢²¼Ó¦Óã¬Ê¹µÃÒì¹¹ÓïÑÔ²»ÔÙÊÇÀ¦°óÍŶӵļÏËø¡£

ÈÝÆ÷Êǰüº¬Ó¦ÓóÌÐò´úÂ룬ÅäÖúÍÒÀÀµ¹ØÏµµÄÈí¼þ°ü£¬¿ÉÌṩÔËӪЧÂʺÍÉú²úÁ¦¡£ÈÝÆ÷ΪÎÒÃÇÌṩÁË¿ÉÔ¤²âµÄ£¬¿ÉÖØ¸´µÄºÍ²»¿É±äµÄÔËÐÐÔ¤ÆÚ£¬ÈÝÆ÷µÄÐËÆðÊÇ
DevOps ¼´·þÎñµÄÒ»¸ö¾Þ´óÍÆ¶¯ÒòËØ£¬¿ÉÒÔ¿Ë·þµ±½ñÃæÁÙµÄ×î´ó°²È«Õϰ¡£ÈÝÆ÷»¯Í¨¹ýÔÚ²Ù×÷ϵͳ¼¶±ð½øÐÐÐéÄ⻯À´Ê¹Ó¦ÓóÌÐò¿ÉÒÆÖ²£¬´Ó¶ø´´½¨»ùÓÚÄں˵ĸôÀëµÄ·âװϵͳ¡£ÈÝÆ÷»¯µÄÓ¦ÓóÌÐò¿ÉÒÔ·ÅÔÚÈκεط½£¬ÎÞÐèÒÀÀµÏîÔËÐлòÐèÒªÕû¸ö
VM£¬´Ó¶øÏû³ýÁËÒÀÀµ¹ØÏµ¡£
×÷Ϊ¶ÀÁ¢µÄµ¥Ôª£¬ÈÝÆ÷Äܹ»ÔÚÈκÎÖ÷»ú²Ù×÷ϵͳ£¬CentOS£¬Ubuntu£¬MacOS£¬ÉõÖÁÊÇÏñ Windows
ÕâÑùµÄ·Ç UNIX ϵͳÖÐÔËÐС£ÈÝÆ÷»¹³äµ±±ê×¼»¯µÄ¹¤×÷»ò¼ÆËãµ¥Ôª¡£Ò»¸ö³£¼ûµÄ·¶ÀýÊÇÿ¸öÈÝÆ÷ÔËÐе¥¸ö
Web ·þÎñÆ÷£¬Êý¾Ý¿âµÄµ¥¸ö·ÖƬ»òµ¥¸ö Spark ¹¤×÷³ÌÐòµÈ£¬Ö»ÐèÒªÀ©Õ¹ÈÝÆ÷µÄÊýÁ¿¾ÍÄܹ»±ã½ÝµØÀ©Õ¹Ó¦Óá£Ã¿¸öÈÝÆ÷¶¼ÓÐÒ»¸ö¹Ì¶¨µÄ×ÊÔ´ÅäÖã¨CPU£¬RAM£¬Ïß³ÌÊýµÈ£©£¬²¢ÇÒÀ©Õ¹Ó¦ÓóÌÐòÐèÒªÖ»À©Õ¹ÈÝÆ÷µÄÊýÁ¿¶ø²»Êǵ¥¸ö×ÊÔ´ÔÓï¡£µ±Ó¦ÓóÌÐòÐèÒª°´±ÈÀý·Å´ó»òËõСʱ£¬ÕâΪ¹¤³ÌʦÌṩÁ˸üÈÝÒ׵ijéÏó¡£ÈÝÆ÷Ò²ÊÇʵÏÖ΢·þÎñ¼Ü¹¹µÄÒ»¸öºÜºÃµÄ¹¤¾ß£¬Ã¿¸ö΢·þÎñÖ»ÊÇÒ»×éÐ×÷ÈÝÆ÷¡£ÀýÈ磬¿ÉÒÔʹÓõ¥¸öÖ÷ÈÝÆ÷ºÍ¶à¸ö´ÓÈÝÆ÷À´ÊµÏÖ
Redis ΢·þÎñ¡£
Kubernetes Óë±àÅÅ
Ëæ×ÅÐéÄ⻯¼¼ÊõµÄ³ÉÊìºÍ·Ö²¼Ê½¼Ü¹¹µÄÆÕ¼°£¬ÓÃÀ´²¿Êð¡¢¹ÜÀíºÍÔËÐÐÓ¦ÓõÄÔÆÆ½Ì¨±»Ô½À´Ô½¶àµØÌá¼°¡£IaaS¡¢PaaS
ºÍ SaaS ÊÇÔÆ¼ÆËãµÄÈýÖÖ»ù±¾·þÎñÀàÐÍ£¬·Ö±ð±íʾ¹Ø×¢Ó²¼þ»ù´¡ÉèÊ©µÄ»ù´¡ÉèÊ©¼´·þÎñ¡¢¹Ø×¢Èí¼þºÍÖмä¼þƽ̨µÄƽ̨¼´·þÎñ£¬ÒÔ¼°¹Ø×¢ÒµÎñÓ¦ÓõÄÈí¼þ¼´·þÎñ¡£ÈÝÆ÷µÄ³öÏÖ£¬Ê¹ÔÓеĻùÓÚÐéÄâ»úµÄÔÆÖ÷»úÓ¦Ó㬳¹µ×ת±äΪ¸ü¼ÓÁé»îºÍÇáÁ¿µÄÈÝÆ÷Óë±àÅŵ÷¶ÈµÄÔÆÆ½Ì¨Ó¦Óá£

È»¶øÈÝÆ÷µ¥ÔªÔ½À´Ô½É¢ÂäʹµÃ¹ÜÀí³É±¾Öð½¥ÉÏÉý£¬´ó¼Ò¶ÔÈÝÆ÷±àÅŹ¤¾ßµÄÐèÇóǰËùδÓеÄÇ¿ÁÒ£¬Kubernetes¡¢Mesos¡¢Swarm
µÈÎªÔÆÔÉúÓ¦ÓÃÌṩÁËÇ¿ÓÐÁ¦µÄ±àÅź͵÷¶ÈÄÜÁ¦£¬ËüÃÇÊÇÔÆÆ½Ì¨Éϵķֲ¼Ê½²Ù×÷ϵͳ¡£ÈÝÆ÷±àÅÅÊÇͨ³£¿ÉÒÔ²¿Êð¶à¸öÈÝÆ÷ÒÔͨ¹ý×Ô¶¯»¯ÊµÏÖÓ¦ÓóÌÐòµÄ¹ý³Ì¡£Ïñ
Kubernetes ºÍ Docker Swarm ÕâÑùµÄÈÝÆ÷¹ÜÀíºÍÈÝÆ÷±àÅÅÒýÇæ£¬Ê¹Óû§Äܹ»Ö¸µ¼ÈÝÆ÷²¿Êð²¢×Ô¶¯Ö´ÐиüУ¬ÔËÐÐ×´¿ö¼àÊӺ͹ÊÕÏ×ªÒÆ¹ý³Ì¡£
Kubernetes ÊÇĿǰÊÀ½ç·¶Î§ÄÚ¹Ø×¢¶È×î¸ßµÄ¿ªÔ´ÏîÄ¿£¬ËüÊÇÒ»¸ö³öÉ«µÄÈÝÆ÷±àÅÅϵͳ£¬ÓÃÓÚÌṩһվʽ·þÎñ¡£Kubernetes
³öÉíÓÚ»¥ÁªÍøÐÐÒµ¾ÞÍ· Google£¬Ëü½è¼øÁËÓÉÉϰÙλ¹¤³Ìʦ»¨·ÑÊ®¶àÄêʱ¼ä´òÔìµÄ Borg ϵͳµÄÀíÄ°²×°¼«Æä¼òÒ×£¬ÍøÂç²ã¶Ô½Ó·½Ê½Ê®·ÖÁé»î¡£Kubernetes
ºÍ Mesos µÄ³öÉ«±íÏÖ¸øÐÐÒµÖи÷À๤³ÌʦµÄ¹¤×÷ģʽ´øÀ´Á˵߸²ÐԵĸı䡣ËûÃÇÔÙÒ²²»ÓùØ×¢Ã¿Ò»Ì¨·þÎñÆ÷£¬µ±·þÎñÆ÷³öÏÖÎÊÌâʱ£¬Ö»Òª½«Æä»»µô¼´¿É¡£ÒµÎñ¿ª·¢¹¤³Ìʦ²»±ØÔÙ¹ý·Ö¹Ø×¢·Ç¹¦ÄÜÐèÇó£¬Ö»Ðèרע×Ô¼ºµÄÒµÎñÁìÓò¼´¿É¡£¶øÖмä¼þ¿ª·¢¹¤³ÌʦÔòÐèÒª¿ª·¢³ö½¡×³µÄÔÆÔÉúÖмä¼þ£¬ÓÃÀ´Á¬½ÓÒµÎñÓ¦ÓÃÓëÔÆÆ½Ì¨¡£
Kubernetes¡¢Service Mesh ºÍ Serverless ÈýÕß¹²Í¬ÑÝÒﲻͬ²ã´ÎµÄ·â×°ºÍÏòÉÏÆÁ±ÎÏÂÃæµÄϸ½Ú¡£Kubernetes
ÒýÈëÁ˲»Í¬µÄÉè¼ÆÄ£Ê½£¬ÊµÏÖ¶Ô¸÷ÖÖÔÆ×ÊԴȫС¢ÓÐЧºÍÓÅÑŵijéÏóºÍ¹ÜÀíģʽ£¬Èü¯ÈºµÄ¹ÜÀíºÍÓ¦Ó÷¢²¼±ä³ÉÁ˼þÏ൱ÇáËÉÇÒ²»Ò׳ö´íµÄÊ¡£±»¹ã·º²ÉÓõÄ΢·þÎñÈí¼þ¼Ü¹¹½«·Ö²¼Ê½Ó¦Óõĸ÷ÖÖ¸´ÔÓ¶ÈÇ¨ÒÆµ½ÁË·þÎñÖ®¼ä£¬ÈçºÎͨ¹ýÈ«¾ÖÒ»Ö¡¢Ìåϵ»¯¡¢¹æ·¶»¯ºÍÎÞÇÖÈëµÄÊֶνøÐÐÖÎÀí¾Í±ä³ÉÁË΢·þÎñÈí¼þ¼Ü¹¹ÏÂÖÁ¹ØÖØÒªµÄÄÚÈÝ¡£Kubernetes
ϸ»¯µÄÓ¦ÓóÌÐòµÄ·Ö½âÁ£¶È£¬Í¬Ê±½«·þÎñ·¢ÏÖ¡¢ÅäÖùÜÀí¡¢¸ºÔؾùºâºÍ½¡¿µ¼ì²éµÈ×÷Ϊ»ù´¡ÉèÊ©µÄ¹¦ÄÜ£¬¼ò»¯ÁËÓ¦ÓóÌÐòµÄ¿ª·¢¡£¶ø
Kubernetes ÕâÖÖÉùÃ÷ʽÅäÖÃÓÈÆäÊÊºÏ CI/CD Á÷³Ì£¬¿öÇÒÏÖÔÚ»¹ÓÐÈç Helm¡¢Draft¡¢Spinnaker¡¢Skaffold
µÈ¿ªÔ´¹¤¾ß¿ÉÒÔ°ïÖúÎÒÃÇ·¢²¼ Kuberentes Ó¦Óá£

Service Mesh ͨ¹ý½«¸÷·þÎñËù¹²ÓúÍÓë»·¾³Ïà¹ØµÄÄÚÈݰþÀëµ½²¿ÊðÓÚÿ¸ö·þÎñ±ßÉ쵀 Sidecar
½ø³Ì¶øÇáËɵØ×öµ½ÁË¡£ÕâÒ»°þÀ붯×÷ʹµÃ·þÎñÓëÆ½Ì¨Äܳä·Ö½âñî¶ø·½±ã¸÷×ÔÑݽøÓë·¢Õ¹£¬Ò²Ê¹µÃ·þÎñ±äÇá¶øÓÐÖúÓÚ¸ÄÉÆ·þÎñÆôÍ£µÄ¼°Ê±ÐÔ¡£Service
Mesh ÒòΪ½«ÄÇЩ·þÎñÖÎÀíÏà¹ØµÄÂß¼°þÀëµ½ÁË Sidecar ÖÐÇÒ×÷Ϊ¶ÀÁ¢½ø³Ì£¬ËùÒÔ Sidecar
ËùʵÏֵŦÄÜÌìÈ»µØÖ§³Ö¶àÓïÑÔ£¬ÎªÉÏÃæµÄ·þÎñ²ÉÓöàÓïÑÔ¿ª·¢´´ÔìÁ˸üΪÓÐÀûµÄÌõ¼þ¡£Í¨¹ý Service
Mesh ¶ÔÕû¸öÍøÂçµÄ·þÎñÁ÷Á¿½øÐм¼ÊõÊÕ¿Ú£¬ÈÃÒìµØ¶à»îÕâÑùÉæ¼°Á÷Á¿µ÷¶ÈµÄϵͳ¹¤³ÌʵÏÖÆðÀ´¸ü¼ÓÓÅÑÅ¡¢¼ò½àÓëÓÐЧ£¬Ò²Äܸü¼Ó·½±ãµØÊµÏÖ·þÎñ°æ±¾Éý¼¶Ê±µÄ»Ò¶È¡¢»Ø¹ö¶ø¸ÄÉÆ°²È«Éú²úÖÊÁ¿¡£ÓÉÓÚ¼¼ÊõÊÕ¿Ú£¬¸ø·þÎñÁ÷Á¿µÄÖÎÀíºÍÑݽø¡¢ÅÅ´í¡¢ÈÕÖ¾²É¼¯µÄ¾¼ÃÐÔµÈÒÉÄÑÎÊÌâ´´ÔìÁËеķ¢Õ¹¿Õ¼ä¡£
ÑÓÉìÔĶÁ

|