ãããããã«ïŒ
ã³ãããŠã€ã«ã¹ã«ããçŸåšã®ç¶æ³ãèæ
®ããŠãå€ãã®ã€ã³ã¿ãŒããã ãµãŒãã¹ã®è² è·ãå¢å ãå§ããŠããŸãã äŸãã°ã
ãã®èšäºã§ã¯ãé«éã§ãã©ãŒã«ã ãã¬ã©ã³ããªãµãŒãã¹ãäœæã§ããäžè¬çãªãã©ã¯ãã£ã¹ã«ã€ããŠç°¡åã«èª¬æããŸãã ãã ããèããããéçºã¹ããŒã ã®äžãããçŸæç¹ã§å®çŸå¯èœãªãã®ã®ã¿ãéžæããŸããã 䜿ããããã é ç®ããšã«ãæ¢è£œã®ã©ã€ãã©ãªãããããã¯ã©ãŠã ãã©ãããã©ãŒã ã䜿çšããŠåé¡ã解決ããæ©äŒããããŸãã
æ°Žå¹³ã¹ã±ãŒãªã³ã°
æãã·ã³ãã«ã§æãããç¥ãããŠãããã€ã³ãã åŸæ¥ãæãäžè¬ç㪠XNUMX ã€ã®è² è·åæ£ã¹ããŒã ã¯ãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãšåçŽã¹ã±ãŒãªã³ã°ã§ãã
ããšãã°ãæœè±¡çãªã¯ã©ãŠã ãã¡ã€ã« ã¹ãã¬ãŒãžãã€ãŸã OwnCloud ã OneDrive ãªã©ã®é¡äŒŒç©ãåãäžããŸãã
ãã®ãããªåè·¯ã®æšæºçãªå³ã以äžã«ç€ºããŸãããããã¯ã·ã¹ãã ã®è€éãã瀺ããŠããã ãã§ãã çµå±ã®ãšãããäœããã®æ¹æ³ã§ãµãŒãã¹ãåæããå¿ èŠããããŸãã ãŠãŒã¶ãŒãã¿ãã¬ãããããã¡ã€ã«ãä¿åãããããé»è©±ãã衚瀺ãããå Žåã¯ã©ããªããŸãã?
ã¢ãããŒãã®éã: åçŽã¹ã±ãŒãªã³ã°ã§ã¯ããŒãã®èœåãé«ããæºåãã§ããŠãããæ°Žå¹³ã¹ã±ãŒãªã³ã°ã§ã¯è² è·ãåæ£ããããã«æ°ããããŒããè¿œå ããæºåãã§ããŠããŸãã
CQRS
ãã®ã¢ãããŒãã®æåã®å©ç¹ã¯ãé·ããªã¯ãšã¹ãã®å®è¡äžã« (åºãæå³ã§ã®) æ¥ç¶ãåæã§ããããšã§ãã ããšãã°ãã»ãŒæšæºçãªã·ãŒã±ã³ã¹ãèããŠã¿ãŸãããã
- ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããŸããã
- ãµãŒããŒã®åŠçæéãé·ããªããŸããã
- ãµãŒããŒã¯ã¯ã©ã€ã¢ã³ãã«çµæãè¿ããŸããã
ãã€ã³ã 2 ã§æ¥ç¶ãåæããã (ãŸãã¯ãããã¯ãŒã¯ãåæ¥ç¶ãããããŸãã¯ãŠãŒã¶ãŒãå¥ã®ããŒãžã«ç§»åããŠæ¥ç¶ãåæããã) ãšæ³åããŠã¿ãŸãããã ãã®å ŽåããµãŒããŒãæ£ç¢ºã«äœãåŠçããããã«é¢ããæ å ±ããŠãŒã¶ãŒã«å¿çããŠéä¿¡ããããšã¯å°é£ã«ãªããŸãã CQRS ã䜿çšããå Žåãã·ãŒã±ã³ã¹ã¯å°ãç°ãªããŸãã
- ã¯ã©ã€ã¢ã³ãã¯æŽæ°ããµãã¹ã¯ã©ã€ãããŸããã
- ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããŸããã
- ãµãŒããŒã¯ããªã¯ãšã¹ããåãå ¥ããããŸããããšå¿çããŸããã
- ãµãŒããŒã¯ãã€ã³ãã1ãããã®ãã£ãã«ãéããŠçµæãè¿ããŸããã
ã芧ã®ãšããããã®ã¹ããŒã ã¯ããå°ãè€éã§ãã ããã«ãããã«ã¯çŽæçãªãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®ã¢ãããŒããæ¬ ããŠããŸãã ãã ããã芧ã®ãšããããªã¯ãšã¹ãã®åŠçäžã«æ¥ç¶ãåæãããŠããšã©ãŒã¯çºçããŸããã ããã«ãå®éã«ãŠãŒã¶ãŒãè€æ°ã®ããã€ã¹ (æºåž¯é»è©±ãšã¿ãã¬ãããªã©) ãããµãŒãã¹ã«æ¥ç¶ããŠããå Žåãäž¡æ¹ã®ããã€ã¹ã«å¿çãå±ãããšã確èªã§ããŸãã
èå³æ·±ãããšã«ãåä¿¡ã¡ãã»ãŒãžãåŠçããã³ãŒãã¯ãã¯ã©ã€ã¢ã³ãèªäœã®åœ±é¿ãåããã€ãã³ããšãä»ã®ã¯ã©ã€ã¢ã³ãããã®ã€ãã³ããå«ãä»ã®ã€ãã³ãã®äž¡æ¹ã§åã (100% ã§ã¯ãªã) ã«ãªããŸãã
ãã ããå®éã«ã¯ãäžæ¹åãããŒãé¢æ°åã¹ã¿ã€ã« (RX ãªã©ã䜿çšããŠ) ã§åŠçã§ãããšããäºå®ã«ãããè¿œå ã®ããŒãã¹ãåŸãããŸãã ãããŠãæ¬è³ªçã«ã¢ããªã±ãŒã·ã§ã³ãå®å šã«ãªã¢ã¯ãã£ãã«ããŸãæ©èœçãªã¢ãããŒãã䜿çšããŠäœæã§ãããããããã¯ãã§ã«å€§ããªå©ç¹ã§ãã ãã¡ãã ããã°ã©ã ã®å Žåãããã«ããéçºãªãœãŒã¹ãšãµããŒã ãªãœãŒã¹ãå€§å¹ ã«ç¯çŽãããŸãã
ãã®ã¢ãããŒããæ°Žå¹³ã¹ã±ãŒãªã³ã°ãšçµã¿åããããšãããŒãã¹ãšããŠããããµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããå¥ã®ãµãŒããŒããå¿çãåä¿¡ã§ããããã«ãªããŸãã ãããã£ãŠãã¯ã©ã€ã¢ã³ãã¯èªåã«ãšã£ãŠéœåã®ãããµãŒãã¹ãéžæã§ããå éšã®ã·ã¹ãã ã¯åŒãç¶ãã€ãã³ããæ£ããåŠçã§ããŸãã
ã€ãã³ããœãŒã·ã³ã°
ãåç¥ã®ãšãããåæ£ã·ã¹ãã ã®äž»ãªç¹åŸŽã® XNUMX ã€ã¯ãå ±éã®æéãå ±éã®ã¯ãªãã£ã«ã« ã»ã¯ã·ã§ã³ãååšããªãããšã§ãã XNUMX ã€ã®ããã»ã¹ã«ã€ããŠã¯ã(åããã¥ãŒããã¯ã¹äžã§) åæãå®è¡ã§ããŸãããã®éãä»ã®èª°ããã®ã³ãŒããå®è¡ããŠããªãããšãä¿èšŒãããŸãã ãã ããããã¯åæ£ã·ã¹ãã ã«ãšã£ãŠå±éºã§ãããªãŒããŒããããå¿ èŠã«ãªããã¹ã±ãŒãªã³ã°ã®çŸããããã¹ãŠæãªãããŠããŸããŸãããã¹ãŠã®ã³ã³ããŒãã³ããäŸç¶ãšã㊠XNUMX ã€ã®ã³ã³ããŒãã³ããåŸ æ©ããããšã«ãªããŸãã
ããããéèŠãªäºå®ãããããŸããé«éåæ£ã·ã¹ãã ã¯åæã§ããªãããªããªãããã©ãŒãã³ã¹ãäœäžããããã§ãã äžæ¹ã§ãã³ã³ããŒãã³ãéã«ã¯äžå®ã®äžè²«æ§ãå¿
èŠã«ãªãããšããããããŸãã ãã®ããã«ã次ã®ã¢ãããŒãã䜿çšã§ããŸã
åŸæ¥ã®ããŒã¿ããŒã¹ã§ã¯éåžžã«é »ç¹ã«äœ¿çšãããããšãç解ããããšãéèŠã§ãã
ãã ããå
ã®ã¿ã¹ã¯ã«æ»ããŸãããã ã·ã¹ãã ã®äžéšãæ§ç¯ã§ããå Žå
ãã®ã¢ãããŒãã®éèŠãªç¹åŸŽ:
- åä¿¡ãªã¯ãšã¹ãã¯ãããã XNUMX ã€ã®ãã¥ãŒã«å ¥ããããŸãã
- ãªã¯ãšã¹ãã®åŠçäžã«ããµãŒãã¹ã¯ã¿ã¹ã¯ãä»ã®ãã¥ãŒã«é 眮ããããšããããŸãã
- ååä¿¡ã€ãã³ãã«ã¯èå¥åããããŸã (éè€æé€ã«å¿ èŠã§ã)ã
- ãã¥ãŒã¯ææ³çã«ã¯ãè¿œå ã®ã¿ãã®ã¹ããŒã ã«åŸã£ãŠæ©èœããŸãã èŠçŽ ãåé€ããããåé 眮ãããããããšã¯ã§ããŸããã
- ãã¥ãŒã¯ FIFO ã¹ããŒã ã«åŸã£ãŠåäœããŸã (ããŒãããžãŒã§ããããªãã)ã 䞊åå®è¡ãè¡ãå¿ èŠãããå Žåã¯ããã段éã§ãªããžã§ã¯ããå¥ã®ãã¥ãŒã«ç§»åããå¿ èŠããããŸãã
ç§ãã¡ã¯ãªã³ã©ã€ã³ ãã¡ã€ã« ã¹ãã¬ãŒãžã®å Žåãæ€èšããŠããããšãæãåºãããŠãã ããã ãã®å Žåãã·ã¹ãã ã¯æ¬¡ã®ããã«ãªããŸãã
å³å ã®ãµãŒãã¹ã¯å¿ ãããå¥ã®ãµãŒããŒãæå³ããããã§ã¯ãªãããšãéèŠã§ãã ããã»ã¹ãããåããããããŸããã ãã XNUMX ã€éèŠãªããšã¯ãã€ããªãã®ãŒçã«ããããã®ãã®ã¯æ°Žå¹³ã¹ã±ãŒãªã³ã°ãç°¡åã«é©çšã§ããæ¹æ³ã§åé¢ãããŠãããšããããšã§ãã
XNUMX 人ã®ãŠãŒã¶ãŒã®å Žåãå³ã¯æ¬¡ã®ããã«ãªããŸã (ç°ãªããŠãŒã¶ãŒåãã®ãµãŒãã¹ã¯ç°ãªãè²ã§ç€ºãããŸã)ã
ãã®ãããªçµã¿åããã«ããããŒãã¹:
- æ å ±åŠçãµãŒãã¹ã¯åé¢ãããŠããŸãã åãåºåãããŠããŸãã ã·ã¹ãã ã®ã¹ã«ãŒããããåäžãããå¿ èŠãããå Žåã¯ãããå€ãã®ãµãŒããŒã§ããå€ãã®ãµãŒãã¹ãèµ·åããã ãã§ãã
- ãŠãŒã¶ãŒããæ å ±ãåãåã£ãå ŽåãããŒã¿ãå®å šã«ä¿åããããŸã§åŸ ã€å¿ èŠã¯ãããŸããã éã«ããããããŸããããšçããŠãããåŸã ã«äœæ¥ãéå§ããã ãã§ãã åæã«ãæ°ãããªããžã§ã¯ãã®è¿œå ã¯ããã«è¡ããããŠãŒã¶ãŒã¯ãµã€ã¯ã«å šäœã®å®å šãªãã¹ãåŸ ã€å¿ èŠããªãããããã¥ãŒã«ãã£ãŠããŒã¯ãå¹³æ»åãããŸãã
- äŸãšããŠãåäžã®ãã¡ã€ã«ãããŒãžããããšããéè€æé€ãµãŒãã¹ãè¿œå ããŸããã 1% ã®ã±ãŒã¹ã§é·æéåäœããŠããã¯ã©ã€ã¢ã³ãã¯ã»ãšãã©ããã«æ°ã¥ããŸãã (äžèšãåç §)ãããã¯å€§ããªå©ç¹ã§ããXNUMX% ã®é床ãšä¿¡é Œæ§ãèŠæ±ãããªããªã£ãããã§ãã
ãã ããæ¬ ç¹ã¯ããã«ããããŸãã
- ç§ãã¡ã®ã·ã¹ãã ã¯å³å¯ãªäžè²«æ§ã倱ããŸããã ããã¯ãããšãã°ãç°ãªããµãŒãã¹ã«ãµãã¹ã¯ã©ã€ãããå Žåãçè«çã«ã¯ç°ãªãç¶æ ãååŸã§ããããšãæå³ããŸã (ãµãŒãã¹ã® XNUMX ã€ãå éšãã¥ãŒããéç¥ãåä¿¡ããæéããªãå¯èœæ§ããããã)ã å¥ã®çµæãšããŠãã·ã¹ãã ã«ã¯å ±éæéããªããªããŸããã ã€ãŸãããµãŒããŒéã®ã¯ããã¯ãåæããŠããªãå¯èœæ§ããããã (ããã«ãXNUMX ã€ã®ãµãŒããŒã§åãæéãçæ³é·ã§ãããã)ãããšãã°ãåçŽã«å°çæéã ãã§ãã¹ãŠã®ã€ãã³ãã䞊ã¹æ¿ããããšã¯äžå¯èœã§ãã
- (ããŒã¿ããŒã¹ã®å Žåã®ããã«) åçŽã«ããŒã«ããã¯ã§ããã€ãã³ãã¯ãªããªããŸããã 代ããã«ãæ°ããã€ãã³ããè¿œå ããå¿
èŠããããŸã-
è£åã€ãã³ã ãããã«ãããæåŸã®ç¶æ ãå¿ èŠãªç¶æ ã«å€æŽãããŸãã åæ§ã®åéã®äŸãšããŠãå±¥æŽãæžãæããªããš (ããã¯å Žåã«ãã£ãŠã¯æªãããšã§ã)ãgit ã§ã³ããããããŒã«ããã¯ããããšã¯ã§ããŸããããç¹å¥ãªããŒã«ããã¯ãè¡ãããšã¯ã§ããŸããããŒã«ããã¯ã³ããã ãåºæ¬çã«å€ãç¶æ ãè¿ãã ãã§ãã ãã ãã誀ã£ãã³ããããšããŒã«ããã¯ã¯äž¡æ¹ãšãå±¥æŽã«æ®ããŸãã - ããŒã¿ ã¹ããŒãã¯ãªãªãŒã¹ããšã«å€æŽãããå¯èœæ§ããããŸãããå€ãã€ãã³ãã¯æ°ããæšæºã«æŽæ°ã§ããªããªããŸã (ã€ãã³ãã¯ååçã«å€æŽã§ããªããã)ã
ã芧ã®ãšãããã€ãã³ã ãœãŒã·ã³ã°ã¯ CQRS ãšããŸãé£æºããŸãã ããã«ãããŒã¿ ãããŒãåé¢ããã«ãå¹ççã§äŸ¿å©ãªãã¥ãŒãåããã·ã¹ãã ãå®è£ ããããšèªäœããã§ã«å°é£ã§ãããã¥ãŒã®ãã©ã¹ã®å¹æå šäœãç¡å¹ã«ããåæãã€ã³ããè¿œå ããå¿ èŠãããããã§ãã äž¡æ¹ã®ã¢ãããŒããåæã«é©çšããã«ã¯ãããã°ã©ã ã³ãŒããè¥å¹²èª¿æŽããå¿ èŠããããŸãã ä»åã®å Žåããã¡ã€ã«ããµãŒããŒã«éä¿¡ãããšãã®å¿çã¯ãokãã®ã¿ã§ãããã¯ããã¡ã€ã«ãè¿œå ããæäœãä¿åããããããšãæå³ããã ãã§ãã 圢åŒçã«ã¯ãããã¯ããŒã¿ããã§ã«ä»ã®ããã€ã¹ã§å©çšå¯èœã§ããããšãæå³ãããã®ã§ã¯ãããŸãã (ããšãã°ãéè€æé€ãµãŒãã¹ãã€ã³ããã¯ã¹ãåæ§ç¯ã§ãããªã©)ã ãã ãããã°ãããããšãã¯ã©ã€ã¢ã³ãã¯ããã¡ã€ã« X ãä¿åãããŸããããšãã圢åŒã®éç¥ãåãåããŸãã
çµæãšããŠïŒ
- ãã¡ã€ã«éä¿¡ã¹ããŒã¿ã¹ã®æ°ã¯å¢å ããŠããŸããåŸæ¥ã®ããã¡ã€ã«éä¿¡æžã¿ãã®ä»£ããã«ãããã¡ã€ã«ããµãŒããŒäžã®ãã¥ãŒã«è¿œå ãããŸããããšããã¡ã€ã«ãã¹ãã¬ãŒãžã«ä¿åãããŸããããšãã XNUMX ã€ã®ã¹ããŒã¿ã¹ã衚瀺ãããŸãã åŸè ã¯ãä»ã®ããã€ã¹ããã§ã«ãã¡ã€ã«ã®åä¿¡ãéå§ã§ããããšãæå³ããŸã (ãã¥ãŒãç°ãªãé床ã§åäœãããšããäºå®ã«åãããŠèª¿æŽãããŠããŸã)ã
- æåºæ å ±ãããŸããŸãªãã£ãã«ãä»ããŠéä¿¡ãããããã«ãªã£ããšããäºå®ã«ããããã¡ã€ã«ã®åŠçã¹ããŒã¿ã¹ãåä¿¡ããããã®ãœãªã¥ãŒã·ã§ã³ãèãåºãå¿ èŠããããŸãã ãã®çµæãåŸæ¥ã®ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãšã¯ç°ãªãããã¡ã€ã«ã®åŠçäžã«ã¯ã©ã€ã¢ã³ããåèµ·åã§ããŸããããã®åŠçèªäœã®ã¹ããŒã¿ã¹ã¯æ£ãããã®ã«ãªããŸãã ããã«ããã®ã¢ã€ãã ã¯åºæ¬çã«ç®±ããåºããŠããã«æ©èœããŸãã ãã®çµæãç§ãã¡ã¯å€±æã«å¯ŸããŠããå¯å®¹ã«ãªããŸããã
ã·ã£ãŒãã£ã³ã°
äžã§èª¬æããããã«ãã€ãã³ã ãœãŒã·ã³ã° ã·ã¹ãã ã«ã¯å³å¯ãªäžè²«æ§ãæ¬ ããŠããŸãã ããã¯ãè€æ°ã®ã¹ãã¬ãŒãžãåæããã«äœ¿çšã§ããããšãæå³ããŸãã ç§ãã¡ã®åé¡ã«ã¢ãããŒããããšã次ã®ããšãå¯èœã«ãªããŸãã
- ãã¡ã€ã«ãçš®é¡ããšã«åããŸãã ããšãã°ãåç/ãããªããã³ãŒãããŠãããå¹ççãªåœ¢åŒãéžæã§ããŸãã
- åœããšã«ã¢ã«ãŠã³ããåããŸãã å€ãã®æ³åŸã«ããããããå¿ èŠãšãªãå ŽåããããŸããããã®ã¢ãŒããã¯ã㣠ã¹ããŒã ã¯ãã®ãããªæ©äŒãèªåçã«æäŸããŸãã
ããã¹ãã¬ãŒãžããå¥ã®ã¹ãã¬ãŒãžã«ããŒã¿ã転éãããå Žåãæšæºçãªæ段ã§ã¯ãã¯ãååã§ã¯ãããŸããã æ®å¿µãªããããã®å Žåã¯ãã¥ãŒãåæ¢ãã移è¡ãå®è¡ããŠããéå§ããå¿ èŠããããŸãã äžè¬çãªã±ãŒã¹ã§ã¯ãããŒã¿ãããªã³ã¶ãã©ã€ãã§è»¢éããããšã¯ã§ããŸããããã€ãã³ã ãã¥ãŒãå®å šã«ä¿åãããŠããã以åã®ã¹ãã¬ãŒãžç¶æ ã®ã¹ãããã·ã§ãããããå Žåã¯ã次ã®ããã«ã€ãã³ããåçã§ããŸãã
- ã€ãã³ã ãœãŒã¹ã§ã¯ãåã€ãã³ãã«ç¬èªã®èå¥å (çæ³çã«ã¯ãæžå°ããªã) ããããŸãã ããã¯ãæåŸã«åŠçãããèŠçŽ ã® ID ã§ãããã£ãŒã«ããã¹ãã¬ãŒãžã«è¿œå ã§ããããšãæå³ããŸãã
- ãã¹ãŠã®ã€ãã³ããè€æ°ã®ç¬ç«ããã¹ãã¬ãŒãžã§åŠçã§ããããã«ããã¥ãŒãè€è£œããŸã (XNUMX ã€ç®ã¯ããŒã¿ããã§ã«ä¿åãããŠããã¹ãã¬ãŒãžã§ãXNUMX ã€ç®ã¯æ°èŠã§ãããŸã 空ã§ã)ã ãã¡ãããXNUMX çªç®ã®ãã¥ãŒã¯ãŸã åŠçãããŠããŸããã
- XNUMX çªç®ã®ãã¥ãŒãèµ·åããŸã (ã€ãŸããã€ãã³ãã®åçãéå§ããŸã)ã
- æ°ãããã¥ãŒãæ¯èŒç空ã®å Žå (ã€ãŸããèŠçŽ ã®è¿œå ãšååŸã®éã®å¹³åæéå·®ã蚱容ç¯å²å ã§ããå Žå)ããªãŒããŒãæ°ããã¹ãã¬ãŒãžã«åãæ¿ãå§ããããšãã§ããŸãã
ã芧ã®ãšãããç§ãã¡ã®ã·ã¹ãã ã«ã¯å³å¯ãªäžè²«æ§ããããŸããã§ããããçŸåšãä¿ã£ãŠããŸããã ååšããã®ã¯çµæçãªäžè²«æ§ã ãã§ããã€ãŸããã€ãã³ããåãé åºã§åŠçããã (ãã ããé 延ã¯ç°ãªãå¯èœæ§ããããŸã) ãšããä¿èšŒããããŸãã ãããŠãããå©çšãããšãã·ã¹ãã ãåæ¢ããããšãªãæ¯èŒçç°¡åã«å°çã®è£åŽãžããŒã¿ã転éããããšãã§ããŸãã
ãããã£ãŠããã¡ã€ã«ã®ãªã³ã©ã€ã³ ã¹ãã¬ãŒãžã«é¢ããäŸãç¶ãããšããã®ãããªã¢ãŒããã¯ãã£ã«ãã£ãŠãã§ã«å€ãã®å©ç¹ãåŸãããŸãã
- åçãªæ¹æ³ã§ãªããžã§ã¯ãããŠãŒã¶ãŒã®è¿ãã«ç§»åã§ããŸãã ããã«ããããµãŒãã¹ã®å質ãåäžãããããšãã§ããŸãã
- åœç€Ÿã¯äžéšã®ããŒã¿ãäŒæ¥å
ã«ä¿ç®¡ããå ŽåããããŸãã ããšãã°ããšã³ã¿ãŒãã©ã€ãº ãŠãŒã¶ãŒã¯ã(ããŒã¿æŒæŽ©ãé¿ããããã«) 管çãããããŒã¿ ã»ã³ã¿ãŒã«ããŒã¿ãä¿åããããšãèŠæ±ããããšããããããŸãã ã·ã£ãŒãã£ã³ã°ãéããŠãããç°¡åã«ãµããŒãã§ããŸãã ãŸãã顧客ãäºææ§ã®ããã¯ã©ãŠãã䜿çšããŠããå Žåããã®ã¿ã¹ã¯ã¯ããã«ç°¡åã«ãªããŸã (ããšãã°ã
Azure ã®ã»ã«ããã¹ãå ). - ãããŠæãéèŠãªããšã¯ããããè¡ãå¿ èŠããªããšããããšã§ãã çµå±ã®ãšãããæå㯠(ããã«äœæ¥ãéå§ããããã«) ãã¹ãŠã®ã¢ã«ãŠã³ãã« XNUMX ã€ã®ã¹ãã¬ãŒãžãããã°ååæºè¶³ããã§ãããã ãããŠããã®ã·ã¹ãã ã®æ倧ã®ç¹åŸŽã¯ãæ¡åŒµå¯èœã§ãããªãããåæ段éã§ã¯éåžžã«ã·ã³ãã«ã§ãããšããããšã§ãã XNUMX äžãã®ç¬ç«ãããã¥ãŒãªã©ãåŠçããã³ãŒããããã«èšè¿°ããå¿ èŠã¯ãããŸããã å¿ èŠã«å¿ããŠãããã¯å°æ¥çã«å®è¡ãããå¯èœæ§ããããŸãã
éçã³ã³ãã³ãã®ãã¹ãã£ã³ã°
ãã®ç¹ã¯éåžžã«æçœã«æãããããããŸããããå€ããå°ãªããæšæºã§ããŒããããã¢ããªã±ãŒã·ã§ã³ã«ã¯äŸç¶ãšããŠå¿
èŠã§ãã ãã®æ¬è³ªã¯åçŽã§ãããã¹ãŠã®éçã³ã³ãã³ãã¯ãã¢ããªã±ãŒã·ã§ã³ãé
眮ãããŠããã®ãšåããµãŒããŒããã§ã¯ãªãããã®ã¿ã¹ã¯å°çšã®ç¹å¥ãªãµãŒããŒããé
åžãããŸãã ãã®çµæããããã®æäœãããé«éã«å®è¡ãããŸã (æ¡ä»¶ä»ã nginx 㯠Java ãµãŒããŒãããé«éãã€äœã³ã¹ãã§ãã¡ã€ã«ãæäŸããŸã)ã ããã« CDN ã¢ãŒããã¯ã㣠(
éçã³ã³ãã³ãã®æãåçŽãã€æšæºçãªäŸã¯ãWeb ãµã€ãã®ã¹ã¯ãªãããšç»åã®ã»ããã§ãã ãããã䜿çšãããšãã¹ãŠãç°¡åã§ãããããã¯äºåã«ç¥ãããŠãããã¢ãŒã«ã€ã㯠CDN ãµãŒããŒã«ã¢ããããŒãããããããããšã³ã ãŠãŒã¶ãŒã«é åžãããŸãã
ãã ããå®éã«ã¯ãéçã³ã³ãã³ãã®å Žåã¯ãã©ã ã ã¢ãŒããã¯ãã£ã«äŒŒãã¢ãããŒãã䜿çšã§ããŸãã ã¿ã¹ã¯ (ãªã³ã©ã€ã³ ãã¡ã€ã« ã¹ãã¬ãŒãž) ã«æ»ããŸãããããã®ã¿ã¹ã¯ã§ã¯ããŠãŒã¶ãŒã«ãã¡ã€ã«ãé åžããå¿ èŠããããŸãã æãç°¡åãªè§£æ±ºçã¯ããŠãŒã¶ãŒã®ãªã¯ãšã¹ãããšã«å¿ èŠãªãã§ã㯠(æ¿èªãªã©) ããã¹ãŠå®è¡ããã¹ãã¬ãŒãžãããã¡ã€ã«ãçŽæ¥ããŠã³ããŒããããµãŒãã¹ãäœæããããšã§ãã ãã®ã¢ãããŒãã®äž»ãªæ¬ ç¹ã¯ãéçã³ã³ãã³ã (ç¹å®ã®ãªããžã§ã³ãæã€ãã¡ã€ã«ã¯å®éã«ã¯éçã³ã³ãã³ãã§ã) ããããžãã¹ ããžãã¯ãå«ãåããµãŒããŒã«ãã£ãŠé åžãããããšã§ãã 代ããã«ã次ã®å³ãäœæã§ããŸãã
- ãµãŒããŒã¯ããŠã³ããŒã URL ãæäŸããŸãã ããã¯ãfile_id + key ã®åœ¢åŒã«ããããšãã§ããŸããkey ã¯ãä»åŸ XNUMX æéãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããæš©å©ãäžããããããžã¿ã«çœ²åã§ãã
- ãã®ãã¡ã€ã«ã¯ã次ã®ãªãã·ã§ã³ãåããåçŽãª nginx ã«ãã£ãŠé
åžãããŸãã
- ã³ã³ãã³ãã®ãã£ãã·ã¥ã ãã®ãµãŒãã¹ã¯å¥ã®ãµãŒããŒã«é 眮ã§ãããããææ°ã®ããŠã³ããŒã ãã¡ã€ã«ããã¹ãŠãã£ã¹ã¯ã«ä¿åã§ããæ©èœãå°æ¥ã«åããŠæ®ããŠãããŸãã
- æ¥ç¶äœææã®ããŒã®ç¢ºèª
- ãªãã·ã§ã³: ã¹ããªãŒãã³ã° ã³ã³ãã³ãåŠçã ããšãã°ããµãŒãã¹å ã®ãã¹ãŠã®ãã¡ã€ã«ãå§çž®ããå Žåããã®ã¢ãžã¥ãŒã«ã§çŽæ¥è§£åãè¡ãããšãã§ããŸãã çµæãšããŠãIO æäœã¯å¿ èŠãªå Žæã§å®è¡ãããŸãã Java ã®ã¢ãŒã«ã€ãã¯å€§éã®è¿œå ã¡ã¢ãªãç°¡åã«å²ãåœãŠãŸãããããžãã¹ ããžãã¯ãå«ããµãŒãã¹ã Rust/C++ æ¡ä»¶æã«æžãçŽãããšãå¹æçã§ã¯ãªãå¯èœæ§ããããŸãã ç§ãã¡ã®å ŽåãããŸããŸãªããã»ã¹ (ãŸãã¯ãµãŒãã¹) ã䜿çšãããŠãããããããžãã¹ ããžãã¯ãš IO æäœãéåžžã«å¹æçã«åé¢ã§ããŸãã
ãã®ã¹ããŒã ã¯éçã³ã³ãã³ãã®é åžãšã¯ããŸã䌌ãŠããŸãã (éçããã±ãŒãžå šäœãã©ããã«ã¢ããããŒãããããã§ã¯ãªããã) ããå®éã«ã¯ããã®ã¢ãããŒãã¯ãŸãã«äžå€ããŒã¿ã®é åžã«é¢ä¿ããŠããŸãã ããã«ããã®ã¹ããŒã ã¯ãã³ã³ãã³ããåã«éçã§ã¯ãªããäžå€ã§åé€äžå¯èœãªããã㯠(è¿œå ã¯å¯èœã§ãã) ã®ã»ãããšããŠè¡šãããšãã§ããä»ã®ã±ãŒã¹ã«ãäžè¬åã§ããŸãã
å¥ã®äŸãšã㊠(匷åã®ããã«): Jenkins/TeamCity ã䜿çšããããšãããå Žåã¯ãäž¡æ¹ã®ãœãªã¥ãŒã·ã§ã³ã Java ã§æžãããŠããããšããåç¥ã§ãããã ã©ã¡ããããã«ã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšã³ã³ãã³ã管çã®äž¡æ¹ãåŠçãã Java ããã»ã¹ã§ãã ç¹ã«ãã©ã¡ããããµãŒããŒãããã¡ã€ã«/ãã©ã«ããŒã転éããããªã©ã®ã¿ã¹ã¯ããããŸãã äŸãšããŠãã¢ãŒãã£ãã¡ã¯ãã®çºè¡ããœãŒã¹ ã³ãŒãã®è»¢é (ãšãŒãžã§ã³ããã³ãŒãããªããžããªããçŽæ¥ããŠã³ããŒãããããµãŒããŒãããŠã³ããŒãããå Žå)ããã°ãžã®ã¢ã¯ã»ã¹ããããŸãã ããããã¹ãŠã®ã¿ã¹ã¯ã¯ IO è² è·ãç°ãªããŸãã ã€ãŸããè€éãªããžãã¹ ããžãã¯ãæ åœãããµãŒããŒã¯ãåæã«ããèªäœãä»ããŠå€§èŠæš¡ãªããŒã¿ ãããŒãå¹æçã«ããã·ã¥ã§ããªããã°ãªããªãããšãããããŸãã ãããŠæãèå³æ·±ãã®ã¯ããã®ãããªæäœããŸã£ããåãã¹ããŒã ã«åŸã£ãŠåã nginx ã«å§ä»»ã§ããããšã§ã (ããŒã¿ ããŒããªã¯ãšã¹ãã«è¿œå ããå¿ èŠãããç¹ãé€ã)ã
ãã ããã·ã¹ãã ã«æ»ããšãåæ§ã®å³ã衚瀺ãããŸãã
ã芧ã®ãšãããã·ã¹ãã ã¯æ ¹æ¬çã«ããè€éã«ãªããŸããã ããã¯ããã¡ã€ã«ãããŒã«ã«ã«ä¿åããåãªãããããã»ã¹ã§ã¯ãããŸããã ä»ãå¿ èŠãšãããŠããã®ã¯ãæãåçŽãªãµããŒãã API ã®ããŒãžã§ã³ç®¡çãªã©ã§ã¯ãããŸããã ãããã£ãŠããã¹ãŠã®å³ãäœæããåŸãæ¡åŒµæ§ã«ã³ã¹ãã«èŠåã䟡å€ããããã©ããã詳现ã«è©äŸ¡ããããšãæåã§ãã ãã ããã·ã¹ãã ãæ¡åŒµã§ããããã«ãããå Žå (ããã«å€ãã®ãŠãŒã¶ãŒãæäœã§ããããã«ãããªã©)ãåæ§ã®ãœãªã¥ãŒã·ã§ã³ãéžæããå¿ èŠããããŸãã ãããããã®çµæãã·ã¹ãã ã¯ã¢ãŒããã¯ãã£çã«è² è·ã®å¢å ã«å¯Ÿå¿ã§ããããã«ãªããŸãã (ã»ãŒãã¹ãŠã®ã³ã³ããŒãã³ããã¯ããŒã³ããŠæ°Žå¹³æ¹åã®ã¹ã±ãŒãªã³ã°ãè¡ãããšãã§ããŸã)ã ã·ã¹ãã ãåæ¢ããã«ã¢ããããŒãã§ããŸãïŒäžéšã®æäœãè¥å¹²é ããªããŸãïŒã
åé ã§è¿°ã¹ãããã«ãçŸåšãå€ãã®ã€ã³ã¿ãŒããã ãµãŒãã¹ã®è² è·ãå¢å ãå§ããŠããŸãã ãããŠããããã®äžéšã¯åã«æ£ããåäœããªããªãå§ããŸããã å®éãããžãã¹ãå©çãçãã¯ãã ã£ããŸãã«ãã®ç¬éã«ãã·ã¹ãã ã¯å€±æããŸããã ã€ãŸããé éã延æããã®ã§ã¯ãªãã顧客ã«ãä»åŸæ°ãæéé éãèšç»ããŠãã ããããšææ¡ããã®ã§ã¯ãªããã·ã¹ãã ã¯åã«ã競åä»ç€Ÿã«è¡ãããã«ããšæ瀺ããã®ã§ãã å®éãããã¯çç£æ§ãäœãããšã®ä»£åã§ãããå©çãæãé«ãŸãã¯ãã®ãšãã«æ倱ãçºçããããšã«ãªããŸãã
ãŸãšã
ãããã®ã¢ãããŒãã¯ãã¹ãŠä»¥åããç¥ãããŠããŸããã åã VK ã¯ãç»åã衚瀺ããããã«éçã³ã³ãã³ã ãã¹ãã£ã³ã°ã®ã¢ã€ãã¢ãé·ãé䜿çšããŠããŸããã å€ãã®ãªã³ã©ã€ã³ ã²ãŒã ã§ã¯ãã·ã£ãŒãã£ã³ã° ã¹ããŒã ã䜿çšããŠããã¬ãŒã€ãŒãå°åã«åå²ããããã²ãŒã ã®å Žæãåé¢ãããããŠããŸã (äžçèªäœã XNUMX ã€ã®å Žå)ã ã€ãã³ã ãœãŒã·ã³ã°ã®ã¢ãããŒãã¯é»åã¡ãŒã«ã§ç©æ¥µçã«äœ¿çšãããŠããŸãã ããŒã¿ãåžžã«åä¿¡ãããã»ãšãã©ã®ååŒã¢ããªã±ãŒã·ã§ã³ã¯ãåä¿¡ããããŒã¿ããã£ã«ã¿ãŒã§ããããã«ããããã«ãå®éã«ã¯ CQRS ã¢ãããŒãã«åºã¥ããŠæ§ç¯ãããŠããŸãã æ°Žå¹³ã¹ã±ãŒãªã³ã°ã¯ãããªãé·ãéå€ãã®ãµãŒãã¹ã§äœ¿çšãããŠããŸããã
ãã ããæãéèŠãªããšã¯ããããã®ãã¿ãŒã³ã¯ãã¹ãŠãææ°ã®ã¢ããªã±ãŒã·ã§ã³ã«éåžžã«ç°¡åã«é©çšã§ããããã«ãªã£ããšããããšã§ã (ãã¡ãããé©åã§ããã°)ã ã¯ã©ãŠãã¯ã·ã£ãŒãã£ã³ã°ãšæ°Žå¹³ã¹ã±ãŒãªã³ã°ãããã«æäŸããŸããããã¯ãç°ãªãããŒã¿ã»ã³ã¿ãŒã«ç°ãªãå°çšãµãŒããŒãèªåã§æ³šæãããããã¯ããã«ç°¡åã§ãã RX ãªã©ã®ã©ã€ãã©ãªã®éçºã®ãããã§ãCQRS ã¯ã¯ããã«ç°¡åã«ãªããŸããã 10 幎ã»ã©åã«ã¯ãããããµããŒãã§ãã Web ãµã€ãã¯ã»ãšãã©ãããŸããã§ããã ã€ãã³ã ãœãŒã·ã³ã°ã¯ãApache Kafka ãåããæ¢è£œã®ã³ã³ãããŒã®ãããã§ãã»ããã¢ãããéåžžã«ç°¡åã§ãã 10幎åãªãããã¯é©æ°ã ã£ãã ããããä»ã§ã¯åœããåã®ããšã ã éçã³ã³ãã³ã ãã¹ãã£ã³ã°ãåæ§ã§ãããã䟿å©ãªãã¯ãããž (詳现ãªããã¥ã¡ã³ããšåçã®å€§èŠæš¡ãªããŒã¿ããŒã¹ããããšããäºå®ãå«ã) ã®ãããã§ããã®ã¢ãããŒãã¯ããã«ã·ã³ãã«ã«ãªããŸããã
ãã®çµæãå€ãã®ããªãè€éãªã¢ãŒããã¯ã㣠ãã¿ãŒã³ã®å®è£ ãã¯ããã«ç°¡åã«ãªããŸãããããã¯ãäºåã«è©³ããæ€èšããæ¹ãããããšãæå³ããŸãã XNUMX 幎åã®ã¢ããªã±ãŒã·ã§ã³ã§ãå®è£ ãšéçšã®ã³ã¹ããé«ãã£ãããã«äžèšã®ãœãªã¥ãŒã·ã§ã³ã® XNUMX ã€ãæŸæ£ãããå Žåã§ããæ°ããã¢ããªã±ãŒã·ã§ã³ã§ããŸãã¯ãªãã¡ã¯ã¿ãªã³ã°åŸã«ããã§ã«ã¢ãŒããã¯ãã£çã«æ¡åŒµå¯èœãªãµãŒãã¹ãäœæã§ããŸã (ããã©ãŒãã³ã¹ã®ç¹ã§)ãã¯ã©ã€ã¢ã³ãããã®æ°ããèŠæ± (å人ããŒã¿ã®ããŒã«ã©ã€ãºãªã©) ã«ããã«å¯Ÿå¿ã§ããŸãã
ãããŠæãéèŠãªããšã¯ãåçŽãªã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠããå Žåã¯ããããã®ã¢ãããŒãã䜿çšããªãã§ãã ããã 確ãã«ãããã¯çŸãããŠèå³æ·±ããã®ã§ãããããŒã¯æã®èšªåè æ°ã 100 人ã§ãããµã€ãã®å Žåã¯ãå€ãã®å Žåãå€å žçãªã¢ããªã¹ (å°ãªããšãå€åŽã¯ãå åŽã®ãã¹ãŠãã¢ãžã¥ãŒã«ã«åå²ã§ãããªã©) ã§å¯Ÿå¿ã§ããŸãã
åºæïŒ habr.com