±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ΢ÐźÅQunarTL£¬½éÉÜÒ»ÏÂ
OPS ÍŶÓÀûÓà Mesos ×ÊÔ´¹ÜÀíÆ½Ì¨ºÍ Docker ÈÝÆ÷¼¼ÊõËù¹¹½¨µÄ Elasticsearch
ÈÝÆ÷»¯µÄ˽ÓÐÔÆ¡£ |
|
±¾´Î·ÖÏíÖ÷Òª½éÉÜһϠOPS ÍŶÓÀûÓà Mesos ×ÊÔ´¹ÜÀíÆ½Ì¨ºÍ Docker ÈÝÆ÷¼¼ÊõËù¹¹½¨µÄ Elasticsearch
ÈÝÆ÷»¯µÄ˽ÓÐÔÆ¡£
Ŀ¼
Ö÷ÒªÓÐËĸö²¿·Ö£¬ µÚÒ»¸ö²¿·ÖÖ÷Òª½éÉÜÒ»¸öÎÒÃǵ±³õ×öÕâ¸öƽ̨µÄ±³¾°£¬ºÍÏÖÔڵĹæÄ£ºÍÏÖ×´£¬µÚ¶þ¸ö²¿·ÖÖ÷Òª¼òµ¥½éÉÜÒ»ÏÂÕû¸öƽ̨µÄ¼¼ÊõʵÏÖ£¬×îºó·ÖÏíÊdzÖÐø¹¹½¨·½ÃæµÄ¹¤×÷ÒÔ¼°¼à¿ØºÍ±¨¾¯Ïà¹Ø·½ÃæµÄ¹¤×÷¡£
1±³¾°ÓëÏÖ×´
2015Äêµ×µ½2016Äê³õµÄÕâ¶Îʱ¼ä£¬¹«Ë¾ÒµÎñÏß¶ÔesµÄÐèÇóÁ¿±©Ôö£¬´«Í³µÄʹÓà ES µÄ·½Ê½Öð½¥ÏÔÏÖ³öһЩ±×¶Ë£¬Ö÷ÒªÓÐһϼ¸µãµÄÄÚÈÝ£º

Õë¶ÔÉÏÊöËùÁеã±×¶Ë£¬ÎÒÃÇ×î³õÖÆ¶¨µÄ¼¸µãÉè¼ÆÄ¿±êÈçÏ£º

×îÖÕ£¬ÎªÁË´ïµ½Õ⼸µãÄ¿±ê£¬ÎÒÃǾÍÉè¼ÆºÍ¿ª·¢ÁËÕâ¸öƽ̨¡£

×Ô´Ó16Äê3¡¢4Ô·ÝÕâ¸öƽ̨ÉÏÏßÒÔÀ´£¬¹¤×÷ЧÂʵõ½Á˺ܴó¸Ä½ø£¬Ö÷ÒªÓÐÒÔÏÂÈý¸ö·½Ã棺

ÏÂÃæÕâ¸öͼÊÇͳ¼ÆµÄ¹ýÈ¥´«Í³µÄʹÓ÷½Ê½ÓëÏÖÔ򵀮½Ì¨µÄ·½Ê½Ê¹Óà ES Ëù´øÀ´µÄ×ÊÔ´ÀûÓÃÂʵÄÌáÉý£º

Õâ¸öÊÇÎÒÃÇĿǰµÄƽ̨¹æÄ££º


Õû¸öƽ̨֧³ÖÁ˺ܶàÖØÒªÏµÍ³ºó¶ËµÄÊý¾Ý´æ´¢£¬±ÈÈ磺

2¼¼ÊõʵÏÖ
¸Õ¿ªÊ¼×öÕâ¸öƽ̨µÄʱºò£¬ÎÒÃÇÖ÷Òªµ÷Ñвο¼ÁËÒÔÏÂÈý¸öϵͳºÍƽ̨£º

µÚÒ»¸ö Elastic Cloud ÊÇ Elastic ¹Ù·½ÌṩµÄÒ»¸ö¹«ÓÐÔÆµÄ·þÎñ£¬ËûÄܹ»Ìṩ¿ìËÙ¼¯Èº¹¹½¨µÄÄÜÁ¦£¬Ò²¾ß±¸×ÔÖú»¯ÅäÖ㬿ìËÙÀ©ÈÝÄÜÁ¦£¬±È½Ï·ûºÏÎÒÃǵÄÔ¤ÆÚ¹¦ÄÜ¡£µÚ¶þ¸ö
Amazon Elasticsearch Service ͬÑùÒ²ÊÇÒ»¸ö¹«ÓÐÔÆ·þÎñ£¬Äܹ»Ìṩ¿ìËٵļ¯Èº¹¹½¨ÄÜÁ¦£¬×ÔÖú»¯ÅäÖõȵȣ¬Í¬ÑùҲΪÎÒÃÇÌṩÁ˼«´óµÄ²Î¿¼¼ÛÖµ¡£µÚÈý¸öÊÇÒ»¸ö¿ªÔ´µÄ»ùÓÚ
Mesos µÄÒ»¸öµ÷¶È¿ò¼Ü£¬ËûµÄÉè¼ÆÊÇÒ»¸ö Framework ´ú±íÒ»¸ö ES ¼¯Èº£¬Framework
µÄÿһ¸ö Executor ´ú±íÒ»¸ö ES ½Úµã£¬µ«ÊÇÒ²ÓÐÐí¶à²»Ö§³Ö£¬°üÀ¨²»Ö§³Ö¶àÖÖ½ÇÉ«½ÚµãµÄÅäÖ㬲»Ö§³Ö×ÔÖú»¯µÄÅäÖ㬲»Ö§³Ö²å¼þµÄ°²×°£¬ÕâÓëÎÒÃǵÄÉè¼Æ³õÖÔÊÇÏàÎ¥±³µÄ¡£½áºÏÁËÉÏÊöÈý¸öÀý×Ó£¬ÎÒÃÇÉè¼ÆÖ¸¶¨ÁËÎÒÃÇ×Ô¼ºµÄ¼¼Êõ·½°¸¡£

Õû¸öƽ̨»ùÓÚ Mesos, ËùÓÐ×é¼þÒÔ Docker ÈÝÆ÷µÄÐÎʽ±» Marathon µ÷¶ÈÅÜÆðÀ´£¬Õâ¸öÊÇÒ»¸öÕûÌåµÄ½á¹¹Í¼£º

ÎÒÃǵײãËùÓеĻúÆ÷¶¼ÊDZ»Í¬Ò»¸ö Mesos À´½øÐÐͳһ¹ÜÀíµÄ£¬Mesos Ö®ÉÏÔËÐÐ×Å Marathon
µ÷¶È¿ò¼Ü£¬ÖµµÃ×¢ÒâµÄÊÇ£¬ÎÒÃÇÓÐÁ½²ãµÄ Marathon, µ×²ã±È½Ï´óµÄ Marathon ÎÒÃdzÆÖ®Îª
Root Marathon, Éϲã°üº¬ÔÚ Root Marathon Ö®ÖеÄСµÄ Marathon
ÎÒÃdzÆÖ®Îª Sub Marathon, Root Marathon Ö»¸ºÔðµ÷¶ÈÄÚ²ãµÄSub Marathon,
ÄÚ´æµÄ Sub Marathon ²ÅÊÇÕæÕý³ÐÔØ×ÅÎÒÃÇÿһ¸ö Es Saas ·þÎñ¡£ÎÒÃÇËùÓеÄ×é¼þ¶¼ÊÇÅÜÔÚ
Docker ÈÝÆ÷ÀïÃæµÄ¡£

ÄÇôÎÒÃÇÆ½Ì¨µÄ×ÊÔ´ÊÇÔõô·ÖÅäµÄÄØ£¬Õâ¸öͼÊÇÒ»¸ö·ÖÅäµÄ½á¹¹Í¼£¬¿ÉÒÔ¿´µ½×ÊÔ´Êǰ´ÕÕ Marathon ·Ö²ãµÄÕâÖÖ·½Ê½À´·ÖÅäµÄ£¬Root
Marathon ÓµÓÐϵͳËùÓеÄ×ÊÔ´£¬Sub Marathon ÊÇ×ÊÔ´·ÖÅäµÄ×îСµ¥Î»£¬Ã¿Ò»¸ö¶¼ÓÐËü¼È¶¨µÄ×ÊÔ´£¬×ÊÔ´½á¹¹Èç´Ë£¬µ±È»¼¯Èº¼äµÄÂß¼¸ôÀëÒ²ÊÇÈç´Ë¡£

Sub Marathon ²»½öÓÐËû×Ô¼ºµÄ×ÊÔ´£¬¶øÇÒÎÒÃǽ«ËüºÍÒµÎñÏß×öÁËÒ»Ò»Ó³É䣬Ҳ¾ÍÊÇ˵һ¸öSub
Marathon ΨһµÄ´ú±íÒ»¸öÒµÎñÏߣ¬Í¬Ê±ËüÒ²ÊdzÐÔØÁËÒµÎñÏßµÄËùÓм¯Èº¡£
ÏÂÃæÕâ¸öͼչʾµÄÊÇ Sub Marathon ÄÚ²¿Ï¸½ÚµÄ½á¹¹Í¼£º
Ò»¸öSub Marathon ¿ÉÒÔ³ÐÔØ¶à¸ö ES ¼¯Èº£¬Ã¿Ò»¸ö ES ¼¯ÈºÓÐ4¸öÖØÒªµÄ×é¼þ£¬·Ö±ðÊÇ:
bamboo, es-master, es-datanode, es2graphite, Õâ4¸ö×é¼þÊÇ×é³É
ES ¼¯ÈºµÄ»ù´¡£¬ËûÃÇ·Ö±ð¶ÔÓ¦×ÅÒ»¸ö Marathon µÄ APP£¬APP µÄ task ÊÇÕæÕýµÄ
ES ½Úµã¡£ ÏÂÃæÕâ¸öͼչʾÁËÉÏÊö4ÖÖ»ù´¡×é¼þÖ®¼äµÄ¹ØÏµ£º

ĬÈ쵀 ES ÓÐ3¸ö master ½ÚµãºÍ3¸ö datanode ½Úµã£¬ËûÃÇ·ÖΪÁ½¸ö Marathon
APP ¶ÀÁ¢ÔËÐУ¬ËûÃÇÖ®¼ä»¥ÏàµÄ·þÎñ·¢ÏÖÊÇÓÉ bamboo + haproxy Õâ¸ö×é¼þÀ´Íê³ÉµÄ£¬ÕâÑùËûÃDzÅÄÜÁ¬³ÉÒ»¸ö¼¯Èº£¬es2graphite
¸ºÔðÊÕ¼¯ ES ¼¯ÈºÖ¸±ê£¬ËüµÄÔÀí¾ÍÊǵ÷Óà ES ÄÚ²¿µÄ½Ó¿Ú»ñȡָ±ê£¬È»ºó¾ÛºÏ´òµ½ºó¶ËµÄ graphite
ÉÏ·ÖÎöչʾ¡£pyadvisor Õâ¸ö×é¼þ²»ÊÇ´æÔÚÿһ¸ö¼¯ÈºÖе쬶øÊÇ run ÔÚÿһ¸ö mesos
slave ÉϵÄÒ»¸ö·þÎñ£¬ËûÃǸºÔðÊÕ¼¯ÈÝÆ÷ά¶ÈµÄÖ¸±ê£¬¾ÛºÏÖ®ºó´òµ½ºó¶Ë graphite ÉÏʵʱչʾ£¬ÏÂÃæ¾ÍÊÇÒ»¸ö¾ßÌåµÄ
slave »úÆ÷ÉϵĿìÕÕ£º

ÿ¸ö»úÆ÷ÉÏ¿ÉÒÔÅܶà¸ö ES ½Úµã£¬²»Í¬µÄ ES ½ÚµãÖ®¼äʹÓö˿ںÅÀ´Çø±ð¡£
ÔÚÿһ¸ö ES ¼¯ÈºÖУ¬Æð×ÅÖÁ¹ØÖØÒª×÷ÓõľÍÊÇ·þÎñ·¢ÏÖ£¬¶øÕâ¸ö·þÎñ·¢ÏÖÊÇÓÉ bamboo + haproxy
Õâ¸ö×é¼þÀ´Íê³ÉµÄ¡£

Bamboo ÊÇÒ»¸ö¿ªÔ´µÄÅÜÔÚ Marathon Ö®ÉÏ·þÎñ·¢ÏֵŤ¾ß£¬ËüµÄÔÀí¾ÍÊÇ×¢²áÁË Marathon
µÄ callback ½Ó¿Ú½ÓÊÜ Marathon ʼþÏûϢʱʱ½âÎö²¢ reload haproxy¡£
ES ¼¯ÈºÄÚ²¿·þÎñ·¢ÏÖµÄÅäÖÃÆäʵֻÊÇÓÃÁËÒ»¾äͼÖеÄÅäÖÃÏÕâ¸öÅäÖÃÏîÊÇ ES µÄµ¥²¥µØÖ·£¬ÊǸæËß
ES ½ÚµãÈ¥Äĸö»úÆ÷µÄÄĸö¶Ë¿ÚÕÒ master µÄ£¬ÎÒÃÇÖ»ÊǼòµ¥µÄ°ÑËûÌæ»»³ÉÁË Haproxy µÄ
host ºÍ port¡£ES ½ÚµãÔÚÆðÀ´µÄʱºò£¬bamboo ¼ì²âµ½Æô¶¯Ê¼þ£¬Ë漴ͨ¹ý Marathon
api »ñÈ¡µ½ÕæÊµµÄ Master µÄ host ºÍ port, È»ºó Reload Haproxy
½¨Á¢¶Ë¿Úת·¢¹ØÏµ£¬Í¬Ê±£¬ES Datanode ½ÚµãÔÚÆðÀ´µÄʱºò£¬¾Í»áͨ¹ý Haproxy µÄǰ¶Ë
host ºÍ port ¾×ª·¢µ½ÕæÊµµÄ Master µØÖ·ÉÏ£¬ÓÉ´ËʵÏÖÁË·þÎñ·¢ÏֵĹý³Ì¡£Èý¸ö Master
Ö®¼äÒ²ÊÇͬÑùµÄµÀÀí£¬ËûÃÇͨ¹ý Haproxy ÔÙ¡°»ØÁ¬¡±×Ô¼º¡£
ÔÚÊý¾Ý³Ö¾Ã»¯ºÍ¿É¿¿ÐÔ·½ÃæÎÒÃÇ×öÁËһϼ¸¸ö·½ÃæµÄ¹¤×÷£º

3ÅäÖúͲ¿Êð
½ÓÏÂÀ´½éÉÜÒ»ÏÂÎÒÃÇ×öµÄ×ÔÖúÅäÖúͳÖÐø¹¹½¨·½ÃæµÄ¹¤×÷£¬ÓйØËùÓÐµÄ ES µÄÅäÖÃÎÒÃǶ¼´æÔÚÁË gitlab
ÖУ¬°üÀ¨Ò»¸öÌØÊâµÄ pre-run Îļþ£¬Õâ¸öÎļþ¶¨ÒåÁËÔÚÎÒÃÇÆô¶¯ ES ½ÚµãʵÀý֮ǰÎÒÃǸÃ×öЩʲô£¬Õâ¸öÎļþÊÇ¿ÉÒÔÐ޸ĵģ¬¿ÉÒÔÓÉÒµÎñÏßͬѧ×Ô¶¨Ò塣ͬʱһЩÆäËûµÄÅäÖÃÎļþÒ²ÊÇ´æÔÚ
gitlab Éϵģ¬ÐÞ¸ÄÖ®ºó£¬Ö»ÐèÒªÖØÆôÈÝÆ÷¼´¿ÉÉúЧ¡£

ͬʱÎÒÃÇÔÚ×ÔÖú¹ÜÀí·½ÃæÒ²×öÁËһЩ¹¤×÷£¬ÏÂͼÊÇÎÒÃÇ×Ô¼º×öµÄÒ»¸ö web ϵͳ£¬ ÓÃÀ´Õ¹Ê¾ÏêϸµÄ¼¯ÈºÐÅÏ¢ºÍ×öһЩ×ÔÖú»¯ÅäÖ÷½ÃæµÄ¹¤×÷¡£



ÔÚм¯Èº½»¸¶µÄʱºò£¬ÎÒÃÇÒ²ÊÇÖ±½Ó½»¸¶Õâ¸ö web Ò³Ãæ£¬ÒµÎñÏßͬѧ¿ÉÒԺܷ½±ãµÄ²éµ½ÐÅÏ¢£¬Ò²¿ÉÒԺܷ½±ãµÄ×öһЩ²Ù×÷¡£Ëµµ½½»¸¶£¬ÎÒÃÇÔÚ³ÖÐø¹¹½¨·½ÃæÒ²×öÁËһЩ¹¤×÷¡£

Õâ¸öÊÇÐ嵀 ES ¼¯Èº´ÓÅäÖõ½²¿Êðµ½ÉÏÏßµÄÕû¸ö¹ý³Ì£¬¶¼ÊÇ»ùÓÚ jenkins À´×öµÄ£¬Ò»¹²ÓÐÈý²½£¬µÚÒ»²½ÊÇÅäÖõijõʼ»¯£¬ÕâÒ»²½ÖлáÉú³É²¿Êð¹ý³ÌÖÐËùÓеÄÅäÖÃÎļþ£¬Éú³ÉÖ®ºóÖ±½Ó´æ´¢µ½
gitlab ÖУ¬µ½Á˵ڶþ²½¼¯Èº²¿ÊðµÄʱºò£¬ÎÒÃǻᰴÕÕ˳Ðò¶ÁÈ¡ÅäÖã¬Ò»Ò»µÄ½«¸÷¸ö×é¼þÌá½»µ½ Marathon£¬×îºóÒ»²½¾ÍÊÇ
Marathon µ÷¶ÈÔËÐУ¬µÈÈ«²¿Íê³ÉÖ®ºó£¬ÎÒÃÇÒ»¸öÍêÕûµÄ ES ¼¯ÈºÒ²¾Í work ÁË¡£
4¼à¿ØÓ뱨¾¯
×îºóÒ»²¿·Ö˵һÏÂ¼à¿ØºÍ±¨¾¯£¬¼à¿ØÖ¸±êµÄÊÕ¼¯£¬Ö÷ÒªÓÐÁ½¸ö·½Ê½£º

ÏÂÃæÊÇÖ¸±ê¾ÛºÏÖ®ºóµÄÒ»¸öʾÀý£º


¹ØÓÚ±¨¾¯£¬Ö÷ÒªÓÐһϼ¸¸ö·½Ã棺

×îºó£¬ÓÃÒ»ÕÅͼÀ´×ܽáÒ»ÏÂËùÓеÄÄÚÈÝ£º

´Ó ES µÄ½¨Á¢µ½Ïú»Ù£¬ÎÒÃÇ×öµ½ÁË ES ¼¯ÈºÕû¸öÉúÃüÖÜÆÚµÄ¹ÜÀí£¬½¨Á¢³õÎÒÃÇ»á×öÈÝÁ¿Ô¤¹ÀºÍ²ÎÊýµÄÅäÖ㬵ȵ½²¿ÊðµÄʱºò£¬ÎÒÃÇÓгÖÐø¹¹½¨²¿ÊðµÄ¹¤¾ßÀ´×ö£¬·þÎñÉÏÏßÖ®ºóÎÒÃÇÌṩÁË¿ÉÒÔ×ÔÖúÅäÖã¬×ÔÖú²å¼þµÄ
web ¹¤¾ß£¬¼«´óµÄ·½±ãÁË¿ª·¢ÈËÔ±£¬Í¬Ê±Ò²ÓÐÍ걸µÄ¼à¿ØºÍ±¨¾¯¡£¼¯ÈºÏÂÏßµÄʱºò£¬Í³Ò»µÄ»ØÊÕ×ÊÔ´£¬×öһЩÇåÀíÍØ²¹µÄ¹¤×÷¡£ |