ããã«ã¡ã¯ãã¡ã«ãã¤ã§ã決æ¸ã»æ¯è¾¼ç³è«ã®ããã¯ã¨ã³ãã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ããã¦ãã id:koemu ã§ãã
ä»æ¥ã¯ããããå¦çãè¡ãçç±ã«ã¤ãã¦ãèå¯ãæ·±ãã¦è¨è¨ã«æ´»ããã¦ãã話ããããã¨æãã¾ãã
ã¯ããã«
ãããå¦çã¨ã¯ããã決ã¾ã£ãã¿ã¤ãã³ã°ã§1ã¤ã®ããã°ã©ã ãè¤æ°ã®ãã¼ã¿ã ä¸æ¬å¦ç ãããã¨ãæãã¾ãããã®å対ã®è¨èã¨ãã¦ããªã³ã©ã¤ã³å¦çãããã¾ãããªã³ã©ã¤ã³å¦çã¨ã¯ãã客æ§ã®æä½ãåãã¨ããã¤ãã³ãããã¨ã« é次å¦ç ããããã®ã§ããOLTP(Online Transaction Processing)ã¨ãè¨ãã¾ãã
æ¬ã¨ã³ããªã§ã¯ããããå¦çãæ¡ç¨ããã«ããããã©ããã£ãã¦ã¼ã¹ã±ã¼ã¹ãé©åãªã®ããæ´çãã¦ãä»å¾ã®ã½ããã¦ã§ã¢ã®è¨è¨ã®æéã«ã§ãããã¨ãç®æãã¦ãã¾ããä»åã¯ãããããå¦çãæ¡ç¨ããã¨ããã¨ããããå¦çã®è¨è¨ãã®2ã¤ã«ã¤ãã¦åãä¸ãã¾ãã
ãããå¦çãæ¡ç¨ããã¨ã
ãããå¦çã®å®ç¾©
æ¹ãã¦ããããå¦çã«ã¤ãã¦å®ç¾©ã確èªãã¾ãããã
Dave*1ã«ããã¨ããããå¦çã¯ä»¥ä¸ã®2ã¤ã®ã«ãã´ãªã«åãããã¨ããã¾ãã
- Functional Jobs
- Technical Jobs
Functional Jobs ã¯ãæ¥åè¦ä»¶ããã¨ã«ããå¦çã§ãããã¨ãã°ãã¡ã«ã«ãª(以ä¸ãå½ç¤¾)ã§ã¯æ¯è¾¼ç³è«ã¨ããæ©è½ãããããã®çµæãã客æ§ã«è¿ãã«å½ãããéèæ©é¢ã®ç· ãã®æéã«ãªãã¨éããã¨ãã§ããæ¡ä»¶ãããã¾ãããã®æ¥åã«æ²¿ã£ã¦ãã¾ã¨ãã¦å¦çãè¡ããã®ã該å½ãã¾ãããã®ãããªå¦çã¯ããç· ããã¨ããè¨èãåºã¦ããæ¥åã§ãã使ããã¾ãã
Technical Jobs ã¯ãæè¡è¦ä»¶ããã¨ã«ããå¦çã§ãããã¨ãã°ããã£ã³ãã¼ã³ã§ä¸åº¦ã«å¤æ°ã®ã客æ§ã¸Pushéç¥ãéãéã管çç»é¢(å½ç¤¾ã§ã¯P-Toolã¨å¼ãã§ãã¾ã)ã®ããã°ã©ã ãç´æ¥å¦çããã¨ãã¿ã¤ã ã¢ã¦ããã¦ãã¾ããã®ãããã¾ãããããããããã§å¦çãããã¨ã§é·æéå®è¡å¯è½ã«ããéåæãã¤ä»ã®ãªã³ã©ã¤ã³æ¥åã«å½±é¿ãä¸ããªãããå¦çããéã«ç¨ãã¾ãã
æ¥åã·ã¹ãã ã§ãã¨ããªã³ã©ã¤ã³ãããã¨ãªãã©ã¤ã³ãããã®éããããã¾ããããããå½ç¤¾ã¯ã¤ã³ã¿ã¼ããããµã¼ãã¹ãæä¾ãã¦ããã24æéãªã³ã©ã¤ã³ã¨ãããã¨ãããä»åã¯ãããã®éãã«ã¤ãã¦ã®èª¬æãçãããªã³ã©ã¤ã³ãããã®ã¿ã«éå®ãã¦è¿°ã¹ã¾ãã
ãªã³ã©ã¤ã³å¦çã諦ããã¨ã
ãããå¦çãæ¡ç¨ããå¥ã®çç±ã¨ãã¦ããªã³ã©ã¤ã³å¦çã諦ããã¨ãããããã¾ãããã¨ãã°ã1ã¤ã®å¦çããªã³ã©ã¤ã³ã§è¡ãã«ã¯å¦çã«æéãããããè¨ç®æ©ã¸ã®è² è·ãé«éãã¦ããã®çµæã客æ§ã®ä½é¨ãæªåããã¦ããå ´åã®å¯¾å¦æ³ã®ä¸ã¤ã¨ãã¦è¡ããã®ã§ãããã¨ãã°ãåºåæ å ±ãæ¤ç´¢ã¤ã³ããã¯ã¹ã«ç»é²ããã®ã¯ãå½ç¤¾ã§ã¯åæçã«ã¯è¡ã£ã¦ããã¾ããã
ãã®å ´åã¯ãã¯ã¼ã«ã¼ã®ãããªé次çºè¡ã§ããéåæã®å¦çã§åé¡ã解決ã§ããå ´åãããã¾ãããããå¦çã®ç¹æ§ãã¯ã¼ã«ã¼ã®ç¹æ§ãããããã®è¯ããå å³ããªãããæè¡ãé¸æãã¾ãããªããããã§ã¯ã¯ã¼ã«ã¼ã«ã¤ãã¦ã®èª¬æã¯çç¥ãã¾ãã
ãããå¦çã®è¨è¨
ãããããã°ã©ã ãä½ãã«ããã£ã¦ãç§ã¯ä»¥ä¸ã®5ç¹ãèæ ®ããªããéçºã«ããã£ã¦ãã¾ãã
- å¦ç件æ°
- å¦çæé
- å復å¯è½ã
- å¤éèµ·åå¯è½ã
- ãããã®çªãæã対ç
å¦ç件æ°
ã¾ãåãã«ç¢ºèªããªããã°ãªããªãã®ãããããå¦çã1åèµ·åãããã¨ã«å¯¾è±¡ã¨ãªãå¦ç件æ°ã®è¦ç©ã§ãã
æ¥åè¦ä»¶ãèªã¿è§£ããã¨ãéè¦ã¨ãªãã¾ããæ¢ã«ãªã³ã©ã¤ã³ã§è¡ã£ã¦ããå¦çããããå¦çã«ç§»è¡ããå ´åã¯ãããããè¨æ¸¬ãã¦æ±ãã¾ããããããå§ããæ¥åã®å ´åã¯ãä¼ç»æ å½è ãèãã¦ããå©ç¨æ°ã®æ³å®æ²ç·ããæ±ãã¾ãã1ã¶æå¾ã3ã¶æå¾ãåå¹´å¾ãããã¦1å¹´å¾ã¾ã§ãã大ã¾ãã«ä½å©ç¨çã»ä¸å©ç¨çã»é«å©ç¨çã®å¥ã§æ±ããããã¨è¯ãã§ãããã
å¦çæé
ãããå¦çãè¨è¨ããã«ããããã¾ãåãããããã°ãªããªãã®ãæéã®ãã¨ã§ãã3ã¤ã®è¦³ç¹ã§èãã¦ããã¾ãã
- ãã¤èµ·åããã
- ãã¤ã¾ã§ã«çµããªããã°ãªããªãã
- ã©ã®ãããå¦çæéããããããã
ã¾ãããã¤èµ·åãããã§ããå¤ãã®å ´åã¯æ¥åè¦ä»¶ã決ã¾ã£ã¦ãããããã«å¾ããã¨ã«ãªãã¾ããå®è¡æå»ã¯ãæ¯æã»æ¥æ¬¡ã»é±æ¬¡ã»æ次ãªã©å¨æçã«æ±ºã¾ããã¨ãã»ã¨ãã©ã§ããã·ã¹ãã 移è¡ã復æ§ãªã©ã1åããã®ãã®ãããããããã¾ããã
次ã«ããã¤ã¾ã§ã«çµããªããã°ãªããªããã§ãããã¡ãã¯æ¥åè¦ä»¶ã決ã¾ã£ã¦ããå ´åã¨ãæ確ãªå®ç¾©ããªãå ´åãããã¾ããåè ã¯ãéã®ç· ãå¦çã¨ãã£ããå®è¡ããæ¥ã«å¿ ãçµããªããã°ãªããªãèæ¯ããããã®ã§ããåé¡ã¯å¾è ã§ãæ¥åè¦ä»¶ãç·´ã£ã¦ããä¼ç»æ å½è ã®ä¸ã§ãã©ã®ãããã®ãµã¼ãã¹ã¬ãã«ãæ±ãã¦ããã®ããè¨è¨ã®æ®µéã§æ確ã«ãã¦ããå¿ è¦ãããã¾ããããããªãã¨ãå¦çéãå¢ããã¨ãã«ãä¼ç»æ å½è ã®æ³å®ãããµã¼ãã¹ã¬ãã«ãæ ä¿ã§ããªãå¯è½æ§ãåºãããã§ãã
æå¾ã«ãã©ã®ãããå¦çæéãããããããã§ããæ¢ã«ãªã³ã©ã¤ã³ã§è¡ã£ã¦ããå¦çãåå¨ããå ´åãNew Relic, Datadogãªã©ã®ã¢ãã¿ãªã³ã°ãµã¼ãã¹ãªã©ã®åæçµæããããã®å¦çã®æè¦æéãè¦ãã¾ããããã«ã¾ãã¯å¦ç件æ°ãæãç®ãããã¨ã§ã大ã¾ããªåä½ãããã®å¦çæéãè¦ãã¦ããã¯ãã§ããããããå§ããæ¥åã®å ´åã¯ãé¡ä¼¼ã®å¦çããæ³å®ãããåä½ãããã®å¦çæéãæ±ãã¾ãã
ä¸è¨3ç¹ãè¨è¨ä¸ã®å¦çæéã¨ãã¦ã¾ã¨ããã¨ããå½åã®è¦æ±ä»æ§ã¨ç §ããåããã¦ãããæºããããã確èªãã¾ããæºãããªãå ´åã¯ãè¦æ±ä»æ§èªä½ãè¦ç´ãããå¾è¿°ããããããã®çªãæã対çãããã¨ã«æè¡ã®å´é¢ã§å¯¾çãã¾ãã
å復å¯è½ã
ãããå¦çã¯ãä¸å¹¸ã«ãä½ããã®çç±ã§éä¸ã§ç°å¸¸çµäºããå¯è½æ§ãããã¾ãããã®ã¨ãã«ããã®äºæ ãå復å¯è½ã«ã§ããããè¨è¨ãã¦ããå¿ è¦ãããã¾ãã以ä¸ã®åªå é ä½ã§äºåã«å¯¾çãåãã¾ãã
- å¦çãå®äºãã次ã®ãã¼ã¿ããå¦çãåéã§ãã
- å度åãå¦çãéå§ãããããçµæãåªçã«ãªã(äºéã«å¦çãããªã)
- 失æããIDãæ§ãããã¨ãã§ããåå®è¡ã§ããã³ãã³ããªãã·ã§ã³ãç¨æãã
ãã¹ããªã®ã¯ãå¦çãå®äºãã次ã®ãã¼ã¿ããå¦çãåéã§ãããã¨ã§ããããã§ãã¨ãéçºæ å½è ãä¼æ¥çã§å¸ãå¤ãã¦ããå ´åãªã©ã§ãéçºããæ å½è 以å¤ãããããåå®è¡ããå ´åã§ããå®å¿ãã¦å¯¾å¿ãããã¨ãå¯è½ã§ãããã ãããã®æ¹æ³ã¯ãã©ãã¾ã§å¦çããããã管çããå¿ è¦ãããã¾ããã¨ã¯ãããç· ãå¦çãªã©ãã¹ãã¼ã¿ã¹ãé·ç§»ãããã¼ã¿ãå¦çãããããã ã¨å®è£ ã容æã§ãã
次ã«ãçµæãåªçã«ãªãããä½ããã¨ã§ããããä¸åº¦æåããå®è¡ããããããåå®è¡ã®æéã¯é·ããªããã¨ãäºæ³ããã¾ãããå ã»ã©ã¨åæ§ã«éçºããæ å½è 以å¤ãããããåå®è¡ããå ´åã§ãå®å¿ãã¦åå®è¡ã§ãã¾ãã
åé¡ã¯ãåå®è¡å¯è½ããã¬ã³ã¼ããæå®ãã¦è¡ãæ¹æ³ã§ããããã¯ã失æããIDãæ§ããæä½ãããããã³ãã³ãã«æ¸¡ãæä½ãªã©ããã¹ãªãè¡ãå¿ è¦ããããåå®è¡ã®ã¨ãã«ç´°å¿ã®æ³¨æãè¦ãã¾ãããã¾ãæ¨å¥¨ããã¾ããã
ä¸çªã®åé¡ã¯ãå ¨ãå復ããæ¹æ³ãç¨æããã¦ããªããã¨ã§ãããããªãã¾ãã¨ãæ£å¸¸ã«å¦çã§ãããã¼ã¿ã¾ã§ãå度å¦çãè¡ããããã«ãã¼ã¿ãä¿®æ£ããå¿ è¦ããããæ°ããªé害ãçºçããããã¾ããã
å¤éèµ·åå¯è½ã
å¤éèµ·åå¯è½ãã©ããã¯ãæ¥åã®æ§è³ªã«ããã¾ããå¤éèµ·åã«ããå¦çãããã¼ã¿ãç ´å£ããããªãå ´åã¯ãå®è¡ãããã¯ã§ããæ©æ§ãè¨ãã¾ãããã
æãå±ãªãã®ãããã¨ãã°æ¯æå®è¡ã®ãããå¦çãçªãæãã¦(çªãæãã¯å¾è¿°ãã¾ã)60å以ä¸ãããã次ã®å®æã«å®è¡ããããããã§äºéã»ä¸éã«å¦çããã¦ãã¾ãã±ã¼ã¹ã§ããå®è¡å¨æãæ©ããããå¦çã¯ãçªãæãã«ããäºæ ã®äºé²å¦ç½®ã¨ãã¦ããã¯ãé©åã«æ½ããã¨ãæ¨å¥¨ãã¾ãã
ãããã®çªãæã対ç
å¦ç件æ°ã¨å¦çæéãè¦ç©ãã£ãéãä¾ãã°1å¹´å¾ã«é«å©ç¨çã ã£ãå ´åã«ãè¨è¨ä¸ã®å¦çæéãè¶ãã¦ãã¾ããããããããããã®çªãæãããæ³å®ãããã¨ãã¾ãããã
ãã®ã¨ãã«å¯¾å¦ã§ããæ¹æ³ã¨ãã¦ã次ã®3ã¤ã®äºæãããã¾ãã
- 並åå®è¡
- ã¤ã³ãã©ã®å¢å¼·ã»ãã¥ã¼ãã³ã°
- å¦çã®åå²
ã¾ãã並åå®è¡ã§ããããã¯ãä¸é¨ã®å¦çããã«ãã¹ã¬ããåããããã¯ã¼ã«ã¼ã«å¦çãå§è²ãããã¨ã§ãå ¨ä½ã®ã¹ã«ã¼ããããä¸ããæ¹æ³ã§ããããã°ã©ã åä½ã§è§£æ±ºå¯è½ã§ãããç°å¸¸ãèµ·ããéã«ãããã°ã®æéãå°ã å¢ããå¯è½æ§ãããã¾ãã
次ã«ãã¤ã³ãã©ã®å¢å¼·ã§ãããã¼ã¿ãã¼ã¹ã¸ã®I/Oãªã©ã§å¾éã§ããå¯è½æ§ããã£ãããè¨ç®æ©ã®å¦çæ§è½ãã¹ã±ã¼ã«ã¢ããããã¨è§£æ±ºã§ããå¯è½æ§ãããå ´åã対çãæ½ãã¨ãããã®ã§ãããã¼ã¿ãã¼ã¹ã®ãã¼ãã«ã¸Indexãå¼µããªã©ã®ãã¥ã¼ãã³ã°ãæ¤è¨ã®ä¾¡å¤ãããã¾ãã
æå¾ã«ãå¦çãåå²ããæ¹æ³ãããã¾ãããã¨ãã°ãã¯ãªã¼ã³ããããªã©ãåæã«è¡ã£ã¦ããã®ã§ããã°ããã®å¦çãåå²ãããã¨ã§ã¡ã¤ã³ã®å¦çãè¡ã£ã¦ãããããã®å¦çæéãçµæçã«çããããã¨ãã§ãã¾ãããã®ã¡ãªããã¯ãã¡ã¤ã³ã®å¦çã®å質ãæ ä¿ãã¤ã¤ãæéå¶éããããå¾å¦çãé©åã«çµãããããã¨ãã§ããã®ã§ãã
ãããã®å¯¾çã¯ãå¦çæéã伸ã³ã¦ãããã¨ã確èªã§ãã段éã§ãè¨ç»çãã¤æ®µéçã«æ½ããã¨ãã§ãã¾ããå½åã¯æå°éã§éçºãããã¨ã§ããã°ãããªãªã¼ã¹ãããã¨ãæ¤è¨ãã¾ãã
ã¾ã¨ã
ããã¾ã§ãããããå¦çãæ¡ç¨ããã¨ããã¨ããããå¦çã®è¨è¨ãã«ã¤ãã¦åãä¸ãã¦ãã¾ããããããã¯å®è¡æéã決ã¾ã£ã¦ãããã¨ãããã¦å¤±æãæ³å®ãã¦å復å¯è½ãªè¨è¨ã«ãã¦ãããã¨ã大åã§ãããã¨ãè¿°ã¹ã¦ãã¾ããã
ä»å¾ãããæéãããã°ãããã¹ãã±ã¼ã¹ã®ä½æããç£è¦(èµ·åã»æ£å¸¸çµäºã»ç°å¸¸çµäº)ãããã¦ãå½ç¤¾ã®æ¯è¾¼ç³è«ã®äºä¾ãã«ã¤ãã¦åãä¸ãã¦ã¿ããã¨æã£ã¦ãã¾ãã
ããã§ã¯çæ§ãããããããã
2019/03/20追è¨: äºä¾ã®ç¶ç·¨ãæ¸ãã¾ããã
2019/04/18追è¨: éç¨ã¨ç£è¦ã«ã¤ãã¦æ¸ãã¾ããã
*1:Dave Ingram, Design â Build â Run: Applied Practices and Principles for Production-Ready Software Development, Wrox, 2009