APIããã³ãµãŒããŒã¢ããªã±ãŒã·ã§ã³åãã®ãšãã¹ããŒãããã¯ãšã³ãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãé«éèŠã·ã¹ãã åãã«ãå¿çæéãã¹ã«ãŒãããããªãœãŒã¹å©çšçãæé©åããŸãã
å§ãã
ããã¯ãšã³ãã®ããã©ãŒãã³ã¹ã¯ããã¹ãŠã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«çŽæ¥åœ±é¿ããŸããç§ãã¡ã¯ãã¡ã¢ãªãŒãªãŒã¯ãæé©åãããŠããªãã¯ãšãªãããããã³ã°I/Oãéå¹çãªã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ãªã©ãç®ã«èŠããé å»¶ã®åå ãšãªãé ããéå¹çæ§ãèŠã€ããããšã«ç¹åããŠããŸããç§ãã¡ã®ãã¥ãŒãã³ã°ã¯ããŠãŒã¶ãŒãããã«äœæã§ããP95ã¬ã€ãã³ã·ãŒã®æ¹åããããããŸãã
ç§ãã¡ã¯ãèšèªåºæã®ããŒã«ïŒNode.js --prof, py-spy, JVMåãasync-profilerïŒãšAPMãã©ãããã©ãŒã ã䜿çšããŠãããã¡ã€ãªã³ã°ãè¡ããŸããæé©åãœãªã¥ãŒã·ã§ã³ã«ã¯ãRedisãã£ãã·ã³ã°ãæ¥ç¶ããŒãªã³ã°ïŒPgBouncer, generic-poolïŒãã¹ããªãŒãã³ã°å¿çãCPUè² è·ã®é«ãã¿ã¹ã¯åãã®ã¯ãŒã«ãŒ ã¹ã¬ãã ãªãããŒããå«ãŸããŸãã
é«P95ã¬ã€ãã³ã·ãŒãã¹ã«ãŒãããã®å¶éãã¡ã¢ãªãŒè² è·ããŸãã¯åæå®è¡è² è·äžã§ã®ããã©ãŒãã³ã¹äœäžã«æ©ãããã¯ãšã³ããµãŒãã¹ãã¢ããªã·ãã¯ãªAPIã§ããããã€ã¯ããµãŒãã¹ã®ã»ããã§ãããç§ãã¡ã¯åã³ã³ããŒãã³ããæé©ãªããã©ãŒãã³ã¹ã«èª¿æŽããŸãã
ããã©ãŒãã³ã¹ã®ããŒã¹ã©ã€ã³ã確ç«ããè² è·äžã§ãããã¡ã€ãªã³ã°ãå®è¡ããäž»èŠãªãªãœãŒã¹æ¶è²»è ãç¹å®ããŸãã
ããã«ããã¯ïŒããŒã¿ããŒã¹ã¯ãšãªãã¡ã¢ãªãŒãã¿ãŒã³ãããããã³ã°æäœãåæå®è¡æ§ã®åé¡ïŒãæ·±ãæãäžããŠåæããŸãã
ãã£ãã·ã³ã°ãã¯ãšãªæé©åãéåæãã¿ãŒã³ããªãœãŒã¹ç®¡çã®æ¹åãªã©ãçãçµã£ãä¿®æ£ãå®è£ ããŸãã
ååŸã®ã¡ããªã¯ã¹ãæ¯èŒããè² è·ãã¹ããå®è¡ããããŒã¯ãã©ãã£ãã¯ã·ããªãªäžã§æ€èšŒããŸãã
ã¬ã€ãã³ã·ãŒãã©ããã³ã°ãå°å ¥ããSLOã¿ãŒã²ãããèšå®ãããªã°ã¬ãã·ã§ã³æ€åºã®ããã®ã¢ã©ãŒããæ§æããŸãã
ããã¯ãšã³ãã100msæªæºã®å¿çæéã«æé©åãããããããã©ãã£ãã¯è² è·ã«å¯Ÿå¿ããŸãããã
åœç€Ÿã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãµãŒãã¹ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®ãããã¡ã€ãªã³ã°ãããŒã¿ããŒã¹ã¯ãšãªãšã€ã³ããã¯ã¹ã®æé©åãã¡ã¢ãªäœ¿çšéã®æ¹åãAPIå¿çæéã®ççž®ããã£ãã·ã³ã°å±€ã®å®è£ ãããã³ãµãŒããŒãšã©ã³ã¿ã€ã èšå®ã®ãã¥ãŒãã³ã°ãå«ãŸããŸãã
éå»ã®ãããžã§ã¯ãã§ã¯ãã¯ãšãªæé©åããã£ãã·ã³ã°ãã³ãã¯ã·ã§ã³ããŒãªã³ã°ããã€ããŒãå§çž®ãéããŠãAPIå¿çæéã60%ãã90%ççž®ããŠããŸãããå ·äœçãªæ¹åã¯ãã客æ§ã®ã·ã¹ãã ã«ãããçŸåšã®ããã«ããã¯ã«äŸåããŸãã
ã¯ããã客æ§ã®ããã¯ãšã³ããæéã®çµéãšãšãã«æé«ã®ããã©ãŒãã³ã¹ãç¶æããããšãä¿èšŒããããããªã¢ã«ã¿ã€ã ããã©ãŒãã³ã¹ããã·ã¥ããŒããã¬ã€ãã³ã·ååž°ã«å¯Ÿããèªåã¢ã©ãŒãã鱿¬¡ããã©ãŒãã³ã¹ã¬ããŒããããã³å®æçãªæé©åã¬ãã¥ãŒãèšå®ããŸãã
åœç€Ÿã¯ãå€ãJavaãPHPãããã³.NETãã¬ãŒã ã¯ãŒã¯äžã«æ§ç¯ãããã¬ã¬ã·ãŒã·ã¹ãã ãããããã³ãŒããã¹ã®ãªãã¡ã¯ã¿ãªã³ã°ãããŒã¿ã¢ã¯ã»ã¹å±€ãžã®ãã£ãã·ã³ã°å°å ¥ãORMã¯ãšãªã®æé©åãããã³ããå¹ççãªã©ã³ã¿ã€ã ããŒãžã§ã³ãžã®ã¢ããã°ã¬ãŒããéããŠæé©åããŠããŸããã
ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®ãããžã§ã¯ãã¯1æéããã10ãã«ãã50ãã«ã§è«æ±ãããŸããå žåçãªç£æ»ããã³æé©åãããžã§ã¯ãã¯2é±éãã4é±éããããæé©åååŸã®ãã³ãããŒã¯ãå«ãå æ¬çãªããã©ãŒãã³ã¹ã¬ããŒããå«ãŸããŸãã