¡¡½øÈë2016ÄêÒÔºó£¬ÈÝÆ÷¼¼ÊõÔçÒѾ´Ó×î³õµÄÅ£±ÆÂúÌì·Éµ½Á˽Å̤ʵµØµÄ´ó¹æÄ£ÆÌ¿ª¡£ºÜ¶àÆóÒµ¶¼ÒѾÔÚʵ¼ÊÏîÄ¿ÖлòÉî»òdzµÄʹÓÃ×ÅÈÝÆ÷¼¼Êõ£¬ÏíÊܵ½Ð¼¼Êõ´øÀ´µÄ¼ò½àºÍ¸ßЧ¡£×÷Ϊ¹úÄÚ×îÔçÑо¿ºÍʹÓÃDocker¼¼ÊõµÄÆóÒµ£¬ThoughtWorksÔÚ2013Äêµ×¾ÍÔÚʵ¼ÊÏîÄ¿Öн«DockerÓÃÓÚ²âÊÔ»·¾³µÄ×ÊÔ´¸´Ó㬲¢ÔÚÖ®ºóµÄÐí¶àÏîÄ¿ÖÐÖð½¥×ܽá³öÐí¶àÓÐÓõÄʵ¼ùºÍ¾Ñé¡£ÔÚÕâÆªÎÄÕÂÀÎÒ½«ÁÄÁÄDockerÔÚÎÒ¾Àú¹ýÏîÄ¿ÖеÄһЩ±È½ÏÓдú±íÐÔµÄÔËÓó¡¾°¡£
ÏÖʵÖеÄÈÝÆ÷¼¼ÊõÔËÓ÷½Ê½·Ç³£¹ã·º¶øÁé»î£¬Ê±³£ÈÃÈ˾õµÃÄÔ¶´´ó¿ª£¬¸ÅÀ¨À´ËµÊÇ¡º¿ÉС¿É´ó£¬¿ÉÔ¶¿É½ü¡»¡£ÏÂÃæÓÃËĸö°¸ÀýÀ´²ûʾÈÝÆ÷ÔÚ·ÇÌØ¶¨ÁìÓòÀïµÄÔËÓó¡¾°¡£
ÈÝÆ÷֮С£ºÐ¡¶øÃÀµÄÈÝÆ÷DevOps¼Ü¹¹Õ»

ͼ1»ùÓÚÈÝÆ÷ºÍDevOpsÀíÄîµÄÔËά¼Ü¹¹
ÕâÕżܹ¹Í¼À´×ÔÓÚÒ»¸ö¹æÄ£²»µ½20È˵ÄСÐͲúÆ·ÍŶӣ¬ÍŶӵĽṹʮ·Ö¾«ÇÉ£¬ÓÉÁ½Ãû¿ª·¢ÈËÔ±¼æÈÎÖ÷ÒªµÄÔËά¹¤×÷¡£ÕâÁ½Î»¿ª·¢ÈËÔ±£¬»¨Á˼¸ÖÜʱ¼äͨ¹ýAnsibleÂ½Â½ÐøÐø´î½¨ÆðÁËÕâÌ×ÓÉÉϰٸö·þÎñÆ÷½Úµã×é³ÉµÄ¼¯Èº£¬²¢ÓÉÍŶÓËùÓпª·¢ÈËÔ±¹²Í¬Î¬»¤¡£ÕûÌåÌ×¼¯ÈºÏµÍ³¸ß¶È×Ô¶¯»¯£¬Ê¹µÃÍŶӵÄÿ¸öÈ˶¼Äܹ»Ê®·Ö¿ìËÙ¶ø°²È«µÄÍê³ÉÒµÎñ¹¦ÄܵIJ¿Êð¡¢»ñÈ¡ÏßÉÏÒµÎñµÄÔËÐÐ×´¿ö¡¢ÒÔ¼°¶Ô³öÏÖÎÊÌâµÄ¹ÊÕÏµã½øÐпìËÙµÄÈÕÖ¾´íÎó¶¨Î»¡£
ÂéȸËäС£¬ÎåÔà¾ãÈ«¡£ÕâÌ×¼¼Êõ·½°¸°üº¬Á˼¯Èº¹ÜÀí¡¢ÍøÂç¹ÜÀí¡¢·þÎñ·¢ÏÖ¡¢ÈÕÖ¾¹ÜÀí¡¢ÐÔÄÜ¼à¿ØµÈÐí¶à·½ÃæµÄÉè¼Æ£¬´Ó¼Ü¹¹µÄ½Ç¶ÈÉÏ¿´£¬ÒѾٲȻÊÇÒ»¸öСÐÍ˽ÓÐPaaSƽ̨¡£
Swarm×÷Ϊ¼¯ÈºµÄ¹ÜÀí¹¤¾ß£¬¾ßÓÐÓëDockerÔÉúÃüÁîÁ¼ºÃµÄÒ»ÖÂÐÔ£¬ÔÚѧϰÇúÏ߱ȽϻººÍ£¬ÔÚDevOpsÎÄ»¯±È½ÏºÃµÄÍŶÓÖкÜÈÝÒ×Èÿª·¢ÈËÔ±¿ìËÙÉÏÊÖ¡£ÔÚÕâ¸ö¼Ü¹¹·½°¸ÖÐʹÓÃÁËConsul×÷Ϊ¼¯ÈºÔªÊý¾Ý´æ´¢µÄ·½°¸£¬SwarmµÄÖ÷¡¢´Ó½ÚµãÐÅÏ¢ÒÔ¼°DockerµÄ¿ç½ÚµãÍøÂç»®·ÖµÄÐÅÏ¢¶¼´æ·ÅÔÚÕâÀï¡£Consul³ýÁË×÷Ϊ¼¯ÈºÐÅÏ¢µÄ´æ´¢£¬»¹¿ÉÒÔÓÃÓÚÓ¦Ó÷þÎñµÄÅäÖô洢ºÍ·þÎñ·¢ÏÖ£¬ÒÔ¼°×÷ΪÄÚÍøµÄDNS·þÎñʹÓᣲ»¹ý³öÓÚ°²È«ÐԺͿÉά»¤ÐԵĿ¼ÂÇ£¬Ó¦¸ÃΪӦÓ÷þÎñµ¥¶À´î½¨¶ÀÁ¢µÄConsul½Úµã£¬Óë´æ´¢¼¯ÈºÅäÖõÄConsul·Ö¿ª£¬·ÀÖ¹ÓÉÓÚÊý¾Ý¸ÉÈźÍÒâÍâÐÞ¸ÄÒýÆð´ó¹æÄ£ÏµÍ³¹ÊÕÏ¡£
ʹÓÃSwarmµÄÁíÒ»¸öDZÔںô¦ÊÇËüÄܹ»³ä·ÖÀûÓÃDockerÄÚÖõĿç½ÚµãÍøÂ繦ÄÜ£¬ÕâÌ×»ùÓÚVxLANµÄSDNʵÏÖÊ®·Ö¼ò½àÒ×Óã¬Í¨ÐÅЧÂÊÒ²ºÜ²»´í¡£
ÈÝÆ÷¼¯ÈºµÄµÄÐÔÄÜ¼à¿ØºÍÈÕÖ¾¹ÜÀíÊÇʹµÃÕâ¸öСÍŶӵÃÒÔ¼ÝÔ¦±ÈÍŶÓÈËÊý¸ü¶àµÄ·þÎñ½ÚµãµÄ¹Ø¼üÒªËØ£¬ÈÎÆ¾ÔËÐеķþÎñÔÚ»úÆ÷ÂþÂþº£ÑóÖÐËæÒâ´©ÐУ¬ÕâÁ½¼þ¹¤¾ß¾ÍÊÇ¿ª·¢ÈËÔ±µÄÂÞÅ̺ͷçÏò±ê£¬ÔڹؼüʱºòΪÏßÉϹÊÕϵĶ¨Î»ÕùÈ¡±¦¹óʱ¼ä£¬²¢ÄÜ´ÓÖÐѸËÙÕÒµ½Ã¿¸ö·þÎñµ±Ç°ÔËÐеĽڵ㣬´Ó¶ø²ÉÈ¡±ØÒªµÄÓ¦¼±´ëÊ©¡£cAdvisor+Influxdb+GrafanaÊÇÒ»Ì×ΪÈÝÆ÷¼¯ÈºÐÔÄÜ¼à¿ØÉè¼ÆµÄ¿ªÔ´½â¾ö·½°¸£¬ÀûÓÃcAdvisor¶ÔÈÝÆ÷ÐÅÏ¢µÄÁ¼ºÃ¼à¿ØÄÜÁ¦£¬Influxdb¶Ôʱ¼äÐòÁÐÊý¾ÝµÄ¿ìËÙ¼ìË÷ÄÜÁ¦£¬ÒÔ¼°GrafanaµÄÇ¿´óͼ±íչʾÄÜÁ¦£¬ÐγÉÐÔÄÜÊý¾ÝµÄʵʱ²é¿´ºÍÀúÊ·»ØËÝ£¬²¢·´À¡µ½¿ª·¢ºÍÔËÓªµÄ״̬±¨±í£¬ÐγÉÍêÕû±Õ»·¡£²»¹ý£¬Õâ¸ö¿ªÔ´×éºÏµÄȱÏÝÔÚÓÚȱ·¦ÏֳɵÄʼþ¸æ¾¯×é¼þ£¬ÔÚInfluxdata¹«Ë¾µÄTelegrafÏîÄ¿Öð½¥³ÉÊìºó£¬¿ÉÒÔ¿¼ÂÇʹÓÃËüÌæ´úcAdvisorµÄ¹¦ÄÜ£¬È»ºó¼¯³ÉKapacitor×÷Ϊ¸æ¾¯Ä£¿é£¬ÌáǰԤ֪·þÎñµÄ²»Õý³£×´Ì¬¡£ÈÕÖ¾¹ÜÀí·½Ãæ£¬ÕâÌ×ϵͳʹÓÃÁ˵±ÏÂ×îÖ÷Á÷µÄÈÝÆ÷ÈÕÖ¾¿ªÔ´¹¤¾ß×éºÏFluentd+EslasticSearch+Kibana£¬ÔÚ¡¶³ÌÐòÔ±¡·2016Äê6Ô¿¯¡ºÈÝÆ÷µÄÐÔÄÜ¼à¿ØºÍÈÕÖ¾¹ÜÀí¡»Ò»ÎÄÖÐÒѾ¶ÔÕâ¸ö×éºÏ½øÐйý±È½ÏÉîÈëµÄ̽ÌÖ¡£
ÕâÊÇDocker¼¯Èº»¯Êµ¼ùÖÐÔËÓõñȽϳöÉ«µÄÒ»¸ö°¸Àý£¬ÌرðÊǶÔÖÐСÐͲúÆ·ÍŶӣ¬»áÓв»ÉÙ¿É½è¼øºÍÆô·¢Ö®´¦¡£ÔÚ²»ÓÃÔö¼Ó¶îÍâÔËάÈËÔ±µÄÇé¿öÏ£¬ÕâÌ×ϵͳ¿ÉÒԱȽÏÇáËɵÄÀ©ÈÝÖÁ¼¸°ÙÉÏǧµÄ¹æÄ£¡£È»¶ø£¬Õâ¸ö¼Ü¹¹±¾Éí²¢Ã»Óп¼ÂÇÆ©Èç¶àÊý¾ÝÖÐÐÄ¡¢×â»§¸ôÀë¡¢·ÃÎÊÊÚȨ¡¢×ÊÔ´Åä¶îµÈ¸´ÔÓÇé¾°£¬ËüÖ÷ÒªµÄÉè¼Æ³õÖÔÔÚÓÚ½â¾ö¼¯ÈºÒ×ÓÃÐÔµÄÎÊÌâ¡£ÊÔÏëÔÚ¹ýȥʹÓÃÐéÄâ»ú¹ÜÀí·þÎñµÄʱ´ú£¬ÈÃÖ»Óм¸¸öÈ˵ÄÍŶÓȥά»¤ÉÏǧ¸ö¼ÆËã½ÚµãÉÏÔËÐеÄÐèÒª¸÷ÖÖ²»Í¬»·¾³ºÍÅäÖõķþÎñ£¬Õâ¼òÖ±ÊDz»¿ÉÍê³ÉµÄÈÎÎñ£¬È»¶øÍ¨¹ýÈÝÆ÷»¯µÄ²¿Êð¡¢DevOps˼άµÄÍŶӡ¢¼ÓÉÏÊʵ±µÄ¼¯Èº¸¨Öú¹¤¾ß£¬ËûÃÇ×öµ½ÁË¡£
ÈÝÆ÷Ö®´ó£º´óÐÍÈÎÎñ¼¯ÈºµÄÈÝÆ÷»¯µ÷¶È

ͼ2»ùÓÚÈÝÆ÷µÄ¶àÊý¾ÝÖÐÐÄÈÎÎñƽ̨¼Ü¹¹
²¢²»ÊÇËùÓеÄÍŶӶ¼Ô¸Òâ´ÓÍ·¹¹½¨×Ô¼ºµÄÕûÌ×ÔËά¼Ü¹¹ºÍ»ù´¡ÉèÊ©»·¾³¡£ÔÚÐí¶àÆóÒµÀ·þÎñµÄÔËά¹ÜÀíÊÇÓÐרÃŵÄ×éÖ¯¸ºÔðµÄ¡£ÕâЩ×éÖ¯¿ÉÄܽÐ×öƽ̨²¿ÃÅ¡¢ÔËά²¿ÃÅ¡¢»òÕß»·¾³Ö§³Ö²¿ÃÅ£¬²»Â۳ƺôÈçºÎ£¬ÕâЩ×éÖ¯ÒÔ¼°²¿ÃÅͨ³£¶¼ÐèÒª¹ÜÀíÊýÁ¿Ï൱ÅÓ´óµÄ¼ÆËã×ÊÔ´¡£ÕâЩ×ÊÔ´¿ÉÄÜÊÇ¿ç»ú·¿£¬¿ç³ÇÊУ¬ÉõÖÁÊÇ·Ö²¼ÔÚÅ·ÖÞ¡¢ÃÀÖÞ¡¢·ÇÖÞ²¢ÇÒÏ໥ÎÞ·¨Ö±½ÓͨÐŵÄÊý¾ÝÖÐÐÄÀï¡£ËûÃÇËùÐèÒªµ÷¶ÈµÄ×÷ÒµÊýÁ¿ºÍÖÖÀàÒ²Ô¶Ô¶³¬¹ýÒ»¸ö×ÔÔËά²úÆ·ÍŶÓËùÐèÒª¿¼ÂǵĹæÄ£¡£
ΪÕâÑùµÄ×éÖ¯Éè¼Æ»ùÓÚÈÝÆ÷µÄÈÎÎñµ÷¶Èƽ̨ÐèÒª¶ÔÆóÒµµÄÐèÇóºÍÌØ¶¨ÒµÎñÁìÓòÓгä·ÖµÄÁ˽⣬ԽÊÇ´óÐ͵Ļù´¡ÉèÊ©¼¯Èº£¬ËùÐèÒªÓ¦¶ÔµÄ·çÏպͲ»È·¶¨Ò²Ô½´ó£¬Éè¼ÆÒ»¸ö̾̾¾ãµ½µÄͨÓôóÐͼ¯ÈºÒ²Ô½À§ÄÑ¡£Òò´ËÕë¶Ô¾ßÌåÒµÎñ³¡¾°×ö³öÒ»¶¨µÄÈ¡ÉáÊDz»µÃÒÑ¡¢µ«ÓÖÊDZØÒªµÄ¡£ÀýÈçΪÁË»ñµÃ½Ï¸ßµÄÏìÓ¦Ëٶȶø½«¼¯Èº»®·ÖΪ¶à¸ö»¥²»ÖصþµÄµ÷¶ÈÇøÓò£¬Òò¶øÏÞÖÆÁËÿ¸öÇøÓòµÄÈÝÁ¿;ΪÁ˱ÜÃâÄÚÍøÊý¾ÝÍøÂç·ç±©¶ø½«½ÚµãÊý¾Ý·Ö²ã´¦Àí²¢Öð¼¶¼õÉÙÊý¾Ý»ã×ܵÄά¶È£¬Òò¶øÔö¼Ó¼à¿Ø¹ÜÀí¸´ÔÓ¶È;»òÕßΪÁËÔö¼Óϵͳ¹æÄ£¶ø²ÉÓø߶Ⱦۺ϶ø²»Êʺ϶àÊý¾ÝÖÐÐĵķ½°¸¡£ÕâЩ·½°¸ÍùÍù²»ÐèÒª¾ß±¸ÆÕÊÊÐÔ£¬¶øÊÇ»áÕë¶ÔÌØ¶¨ÆóÒµºÍÒµÎñ³¡¾°½øÐÐÇ¡µ½ºÃ´¦µÄÐÞ¼ôºÍÓÅ»¯¡£
ÉÏÃæÍ¼ÖÐչʾµÄÊÇÒ»¸öÆóÒµPaaS·þÎñƽ̨µÄ½á¹¹£¬¼Ü¹¹»ùÓÚKubernetes¼¯Èº£¬ÐèÒªÓ¦ÓÃÔÚ¶à¸öÒìµØÊý¾ÝÖÐÐÄ£¬²¢ÔÚͳһµÄ²¿ÊðϵͳÉ϶ԷþÎñ½øÐйÜÀí¡£ÓÉÓÚµ¥Kubernetes¼¯ÈºÈÝÁ¿ÓÐÏÞ£¬Õâ¸ö·½°¸Êµ¼ÊÉϸù¾ÝµØÓò»®·ÖºÍ×â»§µÄ¹æÄ£¹¹½¨Á˶à¸ö¼¸Ê®µ½ÉÏǧ½Úµã²»µÈµÄ×Ó¼¯Èº£¬¼¯ÈºÖ±½Ó»¥²»Öغϣ¬ÊôÓÚͬһ¸öÈÎÎñ×éµÄ·þÎñÖ»»áÔÚÌØ¶¨µÄij¸ö¼¯ÈºÄÚ½øÐв¿ÊðºÍµ÷¶È£¬Æäʵ¾ÍÊǽ«¼¯ÈººÍ×â»§½øÐÐÁ˰󶨡£ÔÚËùÓм¯ÈºÖ®ÉÏ£¬Í¨¹ý×ÔÑеÄÒ»¸öÈÎÎñ·Ö·¢·þÎñ×÷ΪËùÓе÷¶ÈÈÎÎñµÄÈë¿Ú£¬ÔÚÕâÀï´¦Àí·þÎñµÄÒÀÀµ¹ØÏµ¡¢ËùÊôÇøÓò¡¢ÒÔ¼°ÆäËûÔªÊý¾ÝÐÅÏ¢£¬È»ºóµ÷ÓÃKubernetesµÄAPIÍê³ÉÈÎÎñµÄ²¿ÊðºÍµ÷¶È£¬²¢Í¨¹ý¶îÍâµÄ×é¼þ´¦ÀíÍøÂç¡¢´æ´¢µÈ×ÊÔ´µÄÅäÖá£
ÔÚͼÖÐÊ¡ÂÔÁËϵͳ²ÉÓÃµÄÆäËû×ÔÑÐÄ£¿é£¬ÖµµÃÒ»ÌáµÄÊÇÕâ¸öϵͳµÄÐÔÄÜÊý¾Ý¹ÜÀíʹÓÃÁË¿ªÔ´µÄPromethusÈí¼þ¡£PromethusÊÇSoundCloud¹«Ë¾Î¬»¤µÄÒ»¿î°üº¬ÐÅÏ¢²É¼¯¡¢´¦Àí¡¢·ÖÎö¡¢Õ¹Ê¾ºÍ¸æ¾¯µÄÐÔÄÜ¼à¿ØÕûÌå½â¾ö·½°¸£¬ËüÌṩÁ˱ȽÏÁé»îµÄ¶àÊý¾ÝÖÐÐļ¶ÁªÄÜÁ¦ºÍ¼¯ÖÐʽµÄÅäÖùÜÀí¹¦ÄÜ£¬Òò´ËÌØ±ðÊʺϹæÄ£½Ï´óµÄ¼ÆË㼯Ⱥ¡£²»Í¬ÓÚǰһ°¸ÀýÖÐInfluxdb·½°¸Ã¿¸öÊý¾Ý²É¼¯½Úµã·¢Êý¾Ý¸ø´æ´¢Êý¾ÝµÄÖÐÐĽڵãµÄ·½Ê½£¬PromethusµÄÐÔÄÜÊý¾Ý²É¼¯ÊÇÓÉÖÐÐÄ·þÎñÆ÷Ö÷¶¯ÏòËùÓнڵ㶨ʱÂÖѯµÄ·½Ê½ÀÈ¡µÄ£¬Òò´ËËùÓÐÓëÊý¾Ý²É¼¯Ïà¹ØµÄÅäÖÃÈ«²¿ÔÚÖÐÐÄ·þÎñÆ÷ÉϽøÐÐÐ޸ļ´¿É¡£¶ø½ÚµãµÄÊýÁ¿ºÍIPµØÖ·±ä¶¯Ôòͨ¹ý·þÎñ·¢ÏÖ»úÖÆÀ´¸æÖªÖÐÐÄ·þÎñÆ÷£¬Õâ´ó´ó¼ò»¯ÁËÐÞ¸ÄÊý¾ÝÊÕ¼¯²ÎÊýµÄÁ÷³Ì¡£
Õâ¸ö°¸ÀýÊÇÒ»¸ö±È½ÏµäÐ͵Ĵó¹æÄ£ÈÝÆ÷¼¯Èº£¬ÔÚ´óÐÍÈÝÆ÷¼¯Èº·½ÃæÐí¶àÆóÒµ¶¼ÓÐ×Å×Ô¼ºµÄʵ¼ù³Áµí¡£ÆäÖÐÓÐÁ½¸ö±È½ÏÃ÷ÏÔµÄÌØµãÊÇ´ÓÒµÎñ³¡¾°Öƶ¨¼Ü¹¹ºÍϵͳÖаüº¬Ðí¶à×ÔÑеÄ×é¼þ£¬Òò´ËÔÚ½è¼øµÄʱºò¸üÐèÒª¹ã·ºµÄÊÕ¼¯ÐÅÏ¢£¬±ÜÃâäĿÕÕ°á¡£
ÈÝÆ÷Ö®Ô¶£º»ùÓÚÈÝÆ÷µÄ³ÖÐø¼¯³Éʵ¼ù
ͼ3»ùÓÚÈÝÆ÷µÄ³ÖÐø½»¸¶Á÷Ë®ÏßʾÒâ
½ÓÏÂÀ´£¬ÈÃÎÒÃÇÓùã½Ç¾µÍ·À´ÉóÊÓÒ»ÏÂÈí¼þ·¢²¼µÄÉúÃüÖÜÆÚ¡£Í¨¹ý³ÖÐø½»¸¶µÄÁ÷Ë®Ïߣ¬ÎÒÃÇÄܹ»ÇåÎúµÄ¶¨Òå³öÈí¼þ´Ó´úÂëÌá½»µ½ÉÏÏß·¢²¼Ö®Ç°ËùÐèÒª¾¹ýµÄÿ¸ö»·½Ú£¬ÐÖú¿ª·¢Õß·¢ÏÖ¹¤×÷Á÷³ÌÖдæÔ򵀮¿¾±£¬²¢´ÙʹÍŶÓÌáÉý¶Ëµ½¶ËµÄ×Ô¶¯»¯³Ì¶È£¬Ëõ¶Ì¶ÀÁ¢¹¦ÄÜÉÏÏßµÄÖÜÆÚ¡£
ÄÇôÈÝÆ÷ÔÚÆäÖÐÄܰçÑÝʲôÑùµÄ½ÇɫĨ?Ê×ÏÈÊÇ×ÊÔ´µÄ¸ôÀ룬ΪÁËÈ·±£Ã¿Ò»´Î±àÒëºÍ²âÊԵĶÀÁ¢ÐÔ£¬Èí¼þÓ¦¸ÃÔڸɾ»µÄ»·¾³Öзֱð½øÐй¹½¨¡¢´ò°ü¡¢²¢ÔËÐвâÊÔÓÃÀý£¬¶øÈÝÆ÷ÊǷdz£ºÏÊÊÓÃÀ´ÌṩÕâÖÖÐéÄâ»·¾³µÄÇáÁ¿¼¶¹¤¾ß¡£Æä´ÎÊÇÒ»ÖµÄÈí¼þ´ò°ü·½Ê½£¬DockerµÄ·â×°Òâζ×Ų»ÂÛÔËÐеķþÎñÊÇÓÃJava¡¢Python¡¢PHP»¹ÊÇScala¡¢Golang£¬Æ½Ì¨¿ÉÒÔÓü¸ºõÏàͬµÄ·½Ê½È¥Íê³É²¿Ê𣬶ø²»Óÿ¼Âǰ²×°·þÎñËùÐèµÄ»·¾³£¬ÕâЩ¶¼ÔÚÈí¼þ¿ª·¢µÄʱºò¾ÍÒѾ׼±¸ºÃÁË¡£×îºóÊdzÉÊìµÄµ÷¶Èƽ̨¡£»ùÓÚÈÝÆ÷ÓÐÐí¶àÏֳɵÄÈÎÎñµ÷¶È¿ò¼Ü£¬Ò²ÕýÊÇÓÉÓÚǰÁ½¸ö½ÇÉ«£¬ÈÝÆ÷ʹµÃÈÎÎñµÄ·Ö·¢±äµÃÈÝÒ×£¬ÓÉÓÚÓ¦Óò»ÐèÒªÒÀÀµÖ÷»úµÄÅäÖã¬Õâ¾ÍÈÃÈÎÎñµÄÁé»îµ÷¶È³ÉΪ¿ÉÄÜ¡£
»ùÓÚÈÝÆ÷µÄ³ÖÐø½»¸¶Á÷Ë®ÏßºÍÆÕͨ½»¸¶Á÷Ë®ÏߺÜÏàËÆ£¬°üº¬¹¹½¨¡¢´ò°ü¡¢²âÊÔ¡¢²¿ÊðµÈ»·½Ú¡£Í¬Ê±ÕâÆäÖÐÒ²ÓÐÐí¶à¼¼ÇɺÍרÓÃÓÚÈÝÆ÷µÄÓÅ»¯ÊֶΡ£Õâ¸ö°¸ÀýÖÐÎÒÃÇѡȡÆäÖÐÁ½¸ö±È½Ï¾ßÓÐÆô·¢ÐÔµÄÀ´Ëµ¡£
µÚÒ»¸öÀý×ÓÊǹØÓÚÈÝÆ÷¹¹½¨µÄÓÅ»¯¡£ÈÝÆ÷µÄ¹¹½¨Í¨³£¶¼ÊÇÓÉij¸ö»ù´¡¾µÏñ¿ªÊ¼£¬Í¨¹ýDockerfileµÄÃèÊö×Ô¶¯»¯Öð²½Ö´ÐУ¬Ö±ÖÁÍê³ÉÔ¤ÆÚµÄ״̬¡£¼¸ºõËùÓÐÏîÄ¿µÄDockerfile¶¼²»»áÿ´Î´ÓÒ»¸öÔʼµÄUbuntu»òÕßCentOSµÄ¾µÏñ×öΪ»ù´¡£¬´ÓÍ·¹¹½¨Õû¸öÔËÐл·¾³£¬ÒòΪÄÇÑù»áʹµÃÿ´Î¹¹½¨»¨·Ñ·Ç³£³¤µÄʱ¼ä¡£ÖÆ×÷ÓÃÓڼ̳еĹ«¹²»ù´¡¾µÏñÊÇÔçÒÑÊÀÈ˽ÔÖªµÄ¾µÏñ¹¹½¨ÌáËÙÓÅ»¯µÄ·½·¨£¬ÕâÑù¿ÉÒÔÈ÷Ñʱ¶øÓÖ²»³£¸Ä±äµÄ²½Öè¹Ì¶¨ÏÂÀ´£¬Ã¿´Î¹¹½¨Ê±ºò¾ÍÖ»ÐèÒª»ùÓÚÕâ¸ö¾µÏñÔÙ½øÐÐÔöÁ¿Ð޸ľͿÉÒÔÁË¡£µ«ÕâÖÖ·½·¨ÆäʵҲÓÐDZÔÚÎÊÌ⣬ÄǾÍÊǵ±ÎÒÃÇÐèÒªÉý¼¶»ù´¡¾µÏñµÄʱºò£¬²»µÃ²»ÖØÐ¹¹½¨ËùÓлùÓÚËüÖÆ×÷µÄËùÓзþÎñ¾µÏñ¡£
Õâ¸öÎÊÌâ±»³ÆÎª¡º´àÈõµÄ»ù´¡¾µÏñ¡»£¬¸ÃÎÊÌâµÄÓ¦¶Ô²ßÂÔÓкܶࡣÀýÈç¼òµ¥µÄÑÓ³Ù×Ó¼¶¾µÏñµÄÉý¼¶Ê±¼ä£¬Ö±µ½Ã¿¸ö×Ó¾µÏñÏ´ÎÖØÐ¹¹½¨·¢²¼Ê±×ÔÈ»»á»ñµÃ¸üС£ÓÖÀýÈç±È½Ï¼¤½øµÄ·½Ê½£¬Í¨¹ýÁ÷Ë®Ïß½¨Á¢¾µÏñµÄÒÀÀµ¹ØÏµ£¬ÔÚ¸¸¼¶¾µÏñÒ»µ©¸üÐÂʱ£¬×Ô¶¯´¥·¢ËùÓÐ×Ó¼¶¾µÏñµÄ×Ô¶¯Öؽ¨£¬ÕâÖÖ·½Ê½ÒªÉ÷ÖØ²ÉÓã¬ÒòΪËüºÜ¿ÉÄܻᵼÖÂͬʱ²úÉú´óÁ¿µÄ¾µÏñ¹¹½¨ÈÎÎñ£¬¶ÔÍøÂçºÍ´ÅÅÌÔì³ÉÑÏÖØµÄѹÁ¦¡£ÄÇô£¬ÓÐûÓÐÔÚÒ»ÖÖ°ì·¨¼ÈÄÜ»ñµÃ¾ßÓÐʱЧÐԵĸüУ¬ÓÖ²»»á²úÉú¶Ìʱ¼äÄڵĹ¹½¨·ç±©ÄØ?Æäʵ¶ÔÓÚһЩ³¡¾°ÊÇ¿ÉÒÔÓÐÈ¡ÇÉ·½·¨µÄ£¬Í¨¹ýDockerµÄÍâ¹Ò´æ´¢ÄÜÁ¦£¬½«¾³£¿ÉÄܱ仯µÄÄÚÈÝ×ö³Éµ¥¶ÀµÄ¾µÏñ£¬È»ºóÀûÓÃDockerµÄ¡º¨Cvolume-from¡»²ÎÊýÔÚ·þÎñÆô¶¯Ê±¸²¸ÇµôÔËÐÐÈÝÆ÷µÄÌØ¶¨Ä¿Â¼¡£µäÐ͵ij¡¾°¾ÍÊÇÓÃÓÚ±àÒëÆäËû·þÎñµÄÈÝÆ÷£¬ÕâЩÈÝÆ÷ÖÐÒ»°ã¶¼»áÓÐһЩ±àÒë·þÎñʱËùÐèµÄʱÒÀÀµ¿â£¬ÕâЩÒÀÀµ¿âËæ×ÅÏîÄ¿ËùÐèÒÀÀµµÄ±ä»¯Ò²Òª¸ú×ű䣬ÏñMavenµÄ~/.m2/repositoryĿ¼£¬NodeµÄÈ«¾Önode_moduleĿ¼µÈ¾ÍºÜÊʺÏÕâÑù¹ÜÀí¡£µ±Õâ¸öĿ¼ÏÂÃæµÄÄÚÈÝÐèÒª¸üÐÂʱ£¬Ö»ÐèÖØÐ¹¹½¨ÌṩĿ¼ÄÚÈݵÄÒ»¸ö¾µÏñ£¬¶ø²»»á²úÉú¾µÏñ¹¹½¨µÄÁ´Ê½·´Ó¦£¬·þÎñÏÂ´ÎÆô¶¯Ê±ºò¾Í»á»ñµÃеÄÒÀÀµ¿âĿ¼ÁË¡£
µÚ¶þ¸öÀý×ÓÊÇÁ÷Ë®ÏßÖеIJâÊÔ»·½Ú¡£½øÐÐ×Ô¶¯»¯²âÊÔµÄʱºò£¬ÈÝÆ÷µÄÓÅÊÆ·¢»ÓÓÈÆäÃ÷ÏÔ¡£¶ÔÓÚÍⲿ·þÎñµÄÒÀÀµ£¬±ÈÈçÓëÊý¾Ý¿âÏà¹ØµÄ²âÊÔ£¬ÓÉÓÚ²âÊÔ¹ý³ÌÐèÒª·´¸´ÔËÐУ¬¹ýȥʱºò£¬Èç¹û²âÊÔÔËÐÐÍêûÓÐÕýÈ·µÄÇåÀíÁôϵÄÊý¾Ý£¬ÌرðÈÝÒ×Ó°ÏìºóÐø²âÊÔµÄÔËÐнá¹û¡£ÈÝÆ÷ǡǡÊÇÌṩÕâÖÖ¼´Óü´Æú»ù´¡ÉèÊ©×î¼ÑµÄ·½Ê½£¬ÍêÈ«¿ÉÒÔÔÚ²âÊԽű¾ÖÐÏÈÆô¶¯Ò»¸öȫеÄMySQL·þÎñ£¬È»ºó²âÊÔÍê¾ÍÏú»Ù£¬±£Ö¤ÁËÿ´Î²âÊԵĶÀÁ¢ÐÔ¡£¹ØÓÚÕâ·½ÃæµÄÓ¦ÓÃÔÚϸö°¸ÀýÖÐÔÙ½éÉܸü¶àϸ½Ú¡£
ÀàËÆµÄ¼¼ÇÉ»¹Óкܶࡣ³ÖÐø½»¸¶Á÷Ë®ÏßÊÇ×îÄÜÌåÏÖÈÝÆ÷ÔÚÈí¼þÁìÓò´øÀ´¸÷·½Ãæ¸Ä½øµÄ´ó¹ÛÔ°¡£Ðí¶àÏֳɵŤ¾ß¿ÉÒÔ×î´ó»¯µÄ±ÜÃâÊÖ¹¤²Ù×÷¶ÔÁ÷³ÌµÄ¸ÉÈÅ£¬ÈÃÈí¼þ·¢²¼¿ªÉϸßËÙ¹«Â·¡£
ÈÝÆ÷Ö®½ü£ºÈÝÆ÷ÔÚ×Ô¶¯»¯²âÊÔÆ½Ì¨µÄÔËÓÃ
ͼ4»ùÓÚÈÝÆ÷µÄ×Ô¶¯»¯²âÊÔÆ½Ì¨¼Ü¹¹
×îºóÕâ¸ö°¸ÀýÊÇÒ»¸öÕë¶ÔÈí¼þ×Ô¶¯»¯²âÊÔ»·½ÚµÄÈÝÆ÷»¯»ù´¡ÉèÊ©Éè¼Æ¡£ËüÊÇÈí¼þ³ÖÐø½»¸¶Á÷Ë®ÏßÉϵÄÒ»¸öÖØÒª»·½Ú£¬ÈÃÎÒÃÇ´øÉϳ¤½¹¾µ£¬½ü¾àÀëÉóÊÓÈÝÆ÷ÔÚÈí¼þ²âÊÔ³¡¾°ÖÐÄܽâ¾öÔõÑùµÄÎÊÌâ¡£
ÈÝÆ÷¿ìËÙÆô¶¯¡¢¿ìËÙÏú»ÙµÄÌØÐÔÓëÈí¼þ²âÊÔʱËùÐèµÄÿ´Î¸É¾»¶ÀÁ¢µÄÁÙʱÔËÐл·¾³Ê®·ÖÆ¥Å䡣ʹµÃÔÚÕâ·½ÃæÈÝÆ÷¿ÉÒÔ´óÓÐ×÷Ϊ¡£ÌرðÊÇÔÚ¼¯³É²âÊԺ͹¦ÄÜÐÔ²âÊԵĽ׶Σ¬±»²âϵͳµÄÔËÐÐÍùÍù»áÐè񻃾¼°¶à¸öÒª¶ÀÁ¢ÔËÐеÄ×Ó×é¼þ»ò×ÓÄ£¿é¡£»¹ÓÐÍⲿģ¿éµÄÒÀÀµ£¬Èç¹û½øÐеÄÊǽçÃæÏà¹ØµÄ²âÊÔÓÃÀý£¬ÍùÍù»¹»áÓõ½SeleniumºÍä¯ÀÀÆ÷µÄ×é¼þ¡£¶øÔËÐÐÊý¾Ý¿âÏà¹ØµÄ²âÊÔÔò»áÐèÒªMySQL¡¢MongodbµÈ×é¼þ¡£ÊÖ¹¤ÎªÃ¿¸ö²âÊÔÓÃÀý×¼±¸²¢Î¬»¤ÕâЩ»·½ÚÒÀÀµÊÇÊ®·ÖÈÃÈË×¥¿ñµÄÊÂÇé¡£¹ýÈ¥×öÕâÀà²âÊÔʱºòΪÁ˽â¾öÒÀÀµÎÊÌ⣬ͨ³£×ö·¨ÊǶîÍⲿÊðÒ»Ì×רÓÃÓÚ²âÊÔÒÀÀµµÄ»·¾³£¬ËùÓÐÄ£¿é²âÊÔÐèÒª±ðµÄÄ£¿éʱ¶¼Í³Ò»Ö¸ÏòÕâÌײâÊÔ»·¾³×÷ΪĿ±ê¡£ÓÉÓÚ¹ýÓÚÆµ·±µÄÉý¼¶Õâ¸öÒÀÀµ»·¾³¿ÉÄÜ»á´ò¶ÏÕýÔÚÔËÐеIJâÊÔÓÃÀý£¬Òò´ËÖ»ÄܶÔËü½øÐж¨ÆÚµÄ¸üУ¬ÕâÖÖÎÞÐÎÖÐÏÞÖÆÁ˵ÄʱЧÐԺͿɿ¿ÐÔ¡£
ÌØ±ðÊÇһЩ±È½ÏÖØÒª²¢ÇÒºÄʱ½Ï¶ÌµÄ»Ø¹é²âÊÔºÍðÑ̲âÊÔÓÃÀý£¬ÀíÏëÇé¿öÏÂÓ¦¸ÃÔÚÿ´Î´úÂëÌá½»ºó¶¼È«Á¿µÄ¸üв¢Ö´ÐУ¬ÒÔ±ãµÚһʱ¼ä·¢ÏÖһЩDZÔڵŦÄÜȱÏÝ¡£µ«ÎªÃ¿´ÎÌá½»´´½¨Ò»ÌײâÊÔ»·¾³²»ÂÛÊÇÊÖ¹¤²Ù×÷»¹ÊǹýÈ¥»ùÓÚÐéÄâ»úµÄ×Ô¶¯»¯·½Ê½¶¼¹ýÓÚ·±Ëö¡£
°¸ÀýÖеIJâÊÔÆ½Ì¨ÕýÊÇÒâͼͨ¹ýÈÝÆ÷ºÍ¼òµ¥µÄÒÀÀµÃèÊö£¬À´½â¾ö²âÊÔ»·¾³¹ÜÀíµÄÎÊÌâ¡£Ëü»ùÓÚËùÓб»²â×é¼þºÍËùÒÀÀµµÄ×é¼þ¶¼Ê¹ÓÃDocker¾µÏñÀ´ÌṩµÄǰÌáÖ®ÉÏ£¬½«ËùÓÐ×é¼þ³éÏó³ÉÒ»ÖµÄÄ£ÐÍд³ÉÃèÊöÎļþ£¬ÃèÊöÎļþµÄÖ÷ÒªÄÚÈݾÍÊÇÕû¸ö²âÊÔ»·¾³ËùÐèµÄ¾µÏñºÍÆô¶¯Ë³Ðò¡£
ʾÒâͼÖеġºÔËÐе÷¶ÈÆ÷Ä£¿é¡»ÊǽÓÈë³ÖÐø½»¸¶Á÷Ë®Ïߵĵ÷ÓÃÈë¿Ú£¬¿ÉÒÔ²ÉÓÃÆ©ÈçJenkinsµÄÐÎʽ²å¼þʵÏÖ£¬ËüÓÃÀ´´´½¨ºÍ±£´æÌض¨²âÊÔÓÃÀýËùÐèµÄ»·¾³ÃèÊöÎļþÄÚÈÝ¡£ÔÚÁ÷Ë®Ïß´¥·¢¸Ã²âÊÔ»·½Úʱ£¬Õâ¸öÄ£¿éµ÷ÓẲâÊÔÖ´ÐÐÆ÷Ä£¿é¡»£¬½«ÃèÊöÄ£ÐÍÓÃÌØ¶¨µÄ½á¹¹Ìå´«µÝ¸øºóÕߣ¬ºóÕß½âÎöÕâ¸öÊý¾ÝÄ£ÐÍ£¬×ª»¯Îª½Ó½üKubernetes·þÎñÄ£Ð͵ÄÐÎʽ£¬È»ºóÔÚ¡º·þÎñÒÀÀµ¹ÜÀíÄ£¿é¡»µÄÐÖúÏ£¬Í¨¹ýKubernetes´´½¨ÁÙʱµÄNamespace£¬²¢ÒÀ´Î´´½¨Ã¿¸ö·þÎñ¡£µ±²âÊÔ»·¾³¾ÍÐ÷ºó£¬¡º²âÊÔÖ´ÐÐÆ÷Ä£¿é¡»¾Í¿ªÊ¼Ö´ÐвâÊÔÓÃÀý£¬×îºóÓÖͨ¹ý¡º·þÎñÒÀÀµ¹ÜÀíÄ£¿é¡»Í¨ÖªKubernetesÏú»ÙÕûÌ×»·¾³¡£
Õû¸ö¹ý³Ì¶ÔÓÚÆ½Ì¨µÄÓû§¶øÑÔ£¬½ö½öÊÇÔö¼ÓÁËÒ»¸ö²âÊÔ»·¾³ÃèÊöµÄÄÚÈÝ£¬Ð´ÔÚ³ÖÐø½»¸¶Á÷Ë®Ïß²âÊÔ²½ÖèµÄ¶¨Òå(ÀýÈçJenkins²å¼þÅäÖÃ)Àï¡£¶øÕâÌ×ϵͳÄÚ²¿ÆÄΪ¸´ÔÓµÄÖ´Ðйý³Ì£¬Äܹ»ÓÐЧµÄÀûÓÃÕû¸ö¼¯ÈºµÄ×ÊÔ´£¬Ç¡µ½ºÃ´¦µÄΪ²âÊԵĹý³ÌÌṩ֧³Ö¡£
×ܽá
ÕâËĸö°¸ÀýÓÉdzÈëÉî¡¢ÓÉÔ¶¼°½üµÄÕ¹ÏÖÁËÈÝÆ÷ÔÚÏÖ´úÈí¼þºÍ»ù´¡ÉèÊ©Éè¼ÆÖоÙ×ãÇáÖØµÄ×÷Óá£ÓÐЩ¼¼Êõ»áÖ±½Ó¸Ä±äÈËÃǵÄÉú»î£¬¶øÁíһЩ¼¼ÊõÔò»á¸Ä±ä¼¼Êõ±¾ÉíÒÔ¼°¼¼ÊõµÄ·¢Õ¹·½Ïò£¬ÈÝÆ÷¼¼ÊõÊôÓÚºóÕß¡£
Ëæ×ÅÈÝÆ÷ÔËÓÃµÄÆÕ¼°£¬µ±ÏµÄÖ÷Á÷ýÌå¶ÔÈÝÆ÷Öܱ߼¼ÊõµÄ¹Ø×¢»¹ÔÚ³ÖÐøÉýΡ£²»½öÊÇ¡¶³ÌÐòÔ±¡·ÍƳöÁ˱¾ÆÚµÄÈÝÆ÷¼¼Êõר¿¯£¬ÔÚ×îÐÂÒ»ÆÚµÄThoughtWorks¹«¿ª¿¯Îï¡¶¼¼ÊõÀ״1¡¿¡·ÖУ¬ÈÝÆ÷ºÍDockerÏà¹ØµÄ¹Ø¼ü´ÊͬÑùÕ¼¾ÝÁË´óÁ¿°æÃæ¡£ÔÚÔ½À´Ô½¶àµÄ¼¼ÊõÁìÓòÀÎÞÂÛÊÇÒÆ¶¯É豸¡¢ÎïÁªÍø¡¢´óÊý¾Ý£¬¶¼ÄÜ¿´µ½ÈÝÆ÷¼¼Êõ¸÷ÖÖÐÎʽµÄÑÓÉ죬×÷ΪÏÖʵÈÝÆ÷ÔËÓõÄÒ»µÀËõÓ°£¬´ËÎÄ¿É×÷Ϊ¿ú°ß¼û±ª¡¢Å×שÒýÓñÖ®Óᣠ|