Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Docker£¬ÔÆʱ´úµÄ³ÌÐò½»¸¶·½Ê½
 
×÷Õß Ð¤µÂʱ£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-11-07
  2651  次浏览      17
 

Docker ¡ª ÔÆʱ´úµÄ³ÌÐò·Ö·¢·½Ê½

Ҫ˵×î½üÒ»ÄêÔƼÆËãÒµ½çÓÐʲô´óʼþ£¿Google Compute EngineµÄÕýʽ·¢²¼£¿AzureÈ뻪£¿»¹ÊÇAWSÂäµØÖйú£¿ÁôÔÚÿ¸öÈË´óÄÔÖеÄÓ¡Ïó¿ÉÄܸ÷²»Ïàͬ£¬µ«ÒªÊÇÈñÊÕßÀ´ÅÅÃûµÄ»°ÄÇôDocker¾ø¶ÔÓ¦¸ÃËãÊǵÚһλµÄ¡£ Èç¹ûÄã֮ǰÌý˵¹ýËüµÄ»°£¬ÄÇôҲÐíÄã»á˵¡°Ã»´í£¬¾ÍÊÇËü¡±£¬ÒòΪ¼¸ºõÊÀ½ç¸÷µØµÄ¿ª·¢¡¢ÔËά¶¼ÔÚ̸ÂÛ×ÅDocker£»Èç¹ûÄ㻹ûÌý˵¹ýDocker£¬ÄÇôÎÒ ÕæµÄ½¨ÒéÄ㻨ÉÏ10·ÖÖÓÀ´ÔĶÁ±¾ÎÄ¡£

1. Docker¼ò½é

1.1. ʲôÊÇDocker£¿

DockerÊÇÒ»¸öÖØж¨ÒåÁ˳ÌÐò¿ª·¢²âÊÔ¡¢½»¸¶ºÍ²¿Êð¹ý³ÌµÄ¿ª·Åƽ̨¡£DockerÒ²ÊÇÈÝÆ÷¼¼ÊõµÄÒ»ÖÖ£¬ËüÔËÐÐÓÚLinuxËÞÖ÷»úÖ®ÉÏ£¬Ã¿¸öÔËÐÐ µÄÈÝÆ÷¶¼ÊÇÏ໥¸ôÀëµÄ£¬Ò²±»³ÆΪÇáÁ¿¼¶ÐéÄâ¼¼Êõ»òÈÝÆ÷ÐÍÐéÄâ¼¼Êõ¡£¶øÇÒËüÓеãÀàËÆJavaµÄ±àÒëÒ»´Î£¬µ½´¦ÔËÐУ¬DockerÔò¿ÉÒÔ³ÆΪ¹¹½¨Ò»´Î£¬ÔÚ¸÷ÖÖ Æ½Ì¨ÉÏÔËÐУ¬°üÀ¨±¾µØ·þÎñÆ÷ºÍÔÆÖ÷»úµÈ£¨Build once£¬run anywhere£©¡£

ÈÝÆ÷¾ÍÊǼ¯×°Ï䣬ÎÒÃǵĴúÂ붼±»´ò°üµ½¼¯×°ÏäÀDocker¾ÍÊÇ°áÔ˹¤£¬°ïÄã°ÑÓ¦ÓÃÔËÊäµ½ÊÀ½ç¸÷µØ£¬¶øÇÒÊdz¬¸ßËÙ¡£

DockerÊÇ¿ªÔ´Èí¼þ£¬´úÂëÍйÜÔÚGitHubÉÏ£¬Ê¹ÓÃGoÓïÑÔ±àд¡£Go¿ÉÒԳƵÃÉÏÊÇ»¥ÁªÍøʱ´úרÃÅΪ¿ª·¢·Ö²¼Ê½¡¢¸ß²¢·¢ÏµÍ³¶øÉúµÄ±à³ÌÓïÑÔ¡£DockerÒ²¿ÉÒÔ˵ÊÇGoÓïÑÔµÄÒ»¸öɱÊÖ¼¶Ó¦Ó㬶øÇÒÔÚDockerÉú̬ȦÀïºÜ¶àÈí¼þÒ²¶¼ÊÇʹÓÃGoÓïÑÔ±àдµÄ¡£

1.2. DockerÀúÊ·

DockerÏîĿʼÓÚ2013Äê3Ô£¬Óɵ±Ê±µÄPaaS·þÎñÌṩÉÌdotCloud¿ª·¢£¬dotCloundÒ²ÊÇYCombinator S10µÄ±ÏÒµÉú¡£¾¡¹ÜDockerÏîÄ¿ºÜÄêÇᣬµ½ÏÖÔÚÒ²Ö»ÓÐ15¸öÔ¶øÒÑ£¬È»¶øËüµÄ·¢Õ¹ÊÆÍ·Èç´ËÖ®ÃÍÒѾ­ÈúܶàÈ˸Ð̾²»ÒÑÁË¡£

2013Äê10ÔÂdotCloud¹«Ë¾Ãû×ÖÒ²ÓÉdotCloud, Inc.¸ÄΪDocker, Inc.£¬¼¯Öиü¶àµÄ¾«Á¦·Åµ½ÁËDockerÏà¹ØµÄÑз¢ÉÏ¡£

1.3. DockerµÄ¼¼Êõ»ùʯ

ÔÚ½øÈëDockerµÄÊÀ½ç֮ǰ£¬ÎÒÃÇÏÈÀ´¿´Ò»ÏÂDockerʵÏÖËùÒÀÀµµÄһЩ¼¼Êõ¡£

ʵ¼ÊÉÏDockerµÄ³öÏÖÀë²»¿ªºÜ¶àLinux kernelÌṩµÄ¹¦ÄÜ£¬ÉõÖÁ¿ÉÒÔ˵DockerÔÚ¼¼ÊõÉϲ¢Ã»ÓÐʲôÌرðÖØ´óµÄ´´ÐÂÖ®´¦£¬ÀûÓõĶ¼ÊÇÒѾ­·Ç³£³ÉÊìµÄLinux¼¼Êõ¶øÒÑ£¬ÕâЩ¼¼ÊõÔçÔÚ Solaris 10»òLinux Kernel 2.6µÄʱºò¾ÍÓÐÁË¡£¿ÉÒÔºÁ²»¿äÕŵÄ˵Docker¾ÍÊÇ¡°Õ¾ÔÚÁ˾ÞÈ˵ļç°òÉÏ¡±¡£

ÏÂÃæÎÒÃǾÍÏÈÀ´Á˽âÒ»ÏÂDockerÖ÷ÒªÀûÓõÄLinux¼¼Êõ¡£

1.3.1. ÈÝÆ÷¼¼Êõ

ÈÝÆ÷£¨Container£©ÓÐʱºòÒ²±»³ÆΪ²Ù×÷ϵͳ¼¶ÐéÄ⻯£¬ÒÔÇø±ð´«Í³µÄHypervisorÐéÄâ¼¼Êõ¡£Ëü²»¶ÔÓ²¼þ½øÐÐÄ£Ä⣬ֻÊÇ×÷ΪÆÕͨ½ø³ÌÔËÐÐÓÚËÞÖ÷»úµÄÄÚºËÖ®ÉÏ¡£

ÔÚÈÝÆ÷ÖÐÔËÐеÄÒ»°ã¶¼ÊÇÒ»¸ö¼òÒ×°æµÄLinuxϵͳ£¬ÓÐrootÓû§È¨ÏÞ¡¢initϵͳ£¨²ÉÓÃLXCÈÝÆ÷µÄÇé¿öÏ£©¡¢½ø³Ìid¡¢Óû§idÒÔ¼°ÍøÂçÊôÐÔ¡£

ÈÝÆ÷¼¼ÊõÔÚÔƼÆËãʱ´úÒѾ­±»´óÁ¿Ê¹Óá£Google¹«Ë¾µÄJoe BedaÔÚ½ñÄê5ÔÂ×öÁËÒ»´ÎÌâΪ¡¶Containers At Scale ¡ª At Google, the Google Cloud Platform and Beyond¡·×¢ 1µÄÑݽ²£¬ÔÚÆäÖÐÌáµ½¡°Everything at Google runs in a container¡±£¬Ã¿ÖÜÆô¶¯ÈÝÆ÷´ÎÊý¾¹È»¶à´ï20ÒڴΡ£

×¢ 1 https://speakerdeck.com/jbeda/containers-at-scale

ºÜ¶àPaaSƽ̨¶¼ÊÇ»ùÓÚÈÝÆ÷¼¼ÊõʵÏֵģ¬±ÈÈçÄ¿Ç°×î³É¹¦µÄPaaSƽ̨Heroku¡£´ËÍ⣬»¹ÓбȽÏÖøÃûµÄ¿ªÔ´PaaSƽ̨Cloud FoundryµÄWardenÒÔ¼°GoogleµÄLmctfy£¨Let Me Contain That For You£©×¢ 2µÈ¡£

×¢ 2 Let Me Contain That For You£¬http://github.com/google/lmctfy

1.3.2. LXC

ÕâÒ²ÊÇÔÚLinuxÏÂʹÓñȽϹ㷺µÄÈÝÆ÷·½°¸¡£»ù±¾ÉÏÎÒÃÇ¿ÉÒÔÈÏΪLinux containers = cgroups£¨×ÊÔ´¿ØÖÆ£© + namespaces£¨ÈÝÆ÷¸ôÀ룩¡£

LXCºÜ³ÉÊìºÜÇ¿´ó£¬È»¶øËüÈ´²»ºÃʹÓ㬱ÈÈçËü²»·½±ãÔÚ¶ą̀»úÆ÷¼äÒƶ¯£¬²»·½±ã´´½¨¹ÜÀí£¬²»¿ÉÖظ´²Ù×÷£¬Ò²²»·½±ã¹²ÏíµÈµÈ£¬Ïà¶ÔÓÚ¿ª·¢ÈËÔ±À´Ëµ£¬ËüÖ»ÊÇϵͳ¹ÜÀíÔ±µÄÍæ¾ß¡£DockerµÄ³öÏֺܺõĽâ¾öÁËÕâЩÎÊÌ⣬Ëü½«ÈÝÆ÷¼¼ÊõµÄʹÓóɱ¾À­µÍµ½ÁËÒ»¸öƽÃñ¼Û¸ñ¡£

1.3.3. namespaces

ÕâÊÇÓÃÀ´ÎªÈÝÆ÷Ìṩ½ø³Ì¸ôÀëµÄ¼¼Êõ£¬Ã¿¸öÈÝÆ÷¶¼ÓÐ×Ô¼ºµÄÃüÃû¿Õ¼ä£¬±ÈÈçpid/net/ipc/mnt/utsµÈÃüÃû¿Õ¼ä£¬ÒÔ¼°ÎªÈÝÆ÷Ìṩ²»Í¬µÄhostname¡£namespaceÄܱ£Ö¤²»Í¬µÄÈÝÆ÷Ö®¼ä²»»áÏ໥ӰÏ죬ÿ¸öÈÝÆ÷¶¼ÏñÊÇÒ»¸ö¶ÀÁ¢ÔËÐÐ×ŵÄOSÒ»Ñù¡£

1.3.4. cgroups

cgroupsÊÇÒ»¸öGoogle¹±Ï×µÄÏîÄ¿£¬ËüÖ÷ÒªÓÃÀ´¶Ô¹²Ïí×ÊÔ´µÄ·ÖÅä¡¢ÏÞÖÆ¡¢Éó¼Æ¼°¹ÜÀí£¬±ÈÈçËü¿ÉÒÔΪÿ¸öÈÝÆ÷·ÖÅäCPU¡¢ÄÚ´æÒÔ¼°blkioµÈµÄʹÓÃÏÞ¶îµÈ¡£cgroupsʹµÃÈÝÆ÷ÄÜÔÚËÞÖ÷»úÉÏÄÜÓѺõÄÏà´¦£¬²¢¹«Æ½µÄ·ÖÅä×ÊÔ´ÒÔ¼°¶Å¾ø×ÊÔ´ÀÄÓõÄDZÔÚ·çÏÕ¡£

ÈÝÆ÷¼¼ÊõʵÏÖ·½°¸¿ÉÒÔÓÃÏÂÃæµÄͼ½øÐмòµ¥ËµÃ÷¡£

ͼ1 DockerÈçºÎºÍLinuxÄں˴ò½»µÀ

ÉÏͼÖеÄcgroups¡¢namespacesºÍapparmorµÈ¶¼ÊÇLinuxÄÚºËÌṩµÄ¹¦ÄÜ¡£²»¹ÜÊÇ´«Í³µÄLXC»¹ÊÇDockerµÄlibcontainer£¬¶¼Ê¹ÓÃÁËKernelµÄÕâЩ¹¦ÄÜÀ´ÊµÏÖÈÝÆ÷¹¦ÄÜ¡£

1.3.5. ÁªºÏÎļþϵͳ

ÁªºÏÎļþϵͳÊÇÒ»¸ö·Ö²ãµÄÇáÁ¿¡¢¸ßÐÔÄÜÎļþϵͳ¡£DockerÖ®ËùÒÔÕâôÎüÒýÈË£¬ºÜ´ó³Ì¶ÈÉÏÔÚÓÚÆäÔÚ¾µÏñ¹ÜÀíÉÏËù×ö³öµÄ´´Ð¡£¶øÁªºÏÎļþϵͳÕýÊǹ¹½¨Docker¾µÏñµÄ»ù´¡¡£

AUFS£¨AnotherUnionFS£©ÊÇÒ»¸ö·Ö²ãµÄ»ùÓÚCopy On Write¼¼ÊõµÄÎļþϵͳ£¬Ö§³ÖUnion Mount£¬¾ÍÊǽ«¾ßÓв»Í¬Îļþ¼Ð½á¹¹µÄ¾µÏñ²ã½øÐеþ¼Ó¹ÒÔØ£¬ÈÃËüÃÇ¿´ÉÏÈ¥¾ÍÏñÊÇÒ»¸öÎļþϵͳÄÇÑù¡£

1.4. ÈÝÆ÷¼¼ÊõVSÐéÄâ»ú¼¼Êõ

ÈÝÆ÷¼¼ÊõºÍHypervisor¼¼ÊõËäÈ»²»ÊôÓÚͬһ²ã´ÎµÄ¸ÅÄµ«ÊÇ×÷Ϊ¾ßÓмÆËãÄÜÁ¦µÄÓ¦ÓÃÔËÐÐÔØÌåÀ´Ëµ£¬ËüÃÇ»¹ÊÇÓÐÒ»¶¨µÄ¹²Í¨ÐԺ;ºÕù¹Øϵ£¬ÕâÀï×÷´Ë¶Ô±ÈÍêÈ«ÊÇΪÁ˼ÓÉî¶ÁÕ߶ÔÈÝÆ÷¼¼ÊõµÄÀí½â¶øÒÑ¡£

±ÈÈ翪ԴPaaSʵÏÖÈí¼þtsuru×î³õʹÓõÄÊÇ»ùÓÚÐéÄâ»úµÄ¼¼Êõ£¬´´½¨Ò»¸öÓ¦ÓóÌÐòÐèÒª5·ÖÖÓ×óÓÒµÄʱ¼ä£¬¶øÔÚ²ÉÓÃDockerÖ®ºó£¬ÒѾ­½«Õâ¸öʱ¼äËõ¶Ìµ½ÁË10ÃëÖÓÁË×¢ 3¡£

×¢ 3 tsuru and docker by Andrews Medina https://speakerdeck.com/andrewsmedina/tsuru-and-docker

1.5. ÎÒÃÇÄÜÓÃDocker¸Éʲô£¿

Docker¿ÉÒÔÓ¦ÓÃÔÚ¸÷ÖÖ³¡¾°Ï£¬±ÈÈ繫˾ÄÚ²¿¿ª·¢²âÊÔʹÓ㬻òÕß×÷Ϊ¹²ÓлòÕß˽ÓÐPaaSƽ̨µÈ¡£

ÏÖÔÚPaaSƽ̨µÄ·¢Õ¹ÒѾ­·Ç³£³ÉÊìÁË£¬ÕâÀïÎÒÃÇÖ»ÂÞÁÐһЩÔÚ¿ª·¢ÖÐʹÓÃDocker¼¼Êõ¿ÉÄÜ»á¸øÎÒÃÇ´øÀ´µÄÒæ´¦¡£

1.5.1 ÔÚ¿ª·¢ÖÐ

¹¹½¨¿ª·¢»·¾³±äµÃ¼òµ¥

¼òµ¥°üÀ¨¼¸¸ö·½ÃæµÄÒâ˼

1.¿ìËÙ£ºÖ»Ðèdocker run¼´¿É

2.¹²Ïí£ºÍ¨¹ýDockerfile»òÕßRegistry

3.×Ô¶¯»¯£ºÒ»ÇдúÂ뻯µÄ¶«Î÷¶¼¿ÉÒÔ×Ô¶¯»¯

4.ͳһ£ºÃ¿¸öÈ˵Ŀª·¢»·¾³¶¼ÊÇһģһÑùµÄ

ÉèÏëÎÒÃÇÒª»ùÓÚNginx/PHP¡¢MySQLºÍRedis¿ª·¢£¬ÎÒÃÇ¿ÉÒÔ´´½¨3¸öDocker¾µÏñ±£´æµ½¹«Ë¾Ë½ÓеÄRegistryÖÐÈ¥£¬Ã¿¸ö¿ª·¢ÈËԱʹÓõÄʱºòÊÇÐèÒªÖ´ÐÐdocker run redis¼´¿ÉÒÔÏíÓÃ×Ô¼º¶ÀÓеÄRedis·þÎñÁË£¬¶øÇÒÕâ3¸öÈÝÆ÷²»¹Ü´ÓÕ¼ÓôÅÅ̿ռ仹ÊÇÔËÐÐÐÔÄÜÀ´Ëµ£¬¶¼±ÈÐéÄâ»úÒªºÃºÜ¶à¡£

1.5.2. ÔÚ²âÊÔÖÐ

½â¾ö»·¾³¹¹½¨ÎÊÌâ

ÓÐʱºò¹¹½¨²âÊԵĻ·¾³ÊÇÒ»Ïî·Ñʱ·ÑÁ¦µÄ¹¤×÷£¬¶øDockerÄÜÈÃÕâ±äµÃÇáËÉ¡£Èç¹ûÄãµÄ²âÊԱȽϼòµ¥µÄ»°£¬ÉõÖÁÖ±½ÓÄÿª·¢¹¹½¨µÄ¾µÏñ¾Í¿ÉÒÔ¿ªÊ¼ÁË¡£

Ïû³ý»·¾³²»Ò»Öµ¼ÖµÄÎÊÌâ

¡°ÔÚÎҵĻúÆ÷ÉÏÔËÐеĺúõģ¬Ôõôµ½ÄãÄÇÀï¾Í²»ÐÐÁË£¿¡±£¬ÎÒÏ볬¹ý°ëÊýµÄ³ÌÐòÔ±¶¼Ôø¾­Ëµ¹ýÀàËƵĻ°¡£Èç¹û¶Ôµ¼ÖÂÕâÒ»ÎÊÌâµÄÔ­Òò½øÐÐͳ¼ÆµÄ»°£¬ÎÒÏëÅÅÔÚµÚһλµÄÓ¦¸Ã·Ç¡°»·¾³²»Ò»Ö¡±ÄªÊôÁË£¬Õâ°üÀ¨²Ù×÷ϵͳºÍÈí¼þµÄ°æ±¾¡¢»·¾³±äÁ¿¡¢Îļþ·¾¶µÈ¡£

ʹÓÃDockerµÄ»°ÄãÔÙÒ²²»ÓÃΪ´Ë·³ÄÕÁË¡£ÒòΪÄã½»¸¶µÄ¶«Î÷²»¹âÊÇÄãµÄ´úÂë¡¢ÅäÖÃÎļþ¡¢Êý¾Ý¿â¶¨Ò壬»¹°üÀ¨ÄãµÄÓ¦ÓóÌÐòÔËÐеĻ·¾³£ºOS¼ÓÉϸ÷ÖÖÖмä¼þ¡¢Àà¿â + ÄãµÄÓ¦ÓóÌÐò¡£

1.5.3. ²¿ÊðºÍÔËά

»ùÓÚÈÝÆ÷µÄ²¿ÊðºÍ×Ô¶¯»¯

Docker¶¨ÒåÁËÖØдò°ü³ÌÐòµÄ·½·¨¡£

DockerÈÝÆ÷ + Óû§Ó¦Óà = ²¿Êðµ¥Î»£¨¹¹¼þ£©

Docker¿ÉÒÔ¿´×÷ÊÇÓôúÂë±àд³öÀ´µÄ¹ú¼Ê¼¯×°Ï䣬Ëü¿ÉÒÔ°ÑÈκÎÓ¦Óü°Ïà¹ØÒÀÀµÏî´ò°ü³ÉÒ»¸öÇáÁ¿¡¢¿ÉÒÆÖ²£¨Portable£©¡¢×Ô°üº­µÄÈÝÆ÷¡£

ÒÔÇ°²¿Êð´úÂ붼ÊÇ´úÂ뼶±ðµÄ£¬ÓÐÁËDocker£¬Ôò¿ÉÒÔ½øÐÐÈÝÆ÷¼¶±ðµÄ²¿Êð¡£ÕâÑù´øÀ´µÄ×î´óµÄºÃ´¦¾ÍÊÇ¿ª·¢Õß±¾µØ²âÊÔ¡¢CI·þÎñÆ÷²âÊÔ¡¢²âÊÔÈËÔ±²âÊÔ£¬ÒÔ¼°Éú²ú»·¾³ÔËÐеĶ¼¿ÉÒÔÊÇͬһ¸öDocker¾µÏñ¡£

¿ìËÙ½øÐкáÏòÀ©Õ¹

DockerÈÝÆ÷µÄÆô¶¯ËٶȺܿ죬¿ÉÒÔ˲¼äÆô¶¯´óÁ¿ÈÝÆ÷£¬ËùÒÔÔڷdz£ÊʺÏÔÚÒµÎñ¸ß·åÆÚ½øÐкáÏòÀ©Õ¹¡£Õâ±È´«Í³µÄÆô¶¯EC2ʵÀý»òÕßÎïÀí»ú¿ÉÒª¿ì¶àÁË¡£

ÌìÉúµÄºÍÔƼÆËã¼¼ÊõÏà½áºÏ

µ±È»£¬ÓÉÓÚDocker¾ßÓкܺõÄÒÆÖ²ÐÔ£¬ËùÒÔËü¸üÇ¿´óµÄµØ·½»¹ÔÚÓÚºÍÔÆ»·¾³½áºÏʹÓá£

DockerÈÝÆ÷ÊÇ¿ÉÒÆÖ²£¬»òÕß˵¿çƽ̨¡£½«À´µÄÓ¦Óò¿Êð¿ÉÄÜÊÇÔÚ±¾µØ½øÐдò°ü£¨³ÉDocker¾µÏñ£©È»ºó´«Ë͵½ÔƶËÔËÐУ¬ÖÁÓÚÊÇAWS»¹ÊÇGCE Õâ²»ÊÇÎÊÌ⣬Docker¶¼ÄÜÔÚÆäÉÏÔËÐС£ÕâÑù²»½öÄÜÔÚÒ»¶¨³Ì¶ÈÉϽâ¾övendor-lockinµÄÎÊÌ⣬ͬʱҲʹµÃÔÚ²»Í¬µÄÔÆ·þÎñÌṩÉÌÖ®¼äǨÒÆÒ²±äµÃ ¼òµ¥¡£ÓÈÆäÊÇδÀ´ÔÚʹÓöàÔÆ£¨multi-cloud£©»·¾³µÄʱºò£¬Õ⽫·Ç³£±ãÀû¡£

±ÊÕßÈÏΪ»ùÓÚIaaS + ÈÝÆ÷¼¼ÊõµÄÓ¦Óý»¸¶¡¢²¿Êð·½Ê½½«À´Ò»¶¨»á³ÉΪһÖÖÁ÷Ðеķ½Ê½¡£

½øÐÐBlue-green²¿Êð

¡¸Blue-green deployment¡¹Õâ¸ö´Ê×î³õ³öÏÖÔÚ¡¶Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation ¡·Ò»Ê飬ºó¾­ThoughtWorksµÄMartin Fowler·¢Ñï¹â´ó×¢ 4¡£

×¢ 4 http://martinfowler.com/bliki/BlueGreenDeployment.html

Blue-green deployment·½·¨ÆäʵºÜ¼òµ¥£¬¾ÍÊDZ£³ÖÁ½Ì×Ò»ÑùµÄÉú²ú»·¾³£¬¶øʵ¼ÊÉÏÖ»ÓÐÒ»Ì×»·¾³ÕæÕýµÄ¶ÔÍâÌṩ·þÎñ£¨Í¼ÖÐÂÌÉ«»·¾³£©£¬¶øÁíÒ»Ì×»·¾³Ôò´¦ÓÚ´ý»ú×´ ̬£¨Í¼ÖÐÀ¶É«£©¡£²¿ÊðµÄʱºò£¬ÎÒÃÇ»áÏÈÉÏÏßµ½À¶É«»·¾³ÖУ¬Èç¹û²âÊÔûÓÐÎÊÌâÁË£¬ÔÙ½«Â·ÓÉÇл»µ½ÐµķþÎñÉÏ¡£

Blue-green²¿ÊðÄÜ´øÀ´ÈçϺô¦¡£

1.×îС»¯Í£»úʱ¼ä

2.¿ìËٻعö

3.hot standby

¶øδÀ´µÄ¿ª·¢ºÍ²¿ÊðºÍ¿ÉÄܾͻáÏñÏÂÃæÕâÑù½øÐÐÁË¡£

1.¢Ù ¿ª·¢ÈËÔ±½«´úÂëpushµ½Git²Ö¿â

2.¢Ú CI¹¤¾ßͨ¹ýwebhookµÃµ½×îдúÂ룬¹¹½¨Docker¾µÏñ²¢Æô¶¯ÈÝÆ÷½øÐвâÊÔ¡£

3.¢Û ²âÊÔͨ¹ýºó½«¾µÏñ´ò±êÇ©ºópushµ½Ë½ÓоµÏñRegistry

4.¢Ü CI¹¤¾ß֪ͨCD¹¤¾ß

5.¢Ý CD¹¤¾ßͨ¹ýMesos/MarathonµÈ½øÐлùÓÚÈÝÆ÷µÄ²¿Êð

6.¢Þ ²âÊÔûÓÐÎÊÌâºó½øÐÐÈÝÆ÷µÄÇл»£¨¼´Blue-greenÇл»£©

   
2651 ´Îä¯ÀÀ       17
 
Ïà¹ØÎÄÕÂ

ÔƼÆËãµÄ¼Ü¹¹
¶ÔÔƼÆËã·þÎñÄ£ÐÍ
ÔƼÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔƼÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔƼÆËã¼ò½é
ÔƼÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔƼÆËã
ÈídzÎöÔƼÆËã
 
Ïà¹Ø¿Î³Ì

ÔƼÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔƼÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
Node+Vue3.0Ç°¶ËÈ«Õ»¿ª·¢ 7-5 [ÌØ»Ý]
Spring Cloud΢·þÎñ¼Ü¹¹ 7-5[ÌØ»Ý]
SysMLºÍEAϵͳÉè¼ÆÓ뽨ģ 7-26[ÌØ»Ý]
Python¡¢Êý¾Ý·ÖÎöÓë»úÆ÷ѧϰ 8-23[ÌØ»Ý]
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 8-22[ÏßÉÏ]
LinuxÄں˱à³Ì¼°É豸Çý¶¯ 7-25[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒƶ¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔƼÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔƼÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆƽ̨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆƽ̨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆƽ̨¹¹½¨ÔÆ·þÎñ
ÔƼÆËãÓëWindows AzureÅàѵ
±±¾© ÔƼÆËãÔ­ÀíÓëÓ¦ÓÃ