ããã«ã¡ã¯ãç§ã®ååã¯ãšãã²ããŒã§ãã ç§ã¯ Yandex.Market æ€çŽ¢ã€ã³ãã©ã¹ãã©ã¯ãã£ã§åããŠããŸãã ç§ã¯ Habr ã³ãã¥ããã£ã«åžå Žã®ã€ã³ããŒãããã³ã«ã€ããŠäŒããããšæã£ãŠããŸã - ãããŠäŒãããããšããããããããŸãã ãŸãæåã«ãããŒã±ããæ€çŽ¢ã®ä»çµã¿ãããã»ã¹ãã¢ãŒããã¯ãã£ã«ã€ããŠèª¬æããŸãã ç·æ¥äºæ ã«ã©ã察åŠããã: 100 ã€ã®ãµãŒããŒãããŠã³ãããã©ããªãã§ãããã? ãã®ãããªãµãŒããŒã XNUMX å°ããå Žåã¯ã©ããªãã§ãããã?
ãŸããäžåºŠã«å€æ°ã®ãµãŒããŒã«æ°ããæ©èœãå®è£ ããæ¹æ³ã«ã€ããŠãåŠç¿ããŸãã ãããŠããŠãŒã¶ãŒã«è¿·æããããã«ãè€éãªãµãŒãã¹ãæ¬çªç°å¢ã§çŽæ¥ãã¹ãããæ¹æ³ã«ã€ããŠã説æããŸãã äžè¬ã«ã誰ãã楜ããæéãéãããããã«ããŒã±ããæ€çŽ¢ãã©ã®ããã«æ©èœãããã
ç§ãã¡ã«ã€ããŠå°ã: ç§ãã¡ã解決ããåé¡
ããã¹ããå ¥åãããããã©ã¡ãŒã¿ã§è£œåãæ€çŽ¢ããããããŸããŸãªåºèã§äŸ¡æ Œãæ¯èŒããããããšããã¹ãŠã®ãªã¯ãšã¹ããæ€çŽ¢ãµãŒãã¹ã«éä¿¡ãããŸãã æ€çŽ¢ã¯åžå Žæ倧ã®ãµãŒãã¹ã§ãã
åœç€Ÿã¯ãmarket.yandex.ruãberu.ruãSupercheck ãµãŒãã¹ãYandex.Advisorãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãªã©ã®ãµã€ãããã®ãã¹ãŠã®æ€çŽ¢ãªã¯ãšã¹ããåŠçããŸãã yandex.ru ã®æ€çŽ¢çµæã«ã¯è£œåãªãã¡ãŒãå«ãŸããŸãã
æ€çŽ¢ãµãŒãã¹ãšã¯ãæ€çŽ¢èªäœã ãã§ãªããåžå Žã«ãããã¹ãŠã®ãªãã¡ãŒãå«ãããŒã¿ããŒã¹ãæå³ããŸãã ãã®èŠæš¡ã¯æ¬¡ã®ãšããã§ããXNUMX æ¥ããã XNUMX å件ãè¶
ããæ€çŽ¢ãªã¯ãšã¹ããåŠçãããŸãã ãããŠããã¹ãŠãäžæãããããšãªãè¿
éã«åäœããåžžã«æãŸããçµæãåŸãããå¿
èŠããããŸãã
å 容: åžå Žã¢ãŒããã¯ãã£
ããŒã±ããã®çŸåšã®ã¢ãŒããã¯ãã£ã«ã€ããŠç°¡åã«èª¬æããŸãã ããã¯æ¬¡ã®å³ã§å€§ãŸãã«èª¬æã§ããŸãã
ææºåºèãæ¥åºãããšããŸãã 圌ã¯ãç§ãããã¡ãã売ããããšèšã£ãŠããŸããããã¯ãããŒããŒé³Žããã®éªæªãªç«ã§ãã ãããŠããXNUMXå¹ã鳎ã声ãåºããã«æã£ãŠããç«ã ãããŠãã ã®ç«ã 次ã«ãåºèã¯ããŒã±ãããæ€çŽ¢ãããªãã¡ãŒãæºåããå¿
èŠããããŸãã ã¹ãã¢ã¯ãªãã¡ãŒãå«ãç¹å¥ãª XML ãçæããã¢ãã£ãªãšã€ã ã€ã³ã¿ãŒãã§ã€ã¹ãéããŠãã® XML ãžã®ãã¹ãäŒéããŸãã 次ã«ãã€ã³ãã¯ãµãŒã¯ãã® XML ãå®æçã«ããŠã³ããŒããããšã©ãŒããã§ãã¯ããŠããã¹ãŠã®æ
å ±ã巚倧ãªããŒã¿ããŒã¹ã«ä¿åããŸãã
ãã®ãããªä¿åããã XML ã¯å€æ°ãããŸãã ãã®ããŒã¿ããŒã¹ããæ€çŽ¢ã€ã³ããã¯ã¹ãäœæãããŸãã ã€ã³ããã¯ã¹ã¯å éšåœ¢åŒã§ä¿åãããŸãã ã€ã³ããã¯ã¹ãäœæããåŸãã¬ã€ã¢ãŠã ãµãŒãã¹ã¯ãããæ€çŽ¢ãµãŒããŒã«ã¢ããããŒãããŸãã
ãã®çµæãããŒããŒé³ŽãããŠæã£ãç«ãããŒã¿ããŒã¹ã«è¡šç€ºããããã®ç«ã®ã€ã³ããã¯ã¹ããµãŒããŒã«è¡šç€ºãããŸãã
ç«ã®æ€çŽ¢æ¹æ³ã«ã€ããŠã¯ãæ€çŽ¢ã¢ãŒããã¯ãã£ã«é¢ããéšåã§èª¬æããŸãã
åžå Žæ€çŽ¢ã¢ãŒããã¯ãã£
ç§ãã¡ã¯ãã€ã¯ããµãŒãã¹ã®äžçã«äœãã§ããŸã: åä¿¡ãããã¹ãŠã®ãªã¯ãšã¹ã
ç°¡çŽ åããããªã¯ãšã¹ãåŠçã¹ããŒã
åãµãŒãã¹ã«ã¯çŽ æŽãããæ©èœããããŸããããã¯ãç¬èªã®ååãæã€ç¬èªã®ãã©ã³ãµãŒã§ãã
ãã©ã³ãµãŒã«ããããµãŒãã¹ç®¡çã®æè»æ§ãåäžããŸããããšãã°ãæŽæ°ã«å¿
èŠã«ãªãããšãå€ããµãŒããŒããªãã«ããããšãã§ããŸãã ãã©ã³ãµãŒã¯ãµãŒããŒãå©çšã§ããªãããšãèªèãããªã¯ãšã¹ããä»ã®ãµãŒããŒãŸãã¯ããŒã¿ã»ã³ã¿ãŒã«èªåçã«ãªãã€ã¬ã¯ãããŸãã ãµãŒããŒãè¿œå ãŸãã¯åé€ãããšãè² è·ã¯ãµãŒããŒéã§èªåçã«ååæ£ãããŸãã
ãã©ã³ãµãŒã®äžæã®ååã¯ããŒã¿ã»ã³ã¿ãŒã«äŸåããŸããã ãµãŒãã¹ A ããµãŒãã¹ B ã«ãªã¯ãšã¹ããéä¿¡ãããšãããã©ã«ãã§ãã©ã³ãµãŒ B ã¯ãªã¯ãšã¹ããçŸåšã®ããŒã¿ã»ã³ã¿ãŒã«ãªãã€ã¬ã¯ãããŸãã ãµãŒãã¹ãå©çšã§ããªãå ŽåããŸãã¯çŸåšã®ããŒã¿ ã»ã³ã¿ãŒã«ãµãŒãã¹ãååšããªãå Žåããªã¯ãšã¹ãã¯ä»ã®ããŒã¿ ã»ã³ã¿ãŒã«ãªãã€ã¬ã¯ããããŸãã
ãã¹ãŠã®ããŒã¿ã»ã³ã¿ãŒã«åäžã® FQDN ã䜿çšããããšã§ããµãŒãã¹ A ãå Žæããå®å šã«æœè±¡åã§ããŸãã ãµãŒãã¹ B ã«å¯Ÿãã圌ã®ãªã¯ãšã¹ãã¯åžžã«åŠçãããŸãã äŸå€ã¯ããµãŒãã¹ããã¹ãŠã®ããŒã¿ã»ã³ã¿ãŒã«ããå Žåã§ãã
ãããããã®ãã©ã³ãµãŒã§ãã¹ãŠããã©è²ã«ãªã£ãããã§ã¯ãããŸãããäžéã³ã³ããŒãã³ããè¿œå ãããŠããŸãã ãã©ã³ãµãŒãäžå®å®ã«ãªãå¯èœæ§ããããŸããããã®åé¡ã¯ãµãŒããŒãåé·åããããšã§è§£æ±ºãããŸãã ãµãŒãã¹ A ãšãµãŒãã¹ B ã®éã«ã¯è¿œå ã®é 延ããããŸãããã ããå®éã«ã¯ 1 ããªç§æªæºã§ãããã»ãšãã©ã®ãµãŒãã¹ã§ã¯ããã¯éèŠã§ã¯ãããŸããã
äºæãã¬äºæ ãžã®å¯ŸåŠ: æ€çŽ¢ãµãŒãã¹ã®ãã©ã³ã¹ãšå埩å
厩å£ãèµ·ãã£ããšæ³åããŠãã ããã鳎ãç«ãèŠã€ããå¿ èŠããããŸããããµãŒããŒãã¯ã©ãã·ã¥ããŸãã ãŸãã¯ãµãŒã㌠100 å°ã ã©ããã£ãŠæãåºãã®ãïŒ æ¬åœã«ç«ãªãã§ãŠãŒã¶ãŒãæŸã£ãŠããã€ãããªã®ã§ããããïŒ
æãããç¶æ³ã§ãããç§ãã¡ã¯ããã«åããæºåãã§ããŠããŸãã é çªã«ãäŒãããŠãããŸãã
æ€çŽ¢ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯è€æ°ã®ããŒã¿ ã»ã³ã¿ãŒã«ãããŸãã
èšèšæã«ã¯ãXNUMX ã€ã®ããŒã¿ã»ã³ã¿ãŒãåæ¢ããå¯èœæ§ãèæ
®ããŠããŸãã 人çã¯é©ãã«æºã¡ãŠããŸããããšãã°ãæåæ©ãå°äžã±ãŒãã«ãåæããããšããããŸãïŒããã§ããããã¯èµ·ãããŸããïŒã æ®ãã®ããŒã¿ã»ã³ã¿ãŒã®å®¹éã¯ãããŒã¯è² è·ã«èããã®ã«ååã§ããå¿
èŠããããŸãã
åäžã®ããŒã¿ã»ã³ã¿ãŒãèããŠã¿ãŸãããã åããŒã¿ã»ã³ã¿ãŒã«ã¯åããã©ã³ãµãŒæäœã¹ããŒã ããããŸãã
XNUMX ã€ã®ãã©ã³ãµãŒã¯å°ãªããšã XNUMX ã€ã®ç©çãµãŒããŒã§ãã ãã®åé·æ§ã¯ä¿¡é Œæ§ã確ä¿ããããã«èšããããŠããŸãã ãã©ã³ãµãŒã¯ HAProx äžã§å®è¡ãããŸãã
HAProx ãéžæããã®ã¯ããã®é«æ§èœããªãœãŒã¹èŠä»¶ã®äœããããã³å¹ åºãæ©èœã®ããã§ãã åœç€Ÿã®æ€çŽ¢ãœãããŠã§ã¢ã¯åãµãŒããŒå ã§å®è¡ãããŸãã
XNUMX ã€ã®ãµãŒããŒã«é害ãçºçããå¯èœæ§ã¯äœãã§ãã ããããå€æ°ã®ãµãŒããŒãããå Žåãå°ãªããšã XNUMX å°ãããŠã³ããå¯èœæ§ãé«ããªããŸãã
ãããçŸå®ã«èµ·ãã£ãŠããããšã§ãããµãŒããŒãã¯ã©ãã·ã¥ããŸãã ãããã£ãŠããã¹ãŠã®ãµãŒããŒã®ç¶æ ãåžžã«ç£èŠããå¿ èŠããããŸãã ãµãŒããŒãå¿çãåæ¢ãããšããã©ãã£ãã¯ããèªåçã«åæãããŸãã ãã®ç®çã®ããã«ãHAProxy ã«ã¯ãã«ã¹ãã§ãã¯ãçµã¿èŸŒãŸããŠããŸãã HTTP ãªã¯ãšã¹ãã/pingãã«ãããXNUMX ç§ã« XNUMX åãã¹ãŠã®ãµãŒããŒã«éä¿¡ãããŸãã
HAProxy ã®ãã 1 ã€ã®æ©èœ: ãšãŒãžã§ã³ããã§ãã¯ã«ããããã¹ãŠã®ãµãŒããŒã«åçã«è² è·ããããããšãã§ããŸãã ãããè¡ãããã«ãHAProxy ã¯ãã¹ãŠã®ãµãŒããŒã«æ¥ç¶ããçŸåšã®è² è·ã«å¿ã㊠100 ïœ XNUMX ã®éã¿ãè¿ããŸããéã¿ã¯ãåŠçãã¥ãŒå ã®ãªã¯ãšã¹ãã®æ°ãšããã»ããµã®è² è·ã«åºã¥ããŠèšç®ãããŸãã
ããŠãç«æ¢ãã«ã€ããŠã§ãã æ€çŽ¢çµæã¯æ¬¡ã®ãããªãªã¯ãšã¹ãã«ãªããŸãã /search?text=æã£ãŠãã+ç«ã æ€çŽ¢ãé«éã«è¡ãã«ã¯ãcat ã€ã³ããã¯ã¹å šäœã RAM ã«åãŸãå¿ èŠããããŸãã SSDããã®èªã¿èŸŒã¿ãååãªé床ã§ã¯ãããŸããã
ãã€ãŠããªãã¡ãŒ ããŒã¿ããŒã¹ã¯å°ããã1 å°ã®ãµãŒããŒã® RAM ã§ååã§ããã ãªãã¡ãŒ ããŒã¹ãæ¡å€§ããã«ã€ããŠããã¹ãŠããã® RAM ã«åãŸããªããªããããŒã¿ã¯ã·ã£ãŒã 2 ãšã·ã£ãŒã XNUMX ã® XNUMX ã€ã®éšåã«åå²ãããŸããã
ããããããã¯åžžã«èµ·ãããŸããããšãè¯ã解決çã§ãã£ãŠããå¥ã®åé¡ãçºçããŸãã
ãã©ã³ãµãŒã¯äŸç¶ãšããŠã©ã®ãµãŒããŒã«ãã¢ã¯ã»ã¹ããŠããŸããã ãããããªã¯ãšã¹ããæ¥ããã·ã³ã«ã¯ã€ã³ããã¯ã¹ãååãããããŸããã§ããã æ®ãã¯ä»ã®ãµãŒããŒã«ãããŸããã ãããã£ãŠããµãŒããŒã¯è¿é£ã®ãã·ã³ã«ç§»åããå¿ èŠããããŸããã äž¡æ¹ã®ãµãŒããŒããããŒã¿ãåä¿¡ããåŸãçµæãçµåãããåã©ã³ã¯ä»ããããŸããã
ãã©ã³ãµãŒã¯ãªã¯ãšã¹ããåçã«åæ£ããããããã¹ãŠã®ãµãŒããŒã¯ããŒã¿ãéä¿¡ããã ãã§ãªããåã©ã³ãã³ã°ã«é¢äžããŠããŸããã
ãã®åé¡ã¯ãé£æ¥ãããµãŒããŒãå©çšã§ããªãå Žåã«çºçããŸããã 解決çã¯ãç°ãªãåªå
é äœãæã€è€æ°ã®ãµãŒããŒããé£æ¥ããµãŒããŒãšããŠæå®ããããšã§ããã ãŸãããªã¯ãšã¹ããçŸåšã®ã©ãã¯å
ã®ãµãŒããŒã«éä¿¡ãããŸããã å¿çããªãã£ãå Žåããªã¯ãšã¹ãã¯ãã®ããŒã¿ ã»ã³ã¿ãŒå
ã®ãã¹ãŠã®ãµãŒããŒã«éä¿¡ãããŸããã ãããŠæåŸã«ããªã¯ãšã¹ãã¯ä»ã®ããŒã¿ã»ã³ã¿ãŒã«éãããŸããã
ææ¡ã®æ°ãå¢ããã«ã€ããŠãããŒã¿ã¯ XNUMX ã€ã®éšåã«åå²ãããŸããã ãããããããéçã§ã¯ãããŸããã§ããã
çŸåšãXNUMX ã€ã®ã·ã£ãŒãã®æ§æã䜿çšãããŠããŸãã ããã«ãã¡ã¢ãªãããã«ç¯çŽããããã«ãã€ã³ããã¯ã¹ã¯æ€çŽ¢éšå (æ€çŽ¢ã«äœ¿çšãããŸã) ãšã¹ããããéšå (æ€çŽ¢ã«ã¯é¢äžããŸãã) ã«åå²ãããŸããã
XNUMX ã€ã®ãµãŒããŒã«ã¯ XNUMX ã€ã®ã·ã£ãŒãã®ã¿ã®æ å ±ãå«ãŸããŸãã ãããã£ãŠãå®å šãªã€ã³ããã¯ã¹ãæ€çŽ¢ããã«ã¯ãç°ãªãã·ã£ãŒããå«ã XNUMX ã€ã®ãµãŒããŒã§æ€çŽ¢ããå¿ èŠããããŸãã
ãµãŒããŒã¯ã¯ã©ã¹ã¿ãŒã«ã°ã«ãŒãåãããŸãã åã¯ã©ã¹ã¿ãŒã«ã¯ XNUMX ã€ã®æ€çŽ¢ãšã³ãžã³ãš XNUMX ã€ã®ã¹ãããã ãµãŒããŒãå«ãŸããŠããŸãã
ã¹ãããã ãµãŒããŒã¯ãéçããŒã¿ãå«ãããŒãšå€ã®ããŒã¿ããŒã¹ãå®è¡ããŸãã ãããã¯ãäŸãã°é³Žãç«ã®èª¬æãªã©ã®ææžãçºè¡ããããã«å¿
èŠã§ãã æ€çŽ¢ãµãŒããŒã®ã¡ã¢ãªã«è² è·ããããªãããã«ãããŒã¿ã¯ç¹å¥ã«å¥ã®ãµãŒããŒã«è»¢éãããŸãã
ããã¥ã¡ã³ã ID 㯠XNUMX ã€ã®ã€ã³ããã¯ã¹å ã§ã®ã¿äžæã§ãããããã¹ããããã«ããã¥ã¡ã³ããååšããªãç¶æ³ãçºçããå¯èœæ§ããããŸãã ããã§ãããXNUMX ã€ã® ID ã«å¯ŸããŠç°ãªãã³ã³ãã³ããååšããããšã«ãªããŸãã ãããã£ãŠãæ€çŽ¢ãæ©èœããçµæãè¿ãããããã«ã¯ãã¯ã©ã¹ã¿ãŒå šäœã§äžè²«æ§ãå¿ èŠã§ããã äžè²«æ§ãç£èŠããæ¹æ³ã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã
æ€çŽ¢èªäœã¯æ¬¡ã®ããã«æ§æãããŠããŸããæ€çŽ¢ãªã¯ãšã¹ã㯠1 ã€ã®ãµãŒããŒã®ããããã«éä¿¡ãããŸãã 圌ããµãŒã㌠XNUMX ã«æ¥ããšããŸãããããã®ãµãŒããŒã¯ãã¹ãŠã®åŒæ°ãåŠçããäœãã©ã®ããã«æ¢ãã¹ãããç解ããŠããŸãã åä¿¡ãªã¯ãšã¹ãã«å¿ããŠããµãŒããŒã¯å¿ èŠãªæ å ±ãåŸãããã«å€éšãµãŒãã¹ã«è¿œå ã®ãªã¯ãšã¹ããè¡ãããšãã§ããŸãã XNUMX ã€ã®ãªã¯ãšã¹ãã®åŸã«ãå€éšãµãŒãã¹ãžã®ãªã¯ãšã¹ããæ倧 XNUMX 件ç¶ããããšãã§ããŸãã
å¿ èŠãªæ å ±ãåéããåŸããªãã¡ãŒ ããŒã¿ããŒã¹ã§ã®æ€çŽ¢ãéå§ãããŸãã ãããè¡ãã«ã¯ãã¯ã©ã¹ã¿ãŒå ã® XNUMX ã€ã®ãµãŒããŒãã¹ãŠã«å¯ŸããŠãµãã¯ãšãªãå®è¡ãããŸãã
å¿çãåä¿¡ãããšãçµæãçµåãããŸãã æçµçã«ãçµæãçæããã«ã¯ãã¹ãããã ãµãŒããŒãžã®ããã«ããã€ãã®ãµãã¯ãšãªãå¿ èŠã«ãªãå ŽåããããŸãã
ã¯ã©ã¹ã¿ãŒå ã®æ€çŽ¢ã¯ãšãªã¯æ¬¡ã®ããã«ãªããŸãã /shard1?text=æã£ãŠãã+ç«ã ããã«ã次ã®åœ¢åŒã®ãµãã¯ãšãªãã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ãµãŒããŒé㧠XNUMX ç§ã« XNUMX åç¶ç¶çã«äœæãããŸãã /ã¹ã¿ãŒãã¹.
åãåãã /ã¹ã¿ãŒãã¹ ãµãŒããŒãå©çšã§ããªãç¶æ³ãæ€åºããŸãã
ãŸããæ€çŽ¢ãšã³ãžã³ã®ããŒãžã§ã³ãšã€ã³ããã¯ã¹ã®ããŒãžã§ã³ããã¹ãŠã®ãµãŒããŒã§åãã«ãªãããã«å¶åŸ¡ããŸããããããªããšãã¯ã©ã¹ã¿ãŒå ã§ããŒã¿ãäžæŽåã«ãªããŸãã
XNUMX ã€ã®ã¹ãããã ãµãŒããŒã XNUMX ã€ã®æ€çŽ¢ãšã³ãžã³ããã®ãªã¯ãšã¹ããåŠçãããšããäºå®ã«ããããããããã®ããã»ããµã®è² è·ã¯éåžžã«è»œãã§ãã ãã®ãããçŸåšãã¹ãããã ããŒã¿ãå¥ã®ãµãŒãã¹ã«è»¢éããŠããŸãã
ããŒã¿ã転éããããã«ãããã¥ã¡ã³ãçšã®ãŠãããŒãµã« ããŒãå°å
¥ããŸããã çŸåšãXNUMX ã€ã®ããŒã䜿çšããŠå¥ã®ããã¥ã¡ã³ãã®ã³ã³ãã³ããè¿ãããç¶æ³ã¯äžå¯èœã§ãã
ããããå¥ã®ã¢ãŒããã¯ãã£ãžã®ç§»è¡ã¯ãŸã å®äºããŠããŸããã 次ã«ãå°çšã®ã¹ãããã ãµãŒããŒãåé€ããŸãã ãããŠãã¯ã©ã¹ã¿ãŒæ§é ããå®å šã«é¢ããŸãã ããã«ãããç°¡åã«æ¡åŒµãç¶ããããšãã§ããŸãã ããã«ãéåãå€§å¹ ã«ç¯çŽã§ãããšããã¡ãªããããããŸãã
ãããŠä»åºŠã¯ããããŒãšã³ãã®æã話ãžã ãµãŒããŒãå©çšã§ããªãããã€ãã®ã±ãŒã¹ãèããŠã¿ãŸãããã
äœãã²ã©ãããšãèµ·ãããŸãã: XNUMX å°ã®ãµãŒããŒãå©çšã§ããŸãã
XNUMX ã€ã®ãµãŒããŒãå©çšã§ããªããšããŸãã ãã®åŸãã¯ã©ã¹ã¿ãŒå ã®æ®ãã®ãµãŒããŒã¯åŒãç¶ãå¿çã§ããŸãããæ€çŽ¢çµæã¯äžå®å šã«ãªããŸãã
ã¹ããŒã¿ã¹ãã§ãã¯çµç± /ã¹ã¿ãŒãã¹ é£æ¥ãããµãŒããŒã¯ãXNUMX ã€ã®ãµãŒããŒãå©çšã§ããªãããšãèªèããŸãã ãããã£ãŠãå®å šæ§ãç¶æããããã«ããªã¯ãšã¹ãããšã«ã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ãµãŒããŒã / ping 圌ãã¯ãã©ã³ãµãŒã«å¯ŸããŠãèªåãã¡ãå©çšã§ããªããšå¿çãå§ããŸãã ã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ãµãŒããŒãåæ¢ããããšãããããŸãã (ããã¯çå®ã§ã¯ãããŸãã)ã ãããã¯ã©ã¹ã¿ ã¹ããŒã ã®äž»ãªæ¬ ç¹ã§ããã ããããããããåé¿ãããã®ã§ãã
ãšã©ãŒã§å€±æãããªã¯ãšã¹ãã¯ãä»ã®ãµãŒããŒäžã®ãã©ã³ãµãŒã«ãã£ãŠåéä¿¡ãããŸãã
ãã©ã³ãµãŒã¯ãåæ¢ãããµãŒããŒãžã®ãŠãŒã¶ãŒ ãã©ãã£ãã¯ã®éä¿¡ãåæ¢ããŸãããã¹ããŒã¿ã¹ã®ãã§ãã¯ã¯ç¶ç¶ããŸãã
ãµãŒããŒãå©çšå¯èœã«ãªããšããµãŒããŒã¯å¿çãéå§ããŸãã / pingã åæ¢ãããµãŒããŒããã® ping ã«å¯Ÿããéåžžã®å¿çãå°çãå§ãããšããã«ããã©ã³ãµãŒã¯ãŠãŒã¶ãŒ ãã©ãã£ãã¯ãããã«éä¿¡ãå§ããŸãã ã¯ã©ã¹ã¿ãŒã®åäœãå埩ããŸãããäžæ³ã
ããã«æªãããšã«ãå€ãã®ãµãŒããŒãå©çšã§ããªããªããŸã
ããŒã¿ã»ã³ã¿ãŒå ã®ãµãŒããŒã®å€§éšåãåæžãããŸãã äœããã¹ãããã©ãã«éããã¹ããïŒ ãã©ã³ãµãŒãåã³å©ãã«æ¥ãŸãã åãã©ã³ãµãŒã¯ãçŸåšã®ã©ã€ããµãŒããŒã®æ°ãã¡ã¢ãªã«åžžã«ä¿åããŸãã çŸåšã®ããŒã¿ã»ã³ã¿ãŒãåŠçã§ããæ倧ãã©ãã£ãã¯éãåžžã«èšç®ããŸãã
ããŒã¿ã»ã³ã¿ãŒå ã®å€ãã®ãµãŒããŒãããŠã³ãããšããã©ã³ãµãŒã¯ããã®ããŒã¿ã»ã³ã¿ãŒããã¹ãŠã®ãã©ãã£ãã¯ãåŠçã§ããªãããšãèªèããŸãã
ãã®åŸãè¶ éãã©ãã£ãã¯ãä»ã®ããŒã¿ã»ã³ã¿ãŒã«ã©ã³ãã ã«åæ£ããå§ããŸãã ãã¹ãŠãããŸãããã誰ãã幞ãã«ãªããŸãã
ããæ¹: ãªãªãŒã¹ã®å ¬é
次ã«ããµãŒãã¹ã«å ããããå€æŽãå
¬éããæ¹æ³ã«ã€ããŠèª¬æããŸãã ããã§ã¯ãããã»ã¹ãç°¡çŽ åããéãéžæããŸãããã€ãŸããæ°ãããªãªãŒã¹ã®ããŒã«ã¢ãŠãã¯ã»ãŒå®å
šã«èªååãããŠããŸãã
ãããžã§ã¯ãã«äžå®æ°ã®å€æŽãèç©ããããšãæ°ãããªãªãŒã¹ãèªåçã«äœæããããã«ããéå§ãããŸãã
ãã®åŸããµãŒãã¹ã¯ãã¹ãã«å±éãããåäœã®å®å®æ§ããã§ãã¯ãããŸãã
åæã«ãèªåããã©ãŒãã³ã¹ãã¹ããéå§ãããŸãã ããã¯ç¹å¥ãªãµãŒãã¹ã«ãã£ãŠåŠçãããŸãã ããã«ã€ããŠã¯ä»ã¯èª¬æããŸããããã®èª¬æã¯å¥ã®èšäºã«ãã䟡å€ããããŸãã
ãã¹ãã§ã®å ¬éãæåãããšãäºåå®å®çã§ã®ãªãªãŒã¹ã®å ¬éãèªåçã«éå§ãããŸãã Prestable ã¯ãéåžžã®ãŠãŒã¶ãŒ ãã©ãã£ãã¯ãéä¿¡ãããç¹å¥ãªã¯ã©ã¹ã¿ãŒã§ãã ãšã©ãŒãè¿ãããå Žåããã©ã³ãµãŒã¯æ¬çªç°å¢ã«åãªã¯ãšã¹ããè¡ããŸãã
ãã¬å®å®çã§ã¯ãå¿çæéã枬å®ãããéçšç°å¢ã®ä»¥åã®ãªãªãŒã¹ãšæ¯èŒãããŸãã ãã¹ãŠãæ£åžžã§ããã°ã人ãæ¥ç¶ããã°ã©ããšè² è·ãã¹ãã®çµæã確èªããŠãããæ¬çªç°å¢ãžã®ããŒã«ã¢ãŠããéå§ããŸãã
ãŠãŒã¶ãŒã«æåãå°œãããŸã: A/B ãã¹ã
ãµãŒãã¹ãžã®å€æŽãå®éã®å©çããããããã©ããã¯ãå¿ ãããæããã§ã¯ãããŸããã å€æŽã®æçšæ§ã枬å®ããããã«ã人ã 㯠A/B ãã¹ããèæ¡ããŸããã Yandex.Marketæ€çŽ¢ã§ã©ã®ããã«æ©èœãããã«ã€ããŠå°ã説æããŸãã
ãã¹ãŠã¯ãæ°ããæ©èœãæå¹ã«ããæ°ãã CGI ãã©ã¡ãŒã¿ãè¿œå ããããšããå§ãŸããŸãã ãã©ã¡ãŒã¿ã次ã®ããã«ããŸãã ããŒã±ãã_æ°ããæ©èœ=1ã 次ã«ããã©ã°ãååšããå Žåãã³ãŒãå ã§ãã®æ©èœãæå¹ã«ããŸãã
If (cgi.experiments.market_new_functionality) {
// enable new functionality
}
æ°ããæ©èœã¯éçšç°å¢ã«å±éãããŠããŸãã
A/Bãã¹ããèªååããããã«ã詳现ãªæ
å ±ãæäŸããå°çšãµãŒãã¹ããããŸã
è€æ°ã®å®éšãåæã«å®è¡ã§ããŸãã èšå®ã§ã¯ãä»ã®å®éšãšã®äº€å·®ãå¯èœãã©ãããæå®ã§ããŸãã
ãã®çµæããµãŒãã¹ã¯èªåçã«åŒæ°ãè¿œå ããŸã ããŒã±ãã_æ°ããæ©èœ=1 ãŠãŒã¶ãŒã® 15% ã«ã ãŸããéžæããã¡ããªã¯ã¹ãèªåçã«èšç®ãããŸãã å®éšãå®äºãããšãã¢ããªã¹ãã¯çµæã調ã¹ãŠçµè«ãå°ãåºããŸãã 調æ»çµæã«åºã¥ããŠãæ¬çªç°å¢ã«å±éãããæ¹è¯çã«å±éãããã決å®ãããŸãã
åžå Žã®å·§ã¿ãªæ: æ¬çªç°å¢ã§ã®ãã¹ã
éçšç°å¢ã§æ°ããæ©èœã®åäœããã¹ãããå¿ èŠãããå ŽåããããããŸãããé«è² è·äžã®ãæŠéãæ¡ä»¶ã§æ©èœãã©ã®ããã«åäœããããããããŸããã
解決çã¯ãããŸããCGI ãã©ã¡ãŒã¿ã®ãã©ã°ã¯ãA/B ãã¹ãã ãã§ãªããæ°ããæ©èœã®ãã¹ãã«ã䜿çšã§ããŸãã
ç§ãã¡ã¯ããµãŒãã¹ããªã¹ã¯ã«ãããããšãªããæ°åå°ã®ãµãŒããŒã®æ§æãå³åº§ã«å€æŽã§ããããŒã«ãäœæããŸããã ã¹ãããã¿ãããšãããŸãã åœåã®ã¢ã€ãã¢ã¯ãã¬ã€ã¢ãŠããªãã§äžéšã®æ©èœãããã«ç¡å¹ã«ã§ããããã«ããããšã§ããã ãã®åŸãããŒã«ã¯æ¡åŒµãããããè€éã«ãªããŸããã
ãµãŒãã¹ ãããŒå³ã以äžã«ç€ºããŸãã
ãã©ã°å€ã¯APIçµç±ã§èšå®ãããŸãã 管çãµãŒãã¹ã¯ãããã®å€ãããŒã¿ããŒã¹ã«ä¿åããŸãã ãã¹ãŠã®ãµãŒããŒã¯ XNUMX ç§ããšã«ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ãããã©ã°å€ãåºåãããããã®å€ãåãªã¯ãšã¹ãã«é©çšããŸãã
åæ¢ã¿ããã§ã¯ãXNUMX çš®é¡ã®å€ãèšå®ã§ããŸãã
1) æ¡ä»¶åŒã ããããã®å€ã true ã®å Žåã«é©çšãããŸãã äŸãã°ïŒ
{
"condition":"IS_DC1",
"value":"3",
},
{
"condition": "CLUSTER==2 and IS_BERU",
"value": "4!"
}
å€ã3ãã¯ããªã¯ãšã¹ãããã±ãŒã·ã§ã³ DC1 ã§åŠçããããšãã«é©çšãããŸãã beru.ru ãµã€ãã® 4 çªç®ã®ã¯ã©ã¹ã¿ãŒã§ãªã¯ãšã¹ããåŠçãããå Žåãå€ã¯ãXNUMXãã«ãªããŸãã
2) ç¡æ¡ä»¶ã®å€ã ã©ã®æ¡ä»¶ãæºããããªãå Žåãããã©ã«ãã§é©çšãããŸãã äŸãã°ïŒ
䟡å€ã䟡å€ïŒ
å€ãæå笊ã§çµããå Žåããã®å€ã®åªå é äœãé«ããªããŸãã
CGI ãã©ã¡ãŒã¿ ããŒãµãŒã¯ URL ã解æããŸãã 次ã«ãåæ¢ã¿ããããã®å€ãé©çšããŸãã
次ã®åªå é äœãæã€å€ãé©çšãããŸãã
- åæ¢ã¿ãã (æå笊) ããã®åªå 床ãé«ããªããŸãã
- ãªã¯ãšã¹ãããã®å€ã
- ãåæ¢ãã¿ããããã®ããã©ã«ãå€ã
- ã³ãŒãå ã®ããã©ã«ãå€ã
æ¡ä»¶å€ã§ç€ºããããã©ã°ã¯å€æ°ãããŸãããããã¯ãç§ãã¡ãç¥ã£ãŠãããã¹ãŠã®ã·ããªãªã«ååã§ãã
- ããŒã¿ã»ã³ã¿ãŒã
- ç°å¢: æ¬çªããã¹ããã·ã£ããŠã
- äŒå ŽïŒãã«ã®ããŒã±ããã
- ã¯ã©ã¹ã¿ãŒçªå·ã
ãã®ããŒã«ã䜿çšãããšãç¹å®ã®ãµãŒã㌠ã°ã«ãŒã (ããšãã°ãXNUMX ã€ã®ããŒã¿ ã»ã³ã¿ãŒã®ã¿) ã§æ°ããæ©èœãæå¹ã«ãããµãŒãã¹å šäœã«ç¹å¥ãªãªã¹ã¯ãäžããããšãªããã®æ©èœã®åäœããã¹ãã§ããŸãã ã©ããã§é倧ãªééããç¯ãããã¹ãŠãããŠã³ãå§ããããŒã¿ã»ã³ã¿ãŒå šäœãããŠã³ããå Žåã§ãããã©ã³ãµãŒã¯ãªã¯ãšã¹ããä»ã®ããŒã¿ã»ã³ã¿ãŒã«ãªãã€ã¬ã¯ãããŸãã ãšã³ããŠãŒã¶ãŒã¯äœãæ°ã¥ããŸããã
åé¡ã«æ°ä»ããå Žåã¯ãããã«ãã©ã°ã以åã®å€ã«æ»ãããšãã§ããå€æŽã¯ããŒã«ããã¯ãããŸãã
ãã®ãµãŒãã¹ã«ã¯æ¬ ç¹ããããŸããéçºè ã¯ãã®ãµãŒãã¹ãéåžžã«æ°ã«å ¥ã£ãŠããããã¹ãŠã®å€æŽã Stop Tap ã«ããã·ã¥ããããšããããšããããããŸãã ç§ãã¡ã¯æªçšãšéãããåªããŠããŸãã
ã¹ããã ã¿ããã®ã¢ãããŒãã¯ãéçšç°å¢ã«ããŒã«ã¢ãŠãããæºåãã§ããŠããå®å®ããã³ãŒãããã§ã«ããå Žåã«ããŸãæ©èœããŸãã åæã«ããŸã çåãããããæŠéãæ¡ä»¶ã§ã³ãŒãããã§ãã¯ããããšèããŠããŸãã
ãã ããStop Tap ã¯éçºäžã®ãã¹ãã«ã¯é©ããŠããŸããã ãã·ã£ã㊠ã¯ã©ã¹ã¿ãŒããšåŒã°ããéçºè çšã®å¥ã®ã¯ã©ã¹ã¿ãŒããããŸãã
ç§å¯ã®ãã¹ã: ã·ã£ã㊠ã¯ã©ã¹ã¿ãŒ
ããããã®ã¯ã©ã¹ã¿ãŒããã®ãªã¯ãšã¹ãã¯ã·ã£ã㊠ã¯ã©ã¹ã¿ãŒã«è€è£œãããŸãã ãããããã©ã³ãµãŒã¯ãã®ã¯ã©ã¹ã¿ãŒããã®å¿çãå®å šã«ç¡èŠããŸãã ãã®åäœå³ã以äžã«ç€ºããŸãã
å®éã®ãæŠéãç¶æ
ã«ãããã¹ã ã¯ã©ã¹ã¿ãŒãååŸããŸããã éåžžã®ãŠãŒã¶ãŒ ãã©ãã£ãã¯ã¯ããã«æµããŸãã äž¡æ¹ã®ã¯ã©ã¹ã¿ãŒã®ããŒããŠã§ã¢ã¯åãã§ãããããããã©ãŒãã³ã¹ãšãšã©ãŒãæ¯èŒã§ããŸãã
ãŸãããã©ã³ãµãŒã¯å¿çãå®å šã«ç¡èŠããããããšã³ã ãŠãŒã¶ãŒã«ã¯ã·ã£ã㊠ã¯ã©ã¹ã¿ãŒããã®å¿çã衚瀺ãããŸããã ãããã£ãŠãééããç¯ãããšã¯æããªãã®ã§ãã
æèŠ
ã§ã¯ãããŒã±ããæ€çŽ¢ãã©ã®ããã«æ§ç¯ããã®ã§ãããã?
ãã¹ãŠãã¹ã ãŒãºã«é²ããããã«ãæ©èœãå¥ã®ãµãŒãã¹ã«åå²ããŸãã ããããããšã§ãå¿ èŠãªã³ã³ããŒãã³ãã®ã¿ãã¹ã±ãŒã«ããã³ã³ããŒãã³ããããã·ã³ãã«ã«ããããšãã§ããŸãã å¥ã®ã³ã³ããŒãã³ããå¥ã®ããŒã ã«å²ãåœãŠãŠããã®ã³ã³ããŒãã³ãã«åãçµã責任ãå ±æããã®ã¯ç°¡åã§ãã ãããŠããã®ã¢ãããŒãã«ããéã®å€§å¹ ãªç¯çŽã¯æãããªãã©ã¹ã§ãã
ã·ã£ã㊠ã¯ã©ã¹ã¿ãŒã圹ç«ã¡ãŸãããŠãŒã¶ãŒã®éªéãããã«ãµãŒãã¹ãéçºãããã®ããã»ã¹ã§ãã¹ãã§ããŸãã
ãã¡ãããæ¬çªç°å¢ã§ã®ãã¹ãã§ãã æ°åå°ã®ãµãŒããŒã®æ§æãå€æŽããå¿ èŠããããŸãã? ç°¡åã§ããã¹ãããã¿ããã䜿çšããŠãã ããã ããããããšã§ãæ¢è£œã®è€éãªãœãªã¥ãŒã·ã§ã³ãããã«å±éããåé¡ãçºçããå Žåã¯å®å®ããããŒãžã§ã³ã«ããŒã«ããã¯ã§ããŸãã
æé·ãç¶ãããªãã¡ãŒããŒã¹ã§ã©ã®ããã«ããŠåžå Žãè¿
éãã€å®å®ãããŠãããããèŠãã§ããã°å¹žãã§ãã ãµãŒããŒã®åé¡ã解決ããèšå€§ãªæ°ã®ãªã¯ãšã¹ãã«å¯ŸåŠãããµãŒãã¹ã®æè»æ§ãåäžãããäœæ¥ããã»ã¹ãäžæããããšãªããããè¡ãæ¹æ³ã
åºæïŒ habr.com