ǰÑÔ
ÏÈ×ö¸ö×ÔÎÒ½éÉÜ£¬±¾È˱ÏÒµÓÚÏã¸Û¿Æ¼¼´óѧ£¬È»ºó»Ø¹úÏȺóÔÚIBMÓë΢Èí¹¤×÷£¬ºó¼ÓÈëÁËÔÆÂ繫˾×ö¼Ü¹¹Ê¦ºÍ½â¾ö·½°¸¹ËÎʹ¤×÷¡£
ÔÆÂ繫˾ÊÇÒ»¼ÒÖÂÁ¦ÓÚϵͳ×Ô¶¯»¯ÔËάµÄ¹«Ë¾£¬ÎÒÃÇÓµÓÐDevOpsµÄÏîÄ¿¾ÑéºÍһЩDevOpsµÄÔËά»ýÀÛ¡£»Øµ½´Ë´Î·ÖÏí£¬Õâ´ÎµÄ·ÖÏí½«Ö÷Òªº¸ÇÒÔϼ¸µãÄÚÈÝ£ºDevOpsµÄÏÖ×´£¬ÎÒÃÇÈÏΪµÄDevOpsµÄËĸö½×¶Î£¬DevOpsµÄ»ù´¡£¬DevOpsµÄ°¸Àý·ÖÎö£¬DockerµÄÓÅÊÆ¡¢ÌôÕ½ÓëÏà¶ÔÓ¦µÄ²ßÂÔ£¬ÒÔ¼°DevOpsµÄδÀ´¡£×îºó£¬Í¨¹ýÕâЩ·ÖÏí£¬Ï£Íû´ó¼Ò¿ÉÒÔÁ˽âÎÒÃǽ¨ÒéµÄĿǰ´ó¶àÊý¹«Ë¾Ó¦¸Ã´ïµ½µÄDevOpsµÄ³Ì¶ÈÒÔ¼°ÔÚʵ¼Ê°¸ÀýÖÐÕâ¸ö³Ì¶ÈµÄDevOpsÊÇʲôÑù×ӵġ£
1 DevOpsµÄÏÖ×´
Ê×ÏÈ£¬ÏÈÀ´¸ÅÊöÒ»ÏÂʲôÊÇDevOps¡£ÎÒÈÏΪDevOpsÊÇÒ»ÖÖÔÚ´Ù½ø¿ª·¢ÓëÔËάµÄ½»Á÷ÓëºÏ×÷µÄÌõ¼þÏ£¬ÒÔ×Ô¶¯»¯¹¤¾ßÓëÁ÷³ÌΪ»ù´¡£¬¸ü¿ìËÙ£¬¸ßЧºÍÎȶ¨µÄʵÏÖ»·¾³´î½¨£¬Ó¦ÓòâÊÔ£¬Èí¼þ·¢²¼µÄÒ»ÖÖÎÄ»¯ºÍÇ÷ÊÆ¡£
µ±ÏÂDevOpsÎÞÒÉÊÇÒ»¸öºÜ»ðµÄ¸ÅÄºÜ¶à¹«Ë¾¶¼ÔÚ³¢ÊÔÔÚËûÃǵĿª·¢ÔËά»·¾³ÖÐʹÓÃDevOps¡£µ«ÊÇÏÖ×´ÊÇÕâ²¢²»ÈÝÒ×£¬ºÜ¶à¹«Ë¾ÔÚ³¢ÊԵĹý³ÌÖж¼Ê§°ÜÁË£¬ÓеÄÊÇÒòΪ½«DevOpsʹÓÃÔÚÁË´íÎóµÄ³¡ºÏ£¬ÓеÄÊÇÒòΪʹÓÃÁË´íÎóµÄ·½·¨£¬»¹ÓеÄÊÇÒòΪûÓÐ×öºÃ³ä×ãµÄ×¼±¸¡£ÕâЩʧ°ÜÖÕ½«µ¼ÖÂϵͳ¸ü¸´ÔÓ£¬ÓкܶàDZÔÚ·çÏÕ£¬»òÕß»¨·ÑºÜ¶àʱ¼äºÍ¾«Á¦ÔÚ¹ÊÕÏÅŲéÉÏ£¬ÊÊµÃÆä·´¡£
2 DevOpsµÄËĸö½×¶Î

ÄÇô£¬µ½µ×¸ÃÈçºÎʵÏÖDevOps²¢ÇÒ×öºÃ×¼±¸ÄØ£¿
ÎÒÃÇÈÏΪDevOpsÓ¦¸ÃÓÐÒÔÏÂËĸö½×¶Î£º¼òµ¥µÄ×Ô¶¯»¯£¬CIÓ뾲̬Docker£¬ÔöÇ¿Ó붯̬Docker£¬ÒÔ¼°È«ÃæCIºÍ×Ô¶¯»¯¡£ÎÒÃǶ¨ÒåµÄµÚÒ»¸öDevOps½×¶ÎÄØ£¬ÊÇÆ«Ïò´«Í³µÄ£¬Ö»ÊÇʹÓÃÁËһЩ¼òµ¥µÄ×Ô¶¯»¯¹¤¾ßÍê³É°æ±¾¸üз¢²¼¶øÒÑ£¬ÄÇôµÚ¶þ¸ö½×¶ÎÄØ£¬Ê¹ÎÒÃÇÈÏΪĿǰ´ó¶àÊý¹«Ë¾Ó¦¸ÃȥʵÏÖ´ïµ½µÄÒ»¸ö½×¶Î£¬ÔÚÕâ¸ö½×¶ÎÀïÓ¦¸ÃÓµÓÐÁË×Ô¼ºµÄCI£¬Ê¹ÓÃÁËDockerµ«¿ÉÒÔÊǾ²Ì¬µÄģʽ£¬¼´ÊÖ¶¯²¿Êð£»È»ºóÔÚÕâ¸ö»ù´¡ÉÏ£¬ÎÒÃÇÀ´µ½Á˵ÚÈý¸ö½×¶Î£¬ÕâʱºòÎÒÃÇÏ£Íû¿ÉÒÔ¶ÔµÚ¶þ¸ö½×¶Î×öÈ«·½Î»µÄ¼ÓÇ¿£¬°üÀ¨ºÜ¶àϸ½Ú±ÈÈçϵͳ¼Ü¹¹£¬ÈçºÎʵÏÖCI£¬ÈçºÎʵÏÖ×Ô¶¯»¯µÄ²âÊÔ£¬²¢ÇÒ¿ÉÒÔÓµÓÐÒ»¸ö¶¯Ì¬µÄDocker²¿Êð£»×îºó£¬ÔÚµÚËĸö½×¶Î¾ÍÊÇÒ»¸öÈ«×Ô¶¯µÄ½×¶Î£¬Ò»Çо¡ÔÚÕÆÎÕ£¬Ò»ÇÐÍòÎÞһʧ¡£
ÎÒÃǶ¨ÒåµÄµÚÒ»¸öDevOps½×¶ÎÄØ£¬ÊÇÆ«Ïò´«Í³µÄ£¬Ö»ÊDZàдÁËһЩ½Å±¾£¬»òÕßÀûÓÃһЩ¼òµ¥µÄ×Ô¶¯»¯¹¤¾ß£¬ÈçAnsible£¬Ö´ÐÐһЩ¼òµ¥Öظ´µÄÃüÁÍê³É°æ±¾¸üз¢²¼¶øÒÑ£»
ÄÇôµÚ¶þ¸ö½×¶ÎÄØ£¬ÊÇÎÒÃÇÈÏΪĿǰ´ó¶àÊý¹«Ë¾Ó¦¸ÃȥʵÏÖ´ïµ½µÄÒ»¸ö½×¶Î£¬ÔÚÕâ¸ö½×¶ÎÀïÓ¦¸ÃÓµÓÐÁË×Ô¼ºµÄÖ§³Ö½»¸¶µÄ¹¤¾ßºÍÁ÷³Ì£¬Ê¹ÓÃÁËDockerµ«¿ÉÒÔÊǾ²Ì¬µÄģʽ£¬Ã»Óе÷¶È£¬À©Õ¹µÈµÄ×Ô¶¯»¯»úÖÆ£¬»¹ÊÇÐèÒªÈ˹¤¾ö¶¨×ÊÔ´µÄµ÷Å䣬ϵͳ¶ÔÓÚ¶¯Ì¬¸ºÔصĵ¯ÐÔ½ÏÈõ£»

È»ºóÔÚÕâ¸ö»ù´¡ÉÏ£¬ÎÒÃÇÀ´µ½Á˵ÚÈý¸ö½×¶Î£¬ÕâʱºòÎÒÃÇÏ£Íû¿ÉÒÔ¶ÔµÚ¶þ¸ö½×¶Î×öÈ«·½Î»µÄ¼ÓÇ¿£¬°üÀ¨ºÜ¶àϸ½Ú£¬±ÈÈç²»¶Ï¸Ä½ø³ÖÐø½»¸¶ÒÔ¼°ÊµÏÖ×Ô¶¯»¯²âÊÔ£¬Ö§³Ö¸ü¸´ÔÓµÄÓ¦Óüܹ¹£¬²¢ÇÒ¿ÉÒÔÓµÓÐÒ»¸ö¶¯Ì¬µÄDocker²¿ÊðºÍµ÷¶È£¬ÀûÓÃSwarm£¬KuberneteµÈ¹¤¾ß£»
×îºó£¬ÔÚµÚËĸö½×¶Î¾ÍÊÇÒ»¸öÈ«×Ô¶¯µÄ½×¶Î£¬ÍêȫʵÏÖinfrastructure-as-code£¬Õû¸öϵͳºÍÓ¦ÓþÍÊÇÔÚGitÖеÄһϵÁÐÎļþ£¬°üÀ¨ÔÆ£¨µ×²ã»ù´¡ÉèÊ©£©£¬·þÎñÆ÷£¬Ó¦Ó㬵ȵȵȵȣ¬ËùÓÐÒ»ÇС£µ±È»ÕâÊǷdz£ÀíÏ뻯Ҳ·Ç³£À§Äѵġ£
3 DevOpsµÄ»ù´¡
ÄÇôÔÚÁ˽âÁËÈçºÎÒ»²½²½Ò»¸ö½×¶ÎÒ»¸ö½×¶ÎʵÏÖDevOpsÖ®ºó£¬ÎÒÃÇÔÙÀ´¿´Ò»ÏÂDevOpsÐèÒªÄÄЩ¼¼Êõ»ù´¡¡£
»ùÓÚÎÒÃǶ¨ÒåµÄÕâËĸöDevOpsµÄ½×¶Î£¬ÔÚÕâÀïÎÒ¸ø³öÁË´ó¼ÒʵÏÖDevOpsµÄËĸö¼¼Êõ»ù´¡£¬·Ö±ðÊÇ£º°æ±¾¿ØÖÆ£¬»·¾³³éÏó£¬È«×Ô¶¯»¯²âÊÔÒÔ¼°ÍêÈ«³ÖÐø²¿Êð¡£ÔÚûÓÐÕâËĸö»ù´¡µÄ×¼±¸Ö®Ï£¬DevOps¾ÍÊÇ¿ÕÖÐÂ¥¸ó¡£
1.°æ±¾¿ØÖÆÖ¸µÄÊÇ´úÂëµÄ¿ª·¢£¬¸´²é£¬°æ±¾¿ØÖÆ£¬´úÂ뼯³ÉµÈÄܹ»ÔÚDevOpsÖиü¼Ó×Ô¶¯»¯£»
2.³éÏó»·¾³ÊÇÖ¸¿ª·¢µÄ´úÂë¿ÉÒÔÆ¥Å伿Èݸ÷ÖÖ»·¾³£¬±ÈÈçÔÚÒ»¸öDocker
imageÀÎÒÃǵĴúÂë¿ÉÒÔ¸ù¾ÝimageËù´¦µÄ²»Í¬»·¾³£¬µ÷È¡²»Í¬µÄ»·¾³±äÁ¿ÈçIP£¬ÓòÃû£¬Îļþ£¬´æ´¢£¬ÃÜÂëµÈ£»Ò»¸ödocker
image Âú×ã¶à»·¾³²¿Êð£¬ÅäÖöÀÁ¢ÇÒ¶¯Ì¬»¯
3.È«×Ô¶¯»¯²âÊÔ£¬ÊÇÖ¸ËùÓа汾£¬±ä¸üÓëÆäËû°æ±¾µÄ¼æÈÝÐÔ¶¼¿ÉÒԵõ½×Ô¶¯µÄ²âÊÔ£»
4.ÍêÈ«µÄ³ÖÐø¼¯³ÉÊÇÖ¸ÎÞÂÛÔÚʲôʱ¼ä£¬»òÕßʲôÈË×öµÄ±ä¸ü£¬¶¼»áÓ뵱ǰµÄ°æ±¾´úÂë½øÐгÖÐøµÄ¼æÈݲâÊÔ£¬ÒÔ±£Ö¤ËùÓеıä¸ü¶¼¿ÉÒÔ×îÖÕÕûºÏÔÚÒ»Æð£¬ÊµÏÖ×îÖÕ°æ±¾µÄ·¢²¼²¢²¿Ê𵽸÷¸ö»·¾³ÖС£
4 DevOps°¸Àý·ÖÏí
ÔÚ½éÉÜÁËÈçºÎÒ»²½²½ÊµÏÖDevOpsÒÔ¼°ÊµÏÖDevOpsµÄ»ù´¡¼¼ÊõÖ®ºó£¬ÏÂÃæÎÒ½«»áÄÃÒ»¸öÎÒÃÇÔÆÂç¿Æ¼¼Óë¿Í»§ºÏ×÷Íê³ÉµÄÒ»¸öDevOpsΪÀý×Ó£¬¸ø´ó¼Ò·ÖÏíÒ»ÏÂÎÒÃÇÊÇÈçºÎ×öµ½DevOpsµÄ¡£
Õâ¸ö°¸ÀýµÄ»ù±¾±³¾°ÄØÊÇÕâÑù¡£ÎÒÃÇʵÏÖÁË֮ǰÌáµ½µÄDevOpsµÄµÚ¶þ½×¶Î£¬ÕûÌå»·¾³ÊÇÔÚAWSÉÏ£¬¿ª·¢ÐèÇóÊÇÿÁ½ÖÜ×öÒ»´Î°æ±¾µü´ú£¬Ã¿ÈÕÍÆË͸üÐÂ3-4´Î¡£¸ù¾Ý֮ǰ½²µ½µÄDevOpsʵÏÖµÄËĸö»ù´¡£¬ÔÚÕâ¸öÏîÄ¿ÖÐÎÒÃÇÓÃÁËÒÔÏÂһЩ¼¼ÊõȥʵÏÖ£º
ʹÓÃGITLABʵÏÖ°æ±¾¿ØÖÆ£¬DockerʵÏÖ³éÏó»·¾³£¬
×Ô¶¯»¯²âÊÔĿǰÊǰë×Ô¶¯ÐèÒªÈËΪ¸ÉÔ¤£¬
È»ºóÀûÓÃJenkins ʵÏÖÁ˳ÖÐø¼¯³É¡£


¿Í»§¾ßÌåµÄϵͳ¼Ü¹¹ÐÅÏ¢ÊÇÕâÑùʹÓÃÁËjava/Node.js£¬CoreOS£¬Redis×öÁËsessionµÄ»º´æ£¬AWS
RDS ÖÐµÄ MYSQL ºÍ Postgres£¬MongoDB£¬ELKÈÕÖ¾·ÖÎöϵͳ£¬HadoopÒÔ¼°SolrÔò´î½¨ÔÚÁË×Ô½¨µÄEC2ÐéÄâ»úÉÏ£¬Í¬Ê±»¹ÊÇÓÃÁËELB£¬S3£¬
SQS£¬SNSµÈAWSµÄ¸¨Öú¹¦ÄÜ¡£
ÄÇôÕâ¸ö»·¾³µÄ´óÌå¼Ü¹¹ÊÇʲôÑù×ÓÄØ£¿Ê×ÏÈÓ¦ÓÃÇëÇó»áÀ´Í¨¹ýAWSµÄELB¸ºÔؾùºâÈ»ºó·ÖÅäµ½²»Í¬µÄAPI
Gateway£¨ÕâÊÇÔÚ²»Í¬EC2 VMÉϵÄijһ¸öDocker containerÖУ©£¬Ö®ºóAPI GATEWAY»áͨ¹ýRedis×ösessionµÄ»º´æ£¬Í¨¹ýRedisÄõ½Öмä¼üֵȻºóÔÙͨ¹ýInternalµÄELBÈ¥ÁªÏµ²»Í¬VMÉϵÄÓ¦ÓÃDocker
container¡£ËùÓеÄÁªÏµ¶¼»áͨ¹ýÖ¸¶¨ºÃµÄIPºÍ¶Ë¿ÚÈ¥Íê³É£¬²¢ÇÒÔÚVMµÄdockerÉ϶¼ÊÇûÓÐsession´æÔڵģ¬ÕâÑù¿ÉÒÔʵÏÖ¸üÁé»îµÄÀ©ÕÅ»òÕß±ä¸ü¡£
ÔÚÁ˽âÁËÕâ¸öÏîÄ¿µÄ±³¾°ºÍ¼Ü¹¹Ö®ºó£¬ÎÒÃÇÔÙÀ´¿´Ò»ÏÂÎÒÃÇÊÇÈçºÎʵÏÖ³ÖÐø¼¯³É£¨CI£©µÄ¡£Õâ¸ö¹ý³ÌÈçÆÁÄ»ÉÏËùʾһÑù£¬CIÊÇ»ùÓÚJenkinsµÄµ÷¶ÈÓëdockerµÄÁé»î¶ÈÀ´ÊµÏÖ¡£¿ÉÒÔ˵JenkinsÓëDockerÊÇÒ»¶ÔºÜºÃµÄ´îµµ¡£DockerÔÚÕâ¸ö¹ý³ÌÖаçÑÝÁËÒ»¸ö¼«Îª³ÆÖ°µÄ¶Ô´úÂë´ò°üµÄ½ÇÉ«£¬Í¨¹ýRMPS¼¼Êõ»òÕ߯äËû»úÖÆÎÒÃÇÓÖ¿ÉÒÔʵÏÖ×Ô¶¯»¯µÄ´ò°ü£¬¸üе½docker
container registry, È»ºóÀûÓÃJenkinsµÄµ÷¶È¹¦ÄÜ£¬ÊµÏÖÔÚ²»Í¬µÄ»·¾³Ï½øÐвâÊÔÒÔ¼°´¦Àí¡£ÈçͼÖÐËùʾ£¬ÔÚcommit´úÂëºó£¬ÀûÓÃRMPS´ò°üdocker
image£¬È»ºó·Ö±ð·¢Íù±¾µØÒÔ¼°AWSÉϵÄregistry¡£ÔÚ±¾µØµÄimageͨ¹ýtesting»·¾³µÄ²¿ÊðÓë²âÊÔºÃÖ®ºó£¬AWSÉÏÔÙµ÷È¡Ïà¶ÔÓ¦µÄÒѾ²âÊԺõİ汾½øÐÐStagingµÄ²¿ÊðÓë²âÊÔ£¬È»ºóÔÙ½øÐÐÉú²ú»·¾³µÄ²¿ÊðÓë²âÊÔ£¬Ö®ºóÍê³É×îÖյķ¢²¼¡£

ÔÚcommit´úÂëºó£¬ÔÚbuild·þÎñÆ÷ÉÏÍê³É±àÒ룬³ÌÐò´úÂë·¢Ë͵½DockerÒýÇæ£¬×Ô¶¯»¯´ò°üÖÁеÄÓ¦ÓþµÏñ£¬È»ºó½«docker
image·¢ËÍÖÁdocker registryÍê³É×¢²á¡£´Ë¿ÌµÄÒÑ×¼±¸ºÃÁ˶ÔÏÂÒ»²½µÄ¶à»·¾³²¿Êð¶¯×÷¡£DockerÔÚÕâ¸ö¹ý³ÌÖаçÑÝÁËÒ»¸ö¼«Îª³ÆÖ°µÄ¶Ô´úÂë´ò°üµÄ½ÇÉ«¡£Õû¸ö¹ý³ÌÈçͼËùʾ¡£
ÉÏÒ»²½Íê³Éºó£¬ÎÒÃǾͿÉÒÔ¿ªÊ¼ÔÚstage»·¾³Éϲ¿Êð£¬ÒԱ㿪ʼ²âÊÔ¡£ÀûÓÃJenkinsµÄµ÷¶È·¢²¼¹¦ÄÜ£¬·¢²¼µ½±¾µØStage»·¾³£¬Í¬Ê±»áÔÚ»ùÓÚAWSµÄUAT
docker»·¾³²¿Êð¡£ÊµÏÖÔÚ²»Í¬µÄ»·¾³Ï½øÐвâÊÔÒÔ¼°´¦Àí¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬Docker¿ÉÒÔ°ïÖúʵÏÖ»·¾³³éÏ󻯡££¨-e£©
ÄÇôÎÊÌâÀ´ÁË£¬Èç¹ûÎÒÃÇÓÐ50¸ö¿ª·¢ÈËÔ±£¬10¸öIDC»·¾³£¬4¸ö²»Í¬¿ª·¢»·¾³£¬20¸öÓ¦Óã¬ÎÒÃǸÃÈçºÎʵÏÖ»·¾³ÅäÖõĹÜÀí£¿ÔÚÕâÀï¾ÍÐèÒªÒýÈëetcd·þÎñ·¢ÏÖ¹¦ÄÜÀ´Í³Ò»¹ÜÀí¶à»·¾³¶àÅäÖõļ¯ºÏ¡£Ò»Ì×Ó¦ÓõľµÏñ¿ÉÒÔÇáËÉÓ¦ÓÃÓÚ¶à¸ö¼¯ºÏ»·¾³£¬ÊµÏÖÁËÊý¾ÝºÍÅäÖõĽâñî¡£Õû¸ö¹ý³ÌÈçͼËùʾ¡£


ÁíÍâJenkinsÔÚÕû¸ö¹ý³ÌÖУ¬Æðµ½ÁËÈÎÎñµ÷¶ÈÖ´ÐеĹؼü×÷Ó㬴ӶøÊµÏÖÁËÕû¸öÁ÷³ÌµÄ×Ô¶¯»¯¡£´Óµ÷¶È´ò°üµ½¿å»·¾³²¿ÊðµÈ¡£ÈçͼËùʾ¡£
5 DockerµÄÓÅÊÆÓëÌôÕ½
½éÉÜÍêÒ»¸öÕæÊµµÄDevOps°¸ÀýÖ®ºó£¬ÎÒÃÇ¿ÉÒÔ¿´³öDockerÊÇʵÏÖDevOpsµÄÒ»¸öÖØÒªµÄ¼¼ÊõÊֶΣ¬ÄÇôDockerµÄʹÓÃÓÐʲôÓÅÊÆÒÔ¼°ÌôսĨ£¿Ãæ¶ÔÕâЩÌôÕ½ÎÒÃǸÃÈçºÎÓ¦¶ÔÄØ£¿ÏÂÃæÒ²ÊÇÕâ´Î·ÖÏíµÄ×îºóÒ»¸ö´ó²¿·Ö¾ÍÀ´¸ø´ó¼Ò½éÉÜÒ»ÏÂDockerµÄÓÅÊÆÓëÌôÕ½¡£
DockerµÄÓÅÊÆÄØ£¬×ܽáÆðÀ´Ö÷ÒªÓÐÒÔϼ¸µã£ºÊ×ÏÈ£¬ËûÊǸßЧµÄ£¬Ã»ÓÐOSÕâÒ»²ã¿ÉÒÔ¼«´óÌá¸ßÔËÐÐÐÔÄÜ£»Æä´ÎËûÊÇÒ»¸ö¹¤¾ß»¯µÄÍêÕû¼¼Êõ£¬DockerÖаüº¬ÁËÐí¶à¹¤¾ßÈ¥¹ÜÀídocker
container°üÀ¨»·¾³£¬·¢ÏÖ·þÎñ£¬´æ´¢µÈ£»ËûÓÖÊǼ«ÎªÁé»îµÄ£¬½«Ó¦ÓúÍϵͳ¡°ÈÝÆ÷»¯¡±¿ÉÒÔ¸ü¼Ó±ã½ÝµÄ²¿ÊðÓ¦Óã»ËûµÄÃô½Ý¶ÈºÜ¸ß£¬¿ÉÒÔ¿ìËٵĸ´ÔºÍ¸üУ»Í¬Ê±£¬ËûÒ²ºÜÇáÁ¿£¬ÔÚÒ»¸öÐéÄâ»úÉÏ¿ÉÒÔ²¿ÊðºÜ¶à¸öÈÝÆ÷£»´ËÍ⣬Ëû»¹¾ßÓгɱ¾ÓÅÊÆÒÔ¼°ÊÇĿǰ¿ª·¢Õâ¸öÉú̬»·¾³ÖÐÊܹã´óÓû§»¶ÓÖ§³ÖµÄÒ»ÖÖ¼¼Êõ¡£
Õâô°ôµÄÒ»ÖÖ¼¼Êõ£¬Êܵ½¿ª·¢Õß»¶ÓµÄ£¬µ«¶ÔÓÚÔËά¹¤³ÌʦÀ´Ëµ£¬ÔÚά»¤ÕÆ¿ØÕâ¸ö¼¼ÊõµÄʱºòÈ´ÃæÁÙÁ˺ܶàµÄÌôÕ½£¬ÕâÀïÎÒÁгöÁËÈçϼ¸µãÔÚÎÒÃÇʵ¼ùÖÐÅöµ½µÄÌôÕ½£º¼à¿Ø£¬ÈÕÖ¾£¬ÅÅÕÏ£¬°²È«ÒÔ¼°ÍøÂç¡£
ÔÚ¼à¿Ø·½Ã棬×î»ù±¾µÄ¼à¿ØÊÇ×öµ½¼à¿Ødocker serviceÊÇ·ñÔÚÕý³£ÔËÐУ¬µ«ÕâÊÇÔ¶Ô¶²»¹»µÄ£¬ÎÒÃÇÐèÒª¶ÔDockerÔËÐÐÓиü¶àµÄÁ˽⣬±ÈÈçCPU£¬ÄÚÈÝ£¬Ó²Å̿ռ䣬I/O£¬ÍøÂçÇé¿ö¡£¸üÉî²ã´ÎµÄ¼à¿Ø¿ÉÒÔͨ¹ýÈýÖÖ¼¼ÊõÊÖ¶ÎʵÏÖ£º¶ÁÈ¡containerÀïµÄCGROUPÎļþÔÙ¾¹ý·ÖÎöÄõ½DockerÔËÐÐÐÅÏ¢£¬Í¨¹ýµ÷ÓÃdocker
API Ö±½ÓÄÃÈ¥ÐÅÏ¢£¬»òÕßͨ¹ýÃüÁîÐÐÄõ½ÐÅÏ¢µ«ÕâÖÖ·½Ê½Ëù»ñµÃµÄÐÅÏ¢½ÏÉÙ¡£ÓÚÊÇ£¬ÔÚCgroupºÍAPIµÄ»ù´¡ÉÏ£¬ÎÒÃǽ¨ÒéȥʹÓÃCgroupÖ±½ÓÄõ½ÎļþÈ»ºóͨ¹ý·ÖÎö»ñµÃ²ÎÊýÊä³ö£¬ÒòΪÏà±ÈAPI£¬ÕâÖÖÊֶοÉÒÔ»ñµÃ¸ü¶àÓмÛÖµµÄÐÅÏ¢²¢ÇÒ¶ÔDockerµÄÐÔÄÜÓ°Ïì×îµÍ¡£
´ËÍ⣬¶ÔÓÚDockerÕ¼ÓõÄdiskÎÊÌâÒ²ÊǸöÌôÕ½£¬ÒòΪÎÒÃÇÔÚVMÉÏÖ»¿ÉÒÔ¿´µ½ËùÓÐcontainersÕûÌåÕ¼ÓõĴÅÅ̿ռ䣬ËùÒÔΪÁËÁ˽⵽¸÷¸öDockerµÄʹÓÃÇé¿ö£¬ÎÒÃÇÐèÒªÁ´½Óµ½¸÷¸öcontainerÈ»ºóͨ¹ýÃüÁîÐе÷È¡¸÷×ÔÕ¼ÓÃdiskµÄÐÅÏ¢¡£
ÔÙÖ®£¬¼à¿ØcontainerÄÚ²¿µÄserviceÒ²ÊÇÒ»¸öÄѵ㣬¶ÔÓÚserviceµÄ¼à¿Ø£¬ÎÒÃÇÓÐÁ½ÖÖ²ßÂÔ£ºÒ»ÖÖÊÇÔÚcontainerÄÚ²¿²¿Êðagent£¬µ«ÊÇÕâÖÖÊÖ¶ÎÐèÒªÆäËûµÄservice¸¨ÖúÔÚÆô¶¯containerÊÇ¿ØÖÆÆô¶¯Õâ¸öagent¡£ÕâÀïÐèÒªÌáÐÑ´ó¼ÒµÄÊÇ£¬DockerµÄ²¿Êð±ê×¼¹æ·¶ÊÇÒ»¸öcontainerÖÐÖ»ÊÇÓÃÒ»¸öservice¡£´ËÍâʹÓÃÕâÖÖ·½·¨¼à¿ØserviceµÄ»°£¬»¹ÓÐÒ»¸öÎÊÌâ¾ÍÊÇÕë¶ÔagentµÄ¸üÐÂÖ»ÄÜÔÚ´ò°üÕâ¸öimageʱºòÍê³É£¬ÕâÑùÒ²¶ÔÕæ¸öimageµÄ´´½¨Ôö¼ÓÁ˸´ÔÓ¶È¡£
¾ÍÉÏÊö¶àÖÖÔÒò£¬ÎÒÃÇÔÚÕâÀィÒéʹÓõڶþÖÖ·½Ê½£¬¼´ÔÚcontainerÍⲿ¶ÔÄÚ²¿service½øÐÐ¼à¿Ø¡£ËäÈ»ÕâÖÖ·½·¨ÖÐÓÐÒ»¸öÄѵãÊÇÈçºÎÁ¬½Óµ½ÄÚ²¿µÄservice»ñÈ¡Êý¾Ý£¬²»¹ý½èÖúZabbixµÄLow
level Discovery¼¼Êõ£¬ÎÒÃdzɹ¦µØ¿ÉÒÔÕÒµ½ÄÚ²¿µÄservice²¢ÇÒ»ñÈ¡ÎÒÃÇÐèÒªµÄ²ÎÊýÐÅÏ¢£¬Íê³É¶ÔÄÚ²¿·þÎñµÄ¼à¿Ø¡£µ±È»£¬¶ÔÓÚ²»Í¬µÄÓ¦Óã¬ÎÒÃÇÈÔÐèÒª¶ÔÎÒÃÇµÄ¼à¿Ø½Å±¾×öһЩ¶¨ÖÆ»¯µÄÐ޸ġ£

DockerµÄÈÕÖ¾¶ÔÓÚÔËάÈËÔ±Ò²ÊÇÒ»¸öÌôÕ½£¬ÓÈÆäÊǵ±ÎÒÃÇÏ뼯ÖйÜÀíÕâЩÈÕÖ¾µÄʱºò¡£
Docker²úÉúµÄÈÕÖ¾Ö÷ҪΪӦÓÃÈÕÖ¾£¬ÏµÍ³ÈÕÖ¾ÊǺÜÉÙÊýµÄ£¬¶øÎÒÃÇÃæÁÙµÄ×î´óµÄÌôÕ½ÔòÊÇÈ¥¸ãÇå³þijһ¸öÈÕÖ¾ÊÇÀ´×ÔÄÄÀÊÇÀ´×Ô°´Ò»¸öhost£¬ÄÄÒ»¸öhostÉϵÄÄÄÒ»¸öcontainer¡£´ËÍ⣬µ«ÎÒÃDz¿Êð¿ÉÒ»¸öеÄcontainer»òÕßɾ³ýÒ»¸öcontainerµÄʱºò£¬ÈçºÎÏàÓ¦µÄ¶ÔÆäÈÕÖ¾½øÐÐÏàÓ¦µÄÔö¼Ó»ò¼õÉٵIJÙ×÷¡£Õë¶ÔÉÏÊöÎÊÌ⣬һ¸öÑ¡ÔñʹÓÃGELFÊÕ¼¯DockerµÄÈÕÖ¾µ½ELKϵͳ£¬GELKÊÇDocker×Ô´øµÄÒ»¸ö¹¤¾ß£¬ÔÚ1.8°æ±¾ÖгöÏÖ¡£µ«ÎÊÌâÊÇËüʹÓõÄUDP·½Ê½È¥´«ÊäÈÕÖ¾£¬ÓÉÓÚUDPµÄ²»Îȶ¨ÐÔÒÔ¼°GELK²»»á¼Ç¼ÈÕÖ¾ÔÚ±¾µØ£¬ËùÒÔËûºÜÈÝÒ×Ôì³ÉÈÕÖ¾µÄ¶ªÊ§¡£ËùÒÔ¿´ÉÏÈ¥Õâ¸ö²ßÂÔ¿É¿¿ÐÔ²»¸ß£¬ÓÚÊÇÎÒÃÇÓÖÏëµ½ÁíÒ»ÖÖ·½·¨£¬¼´Í¨¹ý´´½¨Ò»¸öרÓõÄcontainer×÷ΪlogstashµÄforwarder¡£ÕâÑùËùÓеÄÈÕÖ¾¶¼»á±»´æÔÚÕâ¸öhostÉϲ¢ÇÒÕâ¸öcontainer¿ÉÒÔ¶Ôlog½øÐжÁÈ¡£¬±ê¼Ç£¬È»ºó·¢µ½ELKÈÕ־ϵͳ¡£
ÅÅÕÏÔø¾ÊÇDockerÃæÁÙµÄÒ»¸öÎÊÌ⣬ÒòΪÎÒÃÇÎÞ·¨SSHµ½container£¬ÐèÒªÔÚÄÚ²¿Æô¶¯serviceʹÓÃconsoleµÇ¼£¬²¢ÇÒÎÒÃǺÜÄѶÔcontainer½øÐÐÐ޸ĺͲâÊÔÒòΪËûµÄ²¿Êð¶¼ÊÇÔÚimageÉú³É½×¶ÎÍê³ÉµÄ¡£ºóÀ´Dockerа汾ÓÐÁËBash
Shell¹¤¾ß¿ÉÒÔʵÏÖ¶ÔcontainerµÄµÇ¼¿ØÖÆ£¬µ«ÊǶÔÓÚ¼°Ê±¼´¿ÉµÄÐÞ¸ÄÓÉÓÚËûµÄÌìÐÔ£¬ÎÒÃÇÈÔÈ»ÎÞ·¨°´ÕÕ¹ýÈ¥µÄϰ¹ßÈ¥Íê³É¹ÊÕÏÅŲ顣
°²È«ºÍÍøÂçÒ²ÊÇÍ´µã¡£´Ó°²È«½Ç¶È½²£¬ÓÉÓÚcontainerµÄÁé»îÐÔ£¬imageµÄ°²È«²¹¶¡ÊDz»¶ÏµØ±ä»¯µÄ¡£´ËÍ⣬¸ôÀëÐÔÒ²ÊǸöÎÊÌ⣬²»ÏñVMÓëVMÖ®¼äµÄÓû§È¨ÏÞÊǸôÀ룬VMÉϵÄcontainerµÄÓû§È¨ÏÞÊÇÓëhost
VMÒ»Öµģ¬ÕâÑù²»ºÃÍê³ÉȨÏÞ¹ÜÀí¡£Í¬Ê±£¬ÓÉÓÚdockerµÄ¼¼Êõ»¹ÔÚ·¢Õ¹µÄ½×¶Î£¬Ëû²¢Ã»ÓкÜÍêÉÆ³ÉÊìµÄ°²È«¹æÔò¡£²»¹ýdockerÒ²´øÀ´Á˺ܶలȫ·½ÃæµÄ×î¼Ñʵ¼ùÎĵµ£¬°üÀ¨½¨ÒéÈÝÆ÷¼ä¿ªÆôLINKS´Ó¶ø±£»¤ÁËÓ¦Óö˿ڵIJ»±ØÒª±©Â¶£¬½¨ÒéʹÓÿͻ§¶ËºÍ·þÎñÆ÷¶ËÖ¤ÊéÈÏÖ¤·½Ê½£¬Ê¹Ó÷ÇrootÓû§ÔËÐзþÎñ£¬Ê¹ÓÃSELINUXÀ´ÔöÇ¿ÈÝÆ÷°²È«µÈµÈ·½·¨¡£
6 DevOpsµÄÔ¸¾°
×îºó£¬ÁÄÍêÁËDevOpsÒÔ¼°ÊµÏÖËüµÄÖØÒª¹¤¾ßDockerÖ®ºó£¬ÎÒÃÇÔÙÀ´Õ¹ÍûÒ»ÏÂDevOpsµÄδÀ´¡£ÎÒÃÇÏ£Íû£¬ÎÒÃÇ¿ÉÒÔÔÚ²»Ô¶µÄʱ¼äÄÚʵÏÖ
DevOpsÖеÄ×Ô¶¯ÉìËõ£¬ÊÇÈ«×Ô¶¯»¯µÄscalling£¬È»ºó¿ÉÒÔÍêÉÆ¶¯Ì¬µÄDocker £¬¶ø·ÇÏÖÔÚ»¹ÐèÒªÊÖ¶¯È¥²¿ÊðºÍ·¢²¼£¬ÒÔ¼°ÊµÏÖGreen/Blue
rolling £¬¼´¶ÔÓÚ²»Í¬VM²»Í¬containerµÄ±ä¸ü¿ÉÒÔÔÚ¸ºÔؾùºâºó¿ÉÒÔ×öµ½ÎÞ·ìµÄÁ´½Ó£¬ÎªÊ¹ÓÃÕßÌṩ³ÖÐøÎȶ¨µÄ·þÎñ¡£
×Ô¶¯ÉìËõ£º´´½¨AWSµÄCloudWatch²¢É趨ãÐÖµ£¬ÔÚAWSµÄAutoScalingÖеÄLaunch
Configuration Öм¯ÖÐÖÆ¶¨¸÷À൯ÐÔÉìËõÅäÖ㬰üÀ¨AMI£¬°²È«²ßÂԵȵȣ¬Æô¶¯Ò»¸öʵÀýÐèÒªµÄËùÓÐÐÅÏ¢£¨Launch
Configuratio nÊǵÄÅóÓÑ£©¡£Ò»µ©µ¯ÐÔÉìËõÅäÖÃÍê³Éºó£¬ãÐÖµÒ»µ©´¥·¢¼´¿É×Ô¶¯À©Õ¹ÐÔÄÜ£¬·´Ö®Ò²¿ÉÒÔ×Ô¶¯ÊÕËõÐÔÄÜ£¬×öµ½ÍêÈ«µÄ×Ô¶¯»¯¡£
¼¯Èº»¯£¬×Ô¶¯»¯µ÷¶È£ºÍ¨¹ýһϵÁÐDocker¹¤¾ß£¬ÖîÈçSwarm, Fleet£¬Kubernete,
MesoµÈµÈʵÏÖ¡£
ÑϸñÖ´ÐÐÀ¶ÂÌ·¢²¼£º
1ÔÚϵͳ¼Ü¹¹ÖУ¬É趨Ö÷±¸¸ºÔؾùºâ¡£
2.µ±ÐèҪз¢²¼Ê±£¬°ÑÂÌÉ«¼¯ÈºµÄ״̬¸ÄΪ¡¯±¸Óá¯. ´Ó¸ºÔؾùºâµÄ³ØÀï°ÑÕâЩµØÖ·È¥µô,ÕâÑù,ÂÌÉ«µÄ¼¯Èº¾Í²»ÔٻؽÓÊÕµ½À´×ÔÓû§µÄÇëÇóÁË.ת¶ø½øÈ뱸ÓøºÔؾùºâµÄ³ØÀï¡£
3.ÔÚÂÌÉ«¼¯ÈºÀﲿÊðеĴúÂë,Ö±µ½Ó¦ÓÃÆô¶¯³É¹¦¡£Ê¹Óñ¸ÓøºÔؾùºâ¼òµ¥²âÊÔһϱ¸Óü¯ÈºµÄ²¿ÊðÇé¿ö¡£
4.½«Á÷Á¿Òýµ½ÂÌÉ«¼¯Èº£¬¶ÔÀ¶É«¼¯Èº×öͬÑù²¿ÊðºÍ²âÊÔ²Ù×÷¡£ÕâÀïÐèҪעÒâµÄÊÇ£¬»áÓÐÒ»¶Îʱ¼äÀ¶Â̼¯ÈºÁ½ÕßÔËÐÐÁËÐÂÀϰ汾£¬ËùÒÔ³ÌÐò¼æÈÝÐÔÒ²ÊÇÊܵ½¿¼ÑéµÄ¡£
ÒÔÉϾÍÊDZ¾´ÎDevOpsºÍDockerµÄ°¸Àý·ÖÏí£¬Ï£Íû´ó¼Ò¿ÉÒÔÒ»ÆðÔÚÖйú°ÑDevOps×öµÄÔ½À´Ô½ºÃ
Q&A
Q1£º¶¯Ì¬DockerÊÇÔõôÉè¼ÆµÄ£¿
A1£º¶¯Ì¬Docker¿ÉÒÔÀûÓÃһЩ¹¤¾ßʵÏÖ£¬±ÈÈçSwarm£¬Kubernete£¬ÊµÏÖ¿ÉÊÓ»¯µÄÒ»ÖÖDocker×ÊÔ´³Ø£¬¾Í²»±ØÏñ¾²Ì¬µÄDockerÒ»Ñù»¹ÐèÒªÈËΪ²ÎÓëÈ¥²¿Êðijһ¸ödocker
container£¬È»ºó°²×°ÔÚijһ¸öVMÉÏ£¬¶øÊÇÒ»ÖÖ×ÊÔ´³ØµÄ¸Ð¾õ¡£
Q2£ºDevOpsÐèҪʲô¿ª·¢»ù´¡£¿
A2£ºDevOpsÆäʵ¶ÔÓÚ¿ª·¢À´Ëµ£¬²¢Ã»ÓдøÀ´¶à´óµÄÌôÕ½£¬Ö÷Òª¶ÔÓÚOps´øÀ´ÁËһЩÂé·³£¬ËùÒÔ˵¿ª·¢»ù´¡µÄ»°ÆäʵÊÇÔÚÔÓеĿª·¢»ù´¡É϶àһЩעÒâµã°É¡£
Q3£º¹ØÓÚDocker£¬ÏÖÔÚÔÚÊý¾Ý¿â²ãÃæµÄʵ¼ù¶à²»¶à£¬¿É·ñÖ¸µãÒ»¶þ£¿
A3£ºDockerÊÇʵÏÖDevOpsµÄÒ»¸öÖØÒª¼¼ÊõÊֶΣ¬ËûʵÏÖµÄÊǶԻ·¾³µÄ³éÏ󣬼´Îª²»Í¬µÄ°æ±¾´úÂë¿ÉÒÔ×ÔÓɵļæÈݲ»Í¬µÄ»·¾³È»ºó²¿Ê𽻸¶²âÊÔ·¢²¼£¬ËùÒÔDockerÖÐÖ÷Òª»¹ÊÇÒÔÓ¦ÓôúÂëΪÖ÷£¬¶øÊý¾Ý¿âµÄ»°»¹ÊÇÔÚÍⲿµÄ£¬¼´Êý¾Ý¿â²»»á·ÅÔÚDockerÖУ¬»¹ÊÇÔÚVMÉÏ£¬DockerÈ¥µ÷È¡¡£
Q4£ºDevOpsÊǹý³Ì£¬·½·¨£¬ÏµÍ³µÄÒ»ÖÖ×éºÏ£¬ÒòΪÊǿ粿ÃÅÐ×÷£¬ºËÐÄÓ¦¸ÃÊÇÊÇÊý¾Ý½»¸¶°É£¬ÎÒ¿´ÎÄÕÂÀïÃæÒ²Ìáµ½ÁËQAÐÍ£¬¿ª·¢ÐÍ£¬ÔËάÐÍÈںϹ¤¾ß£¬ÊÇ´Ó¹¤¾ß½Ç¶ÈÀ´Ëµ°É£¬ºÜ¶à´ó¹«Ë¾¶¼ÓжÀÁ¢µÄÊý¾Ý½»¸¶²¿ÃÅ£¬ÕâÖÖÒ²ËãÊÇDevOpsµÄÒ»ÖÖʵ¼ù·½Ê½Âð£¿
A4£ºÊ×ÏÈ£¬Äã˵µÄû´í£¬DevOpsÊÇÒ»ÖÖÇ÷ÊÆ£¬¿ç²¿ÃŵĺÏ×÷£¬ºËÐÄ»¹ÊÇΪÁËÄÜÌá¸ß°æ±¾µü´ú¸üеÄËÙ¶È¡£Æä´Î£¬¾ÍÏñÎÒ֮ǰÌáµ½µÄDevOpsÓв»Í¬µÄËĸö½×¶Î£¬¼òµ¥µÄʵÏÖ×Ô¶¯»¯²¿ÊðºÍ·¢²¼Ò²ÊÇÒ»¸ö½×¶Î£¬¶øÎÒÃÇÏ£ÍûµÄÊÇ´ó¼Ò´ïµ½µÚ¶þ¸ö½×¶Î£¬Ïêϸ¿ÉÒÔ¿´Ö®Ç°µÄ²¿·Ö£¬¼°ÊµÏÖ¾²Ì¬DockerºÍÓÐCIµÄÁ÷³Ì¿ØÖÆ¡£
Q5£º½üÄêÀ´DevOps¡¢×Ô¶¯»¯ÔËά¶¼ÌáµÃºÜÈÈ£¬Á½ÕßµÄÇø±ðºÍÁªÏµÊÇ£¿
A5£º¹ØÓÚµÚ¶þ¸öÎÊÌ⣬DevOpsÊÇÒ»ÖÖÇ÷ÊÆºÍ¸ÅÄ×Ô¶¯»¯ÔËά¿ÉÒÔÊÇʵÏÖDevOpsµÄÒ»ÖÖ¼¼Êõ»ù´¡¡£
Q6£ºÏë´ÓÆÕͨÔËάתÐе½²¡¶¾·ÖÎöÐÐÒµ£¬Ïñ²¡¶¾·ÖÎöÐÐÒµ£¬°²È«ÐÐÒµ£¬°Ù¶È°²È«£¬¿¹DDOS¹¥»÷£¬WAFÕâЩ£¬²»ÖªÇ°¾°ÈçºÎ£¿
A6: °²È«ÐÐÒµµÄ»°´Ó·¢Õ¹µ½ÏÖÔÚ´Ó´«Í³·À»ðǽµ½WAFµ½DDOS£¬È»ºóÏÖÔÚÒѾµ½ÁËÒ»ÖÖ»ùÓÚ´óÊý¾ÝµÄ²É¼¯·ÖÎö¶¨Î»¹¥»÷Õß»òÕßÔ¤ÏÈÅжϿÉÄܵĹ¥»÷µÄ½×¶ÎÁË£¬²¢ÇÒ»¥ÁªÍø°²È«ÏÖÔÚ±äµÃÔ½·¢ÖØÒª£¬Ê²Ã´¶¼ÉÏ»¥ÁªÍø£¬ÖØÒªÊý¾ÝµÄ±£»¤Òì³£¹Ø¼ü£¬ËùÒÔ×ö°²È«»¹ÊÇÂùÓз¢Õ¹µÄ¡£
Q7£ºÎÒ¾õµÃÔÚÔÆ¼ÆËãµÄ±³¾°Ï£¬DevOpsÊÇÇ¿µ÷ÁË¿ª·¢ºÍÔËάµÄºÏ×÷ģʽµÄ¸Ä±ä,¸Ð¾õÒ²ÊÇÔÚÈõ»¯ÔËάµÄ¶ÀÁ¢ÐÔ,¶ø°ÑÔËά²ãÃæ£¬»ù´¡¼Ü¹¹£¬ÏµÍ³¼¶±ðµÄÓÅ»¯¶¼½»¸øÔÆÆ½Ì¨È¥×ö£¬»òÕßÊÇ×öƽ̨ͳһ£¬DevOpsµÄºËÐÄÖð²½»áÊÇDEV£¬¶øOPS»áÖð½¥Èõ»¯¡£ÎÒµÄÕâÖÖµ£ÐÄÀÏʦÔõô¿´?
A7£ºÔËά´ÓʼÖÁ½ñ¶¼ÊÇÒ»¼þ·±ËöµÄ£¬µ×²ãµÄ¹¤×÷£¬ËùÒÔÔËάÐÐÒµ±¾ÉíÒ²ÔÚ²»¶ÏµÄ·¢Õ¹´Ó¹¤¾ß»¯£¬µ½±ê×¼»¯ÔÙµ½Æ½Ì¨»¯£¬°Ñ¹¤×÷±äµÃ¸ü¼ÓÓÐЧÂÊ£¬´ÓÔËӪά»¤µ½Ô˳ïá¡á¢£¬ËùÒÔÎÒÈÏΪ°ÑÔËά¹¤×÷¹¤¾ßƽ̨»¯²¢²»ÊÇÒ»¼þ»µÊ¡£È»ºó¹ØÓÚDevOpsºËÐÄÊÇDEVÈõ»¯OPSÕâÒ»²¿·ÖµÄ»°£¬ÎÒ¾õµÃ¼´Ê¹Ã»ÓÐDevOps£¬OPSµÄ¹¤×÷Ò²ÊÇ·þÎñDEV£¬°ïÖú¹«Ë¾ÒµÎñѸËÙ·¢Õ¹£¬¶øÓÐÁËDevOpsËäÈ»¸øOPS´øÀ´ÁËÌôÕ½£¬µ«Ò²ÊÇÒ»¸öеĻúÓö°É¡£
|