æ¯æãã·ã¹ãã ã®äž»ãªãã®ã¯ããéãåãããã€ãã¹èšå·ä»ãã§1ã€ã®ãã¬ãŒãããåããã¬ãŒãã«ãšã³ããªã転éããããšã§ãã
åŒè·å£«ãæ¥ããŸã§ããã»ã©è€éã«ã¯èãããŸããã äžçäžã®æ¯æãã·ã¹ãã ã¯èšå€§ãªéã®ããããçš®é¡ã®
è² æ
ãšæ瀺ãåããŸãã ãã®ãããæ¯æãã·ã¹ãã ã®éçºã®äžç°ãšããŠ
ã倧äŒæ¥ãšå®å
šã«éåžžã®ã¹ã±ãŒã©ãã«ãª
Webã¢ããªã±ãŒã·ã§ã³ã® éã§åžžã«ãã©ã³ã¹ããšã
å¿
èŠããããŸã ã
ã«ããã®äžã§ãHighload ++ã®
Philipp Delgyado ïŒ
dph ïŒã®ç©èªã¯ããã·ã¢ã®åæ³ããã¯ã¡ãŒã«ãŒããžãã¹ã®æ¯æãã·ã¹ãã ã§ã®æ°å¹Žã«ãããçµéšãé倱ã«ã€ããŠã ãã§ãªããããã€ãã®ææãããã³Webãæ£ããæ··åãããæ¯ããªãæ¹æ³ã«ã€ããŠã®çµéšãšã³ã¿ãŒãã©ã€ãºã
è¬æŒè
ã«ã€ã㊠ïŒãã£ãªããã»ãã«ã¬ãã¯ãã£ãªã¢ã®äžã§ã圌ããããªãã£ãããšã2ãªã³ã¯ãã
Visual BasicããããŒãã³ã¢SQLã è¿å¹Žã圌ã¯äž»ã«Javaã§ããŒãããããããžã§ã¯ãã«åŸäºããããŸããŸãªäŒè°ã§åœŒã®çµéšãå®æçã«å
±æããŠããŸãã
3幎éãç§ãã¡ã¯æ¯æãã·ã¹ãã ãäœãç¶ããŠããããã®ãã¡2幎éã¯çç£ã«æºãã£ãŠããŸãã 2幎åãç§
㯠1幎ã§æ¯æãã·ã¹ãã ãäœæããæ¹æ³
ã«ã€ããŠè©±ããŸãããããã以æ¥ããã¡ãããç§ãã¡ã®æ±ºå®ã«ã¯å€ãã®å€åããããŸããã
ç§ãã¡ã¯ããªãå°ããªããŒã ã§ãã10人ã®ããã°ã©ããã»ãšãã©ãããã¯ãšã³ãã®éçºè
ãããã³ããšã³ãã«ããã®ã¯2人ã ãã4人ã®QAãšç§ããããŠäœããã®ç®¡çè
ã§ãã ããŒã ã¯å°ããã®ã§ãç¹ã«æåã¯ããŸããéããããŸããã

æ¯æã·ã¹ãã
äžè¬çã«ãæ¯æãã·ã¹ãã ã¯éåžžã«ç°¡åã§ãããéãåãããã€ãã¹èšå·ãä»ããŠ1ã€ã®ãã¬ãŒãããåããã¬ãŒãã«ãšã³ããªã転éããŸã-ããã ãã§ãïŒ
çŸå®ã«ã¯ãæ¯æãã·ã¹ãã ã¯éåžžã«åçŽãªãã®ã§ãã
åŒè·å£«ãæ¥ããŸã§ ã äžçäžã®æ¯æãã·ã¹ãã ã«ã¯ãããã¿ãã¬ããããå¥ã®ã¿ãã¬ããã«ééããæ¹æ³ããŠãŒã¶ãŒãšããåãããæ¹æ³ã圌ããçŽæã§ããããšãçŽæã§ããªãããšãç§ãã¡ã責任ãè² ããªãããšã«é¢ããèšå€§ãªããŸããŸãªè² æ
ãšæ瀺ããããŸãã ãã®ãããæ¯æãã·ã¹ãã ã®éçºã®äžç°ãšããŠã倧äŒæ¥ãšå®å
šã«éåžžã®ã¹ã±ãŒã©ãã«ãªWebã¢ããªã±ãŒã·ã§ã³ã®éã§åžžã«ãã©ã³ã¹ããšãå¿
èŠããããŸãã
äŒæ¥ããã¯æ¬¡ã®ãã®ããããŸãã
ç§ãã¡ã¯ãéã§åããŸãããããã£ãŠãè€éãªã¢ã«ãŠã³ãã£ã³ã°ããããé«ãã¬ãã«ã®ä¿¡é Œæ§ãé«ãSLAïŒã·ã³ãã«ãªã·ã¹ãã ãç§ãã¡ããŠãŒã¶ãŒã奜ãã§ã¯ãªãããïŒãããã³é«ã責任ãå¿
èŠã§ããç¬éã¯äžè¬çã«èµ·ãããŸãã
ç§ãã¡ã¯NPOïŒééè¡ä¿¡çšæ©é¢ïŒã§ããå®è³ªçã«ã¯éè¡ã§ããã貞ãåºãã¯ã§ããŸããã
- äžå€®éè¡ã«å ±åæžããããŸãã
- 財åç£èŠãžã®å ±åããããŸãã
- åœç€Ÿã®éè¡éšéã«ã¯å€ãã®ååããããéè¡ã®çµéšããããŸãã
- èªååãããéè¡ã·ã¹ãã ãšã®ããåããäœåãªããããŠããŸãã
åŒè·å£«ãããŸãã çŸåšããã·ã¢é£éŠã§ã®æ¯æãã·ã¹ãã ã®åäœãèŠå¶ããæ³åŸã®äžéšã次ã«ç€ºããŸãã
ãããã®æ³åŸã®ãããããå®è£
ããããšã¯éåžžã«å°é£ã§ããããã¯ããŸã å€ãã®å®æ¬Ÿãå®éã®äœ¿çšäºäŸããããããããã¹ãŠãåŠçããå¿
èŠãããããã§ãã
åæã«ãç§ãã¡ã¯ãã®ãããªçŽç²ãªäŒæ¥ã§ãããã»ãšãã©éè¡ã§ââãããšããäºå®ã«å ããŠãç§ãã¡ã¯ãŸã ããªãã®ãŠã§ãäŒæ¥ã§ãã
- åžå Žã¯éåžžã«ç«¶äºãæ¿ããããããŠãŒã¶ãŒã®å©äŸ¿æ§ã¯ç§ãã¡ã«ãšã£ãŠåºæ¬çã§ãããŠãŒã¶ãŒãæ°ã«ããªããšããŠãŒã¶ãŒã¯ç§ãã¡ãå»ãããéã¯ãŸã£ãããããŸããã
- ããžãã¹ã掻çºã«çºå±ããŠãããããé »ç¹ã«èšç®ããå¿
èŠããããŸãã çŸåšãé±ã«23åã®ãªãªãŒã¹ããããŸããããã¯å€§æéè¡ã®ãªãªãŒã¹ãããã¯ããã«äžè¬çã§ãããæè¿ã§ã¯3ãæã«1åãªãªãŒã¹ãéå§ããéåžžã«èªãã«æã£ãŠããŸãã
- åžå Žæå
¥ãŸã§ã®æçæéïŒã¢ã€ãã¢ãå°çãããããã«ãã§ããã ãæ©ãçŸå®ã®äžçã§ãããèµ·åããå¿
èŠããããŸã-ã§ããã°ç«¶åä»ç€Ÿãããæ©ãã
- å€ãã®å€§æéè¡ãšã¯ç°ãªããå€ãã®ãéã¯ãããŸããã ç§ãã¡ã¯ãã¹ãŠããéã§æºããããšã¯ã§ããŸãããã©ãã«ãããŠåºãŠè¡ã£ãŠã決æãäžããªããã°ãªããŸããã
Javaã䜿çšããã®ã¯ãä»ã®èšèªãããJavaã®äžçã§ããŒã¿ããŒã¹ãæäœããããšã®ä¿¡é Œæ§ã«ã€ããŠå°ãªããšãããçšåºŠç解ããŠããåžå Žã®éçºè
ãèŠã€ããã®ãå°ãç°¡åã ããã§ãã
æ¯æãã·ã¹ãã ãäœæã§ããããŒã¿ããŒã¹ã¯3ã€ãããããŸãããããã®ãã¡ã®1ã€ã¯éåžžã«é«äŸ¡ã§ã2ã€ç®ã¯ãµããŒããèŠã€ããã®ãé£ãããç¡æã§ããããŸããã ãã®çµæã
PostgreSQLã¯ç§ãã¡ã«ãšã£ãŠæè¯ã®éžæè¢ã§ããé©åãªãµããŒããç°¡åã«èŠã€ããããšãã§ããäžè¬ã«ãã»ãšãã©ãéããããã«ããŒã¿ããŒã¹ã§äœãèµ·ããããèããå¿
èŠã¯ãããŸããããã¹ãŠããããã§çŸãããä¿èšŒãããŠããŸãã
ãã®ãããžã§ã¯ãã§ã¯ãã¡ãã£ãšãã
Kotlinã䜿çšããŠããŸã-ããã楜ãã¿ã®ããã«ããããŠå°æ¥ãèŠæ®ããŠããŸãã Kotlinã¯äž»ã«ããçš®ã®ã¹ã¯ãªããèšèªã«å ããŠãããã€ãã®å°ããªãµãŒãã¹ãšããŠäœ¿çšãããŸãã
ãã¡ããã
ãµãŒãã¹ã¢ãŒããã¯ãã£ã§ãã ãã€ã¯ããµãŒãã¹ãã«ããŽãªå¥ã«åŒã³åºãããšã¯ã§ããŸããã ç§ã®ç解ã§ã¯ããã€ã¯ããµãŒãã¹ã¯ç解ããŠãªãã¡ã¯ã¿ãªã³ã°ãããããæžãçŽãããããã®ã§ãã ãããã£ãŠããã¡ããããã€ã¯ããµãŒãã¹ã¯ãããŸããããéåžžã®æ¬æ Œçãªå€§èŠæš¡ã³ã³ããŒãã³ãããããŸãã
ããã«ããã£ãã·ã¥çšã®
Redis ãå
éšãããã³çšã®Angularã ãŠãŒã¶ãŒã«è¡šç€ºãããã¡ã€ã³ãµã€ãã¯ãæå°éã®JSãå«ãçŽç²ãªHTML + CSSã§äœæãããŸãã
ãããŠãã¡ããã
ã«ãã« ã
ãµãŒãã¹
ãã¡ãããç§ã¯ããããµãŒãã¹ãªãã§çãããã§ãã 1ã€ã®å€§ããªã¢ããªã¹ãæ¥ç¶æ§ã®åé¡ãããŒãžã§ã³ç®¡çã®åé¡ã¯ãããŸãããããã¯ã¢ãããæžã蟌ã¿ãã¬ã€ã¢ãŠãã§ãã ãã¹ãŠãã·ã³ãã«ã§ãã
ãã ãã
ã»ãã¥ãªãã£èŠä»¶ããããŸãã ã·ã¹ãã ã«ã¯å人ããŒã¿ããããŸããå人ããŒã¿ã¯ç¹å¥ãªå¶éä»ãã§åå¥ã«ä¿åããã³åŠçããå¿
èŠããããŸãã éè¡ã«ãŒãã«é¢ããæ
å ±ããããŸãããŸããã³ãŒãã®å€æŽãšããŒã¿ã¢ã¯ã»ã¹ã®åèŠä»¶ã«é¢é£ããç£æ»èŠä»¶ãšãšãã«ãã·ã¹ãã ã®å¥ã®éšåã«ååšããå¿
èŠããããŸãã ãããã£ãŠããã¹ãŠãã³ã³ããŒãã³ãã«ã«ããããå¿
èŠããããŸãã
ä¿¡é Œæ§ã®èŠä»¶ããã
ãŸã ã ååŒçžæã®éè¡ã®1ã€ã®ã²ãŒããŠã§ã€ãäœããã®çç±ã§æ
éãããã¹ãŠã®æ¯æãããžãã¯ãæ¡çšããŠã¬ã€ã¢ãŠããããããç§ã¯ãããæãã§ããŸãããç¥ã¯çŠããŸããééã£ãã¬ã€ã¢ãŠãã人çèŠå ãããããã¹ãŠã厩å£ããŸãã ãããã£ãŠããã¹ãŠãæ¯èŒçå°ããªãµãŒãã¹ã«åå²ããå¿
èŠããããŸãã
ãããã
ã»ãã¥ãªãã£ãš
ä¿¡é Œæ§ã® èŠä»¶ã«å¿ããŠã·ã¹ãã ãã³ã³ããŒãã³ãã«åå²ãå§ããŠãããã
ãç¬èªã®ã¹ãã¬ãŒãžãå¿
èŠãšãããã¹ãŠãåå¥ã®ãµãŒãã¹ã«å²ãåœãŠãããšã¯çã«ããªã£ãŠããŸãã ã€ãŸã ä»ã®ã·ã¹ãã å
šäœã«äŸåããªãããŒã¿ããŒã¹ã®äžéšã«ã€ããŠã¯ãåå¥ã®ãµãŒãã¹ãäœæããæ¹ãç°¡åã§ãã
ãããŠãç§ãã¡ã®äž»ãªååã¯ãå¥ã®ãµãŒãã¹ã«äœããå²ãåœãŠãããšã§ã-ãã®ãµãŒãã¹èªäœã®æçœãªååãæãä»ãããšãã§ãããªãã
ãåŠçããŸãã¯ãã¬ããŒããã¯å€ããå°ãªããéåžžã®ååã§ããããããŒã¿ããŒã¹ã®ã¬ããªã«ã§åäœããã§ããããã¯ãã§ã«æªãååã§ãã æããã«ãããã¯1ã€ã®ãµãŒãã¹ã§ã¯ãªããè€æ°ã®ãµãŒãã¹ãŸãã¯1ã€ã®å€§ããªãµãŒãã¹ã®äžéšã§ãã
ãããã®èŠä»¶ã®ãã¡4ã€ã§ãå人ã匷調ã§ããŸãã
ãµãŒãã¹ã

ãã¡ããã1ã€ã®ãµãŒãã¹ã«å¯ŸããŠéåžžã«å€ãã®åèªãšååãèç©ãããããããã€ã¯ãã¢ããªã¹ã¯ãŸã æ®ã£ãŠããŸãã ããã¯ã責任ãåé
åããç¶ç¶çãªããã»ã¹ã§ãã
ãµãŒãã¹èªäœã¯ãããããWebã®äžçãšåæ§ã«ãhttpïŒsïŒäžã®JSON RPCãä»ããŠå¯Ÿè©±ããŸãã åæã«ãã¯ãšãªãåè©Šè¡ããŠçµæããã£ãã·ã¥ããããã®åå¥ã®ããžãã¯ããµãŒãã¹ããšã«èŠå®ãããŠããŸãã ãã®çµæããµãŒãã¹ãã¯ã©ãã·ã¥ããå Žåã§ããã·ã¹ãã å
šäœãæ£åžžã«åäœãç¶ãããŠãŒã¶ãŒã¯äœãæ°ä»ããŸããã
ã³ã³ããŒãã³ã
ã«ãã«
ããã¯ã¡ãã»ãŒãžãã¥ãŒã§ã¯ãªãã
Kafka ã¯ãµãŒãã¹éã®ãã©ã³ã¹ããŒãã¬ã€ã€ãŒã§ãããé
ä¿¡ä¿èšŒãšç解ã§ããä¿¡é Œæ§/ã¯ã©ã¹ã¿ãªã³ã°ãåããŠããŸãã ã€ãŸã ãµãŒãã¹AãããµãŒãã¹Bã«äœããéä¿¡ããå¿
èŠãããå ŽåãKafkaã«ã¡ãã»ãŒãžãå
¥åããæ¹ãç°¡åã§ããKafkiãããµãŒãã¹èªäœãå¿
èŠãªãã®ãããã¯ã¢ããããŸãã ãããŠãåè©Šè¡ãšãã£ãã·ã³ã°ã®ãã¹ãŠã®ããžãã¯ã«ã€ããŠèããå¿
èŠã¯ãããŸãããKafkaã¯ãã®çžäºäœçšã倧å¹
ã«ç°¡çŽ åããŸãã çŸåšãç§ãã¡ã¯å¯èœãªéãKafkaã«ç¿»èš³ããããšããŠããŸãããããããŸãç¶ç¶çãªããã»ã¹ã§ãã

ãŸãããšããããããã¯
ãã¹ãŠã®æäœã«é¢ããããŒã¿ã®ããã¯ã¢ãããœãŒã¹ã§ã ã ãã¡ãããä»äºã®è©³çŽ°ãè²¢ç®ããã®ã§ãç§ã¯åŠæ³çã§ãã ç§ã¯ïŒãã®ãããžã§ã¯ãã§ã¯ãªããããªãåã«ïŒããããã®ãéã®åçšããŒã¿ããŒã¹ããç¬èªã®ããŒã¿ããŒã¹ãã¡ã€ã«ã ãã§ãªãããã¹ãŠã®ã¬ããªã«ãšããã¯ã¢ããã«ããããæç¹ã§ãã³ã»ã³ã¹ãæžãå§ããã®ãèŠãŸããã ãŸãããã°ããããŒã¿ã埩å
ããå¿
èŠããããŸãããããã¯æ¯æãããããŒã¿ã§ããããããããªããã°ãäŒç€Ÿã¯ç¿æ¥éãã«ééã§ããããã§ãã
ãã°ããéèŠãªããŒã¿ãæœåºããã®ã¯ããŸã奜ãã§ã¯ãªãã®ã§ãå¿
èŠãªæ
å ±ã¯ãã¹ãŠåãã«ãã§ã«å
¥ããã»ããããã§ãããã çªç¶ãç§ã«äžå¯èœãªããšãèµ·ãã£ãå Žåãå°ãªããšããäž»èšæ¶è£
眮ã«æ¥ç¶ãããŠããªãããã¯ã¢ããããŒã¿ã®å
¥æå
ãç¥ã£ãŠããŸãã
äžè¬çã«ãæ¯æãã·ã¹ãã ã®å Žåã2ã€ã®ç¬ç«ããããŒã¿ãŠã§ã¢ããŠã¹ãæã€ããšã¯æšæºçãªæ
£è¡ã§ããããããªãã§ç掻ããããšã¯åã«æãã§ããããšãã°ãç§ã«ãšã£ãŠã¯ã
éçºãã°
ãã¡ãããå€ãã®ç°ãªããã°ããããŸãã éçºãã°ãKafkaã«ä¿åããClickhouseã«ã¢ããããŒãããŸããããã¯ãçµæãšããŠãããç°¡åã§å®äŸ¡ãªããã§ãã ãŸããåæã«ã¯ãªãã¯ããŠã¹ã«ã€ããŠãç 究ããŠããŸããããã¯å°æ¥ã«åœ¹ç«ã¡ãŸãã ãã ãããã°ã®æäœã«é¢ããåå¥ã®ã¬ããŒããäœæã§ããŸãã

ã¢ãã¿ãªã³ã°
Prometheus + Grafanaã§ç£èŠããŸãã æ£çŽãªãšãããç§ã¯ããã¡ããŠã«æºè¶³ããŠããŸããã

åé¡ã¯äœã§ããïŒ
- Prometheusã¯ãæ¢æã®æšæºã³ã³ããŒãã³ãããããŒã¿ãåéããå¿
èŠãããããããã®ã³ã³ããŒãã³ããå€æ°ããå Žåã«æé©ã§ãã ããªãã®æ°ã®è»ããããŸãã 40çš®é¡ã®ãµãŒãã¹ããããããã¯çŽ150å°ã®ä»®æ³ãã·ã³ã§ãããããã»ã©å€ãã¯ãããŸããã PrometheusãéããŠãç¹å®ã®ã²ãŒããŠã§ã€ãééããæ¯æãã®æ°ãå
éšãã¥ãŒå
ã®ã€ãã³ãã®æ°ãªã©ãäœããã®ããžãã¹ç£èŠæ
å ±ãåéããå Žåãã¯ã©ã€ã¢ã³ãåŽã§éåžžã«å€ãã®ã³ãŒããèšè¿°ããå¿
èŠããããŸãã ããã«ãæ®å¿µãªããšã«ãã³ãŒãã¯ããŸãåçŽã§ã¯ãªããããéçºè
ã¯å
éšããžãã¯ãšãPrometheusãäœããæ£ç¢ºã«ã©ã®ããã«èããŠããããç©æ¥µçã«ç解ããå¿
èŠããããŸãã
- Prometheusã¯ãæ£çŽãªã€ãã³ãæåã®æç³»åããŒã¿ããŒã¹ãšããŠäœ¿çšã§ããŸããã ç§ã¯ãããåã£ãŠãæ¯æãéå§ã®ã€ãã³ããæ¯æãçµäºã®ã€ãã³ãããããšèšãããšã¯ã§ããã圌ã«ä»ã®ãã¹ãŠã®ææšãã«ãŠã³ããããŸãã ã¯ã©ã€ã¢ã³ãã§å¿
èŠãªãã¹ãŠã®ã¡ããªãã¯ãäºåã«èšç®ããå¿
èŠããããŸããçªç¶ãããã®ãããããå€æŽããå¿
èŠãããå Žåãããã¯å®çšŒåã³ã³ããŒãã³ãã®æ¬¡ã®èšç®ã§ãããéåžžã«äžäŸ¿ã§ãã
- çµ±åãããã¡ããªãã¯ãå®è¡ããããšã¯éåžžã«å°é£ã§ãã å€æ°ã®ãµãŒãã¹ïŒããšãã°ããã¹ãŠã®ããã³ããšã³ããµãŒããŒäžã®ã¯ã©ã€ã¢ã³ããžã®å¿çæéã®ããŒã»ã³ã¿ã€ã«ïŒã®å
±éã®ã¡ããªãã¯ãåéããå¿
èŠãããå ŽåãPrometheusãä»ããŠãããçè«çã«ãè¡ãããšã¯ã§ããŸããã Grafanaã¬ãã«ã§æ¢ã«ããã€ãã®ãããŸããªå¹³ååèšãè¡ãããšãã§ããŸãã ããã¡ããŠã¹èªäœã¯ãããè¡ãããšãã§ããŸããã
ãããã£ãŠãç§ã¯çå£ã«ã©ããã«è¡ããšæããŸãã
ããã«ãã©ã®ãããªã¢ãŒããã¯ãã£äžã®èª²é¡ããã£ãããããããã©ã®ããã«è§£æ±ºããããäœãè¯ãããäœãæªããã«ã€ããŠãããã€ãã®åå¥ã®ã±ãŒã¹ã«ã€ããŠã話ããŸãã
ããŒã¿ããŒã¹ã®äœ¿çš
äžè¬çã«ãæ¯æãã¯éåžžã«å°é£ã§ãã 以äžã¯ãæ¯æãã³ã³ããã¹ãã®èª¬æã®äŸã§ãïŒå€ãã®ã¿ãã«ïŒé£æ³é
åïŒãã¿ãã«ãªã¹ãããªã¹ãã¿ãã«ãããã€ãã®ãã©ã¡ãŒã¿ãŒã ãããŠããããã¯ãã¹ãŠãããžãã¹ããžãã¯ã®å€åã«ãã絶ããå€åããŠããŸãã

æ£çŽã«èšããšãå€ãã®ããŒãã«ãããããããã®éã«ã¯å€ãã®ãªã³ã¯ããããŸãã ãã®çµæãORMãå¿
èŠã«ãªããåãè¿œå ãããšãã«è€éãªç§»è¡ããžãã¯ãå¿
èŠã«ãªããŸãã PostgreSQLã§ã¯ãããŒãã«ã«æ°ããNULLå¯èœåãè¿œå ããã ãã§ãïŒç¹å®ã®ç¶æ³ã§ã¯ïŒé·ãéããã®ããŒãã«ãå®å
šã«äœ¿çšã§ããªããªããšããäºå®ã«ã€ãªããããšãæãåºããŠãã ããã ã€ãŸã å®éãå€ãã®äººãèããããã«ãnull蚱容åãè¿œå ããããšã¯ã¢ãããã¯ããªãŒæäœã§ã¯ãããŸããã ç§ãã¡ã¯ããã«äžåºŠã€ãŸãããããšãããããŸããã
ããã¯ãã¹ãŠäžå¿«ã§æ²ããããšã§ããç¹ã«ORMã䜿çšããŠããå Žåã¯ãããããã¹ãŠé¿ããããšæããŸãã ãããã£ãŠãJSONã§ãããã®ãã¹ãŠã®å€§èŠæš¡ã§è€éãªãšã³ãã£ãã£ãåé€ããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãé€ããŠããã®ãã¹ãŠã®ããŒã¿ãšæ§é ãã©ãã«ãå¿
èŠãªãããšãçŸå®çã ããã§ãã ç§ã¯ãã®ã¢ãããŒãã10幎é䜿çšããŠãããæåŸã«ããããäž»æµã§ã¯ãªããšããŠããå°ãªããšãäžè¬çã«åãå
¥ããããŠããæ
£è¡ã«ãªã£ãŠããããšã«æ°ä»ããŸããã
JSONãã©ã¯ãã£ã¹
ååãšããŠãè€éãªããžãã¹ããŒã¿ãJSONã®åœ¢åŒã§ããŒã¿ããŒã¹ã«ä¿åããããšã§ãããã©ãŒãã³ã¹ãäœäžããããšã¯ãªããå Žåã«ãã£ãŠã¯åã€ããšããããŸããã 次ã«ã誀ã£ãŠèªåèªèº«ã足ã§æããªãããã«ããæ¹æ³ã説æããŸãã
ãŸãã競åã®å¯èœæ§ã«ã€ããŠããã«èããªããã°ãªããŸããã1ã€ã®ããŒã¿ãã£ãŒã«ãã»ãããæã€ãªããžã§ã¯ãã®ããŒãžã§ã³ãã§ããããå¥ã®ããŒãžã§ã³ã®ããŒã¿ãã£ãŒã«ãã»ãããæ¢ã«ããå¥ã®ããŒãžã§ã³ããªãªãŒã¹ããŸãããå€ãJSONãäœããã®æ¹æ³ã§èªã¿åãã䟿å©ãªãªããžã§ã¯ãã«å€æããå¿
èŠããããŸãã
ãã®åé¡ã解決ããã«ã¯ãéåžžãé©åãªã·ãªã¢ã©ã€ã¶ãŒ/ãã·ãªã¢ã©ã€ã¶ãŒãèŠã€ããã ãã§ååã§ã.JSONãããã®ãã£ãŒã«ãããã®ãããªãã£ãŒã«ãã»ããã«å€æããå¿
èŠãããããšãæ瀺çã«èšãããšãã§ããŸãããããã®ãã®ã¯ãŸããŸãã·ãªã¢ã«åãããã¹ãã§ãããã©ã«ãå€ãªã©ã§çœ®ãæãã Javaã§ã¯ã幞ããªããšã«ããã®ãããªã·ãªã¢ã©ã€ã¶ãŒã«åé¡ã¯ãããŸããã ç§ã®ãæ°ã«å
¥ãã¯ãžã£ã¯ãœã³ã§ãã
æžã蟌ã¿äžã®æ§é ã®ããŒãžã§ã³ãããŒã¿ããŒã¹ã«ä¿åããŠãã ãããã€ãŸã JSONãä¿åããåãã£ãŒã«ãã®é£ã«ãããŒãžã§ã³ãä¿åãããå¥ã®ãã£ãŒã«ããããã¯ãã§ãã ãŸããããã¯ãæ°ããããŒãžã§ã³ã®å€ãããŒãžã§ã³ãç解ããããã®ã³ãŒããééãªããµããŒãããªãããã«å¿
èŠã§ãã
æ°ããããŒãžã§ã³ããªãªãŒã¹ããæ°ããããŒã¿æ§é ãååŸããããããŒã¿ããŒã¹å
šäœãå®è¡ããæ§é ã®ãã¹ãŠã®å€ãããŒãžã§ã³ãæ€çŽ¢ããããããèªã¿åããæ°ãã圢åŒã§æžã蟌ã¿ããã°ããæéãçµéããåŸã移è¡ã¹ã¯ãªãããäœæããã ãã§ãã ãããŒã¿ããŒã¹ã«ã¯æ倧2ã3ã®ç°ãªãããŒãžã§ã³ã®ããŒã¿ããããé·å¹Žã«ããã£ãŠèç©ããããŸããŸãªãã®ã®ãµããŒãã«èŠããããšã¯ãããŸããã ããã¯ãèªåèªèº«ãã¬ã¬ã·ãŒããåãé€ããèªåèªèº«ãæè¡ç矩åããåãé€ãããšã§ãã
PostgreSQLã®å Žå-jsonãšjsonbãéžæããŸããããããããããã®éžæã¯ãŸã çã«ããªã£ãŠããŸãã ããšãã°ããã£ãšåã«å§ããã®ã§JSONã䜿çšããŸããã JSONããŒã¿åã¯åãªãããã¹ããã£ãŒã«ãã§ããããã®äžã®ã©ãããã¯ããŒã«ããããã«ãPostgreSQLã¯æ¯å解æããŸãã ãã®ãããéçšã§ã¯ãããŒã¿ããŒã¹å
ã®jsonãªããžã§ã¯ãã®å
éšã«å床å
¥ããªãããã«ããŠãã ãããããã¯ãäžå
·åã®ãµããŒããŸãã¯ä¿®æ£ã®å Žåã«éããŸãã è¯ãæå³ã§ãSQLã³ãŒãã«ã¯jsonãã£ãŒã«ããæäœããã³ãã³ãã¯ãªãã¯ãã§ãã
JSONBã䜿çšããå ŽåãPostgreSQLã¯ãã¹ãŠããã€ããªåœ¢åŒã«ãã¡ããšè§£æããŸãããJSONãªããžã§ã¯ãã®å
ã®å€èŠ³ãä¿æããŸããã ããšãã°ãç§ãã¡ã®å
ã®ããŒã¿ãä¿åããå Žåãåžžã«JSONã®ã¿ã䜿çšããŸãã
JSONBã¯ãŸã å¿
èŠãããŸããããçŸæç¹ã§ã¯ãJSONBãåžžã«äœ¿çšããããã«ã€ããŠããèããªãããšãæ¬åœã«çã«ããªã£ãŠããŸãã åçŽãªèªã¿åããšæžã蟌ã¿ã§ããããã©ãŒãã³ã¹ã®å·®ã¯ã»ãšãã©ãŒãã«ãªããŸããã
PCI DSSã åçŽãªãã®ããé£ãããããã®ãŸã§ããããŠãŠã§ããèµ·æ¥å®¶ã«ãªãæ¹æ³
éçºæ®µéã§ãããçç£ã«å
¥ãããªãåã«ãã«ãŒãçªå·èªäœãå«ãéè¡ã«ãŒãæ
å ±ã䜿çšããå°ããªã·ã³ãã«ãªãµãŒãã¹ããããŸããããã¡ããã
PostgreSQL ã䜿çšããŠæå·åããŸãã ã åæã«ãçè«çã«ã¯ãéçšç®¡çè
ã¯ãããããã®æå·åã®éµãã©ããã§èŠã€ããŠäœããèŠã€ããããšãã§ããŸãããç§ãã¡ã¯åœŒãå®å
šã«
ä¿¡é ŒããŠããŸããã
ãµãŒãã¹ã®ä¿¡é Œæ§ã¯ã
ã¢ã¯ãã£ãã¹ã¿ã³ãã€ã«ãã£ãŠå®è£
ãããŸããããµãŒãã¹ãå°ãããããããã«åèµ·åããä»ã®ã³ã³ããŒãã³ãã¯3ã5ç§åŸ
æ©ãããããäœããã®è€éãªã¯ã©ã¹ã¿ãŒã·ã¹ãã ãç©ã¿äžããã®ã¯æå³ããããŸããã
éå§åã«ãPCI DSSç£æ»ãéå§ããŸããããããŒã¿ã¢ã¯ã»ã¹å¶åŸ¡ã«ã¯ããªãå³ããèŠä»¶ããããç£æ»äººã®å Žåã次ã®äºå®ã«èŠçŽãããŸããã
- ããŒã¿ããŒã¹ãããã¹ãŠã®æ
å ±ãèªãããšãã§ãã人ãäžäººããã¹ãã§ã¯ãããŸããã äžç·ã«ã¢ã¯ã»ã¹ããå¿
èŠãããã®ã¯ãå°ãªããšãæ°äººã§ãªããã°ãªããŸããã
- ã¢ã¯ã»ã¹ããŒã®å®æçãªå€æŽãå¿
èŠã§ãã
- PCI DSSã§ã¯ãæ€åºãããè匱æ§ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãæŽæ°ããå¿
èŠããããŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã€ã³ãã©ã¹ãã©ã¯ãã£ãœãããŠã§ã¢ã®è匱æ§ã¯éåžžã«äžè¬çã§ãããããã·ã¹ãã ãé »ç¹ã«æŽæ°ããå¿
èŠããããŸãã
ãããããããŒãç¥ã£ãŠãã人ã1人ãããªãå Žåã¯ããªãã¬ãŒã·ã§ã³ãããŒãžã£ãŒãžã®ä¿¡é Œãåæ¢ããã¹ããŒã ãèãåºãããšããŸãã

è«ççã«ã·ã£ããŒã«èšç»ã«å°éããŸãã ããã¯ãæ¢è£œã®ããŒã«åºã¥ããŠããã€ãã®ããŒãçæããããã®ãµãã»ãããå
ã®ããŒãçæã§ããå Žåã®ããŒçææ¹æ³ã§ãã
ããšãã°ãé·ãããŒãäœæããããã«5ã€ã®ããŒã¹ã«åå²ããŠã3ã€ã®ãã¡ã©ãã§ãå
ã®ããŒãçæã§ããããã«ããŸãã ãã®åŸãããã3ã€ã®æäœãåæ£ãã誰ããç
æ°ã«ãªã£ããããã¹ã«ä¹ã£ããããå Žåã«åããŠã2ã€ãé庫ã«ä¿ç®¡ããå®å¿ããŠç掻ããŸãã ãªãªãžãã«ã®é·ãããŒã¯äžèŠã§ããããã®ããŒã¹ã®ã¿ãå¿
èŠã§ãã
ãµãŒãã¹ã§ã·ã£ããŒã«ã¹ããŒã ã«åãæ¿ããåŸãããŒãçæããã³å€æŽããããžãã¯ã衚瀺ãããããšã¯æããã§ãã ããŒãçæããããã«ãå¥åã®virtualochkaã䜿çšãããŸãã
- ããŒãçæãããŸã
- 管çè
ã«é
åž
- virtualochkaã殺ãããŸãã
ãã®çµæãSB-schnikovã®ååšäžã§æ¥éã«æ»ã«ãããŠããã·ã¹ãã äžã§äœæããããçæããããããŒã®ã¿ãé
åžãããããã誰ãå
ã®ããŒãèªèã§ããŸããã
ããŒãå€æŽãããšããåæã«2ã€ã®å®éã®ããŒãã·ã¹ãã ã«ä¿æã§ããããšãããããŸãã1ã€ã¯å€ããã®ã§ããã1ã€ã¯æ°ãããã®ã§ãããŒã¿ã®äžéšã¯å€ããã®ã§æå·åãããŸããæ°ããããŒãåæå·åããæé ãå¿
èŠã§ãã
ã³ã³ããŒãã³ããä»ããéå§ããã«ã¯2ã3人ããããããããã«ã¯30ç§ã§ã¯ãªãæ°åããããŸãã ãã®ãããåèµ·åæã®åçŽãªã³ã³ããŒãã³ãã«ã¯æ°åããããè€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãåæã«åäœããã¢ã¯ãã£ã/ã¢ã¯ãã£ãã¹ããŒã ã«åãæ¿ããå¿
èŠããããŸãã
ãããã£ãŠãæ°åè¡ã®åçŽã§æçœãªãµãŒãã¹ã¯ãããªãè€éãªèšèšã«ãªããŸããè€éãªéå§ããžãã¯ãã¯ã©ã¹ã¿ãªã³ã°ãããè€éãªä¿å®æ瀺ãå¿
èŠã§ãã éåžžã®ã·ã³ãã«ãªãŠã§ããããç§ãã¡ã¯åãã§èµ·æ¥å®¶ã«ãªããŸããã ãããŠãæ®å¿µãªããšã«ãããã¯éåžžã«é »ç¹ã«çºçããŸãã ããã«ãããããããžã¡ã³ããšããžãã¹ã¯ãå
šäœãèŠãŠãä»ãšåãããã«äžãäžã®ããã«ãã¹ãŠã®ããŒã¿ãæå·åããå¿
èŠããããã©ãã§ãActive-Activeã奜ãã ãšèšããŸããã ãããŠãççŽã«èšã£ãŠããããã®ããžãã¹äžã®æ¬²æ±ã¯å¿
ãããç°¡åã«å®çŸã§ãããšã¯éããŸããã
æ¯æãã®ããžãã¯ã é£ãããã®ããã·ã³ãã«ãªãã®ãŸã§
ç§ãèšã£ãããã«ãæ¯æãã¯éåžžã«è€éã§ãã 以äžã¯ããŠãŒã¶ãŒããæçµçãªã«ãŠã³ã¿ãŒããŒãã£ã«ééããããã»ã¹ã®äŸç€ºçãªå³ã§ããããã¹ãŠãå³ã«ããããã§ã¯ãããŸããã æ¯æãã®éçšã§ãäžéšã®å€éšãšã³ãã£ãã£ã«å€ãã®äŸåé¢ä¿ããããŸããéè¡ãååŒçžæãéè¡æ
å ±ã·ã¹ãã ããã©ã³ã¶ã¯ã·ã§ã³ããã©ã³ã¶ã¯ã·ã§ã³ããããããããã¹ãŠã確å®ã«æ©èœããã¯ãã§ãã

ä¿¡é Œã§ãã-ããã¯ããéã誰ã®åŽã«ãããããããŠãã¹ãŠãä»èœã¡ãŠãããã©ããã誰ãããã®ãéãèŠæ±ããããåžžã«ç¥ã£ãŠããããšãæå³ããŸãã æãéèŠãªããšã¯ãç§ãã¡ãšã§ã¯ãªããçžææ¹ã§åçµããå¯èœæ§ããããŸãã ãããŠãããããã¹ãŠã確èªããŠãŠãŒã¶ãŒã«å ±åã§ããããã«ã圌ãã誰ããåãäžãã£ãŠããã®ããæ£ç¢ºã«ç¥ãå¿
èŠãããããã¡ãããã§ããã ãåé¡ãå°ãªãããšãæãŸããã
æéç¶æ
ãã·ã³

ãã¡ãããæåã¯
FSM ïŒéåžžã®ç¶æ
ãã·ã³ïŒããããåã€ãã³ãã¯ãã©ã³ã¶ã¯ã·ã§ã³ã§åŠçãããŸãã çŸåšã®ç¶æ
ãDââBMSã«ä¿åãããŸãã ãã¹ãŠèªåã§å®è£
ã
æåã®åé¡ã¯ãåæã€ãã³ããããããšã§ããããšãã°ãæ¯æãã®éå§ã確èªãããŠãŒã¶ãŒã«é¢é£ããã€ãã³ããåŠçããŸãã ãã®æç¹ã§ãååŒã®å¯èœæ§ããã£ã³ã»ã«ããååŒå
ããã®ã€ãã³ããçºçãããã®ã€ãã³ããåŠçããå¿
èŠããããŸãã ãããã£ãŠãäœæ¥ã®ããžãã¯ã§ã¯ãäœããã®çš®é¡ã®ãªãœãŒã¹ããã¯ãååŸããããããã¯è§£é€ã解é€ãããã®ãåŸ
ã£ããããŸãã 幞ããªããšã«ãæåã¯ãã¹ãŠã®æ¯æãåŠçã1å°ã®ãã·ã³ã§è¡ãããããã¯ã¯JVMã¬ãã«ã§å®è£
ã§ããŸããã
ããã«ãå€ãã®ã¹ãããã«ã¯æ確ãªæ倧å®è¡æéïŒã¿ã€ã ã¢ãŠãïŒãããããããã®æéã¯ãã¿ã€ã ã¢ãŠãã€ãã³ããçºçãããšãã«ã©ããã§ä¿åãåŠçãç£èŠããå¿
èŠããããŸãïŒåæã«çºçããŸãïŒã
ããã¯ãã¹ãŠãJavaãã·ã³å
ã®ããã¯ã®ããžãã¯ãä»ããŠå®è£
ãããŸãããããã¯ãããŒã¿ããŒã¹ã§ã¯éåžžã«ç°¡åã§ã¯ãªãããã§ãã ãã®çµæãActive-Standbyã®ã¿ã䜿çšããé«å¯çšæ§çµç¹ãšãã³ã³ããã¹ãããã³ã¿ã€ã ã¢ãŠããå埩ããããã®äžé£ã®ç¹å¥ãªããžãã¯ãåããã·ã¹ãã ãåŸãããŸããã
è² è·ã¯ããªãå°ããã1ç§ãããã®æ¯æãã¯ãããæ°åãæ倧æœåšããŒã¯ã®å Žåã¯100æªæºã§ãã ãã ãããã®å Žåã1ç§ããã10åã®æ¯æãã§ãã1ç§ããã100件ã®ãªã¯ãšã¹ãïŒåå¥ã®ã¹ãããïŒã«ãªããŸãã ãããã¯å°ããªè² è·ãªã®ã§ã1å°ã®è»ã§ã»ãŒåžžã«ååã§ãã
ãã¹ãŠãçŽ æŽãããã£ãããã¢ã¯ãã£ã-ã¢ã¯ãã£ããå¿
èŠã ã£ãã
ã¢ã¯ãã£ãã¢ã¯ãã£ã
ãŸããShamirã¹ããŒã ã䜿çšããããšæããŸããããŸããä»ã®ãŠã£ãã·ã¥ãªã¹ããç»å ŽããŸããããŠãŒã¶ãŒã®3ïŒ
ã«ã®ã¿æ°ããããŒãžã§ã³ãæçš¿ããŸãããã æ¯æãã®ããžãã¯ãé »ç¹ã«å€æŽããŸãããã åæ¢æéãŒããªã©ã§ã¢ããããŒãããã
åæ£ããã¯ãè¡ãã®ã¯æ²ããã§ãããåæ£ã¿ã€ã ã¢ãŠããè¡ãã®ãæ²ããã§ãã ãããŠãããäžåºŠç§ãã¡ã¯ç解ãå§ããŸãã-æ¯æããšã¯äœã§ããïŒ æ¯æãã¯ãå³å¯ã«é çªã«åŠçããå¿
èŠãããäžé£ã®ã€ãã³ãã§ãããè€éã§å€æŽå¯èœãªç¶æ
ã§ãããæ¯æãåŠçã¯äžŠè¡ããŠå®è¡ããå¿
èŠããããŸãã
å®çŸ©ã誰ãèªèããŸãããïŒ ããã§ãã
æ¯æãã¯ä¿³åªã§ãã
Javaã«ã¯ããŸããŸãªã¢ã¯ã¿ãŒã¢ãã«ããããŸãã çŸãã
Akkaããããæã«ã¯å¥åŠã ãã¯ãŒã«ãª
Vert.xãããã
ã¯ãšãŒãµãŒã¯ã¯ããã«å°ãªãã ãããã¯ãã¹ãŠçŽ æŽãããã§ãããæ ¹æ¬çãªæ¬ é¥ã1ã€ãããŸãïŒããªããèãããã®ã§ã¯ãããŸããïŒ-
ä¿èšŒã
äžååã§ãã
ãããã¯ããããã¢ã¯ã¿ãŒéã®ã¡ãã»ãŒãžé
ä¿¡ãä¿èšŒãããã®ã§ã¯ãªãããã¹ãŠãããŒã¿ããŒã¹å
ã®ãã©ã³ã¶ã¯ã·ã§ã³å
ã§ã®äœæ¥ã«åé¡ããããŸãã
ç§ãã¡ã¯é·ãéãããèŠãŠãäœããæ£åžžãªç¶æ
ã«ä»äžããããšãã§ãããã©ãããèããŸãããããã®åŸããã€ã¯ãäœããŸããïŒPostgreSQLã®ãã¥ãŒã¯æŽæ°ã¹ãããã®ããã¯ãéžæããŸãã

ãœãªã¥ãŒã·ã§ã³å
šäœãæ°åè¡ã®ã³ãŒãã«ãªããéçºã«çŽ2é±éããã¹ããšæ¹è¯ã«çŽ2é±éããããŸããã åæã«ãéåžžã¯åãAkkaã§è¡ãããšã®ã§ããªã瀟å
ã®ããŒãºã®å€ããæºããããŸããã
ããã¯ãã¹ããã
ããã¯ãPostgreSQLã§ãã¥ãŒãå®è£
ããã®ã«æé©ã§ãã å®éããã®ã¡ã«ããºã ã¯ãMySQLãé€ããã¹ãŠã®ããŒã¿ããŒã¹ã«ãããŸãã
2ã€ã®ã©ãã«ããããšããŸãããïŒã¢ã¯ã¿ãŒãæã€ã©ãã«-ãããŒãããã³ãããã®ã¢ã¯ã¿ãŒã®ã€ãã³ãã©ãã«ã¯ããããŒåã§æ¥ç¶ãããŠããŸãã ã€ãã³ãã¯èªåã€ã³ã¯ãªã¡ã³ãããŒIDã§ãœãŒãããããã¹ãŠæ£åžžã§ãã SQLã¯ãšãªãäœæããŠããŸãã

ãããŒã®æåã®ã€ãã³ãã§æåã®ã€ãã³ããéžæããæŽæ°ã¹ãããããã¯ã®ããžãã¯ãæå®ããŸãã ãã¬ãŒãã«ããã¯ããªãå Žåããªã¯ãšã¹ãã¯éåžžââã®æŽæ°ãšãŸã£ããåãããã«æ©èœããŸããããã¯ãååŸããéžæããæåã®è¡ã«ããã¯ãèšå®ããŸãã æåã®ã¢ã¯ã¿ãŒã®è¡ãšããã®ã¢ã¯ã¿ãŒã®æåã®ã€ãã³ãã®è¡ã
åãã¯ãšãªã2åå®è¡ãããŸã£ããåãããšãè¡ããŸããããã§ã«ããã¯ãããŠããè¡ãã¹ãããããŸãã ãããã£ãŠã圌ã¯2çªç®ã®ã¢ã¯ã¿ãŒïŒããŒãã«ã®3è¡ç®ïŒã§æåã®ã€ãã³ããéžæããããã¯ããããŸãã
ãã®éã«ãæåã®ã€ãã³ãã®åŠçãå®äºãããããåé€ããŠããã©ã³ã¶ã¯ã·ã§ã³ãéãããšããŸãã ããã¯ã解é€ãããããã次ã«ãªã¯ãšã¹ããå®äºãããšãã«ãæåã®ã¢ã¯ã¿ãŒã®æåã®ã€ãã³ããååŸããŸãã

ãã¹ãŠååã«é«éãã€ç¢ºå®ã«åäœããŸãã å®äŸ¡ãªããŒããŠã§ã¢ã§ã¯ãåæäœãçŽ10ããªç§é
ããªããšããæ¡ä»¶ã§ã1ç§ãããçŽ1000ã®ãã®ãããªæäœãåãåããŸããã ç§ã¯ãã®ã¢ãããŒããæ°å䜿çšããŸããããã¹ãŠã®ã³ãŒãã¯æåéã3è¡ã§æžãããŠãããããããçš®é¡ã®äŸ¿å©ãªãã®ããã®ãããªãã¥ãŒã«ç°¡åã«è¿œå ã§ããŸãã
ãã®ãããªãã¥ãŒã§ã¯äœãåŸãããŸããïŒ
ãã¹ãŠã®ã¡ãã»ãŒãžã¯ãã©ã³ã¶ã¯ã·ã§ã³ã§ãïŒ
ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããããŒã¿ããŒã¹ã§äœããããã©ããã§ä»ã®ã¢ã¯ã¿ãŒã«ã¡ãã»ãŒãžãéä¿¡ããŸãããã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ããããšãã¡ãã»ãŒãžãéä¿¡ãããŸãããããã¯éåžžã«äŸ¿å©ã§ãã
åã®ã¡ãã»ãŒãžããã£ã³ã»ã«ããã¡ãã»ãŒãžãéä¿¡ããããšãèããå¿
èŠã¯ãããŸãããåŠçã®æåŸãšã³ãããåŸã«ã®ã¿ããã¹ãŠã®ã¡ãã»ãŒãžããããã§éä¿¡ããããšãèããå¿
èŠã¯ãããŸããã äžè¬ã«ãå€ãã®ããšã«ã€ããŠèããããšããããŸãã ããšãã°ã
ããã¯ã«ã€ããŠèããå¿
èŠã¯ãããŸããããã¹ãŠã®ã€ãã³ãã¯é çªã«åŠçããããããå®éã«ã¯ã¢ã¯ã¿ãŒãçºæãããããã§ãã
å®è£
ã§ã¯
ãæ¯æãããžãã¯ã®80ïŒ
ãå®éã«èµ·ãããããšã©ãŒãåŠçããŠ
ããããã
è€éãªãšã©ãŒåŠçããªã·ãŒãè¿œå ããŸãããå¥ã®ååŒå
ãå¥ã®ã²ãŒããŠã§ã€ãªã©ãéžæããå¿
èŠããããŸãã ããããçš®é¡ã®ãšã©ãŒãåŠçããããã®éåžžã«å€ãã®ç°ãªãè€éãªããžãã¯ããããŸãã
ç§ãã¡ã«ãšã£ãŠããã®ãœãªã¥ãŒã·ã§ã³ã¯
å¹æçã§ã -1ç§ããã100ã®æ¯æããç§ãã¡ã«åã£ãŠããŸãã
ãããããã®ãœãªã¥ãŒã·ã§ã³ã®é©çšç¯å²ã¯éåžžã«éãããŠããŸããç¬èªã®èªè»¢è»ã¯ãã©ãã§ãããªã䜿çšã§ããŸãã . . , , 100 . , , , , . , enterprise- â OpenSource .
. , â . â
.
â - . , , , , . ,
. , , .
: , , . , . . :
, - .
, . â
. , PostgreSQL
, â . PostgreSQL, , â . - , . , .
, . , - , , , . , , - .
, â 100 â . .
. , , . , -
, .
, , , . , , , skip locked - Redis Lua , . , .
, ( ). , .
â - , . : « », . , , , , , . !
. Business Intelligence
, , , . Business Intelligence .
, - ,
- , . â «
».
Power BI â ?
PowerBI â Microsoft: csv, csv , PowerBI. , , , , . csv â .
, â , â
. 1 , , , , Microsoft
1 . , .
, .
ClickHouse
â , ClickHouse! Kafk, ClickHouse, , , , , , . ClickHouse - . Clickhouse Redash. Redash, â , , , , drill-down .
, . - Tableau, . Tableau Vertica, , -, : Kafka, Kafka Vertica.
Vertica , , , , Tableau Server . â Vertica , , , ,. Tableau . , , , Vertica â , Community Edition , . Tableau -, - . , , , Tableau.
, ,
enterprise- ,
web- . , . Vertica : . â . , , .

, , ClickHouse, Tableau , ClickHouse - .
å
容
:
- , , ..;
- , , ;
- ;
- ;
- .
. , , , , , ,
, .
â : , , .

: -, , , -, . , .
,
CS. CS , :
CS â , , , .
, ,
Git : . Git - , - , - git .
, ,
, IntelliJ IDEA, Git . , , JetBrains , .
:
- .
- html, html, CMS .
- â , , . .
- ( ) - . Jira, , â , , , , .

, , - enterprise.
, â . embedded CMS , , -, . , , , , .
çµè«

?
.
web, enterprise,
, . , Vertica, .
, IBM
DB2 â , , , . , - , , .
enterprise web- , .
â .
. , -
. â , , .
â , .
Java SQL â , . , , , ,
ãã¥ãŒã¹
HighLoad++ 2018 8 9 , Percona Live.
Highload++ Siberia , 25 26 , , , , â .
++ , . :
- « ClickHouse » ClickHouse .
- Yuri Lilekovããéçºè
ãçµ±èšãå¿
èŠãšããçç±ããŸãã¯è£œåã®åââ質ãæ¹åããæ¹æ³ã«ã€ããŠã®ã¬ããŒãããæã¡ã§ããïŒ
- Alexander Serbul ããã©ã ãã¢ãŒããã¯ãã£ã®æ©èœãAmazon Lambdaãã€ã¯ããµãŒãã¹ãã©ãããã©ãŒã ãããã³Node.JSãšãã«ãã¹ã¬ããJavaã®èœãšãç©Žãšåå©ã«ã€ããŠèª¬æããŸãã