ä¿ºã®æçšã¯ã³ã©ã€ããŒãWebäŒæ¥ã®ãšã³ãžãã¢16人ã«èããŸãã
ãšã³ãžãã¢ã®çãããæçšããèªäœã®ã¯ã³ã©ã€ããŒã£ãŠã©ããªãã®ïŒWebäŒæ¥ã§åããšã³ãžãã¢ã®æ¹ã ã«ãç§èµã®ã¯ã³ã©ã€ããŒãèããŸããã
ã¯ã³ã©ã€ããŒãšã¯ãäœãç¹å®ã®åŠçãããã£ã1è¡ã®ããã°ã©ã ãã ãã§å®çŸãããã®ã§ãããµãŒãã¹éçšã«æºãããšã³ãžãã¢ã®çããããæçšããŠããç¬èªã®ã¯ã³ã©ã€ããŒãæã£ãŠããã®ã§ã¯ãªãã§ããããããç¬èªã®ã¯ã³ã©ã€ããŒããšã¯ããšã³ãžãã¢å人ã®ãã¬ããžãããŠããŠãè©°ãŸã£ãŠãããšãèããããŸãã
æ¬äŒç»ã§ã¯ããŸããŸãžã£ã³ã«ã§æŽ»èºãããšã³ãžãã¢16人ã«ãæ¥åãæ¯ããŠãããã¯ã³ã©ã€ããŒã玹ä»ããŠããããŸãããåèã«äœ¿ã£ãŠã¿ããè¯ããçºããŠæ¥œãããè¯ããåæ§ããµãã貎éãªããªã¬ãªã¬ã»ã¯ã³ã©ã€ããŒãã®æ°ã ãã芧ãã ããïŒ
â»åã«ããŽãªãŒå ã§ã¯æå±äŒæ¥åã®50é³é ã«æ²èŒãåçè ã¯æ¬ç§°ç¥ãšããã
- ãªãœãŒã¹ç®¡ç
-
ããŒã¿éèš
- maillogãããã¡ãŒã«ã®éä¿¡è æ å ±ãååŸãã
- Apacheã®ã¢ã¯ã»ã¹ãã°ãããããŒãžããšã®ã¢ã¯ã»ã¹ã©ã³ãã³ã°ãéèš
- æé垯ããšã®ãããŸããªãšã©ãŒã¬ãŒããéèšãã
- ããŒã¿ããŒã¹ãããã³ããã¡ã€ã«ãååŸãã
- MySQLã®binlogã®äžèº«ãçºè¡ãããã¯ãšãªåäœã§éèšãã
- ããŒã¿æŽç
- äŸ¿å©æ
- ãããã«
ãªãœãŒã¹ç®¡ç
ããã»ã¹ã忢ãã
- 䜿çšèšèªïŒbash
ãµãŒãå ã§å®è¡ãããŠããhogehogeãšããååã®ããã»ã¹ãããŽãŒã¹ãåã»ãµã¹ãã³ãåã«ããããã絶察ã«killããŸããããã»ã¹åã®1æåç®ã[]ã§å²ãããšã«ãããpgrepã§æ¢ããŠããããã»ã¹èªäœãé€å€ãããŸãã
éçšäžã®ãµãŒãã¹ã®ãªãã§ãç¹å®ã®ããã»ã¹ãæå³ããªã圢ã§è€æ°ç«ã¡äžãã£ãŠããŸã£ãŠãããã®ããæ£åžžã»éæ£åžžå®è¡ã«ããããããå šãŠåæ¢ããªããã°ãªããªãããšããæ®å¿µãªç¶æ³ã§äœ¿ãåŠçã§ããæ°æã¡ãæ®å¿µã«ãªããŸãã
æ¯èŒçãæ±çšæ§ã®ããã¯ã³ã©ã€ããŒã§ããããããããªããã»ã¹ã§å€çšããç¶æ³ã«ãªããšæ²ããæ°æã¡ã«ãªããŸãâŠâŠã
- åçè ïŒæ ªåŒäŒç€ŸEmotion Techãæžéšè£æïŒã€ã³ãã©ãšã³ãžãã¢ïŒ
- éå¶ãµãŒãã¹ïŒEmotion Tech
Google Kubernetes Engineå šäœã®ããŒãã®ãªãœãŒã¹ç¶æ³ã確èªãã
- 䜿çšèšèªïŒbash
Google Kubernetes Engineå
šäœã®ããŒãã®ãªãœãŒã¹ç¶æ³ã確èªããã¯ã³ã©ã€ããŒã§ããGKEããŒãæ°ãå€ããªããã©ãããããªãœãŒã¹ãå©çšããŠããã®ãææ¡ãã«ãããªã£ããããäžæ¬ã§ç¢ºèªããæ¹æ³ãå¿
èŠã«ãªãäœæããŸããããªããxargsã䜿ããã«ä»ã®æ¹åŒã§æžãããéããªããŸãããä¿®æ£åŸã¯ã³ã©ã€ããŒã¯ä»¥äžã®éã
- åçè ïŒæ ªåŒäŒç€Ÿãµã€ããŒãšãŒãžã§ã³ããæµ·éååïŒAbemaTV SREïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒAbemaTVãAWAãã¢ã¡ãŒãããã°
ç©çã¡ã¢ãªãå€ã䜿çšããŠããããã»ã¹ãæœåºãã
- 䜿çšèšèªïŒbash
ç©çã¡ã¢ãªãå€ã䜿çšããŠããããã»ã¹ã®äžäœ10ä»¶ãæœåºããŸããåŒæ°ã®æ°åãå€ããã ãã§CPUãšã¡ã¢ãªã«ã€ããŠèª¿ã¹ãããšãã§ããŠäŸ¿å©ã§ããè€éãªã³ãã³ãã§ã¯ãªãããå¿ãã«ããã®ãè¯ãç¹ã§ãããµãŒããŒã®ãªãã¬ã€ã¹ã§ãªãœãŒã¹ã®æ¶è²»ã«å·®ãåºããšãããã®ã¯ã³ã©ã€ããŒã§æ¯èŒã§ããããã倧掻èºããŸããïŒ
- åçè ïŒæ ªåŒäŒç€Ÿãžã¢ãã£ãŒãåæ ¹äœä»ïŒWEBãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒãžã¢ãã£ãŒ
CPU䜿çšçãé«ãããã»ã¹ãèŠã€ãã
- 䜿çšèšèªïŒbash
CPU䜿çšçãé«ãããã»ã¹ãèŠã€ãããšãã«äœ¿çšããŸãããªãã+4ã¯ã¡ã¢ãªã®äœ¿çšçãé«ãããã»ã¹ãèŠã€ãããšãã®ãªãã·ã§ã³ã§ããDockerã«ãªã£ãŠããªããµãŒããŒã§ãªããè² è·ãé«ããªããšãããããŸããããã®ã¯ã³ã©ã€ããŒã䜿ãã°ãåå ãšãªã£ãŠããããã»ã¹ãå¹çããç¹å®ã§ããŸãã
- åçè ïŒRettyæ ªåŒäŒç€ŸãéŽæšå·§ïŒã€ã³ãã©ãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒRetty
ããŒã¿éèš
maillogãããã¡ãŒã«ã®éä¿¡è æ å ±ãååŸãã
- 䜿çšèšèªïŒbash
maillogããqueue IDãæœåºããåqueue IDããšã®ãŠãŒã¶èªèšŒè ã®ãªã¢ãŒããã¹ããšãªã¢ãŒãIPãæŸããåºçŸåæ°ãšãšãã«åºåããŸãã
以åãå€§èŠæš¡ã¡ãŒã«ã·ã¹ãã ãæ±ã£ãŠããéã«å€§ééä¿¡ãããŠãŒã¶ããããããµãŒããé«è² è·ã«ãªãããšããã£ãã®ã§ããããã®åå ç¹å®ã®ããã«äœ¿çšããŠããŸãããpostfix + procmail + formail ã䜿ã£ãŠããŠqueue IDãå€åããŠéä¿¡ãããããšãå€ãã£ãã®ãšãåºåçµæããã®ãŸãŸå ±åæžã«ã³ãããããã®ã§ããããªåããã©ãããšãããŠããŸããã
- åçè ïŒæ ªåŒäŒç€ŸãŠã£ã«ã²ãŒããåŸè€æ·³äºïŒéçºå®€ããœãªã¥ãŒã·ã§ã³ãŠãããããããŒãžã£ãŒïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒãµã°ãŒã¯ãŒã¯ã¹ãæ®ãããã¹ã¿
Apacheã®ã¢ã¯ã»ã¹ãã°ãããããŒãžããšã®ã¢ã¯ã»ã¹ã©ã³ãã³ã°ãéèš
- 䜿çšèšèªïŒbash
Apacheã®ã¢ã¯ã»ã¹ãã°ãããã¢ã¯ã»ã¹ã©ã³ãã³ã°ãç®åºãã¢ã¯ã»ã¹æ°ã®å€ãé ã«ãã®URLãšã¢ã¯ã»ã¹æ°ã衚瀺ããŸãïŒCommon Log Format with Virtual Hostã§åäœããŸãïŒã
å®è¡äŸïŒ 1263 www.example.com/ 1352 www.example.com/about/ 456 www2.example.com/
ç§èªèº«ã¯ã¯ã³ã©ã€ããŒåå¿è ã§ããããã®èšäºäŒç»ãæ©ã«ãè€æ°ã®Webãµã€ããéçšããŠããWebãµãŒãã§ãã¢ã¯ã»ã¹ãã°ããã¢ã¯ã»ã¹ã©ã³ãã³ã°ãç®åºããããšæãæžããŠã¿ãŸãããawkã³ãã³ãã®å©äŸ¿æ§ã«æåããŸããã
- åçè ïŒæ ªåŒäŒç€ŸãŠãšãã£ã³ã°ããŒã¯ãä¹ ä¿ïŒè¥æãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒWedding ParkãPhotoraitãRingraphãDRESPIC
æé垯ããšã®ãããŸããªãšã©ãŒã¬ãŒããéèšãã
access.log ã¯ä»¥äžã®ãããªWebãµãŒã(nginxãªã©)ã®ãã°ãã¡ã€ã«ãæ³å®ããŸãã
10.229.60.225 2018-02-27T08:40:14+09:00 "GET /path/to/app HTTP/1.1" 200 10.93.104.150 2018-02-27T11:06:47+09:00 "DELETE /path/to/app HTTP/1.1" 200 10.255.181.79 2018-02-27T11:07:47+09:00 "GET /path/to/app HTTP/1.1" 200 10.108.135.104 2018-02-27T14:43:21+09:00 "POST /path/to/app HTTP/1.1" 200 10.209.240.194 2018-02-27T18:39:07+09:00 "POST /path/to/app HTTP/1.1" 502
- 䜿çšèšèªïŒbashãawk
æé垯ããšã®å€§ãŸããªãšã©ãŒã¬ãŒããéèšã§ããŸãããã¡ããå°ã倿Žããã°å¥ã®ææšã§ã®éèšã容æã§ããããããDBãSQLiteã«å ¥ãããŸã§ããªãã¬ãã«ã®éèšãªãããã®ã¯ã³ã©ã€ããŒã®å¿çšç¯å²ã¯ããªããããŸãã
ç°å¢ãæŽã£ãŠãããããçŸåšã§ã¯æ¬çªãµãŒãäžã®ãã°ãçŽæ¥éèšããããšã¯ãããŸããããããã£ãç°å¢ãæŽåãããŠããªãé ããªãªãŒã¹åŸã®ç£èŠã®éã«ãã®ãããªã¯ã³ã©ã€ããŒãéå®ããŠããŸããã
- åçè ïŒæ ªåŒäŒç€ŸãšãŠã¬ã«ãèŒäºå亮ïŒã·ãã¢ã»ãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒPairsãCouples
ããŒã¿ããŒã¹ãããã³ããã¡ã€ã«ãååŸãã
- 䜿çšèšèªïŒSQLïŒPostgreSQLïŒ
ãã¹ããhostnameã§ãªãŒããŒãusernameã®database_nameããŒã¿ããŒã¹ãããã³ããã¡ã€ã«ãååŸããŸããæ¬çªã®ããŒã¿ãããŒã«ã«DBã«ãªã¹ãã¢ããéãææ°ã®ãã³ããã¡ã€ã«ã欲ããå Žåã«äœ¿çšããŸãã
ããŒã«ã«ã§éçºããéã«æ¬çªç°å¢ãšåãç¶æ ãäœããã®ã§äŸ¿å©ã§ããããµãŒãã¹ãå€§èŠæš¡ã«ãªã£ãŠãããšãã³ãããªã¹ãã¢ãéããªãéããŠãã ãã ããšäœ¿ããªããªããŸããã¹ã¿ãŒãã¢ããã§ã®éçºãå人éçºåããããããŸããã
- åçè ïŒSpacelookæ ªåŒäŒç€Ÿãäžå¶å¥å€ªïŒãµãŒããµã€ããšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒSpacework
MySQLã®binlogã®äžèº«ãçºè¡ãããã¯ãšãªåäœã§éèšãã
- 䜿çšèšèªïŒbashãPerlãmysqlbinlog
MySQLã®binlogã®äžèº«ãçºè¡ãããã¯ãšãªåäœã§éèšããŸãããã€ãŠãæ¯æXXåã«ãªããšDBã®è² è·ãè·³ããããšããã£ãããããã®éã©ããªã¯ãšãªãæµããŠããã®ãã調ã¹ãããã«äœæããã¯ã³ã©ã€ããŒã§ãã
ãŸãšããŠçºè¡ã§ããã¯ãšãªã§ããã°Bulk Insertãªã©ã«å€ããŠããã£ãããéã«ãã£ããæµããŠã倧äžå€«ãªã¯ãšãªã§ããã°commitééã調æŽããŠããã£ãããšããã®ã³ãŒããå ã«èª¿æ»ã»å ±åããŠããŸããã
ãŸããäžèšã¯æŽæ°ã¯ãšãªãªã®ã§ãããåç §ã¯ãšãªãåå ãšãªãå Žåã¯PERCONA TOOLKITã®mk-query-digestïŒpt-query-digestïŒã«é£ãããããã«tcpdumpãååŸããŠäœ¿ã£ãŠããŸãããã®éã¯ä»¥äžã®ã¯ã³ã©ã€ããŒã䜿çšããŸãã
ã©ã¡ããã¯ãšãªã®è³ªããã§ãã¯ããŠæ¹åã§ããç¹ãæŽãåºããéçºåŽã®ãšã³ãžãã¢ãšçžè«ããããã®ææãšããŠããŸãã
- åçè ïŒæ ªåŒäŒç€Ÿãã£ãŒã»ãšãã»ãšãŒã挢ç¥ä»ïŒã·ã¹ãã &ãã¶ã€ã³æ¬éš ITåºç€éš 第äžã°ã«ãŒã ã°ã«ãŒããããŒãžã£ãŒïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒSHOWROOMããã³ã¬ããã¯ã¹ãMyAnimeListãMYCODEãKenCoMãæšªæµDeNAãã€ã¹ã¿ãŒãº
ããŒã¿æŽç
fluentdã®ãã°ãèŠãããæŽåœ¢ãã
- 䜿çšèšèªïŒbash
fluentdã®ãã°ãã ãããã®å ŽåèŠãããæŽåœ¢ã§ããŸããfluentdã«æ°ãããã©ã°ã€ã³ãå°å ¥ããéãªã©ãæ¥åã«ãããŠãããã¯ããæ©äŒããããšæããŸããããããfluentdã®ãã°ã¯ãæã«1è¡ãéåžžã«é·ããçãã°ã®ç®grepãé 匵ãã®ãã€ããã±ãŒã¹ããããŸããããããæã«ãç§ãäžäººã§äœ¿ã£ãŠäžäººã§å¹žãã«ãªã£ãŠããã¯ã³ã©ã€ããŒã§ããã€ãŸããªãã·ã§ã«èžã§æçž®ã§ãã
- åçè ïŒæ ªåŒäŒç€Ÿã¹ã¿ãã£ã¹ããåéåä¹ ïŒSREããŒã ãªãŒããŒïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒTeachme Biz
èªç¶æ°ã®æ°åãããžã¥ã¢ã©ã€ãºãã
â»"for i in `seq 0 30`;do echo $RANDOM;done" ã¯ä»»æã®èªç¶æ°ã®æ°åã«å€æŽããã â»scale, maxã¯ä»»æã®èªç¶æ°ã«å€æŽããã
- 䜿çšèšèªïŒsh
åºåããããã°ã®è¡æ°ãæ¥ä»ããšã«åºããããšããªã©ã«ãå¢å åŸåã«ããã®ãæžå°åŸåã«ããã®ããã§ãã¯ããããã«äœ¿çšããŠããŸããã
- åçè ïŒæ ªåŒäŒç€ŸããºãªãŒããäŒè€ç人ïŒHRMOSæ¡çšç®¡çäºæ¥éšãã€ã³ãã©ãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒããºãªãŒãããã£ãªã¢ãã¬ãã¯ãHRMOSãã¹ã¿ã³ãã€ãããºãªãŒãã»ãµã¯ã·ãŒããããºãªãŒãã»ãã£ã³ãã¹ããã¯ãªãŒããBizHint
äŸ¿å©æ
ã©ã³ãã ãªå€§æåå°æåè±æ°åããã¹ããŒãã£ã«ã¯ãªããã³ããŒãã
- 䜿çšèšèªïŒRuby
ã©ã³ãã ãªå€§æåå°æåè±æ°åã®20æåãã¿ãŒããã«ã«åºããã«ã¯ãªããã³ããŒããŸããé©åœãªæååã«ãããšæžãæãããã·ãŒã³ã§å©çšããŠããŸãã
- åçè ïŒãŠã©ã³ããããªãŒæ ªåŒäŒç€Ÿãåéšåºå€§ïŒã€ã³ãã©ããŒã ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒããžãã¹SNSãWantedlyããååºç®¡çã¢ããªãWantedly Peopleã
Gistã«äžããŠãããgitã®Commit templateãåã蟌ã
- 䜿çšèšèªïŒbash
Gistã«äžããŠãããgitã®Commit templateãåã蟌ã¿ãããšãã«å©ãã¯ã³ã©ã€ããŒã§ããgitã§ã³ãããããéãã³ã¡ã³ãã®å é ã«çµµæåãå ¥ããŠããã®ã§ããããã®çµµæåã®ååãšå€èŠ³ãæ¯åæãåºãã®ã倧å€ã ã£ãã®ã§ãCommit templateã«çµµæåã®ãªã¹ããšãã©ã®ãããªå Žåã«äœ¿ãããå ¥ããŠããŸãããšæããäœæããŸããã
- åçè ïŒã³ãããæ ªåŒäŒç€Ÿãå®éçšïŒãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒãããªïŒiOSçïŒAndroidçïŒ
JMeterã«ããè² è·ãã¹ã
- 䜿çšèšèªïŒbash
Linuxç°å¢ã§ããŸããŸãªãã¹ãã±ãŒã¹ãèªåå®è¡ããŸãã芳å 客åãã°ã«ã¡ã¢ããªãæ¥æ¬çŸé£ãã§ã¯é«å質ãªãµãŒãã¹ãæäŸããããã«ã宿çã«JMeterãå©çšããŠããŸããŸãªè² è·ãã¹ãã宿œããŠããŸããä»åã®ã¯ã³ã©ã€ããŒã¯ãããããã¹ãã·ããªãªã®äžéšã§ããä»ã®ã·ããªãªãšåãããŠãèªåçã«ãã¹ãå®è¡ãçµæåéãã¬ããŒãäœæãŸã§ãå®çŸããŠãããŸãã
- åçè ïŒæ¥æ¬çŸé£æ ªåŒäŒç€ŸãT.SpikeïŒArchitectïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒæ¥æ¬çŸé£ïŒèгå 客åãã°ã«ã¡ã¢ããªãæ¥æ¬çŸé£ãã¯ããmediaããšãpaymentããçµã¿åããã蚪æ¥èгå 客ãšé£²é£åºã«ä»ãŸã§ã«ãªãäœéšãæäŸããŠããŸãïŒ
PNGãã¡ã€ã«ã®åŠç
â»whiteã®éšåã¯ä»»æã®è²ã®ã»ããpattern:checkerboardãªã©ã®çµã¿èŸŒã¿ãã¿ãŒã³ã䜿çšå¯èœ
- 䜿çšèšèªïŒshãImageMagick
PNGãäžéæã«ããããŸãã¯èæ¯ãã€ããããã«äœ¿ã£ãŠããŸãã
- åçè ïŒãã¯ã·ãæ ªåŒäŒç€Ÿãéœè€éŒäººïŒãšã³ãžãã¢ïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒpixivãpixivã³ããã¯ãBOOTHãpixivFACTORYãpixiv SketchãPawooãImageFlux
Gitã³ãã³ãã匷åãã
- 䜿çšèšèªïŒbash
SCM Breezeã¯Gitã䟿å©ã«å©çšã§ããæ©èœãæäŸããŠãããã·ã§ã«ã¹ã¯ãªãã矀ã§ããgsãšgdã¯ããããgit statusãšgit diffã®æ©èœã匷åãããã®ã«ãªã£ãŠããŸããïŒå€§åã¯ã·ã§ãŒãã«ããç³»ã®æ©èœã§ãïŒ
- åçè ïŒãããŒããªãŒæ ªåŒäŒç€ŸãSergio ArcosïŒãšã³ãžãã¢ã»ãããŒãžã£ãŒïŒ
- äž»ãªéå¶ãµãŒãã¹ïŒMoneytreeãMT LINK
ãããã«
ããã£ã1è¡ã®ããã°ã©ã ããšäŸ®ããªãããããŒã¿éèšããããã»ã¹æäœãç»åå å·¥ãŸã§ãã¯ã³ã©ã€ããŒã§å®çŸã§ããåŠçã¯å€çš®å€æ§ã§ããæ¬çš¿ã®ã³ãŒããåèã«ããŠãããªãã®ããªã¬ãªã¬ã»ã¯ã³ã©ã€ããŒããäœãåºããŠã¿ãŠãã ããã
ç·šéïŒäžèæŽïŒãµã ã©ã€ãïŒ




