±à¼ÍƼö: |
±¾ÎÄÖ÷ÒªÊǶÔÔÆÔÉúµÄ¸ÅÊö¡£ÔÆÔÉúÓ¦ÓõÄÈý´óÌØÕ÷£ºÈÝÆ÷»¯·â×°¡¢¶¯Ì¬¹ÜÀí¡¢ÃæÏò΢·þÎñ¡£Ê×ÏÈÓÉCNCF×éÖ¯½éÉÜÁËÔÆÔÉúµÄ¸ÅÄȻºó·Ö±ð¶ÔÕâÈý¸öÌØÕ÷½øÐÐÏêÊö,Ï£Íû¶ÔÄúÓÐËù°ïÖú
±¾ÎÄÀ´×ÔÓÚdockone£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼¡¢ÍƼö¡£ |
|
1. ʲôÊÇÔÆÔÉú
1.1 CNCF×éÖ¯
ÔÚ½²ÔÆÔÉú֮ǰ£¬ÎÒÃÇÏÈÁ˽âÒ»ÏÂCNCF£¬¼´ÔÆÔÉú¼ÆËã»ù½ð»á£¬2015ÄêÓɹȸèǣͷ³ÉÁ¢£¬»ù½ð»á³ÉԱĿǰÒÑÓÐÒ»°Ù¶àÆóÒµÓë»ú¹¹£¬°üÀ¨ÑÇÂíÑ·¡¢Î¢Èí¡£Ë¼¿ÆµÈ¾ÞÍ·¡£
ĿǰCNCFËùÍйܵÄÓ¦ÓÃÒÑ´ï14¸ö£¬ÏÂͼΪÆä¹«²¼µÄCloud Native Landscape£¬¸ø³öÁËÔÆÔÉúÉú̬µÄ²Î¿¼Ìåϵ¡£

1.2 ÔÆÔÉú
CNCF¸ø³öÁËÔÆÔÉúÓ¦ÓõÄÈý´óÌØÕ÷£º
ÈÝÆ÷»¯·â×°£ºÒÔÈÝÆ÷Ϊ»ù´¡£¬Ìá¸ßÕûÌ忪·¢Ë®Æ½£¬ÐγɴúÂëºÍ×é¼þÖØÓ㬼ò»¯ÔÆÔÉúÓ¦ÓóÌÐòµÄά»¤¡£ÔÚÈÝÆ÷ÖÐÔËÐÐÓ¦ÓóÌÐòºÍ½ø³Ì£¬²¢×÷ΪӦÓóÌÐò²¿ÊðµÄ¶ÀÁ¢µ¥Ôª£¬ÊµÏÖ¸ßˮƽ×ÊÔ´¸ôÀë¡£
¶¯Ì¬¹ÜÀí£ºÍ¨¹ý¼¯ÖÐʽµÄ±àÅŵ÷¶ÈϵͳÀ´¶¯Ì¬µÄ¹ÜÀíºÍµ÷¶È¡£
ÃæÏò΢·þÎñ£ºÃ÷È··þÎñ¼äµÄÒÀÀµ£¬»¥Ïà½âñî¡£
ÔÆÔÉú°üº¬ÁËÒ»×éÓ¦ÓõÄģʽ£¬ÓÃÓÚ°ïÖúÆóÒµ¿ìËÙ£¬³ÖÐø£¬¿É¿¿£¬¹æÄ£»¯µØ½»¸¶ÒµÎñÈí¼þ¡£ÔÆÔÉúÓÉ΢·þÎñ¼Ü¹¹£¬DevOps ºÍÒÔÈÝÆ÷Ϊ´ú±íµÄÃô½Ý»ù´¡¼Ü¹¹×é³É¡£
Õâ±ßÒýÓÃÍøÉϹØÓÚÔÆÔÉúËùÐèÒªµÄÄÜÁ¦ºÍÌØÕ÷×ܽᣬÈçÏÂͼ¡£

ÔÆÔÉúËùÐèÒªµÄÄÜÁ¦ºÍÌØÕ÷
1.3 The Twelve Factors
12-Factors¾³£±»Ö±ÒëΪ12ÒªËØ£¬Ò²±»³ÆÎª12ÔÔò£¬12ÔÔòÓɹ«ÓÐÔÆPaaSµÄÏÈÇýHerokuÓÚ2012ÄêÌá³ö£¬Ä¿µÄÊǸæËß¿ª·¢ÕßÈçºÎÀûÓÃÔÆÆ½Ì¨ÌṩµÄ±ãÀûÀ´¿ª·¢¸ü¾ß¿É¿¿ÐÔºÍÀ©Õ¹ÐÔ¡¢¸ü¼ÓÒ×ÓÚά»¤µÄÔÆÔÉúÓ¦Ó᣾ßÌåÈçÏ£º
»ù×¼´úÂë
ÏÔʽÉùÃ÷ÒÀÀµ¹ØÏµ
ÔÚ»·¾³Öд洢ÅäÖÃ
°Ñºó¶Ë·þÎñµ±×÷¸½¼Ó×ÊÔ´
Ñϸñ·ÖÀë¹¹½¨¡¢·¢²¼ºÍÔËÐÐ
ÎÞ״̬½ø³Ì
ͨ¹ý¶Ë¿Ú°ó¶¨Ìṩ·þÎñ
ͨ¹ý½ø³ÌÄ£ÐͽøÐÐÀ©Õ¹
¿ìËÙÆô¶¯ºÍÓÅÑÅÖÕÖ¹
¿ª·¢»·¾³ÓëÏßÉÏ»·¾³µÈ¼Û
ÈÕÖ¾×÷ΪʼþÁ÷
¹ÜÀí½ø³Ì
ÁíÍ⻹Óв¹³äµÄÈýµã£º
APIÉùÃ÷¹ÜÀí
ÈÏÖ¤ºÍÊÚȨ
¼à¿ØÓë¸æ¾¯
¾àÀë12ÔÔòµÄÌá³öÒÑÓÐÎåÄê¶à£¬12ÔÔòµÄÓÐЩϸ½Ú¿ÉÄÜÒѾ²»ÄÇô¸úµÃÉÏʱ´ú£¬Ò²ÓÐÈËÅúÆÀ12ÔÔòµÄÌá³ö´ÓÒ»¿ªÊ¼¾ÍÓйýÓÚÒÀÀµHeroku×ÔÉíÌØÐÔµÄÇãÏò¡£²»¹ý²»¹ÜÔõô˵£¬12ÔÔòÒÀ¾ÉÊÇÒµ½ç×îΪϵͳµÄÔÆÔÉúÓ¦Óÿª·¢Ö¸ÄÏ¡£
2. ÈÝÆ÷»¯·â×°
×î½ü¼¸ÄêDockerÈÝÆ÷»¯¼¼ÊõºÜ»ð£¬¾³£ÔÚ¸÷ÖÖ³¡ºÏÄܹ»Ìýµ½¹ØÓÚDockerµÄ·ÖÏí¡£DockerÈÿª·¢¹¤³Ìʦ¿ÉÒÔ½«ËûÃǵÄÓ¦ÓúÍÒÀÀµ·â×°µ½Ò»¸ö¿ÉÒÆÖ²µÄÈÝÆ÷ÖС£Docker±³ºóµÄÏë·¨ÊÇ´´½¨Èí¼þ³ÌÐò¿ÉÒÆÖ²µÄÇáÁ¿ÈÝÆ÷£¬ÈÃÆä¿ÉÒÔÔÚÈκΰ²×°ÁËDockerµÄ»úÆ÷ÉÏÔËÐУ¬¶ø²»ÓùØÐĵײã²Ù×÷ϵͳ¡£
Docker¿ÉÒÔ½â¾öÐéÄâ»úÄܹ»½â¾öµÄÎÊÌ⣬ͬʱҲÄܹ»½â¾öÐéÄâ»úÓÉÓÚ×ÊÔ´ÒªÇó¹ý¸ß¶øÎÞ·¨½â¾öµÄÎÊÌâ¡£ÆäÓÅÊÆ°üÀ¨£º
¸ôÀëÓ¦ÓÃÒÀÀµ
´´½¨Ó¦ÓþµÏñ²¢½øÐи´ÖÆ
´´½¨ÈÝÒ×·Ö·¢µÄ¼´Æô¼´ÓõÄÓ¦ÓÃ
ÔÊÐíʵÀý¼òµ¥¡¢¿ìËÙµØÀ©Õ¹
²âÊÔÓ¦Óò¢ËæºóÏú»ÙËüÃÇ
×Ô¶¯»¯ÔËά¹¤¾ß¿ÉÒÔ½µµÍ»·¾³´î½¨µÄ¸´ÔÓ¶È£¬µ«ÈÔÈ»²»ÄÜ´Ó¸ù±¾ÉϽâ¾ö»·¾³µÄÎÊÌâ¡£ÔÚ¿´ËÆÎȶ¨¶ø³ÉÊìµÄ³¡¾°Ï£¬Ê¹ÓÃDockerµÄºÃ´¦Ô½À´Ô½¶à¡£
3. ·þÎñ±àÅÅ
±ÊÕß¿´µ½Jimmy Song¶ÔÔÆÔÉú¼Ü¹¹ÖÐÔËÓ÷þÎñ±àÅŵÄ×ܽáÊÇ£º
Kubernetes¡ª¡ªÈÃÈÝÆ÷Ó¦ÓýøÈë´ó¹æÄ£¹¤ÒµÉú²ú¡£
Õâ¸ö×ܽáȷʵºÜÌùÇС£±àÅŵ÷¶ÈµÄ¿ªÔ´×é¼þ»¹ÓУºKubernetes¡¢MesosºÍDocker Swarm¡£
KubernetesÊÇĿǰÊÀ½çÉϹØ×¢¶È×î¸ßµÄ¿ªÔ´ÏîÄ¿£¬ËüÊÇÒ»¸ö³öÉ«µÄÈÝÆ÷±àÅÅϵͳ¡£Kubernetes³öÉíÓÚ»¥ÁªÍøÐÐÒµµÄ¾ÞÍ·Google¹«Ë¾£¬Ëü½è¼øÁËÓÉÉϰÙλ¹¤³Ìʦ»¨·ÑÊ®¶àÄêʱ¼ä´òÔìBorgϵͳµÄÀíÄͨ¹ý¼«Æä¼òÒ׵ݲװ£¬ÒÔ¼°Áé»îµÄÍøÂç²ã¶Ô½Ó·½Ê½£¬ÌṩһվʽµÄ·þÎñ¡£
MesosÔò¸üÉÆÓÚ¹¹½¨Ò»¸ö¿É¿¿µÄƽ̨£¬ÓÃÒÔÔËÐжàÈÎÎñ¹Ø¼ü¹¤×÷¸ºÔØ£¬°üÀ¨DockerÈÝÆ÷¡¢ÒÅÁôÓ¦ÓóÌÐò£¨ÀýÈçJava£©ºÍ·Ö²¼Ê½Êý¾Ý·þÎñ£¨ÀýÈçSpark¡¢Kafka¡¢Cassandra¡¢Elastic£©¡£Mesos²ÉÓÃÁ½¼¶µ÷¶ÈµÄ¼Ü¹¹£¬¿ª·¢ÈËÔ±¿ÉÒԺܷ½±ãµÄ½áºÏ¹«Ë¾ÒµÎñ³¡¾°×Ô¶¨ÖÆMesosFramework¡£
ËûÃÇÎªÔÆÔÉúÓ¦ÓÃÌṩµÄÇ¿ÓÐÁ¦µÄ±àÅź͵÷¶ÈÄÜÁ¦£¬ËüÃÇÊÇÔÆÆ½Ì¨Éϵķֲ¼Ê½²Ù×÷ϵͳ¡£ÔÚµ¥»úÉÏÔËÐÐÈÝÆ÷£¬ÎÞ·¨·¢»ÓËüµÄ×î´óЧÄÜ£¬Ö»ÓÐÐγɼ¯Èº£¬²ÅÄÜ×î´ó³Ì¶È·¢»ÓÈÝÆ÷µÄÁ¼ºÃ¸ôÀë¡¢×ÊÔ´·ÖÅäÓë±àÅŹÜÀíµÄÓÅÊÆ£¬¶ø¶ÔÓÚÈÝÆ÷µÄ±àÅŹÜÀí£¬Swarm¡¢MesosºÍKubernetesµÄ´óÕ½ÒѾ»ù±¾Ðû¸æ½áÊø£¬Kubernetes³ÉΪÁËÎÞ¿ÉÕùÒéµÄÓ®¼Ò¡£
4. ΢·þÎñ¼Ü¹¹
´«Í³µÄWeb¿ª·¢·½Ê½£¬Ò»°ã±»³ÆÎªµ¥Ìå¼Ü¹¹£¨Monolithic£©ËùÓеŦÄÜ´ò°üÔÚÒ»¸öWAR°üÀ»ù±¾Ã»ÓÐÍⲿÒÀÀµ£¨³ýÁËÈÝÆ÷£©£¬²¿ÊðÔÚÒ»¸öJEEÈÝÆ÷£¨Tomcat£¬JBoss£¬WebLogic£©À°üº¬ÁËDO/DAO£¬Service£¬UIµÈËùÓÐÂß¼¡£Æä¼Ü¹¹ÈçÏÂͼËùʾ¡£

´«Í³µÄµ¥Ìå¼Ü¹¹
µ¥Ìå¼Ü¹¹½øÐÐÑÝ»¯Éý¼¶Ö®ºó£¬¹ý¶Éµ½SOA¼Ü¹¹£¬¼´ÃæÏò·þÎñ¼Ü¹¹¡£½ü¼¸Äê΢·þÎñ¼Ü¹¹£¨Micro-Service Archeticture£©ÊÇ×îÁ÷Ðеļܹ¹·ç¸ñ£¬Ö¼ÔÚͨ¹ý½«¹¦ÄÜÄ£¿é·Ö½âµ½¸÷¸ö¶ÀÁ¢µÄ×ÓϵͳÖÐÒÔʵÏÖ½âñËü²¢Ã»ÓÐÒ»³É²»±äµÄ¹æ¶¨£¬¶øÊÇÐèÒª¸ù¾ÝÒµÎñÀ´×öÉè¼Æ¡£Î¢·þÎñ¼Ü¹¹ÊǶÔSOAµÄ´«³Ð£¬ÊÇSOAµÄ¾ßÌåʵ¼ù·½·¨¡£Î¢·þÎñ¼Ü¹¹ÖУ¬Ã¿¸ö΢·þÎñÄ£¿éÖ»ÊǶԼòµ¥¡¢¶ÀÁ¢¡¢Ã÷È·µÄÈÎÎñ½øÐд¦Àí£¬Í¨¹ýREST API·µ»Ø´¦Àí½á¹û¸øÍⲿ¡£ÔÚ΢·þÎñÍÆ¹ãʵ¼ù½Ç¶ÈÀ´¿´£¬Î¢·þÎñ½«Õû¸öϵͳ½øÐвð·Ö£¬²ð·Ö³É¸üСµÄÁ£¶È£¬±£³ÖÕâЩ·þÎñ¶ÀÁ¢ÔËÐУ¬Ó¦ÓÃÈÝÆ÷»¯¼¼Êõ½«Î¢·þÎñ¶ÀÁ¢ÔËÐÐÔÚÈÝÆ÷ÖС£¹ýÈ¥Éè¼Æ¼Ü¹¹Ê±£¬ÊÇÔÚÄÚ´æÖÐÒÔ²ÎÊý»ò¶ÔÏóµÄ·½Ê½ÊµÏÖÁ£¶Èϸ»¯¡£Î¢·þÎñʹÓø÷¸ö×Ó·þÎñ¿ØÖÆÄ£¿éµÄ˼Ïë´úÌæ×ÜÏß¡£²»Í¬µÄÒµÎñÒªÇ󣬷þÎñ¿ØÖÆÄ£¿éÖÁÉÙ°üº¬·þÎñµÄ·¢²¼¡¢×¢²á¡¢Â·ÓÉ¡¢´úÀí¹¦ÄÜ¡£
ÈÝÆ÷»¯µÄ³öÏÖ£¬Ò»¶¨³Ì¶ÈÉÏ´ø¶¯ÁË΢·þÎñ¼Ü¹¹¡£¼Ü¹¹ÑÝ»¯´Óµ¥ÌåʽӦÓõ½·Ö²¼Ê½£¬ÔÙ´Ó·Ö²¼Ê½¼Ü¹¹µ½ÔÆÔÉú¼Ü¹¹£¬Î¢·þÎñÔÚÆäÖÐÓÐ×Ų»¿É»òȱµÄ½ÇÉ«¡£Î¢·þÎñ´ø¸øÎÒÃǺܶ࿪·¢ºÍ²¿ÊðÉϵÄÁé»îÐԺͼ¼Êõ¶àÑùÐÔ£¬µ«ÊÇÒ²Ôö¼ÓÁË·þÎñµ÷ÓõĿªÏú¡¢·Ö²¼Ê½ÏµÊÂÎñ¡¢µ÷ÊÔÓë·þÎñÖÎÀí·½ÃæµÄÄÑÌâ¡£

Spring CloudÕûÌå¼Ü¹¹Í¼
´ÓÉÏͼSpring Cloud×é¼þµÄ¼Ü¹¹¿ÉÒÔ¿´³öÔÚ΢·þÎñ¼Ü¹¹ÖÐËù±ØÐëµÄ×é¼þ£¬°üÀ¨£º·þÎñ·¢ÏÖÓë×¢²á¡¢ÈÛ¶Ï»úÖÆ¡¢Â·ÓÉ¡¢È«¾ÖËø¡¢ÖÐÐÄÅäÖùÜÀí¡¢¿ØÖÆ×ÜÏß¡¢¾ö²ß¾ºÑ¡¡¢·Ö²¼Ê½»á»°ºÍ¼¯Èº×´Ì¬¹ÜÀíµÈ»ù´¡×é¼þ¡£

Spring Cloud VS Kubernetes
Spring CloudºÍKubernetesÓкܴóµÄ²»Í¬£¬Spring CloudºÍKubernetes´¦ÀíÁ˲»Í¬·¶Î§µÄ΢·þÎñ¼Ü¹¹¼¼Êõµã£¬¶øÇÒÊÇÓÃÁ˲»Í¬µÄ·½·¨¡£Spring Cloud·½·¨ÊÇÊÔͼ½â¾öÔÚJVMÖеÄ΢·þÎñ¼Ü¹¹Òªµã£¬¶øKubernetes·½·¨ÊÇÊÔͼÈÃÎÊÌâÏûʧ£¬Îª¿ª·¢ÕßÔÚÆ½Ì¨²ã½â¾ö¡£Spring CloudÔÚJVMÖзdz£Ç¿´ó£¬Kubernetes¹ÜÀíÄÇЩJVMºÜÇ¿´ó¡£¿´ÆðÀ´¸÷È¡Ëù³¤£¬³ä·ÖÀûÓÃÕâÁ½ÕßµÄÓÅÊÆÊÇ×ÔÈ»¶øÈ»µÄÇ÷ÊÆÁË¡£
|