ããã¯èšäºã§ã¯ãªãããã§ã€ã¹ããã¯ã§ãã ããªããã«ããã®äžã§èªãã§ããã®ã¯ãäž»å補åã§ããiFunnyã«é¢ãã5幎éã®ãã¹ãŠã®äœæ¥ã®ããã®ç§ãã¡ã®ã°ããããã¯ããã¹ã®çµãã§ãã ãããããç§ãã¡ã®ç©èªã¯ãééããé¿ããããç¬ããåŒãèµ·ããããããã®ã«åœ¹ç«ã€ã§ãããã ã©ã¡ããè¯ãã§ãã 人ã ãç¬ããã-FunCorpã®è·æ¥ã¯13幎éã§ãã
ããŒã ãšè£œåã«é¢ããããã€ãã®çŽ¹ä»
2004幎ã«ãã³ã¶ã§åŠçãšããŠçµæããããŒã ã®ããã¯ããŒã³ã é·å¹Žã«ããã£ãŠã圌ãã¯ã¢ãã€ã«ã§äœããããŸããã 2010幎ãå€ãã®ã·ãªãŒãºã§ãAyDaPrikol-é¢çœãåçã衚瀺ããããã®iOSã¢ããªã±ãŒã·ã§ã³ã§ãã ç¹å¥ãªæè³ãªãã§ããã·ã¢ãšCISã®èŽè¡ã«å±ããŸãã
ããªãã§ããïŒã-ç§ãã¡ã¯èããŠããã2011幎ã«ã¯ãã§ã«åç±³åžå Žåãã®ããŒãžã§ã³ãäœæããŠããŸãã æåã®12ãæã§ãApp StoreãšGoogle Playã®iFunnyã¯300äžäººä»¥äžã«ãã£ãŠããŠã³ããŒããããŠããã5幎åŸã«ã¯ç±³åœã§éåžžã«äººæ°ã®ããæ¬æ Œçãªåš¯æ¥œãœãŒã·ã£ã«ã¡ãã£ã¢ïŒ DAU = 3.5MïŒã«å€ãããŸãã
ãªãŒãã£ãšã³ã¹ã®äž»èŠéšåã¯ãiOSããã³Androidã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¶ãŒã®ãŸãŸã§ãã ãã¹ãŠã®æ©èœã¯ããã§å©çšå¯èœã§ãã ãããã ãŠã§ãçã¯èŠèŽè ãšã³ã³ãã³ãã®äž¡æ¹ã®é¢ã§ã¢ããªã«åŸã ã«è¿œãã€ããŠããŸãã ãŠãŒã¶ãŒã¯æ¯æ¥iFunnyã«çŽ40äžä»¶ã®ããŒã ãæçš¿ãã6å件以äžãé²èŠ§ããŠããŸãã
ããããªã«è€éãªã®ã¯ãæ®éã®åçã®ãªãŒãã¬ããã ä»äºã®åŸã«ãããè¡ãããšã¯æ¬åœã«äžå¯èœã§ããïŒãããããããªãããŒãªããžãã¹ããžãã¯ïŒãã®å Žåã¯ãšã³ã¿ãŒãã€ã³ã¡ã³ãããžãã¯ïŒãå®è£ ããããšã«å ããŠãããã¯å éšã®é倧ãªæè¡ç課é¡ã§ããããŸãã ããã§ãããšãã°ãããªãã¯å¯ŸåŠããªããã°ãªããŸããïŒ
- ããŒã¯æã«15,000 RPSãããã¯ãšã³ããµãŒããŒã«å°éãã60ããªç§ã§å¿çã圢æããŸãã
- 1æ¥ããã35åã®ã€ãã³ããããŒã¿ãŠã§ã¢ããŠã¹ã§æžã蟌ãŸããåæãããŸãã
- 1ãæããã5.5ãã¿ãã€ãã®ã³ã³ãã³ããCDNãä»ããŠé ä¿¡ãããŸãã ããŒã¯æã«ã¯ã1ç§ããã28,000ãªã¯ãšã¹ããã€ãŸã1ç§ããã44 Gbpsã§ãã
æåã®ããŒãžã§ã³ã§ã¯ããã®èšäºã®é·ãã¯22ããŒãžã§ããã圌ãã¯ãèŠããŠãããã¹ãŠãåéããŸããã ãã®åŸã圌ãã¯ãããä»ã ãHabréã«ããå¥ã®ãã¡ã€ã«ã«ãªãããšã決å®ããæãç¹åŸŽçãªãã®ãéžæããŸãããã¹ãã¬ãŒãžãšã®æ··ä¹±ãDAUã®èšç®ãšã©ãŒãMongoãšã®BDSMã²ãŒã ãèŠèŽè ã®è©³çŽ°ã«ã€ããŠã ãããŠã¡ãã£ãšããé°è¬ïŒãŸã äž»æµã§ã¯ãªãã£ããšãã«ããã©ã³ããšããŒãã³ãçµã³ä»ããŸããã
é«è² è·ãããžã§ã¯ã
iFunnyã®åã¯ãããããã®ãããžã§ã¯ãããããŸããããæ¥é èŸhighloadã®ãããžã§ã¯ãã¯ãããŸããã§ããã æãå°è±¡çãªã®ã¯ãæ¯æ¥100,000人ã®ãŠããŒã¯ããžã¿ãŒãåºåžããããšã§ãã ããã§ãã¹ãŠãããŸãã«ãçªç¶èµ·ãã£ãã è² è·ãšããŒã¿éã«å¯Ÿå¿ã§ããªãã£ãããããã¹ãã£ã³ã°äºæ¥è ãŸãã¯ãã¯ãããžãŒãå®æçã«å€æŽããŸããã
次ã®ããã«ãªããŸããã
ããããã®åãã¯ãããèªäœã®çç±ã«ãã£ãŠåŒãèµ·ããããŸãããã©ãããé«äŸ¡ã§ãã©ãããæ©èœæ§ã«æ¬ ããŠããŠãã©ããã¯ãHetznerã®å Žåã®ããã«ããã¹ãã£ã³ã°èªäœãéããããšãäœåãªããããŸããã ç§ãã¡ã¯ããªãæ©èœäžå šã®é£äººã§ãããå®æçã«beatããããŠãŒã¶ãŒã®ãã£ã±ã/ç«ããã³ãã®ä»ã®è§£åã«ã€ããŠæ£åœãªèŠæ ãæããããããŸããã
æ°ã¥ããããã«ãç¹ã«éããé²ãžããããŠãã®éã«èµ°ãããšãã§ããŸããã ã±ãŒã¹ã«ã€ããŠã¯ãæ»ããã§èª¬æããŸãã
é害ç©è±åº
2012幎ã®åãã«ãã¢ããªã±ãŒã·ã§ã³ãšããŒã¿ããŒã¹ã¯AWSã«ãããŸããããŸããªãã1ã€ã®10GbpsãµãŒããŒããrsyncã䜿çšããè€æ°ã®ãµãŒããŒãžã®å°é£ãªãã¹ãçµãŠãCDNãä»ããŠã³ã³ãã³ãã®é ä¿¡ãéå§ããŸãã
ãããã5æãŸã§ã«ãAWSäžã®åçŽã«ã¹ã±ãŒã©ãã«ãªMySQLã倩äºã«çœ®ãããè² è·ãããããšå€±æãå§ããŸãã ãããŠãããã¯RDSãªã®ã§ ãããããããããšã¯ã»ãšãã©ã§ããŸããã ã¯ã©ãŠãã¯ãŸã æ°Žå¹³ã¹ã±ãŒãªã³ã°ã«é¢ãããã®ã§ãããå£ããŠããã®ã§ãOVHã«ç§»è¡ããããšã«ããŸãããOVHã¯ã³ã³ãã³ããé ä¿¡ããå Žåã§ãææãäžããŸããã
éåžžã®éçºè ãªã誰ã§ããã¢ãŒããã¯ãã£ã®å€æŽãã·ã£ãŒãã£ã³ã°ã«ã€ããŠèãå§ããã§ãããããç§ãã¡ã¯åã³æå°ã®æµæãã€ãŸãåçŽã¹ã±ãŒãªã³ã°ã®éãæ©ã¿ãŸããã OVHã§MySQLãæåã«åé€ããããšã ããã©ãŒãã³ã¹ãåäžããŸãããããã¯ãä»®æ³åã§ã¯ãªãããŒããŠã§ã¢ã§ããããªãŒããŒããããå°ããããã£ã¹ã¯I / Oã®åŸ®åŠãªéããããããã§ãã åæã«ã匷åãªããŒããŠã§ã¢ïŒ8ã³ã¢Xeonã24 GBã®RAMã300 GBã®SSDïŒã䜿çšããŸããããééçã«ã¯AWSãããå®äŸ¡ã§ããã
èå³æ·±ãäºå®ã¯åŸã«æããã«ãªããŸããã ãã°ãæãäžãããšã1ç§ããã50件ã®ãªã¯ãšã¹ããéä¿¡ããã³ã³ãã³ããçãã ãã·ã¢ã®IPã«æ°ä»ããŸããã ããã«ãããAPIããã¯ãšã³ããç¹ã«MySQLã«å€ãã®ã¹ãã¬ã¹ãããããŸãã ãããã®èŠæ±ããOVHãžã®è¿
éãªé£è¡ã®çç±ã®1ã€ã«ãªããŸããã ãã¹ãŠãé€å€ããåŸãããŒã¿ããŒã¹ã¯ããã«ç°¡åã«ãªããŸããããã§ã«3åã ãã§ãã
1ç§ããã50件ã®ãªã¯ãšã¹ããæ°é±éã§æ°ãããŠãŒã¶ãŒã襲æããå¯èœæ§ããããããããã»ã©åæºããŸããã§ããã ãããã圌ãã¯åŸ©pumpããããšã決ããŸããããã³ãã³ã°ã¯ãã§ã«éåžžã«å³ããæ¹æ³ã§ããã倧ããªããŒãžã ã£ãããã§ãã åçã®ä»£ããã«ã圌ãã¯jpegãè£
ã£ã700ã¡ã¬ãã€ãã®Ubuntaãã£ã¹ããªãã¥ãŒã·ã§ã³ãéãè¿ããŸããã ç§ãã¡ã¯åŸæããŠããŸãã-圌ãã¯éåžžã«æã£ãŠããŸããã ããã¯çŸåš15,000 RPSã®ããŒã¯ã§ããããåé¡ã®ããã50ã§ããç¬ããŸããããããã¯éèŠã§ããã
ãã®çµæã圌ãã¯é·ãéOVHã®èœåã享åããŠããŸããã§ããã 移転ã®1幎åŸãæ°ãããµãŒããŒã®è¿ éãªæäŸã«åé¡ããããŸããã é 延ã¯1ãæã«éããŸããããããã¯åµæ¥è ã®åœäžã§ã ã ç§ãã¡ã¯æé·ãç¶ãããã®ãããªæ¿çã«çå£ã«èŠãã¿ãŸããã 圌ãã¯AWSã«æ»ã£ãŠããŸãããAWSã«ã¯ãã§ã«å®èšŒæžã¿ã®ãœãªã¥ãŒã·ã§ã³ãSaaS補åããããŠæãéèŠãªããšã«ã¯æè»æ§ããããŸãã å³ããäŒæ¥ã«ãã£ãã·ãã£ãã©ã³ãã³ã°ãä»»ããŠãã³ãŒããæžããŸãããã ãããŠä»ãç§ãã¡ã¯ãæåã¯ã¯ã©ãŠããšSSDããªããã°ãç§ãã¡ã¯ãŸã£ããååšããªãããšããŸããŸãç解ããŠããŸãã ãã®èšäºã®ããã«ã
çŸåšãS3ãRedshiftãELBãRoute 53ãCloudFrontãElasticMapReduceãElastic Beanstalkã®AWS管çãµãŒãã¹ãæ倧éã«æŽ»çšããããšããŠããŸãã å°ããªããŒã ã®å Žåãããã¯è§£æ±ºçã§ãããããå¹ççã«æ©èœããŸãã ããããããã¯éæ³ã®æè¡ã®å©ããåããŠåé¡ã解決ã§ããããšãæå³ãããã®ã§ã¯ãããŸããã ç§ãã¡ã¯ãã§ã«åãRedshiftãæ·±ãæãäžããŸãããç§ãã¡ã¯åŸ¹åºçã«ãžãã«ããç 究ããªããã°ãªããŸããã§ããã ãããã£ãŠãããã¯ãã¹ãŠãNoSQLã®ããã«ã決ããŠç¹å¹è¬ã§ã¯ãããŸããã ããããªããšãç解ããå¿ èŠããããŸãã
æ¥æé·
FalseDAU
ãã¹ãŠåã2012ã æè¡ã®æ··ä¹±ãšheã®æ代ã«ã¯ããã¹ãŠãæé·ãšãšãã«é 調ã§ããAppStoreã®ããã3ãšæ¥ã ã®ãã©ãã£ãã¯ã®å¢å ã§ãã
ãããããåç¥ã®ããã«ãäžå®ã¯ããã€ãã®åœã®ããããªãšããåŒãèµ·ãããŸãã FalseDAUã®2ã€ã®ã±ãŒã¹ã«çŽé¢ããŠããŸãã
æåã®é£èºã
äºæ³å€ã«ã2æ¥éã§äžå¯©ãª+30äžãç²åŸããŸããã2200Kã2500Kã«å€ãããŸããã
ãã®çç±ã¯ããã«å€æããŸããã iFunnyã¯ç»é²ããã«å¿åã§äœ¿çšã§ããŸãã ãã®ãããªãŠãŒã¶ãŒãèæ ®ãããŸãã APIãã¯ã©ãã¯ãã人ããããå©çšããŸããã èšç®ããã©ã³ãã ãªèå¥åã眮ãæããŠããªã¯ãšã¹ããéä¿¡ããŸããã
2çªç®ã®ãžã£ã³ãã
ããŒã¹ãOVHã«ç§»åãããã¬ãŒããåæ¢ãããšããã«ãDAUããžã£ã³ãããŸããã UXã¯ããªãã«ãšã£ãŠåè«ã§ã¯ãªããšæããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯ããéãåäœãå§ãã誰ããããã«äœ¿ãå§ããŸããã ãããã£ãŠãç§ãã¡ã¯ããã«ç±æãæã£ãŠããšã€ããªã«ããŒã«ã®äŒæ¥ã€ãã³ã-èšé²ã®æºåãå§ããŸããã ããããæ®å¿µãªããšã«ãããã¯èšé²ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ãAWSããOVHã«ç§»è¡ããæ°é±éã®æéã§ããã ããã§ã¯ãããŒã¿ããŒã¹ãšäŒã£ãŠããã€ãŸã§ã幞ãã«æ®ããããšã«ãªã£ãŠããã ãã®äžæŽåã«ãããMySQLã®DAUã«ãŠã³ããæ£ãããªãããšãæããã«ãªããŸããã è³¢ã人ã¯ã¢ã¯ã»ã¹ãã°ã§ã«ãŠã³ãããäœããã®çç±ã§ããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããšã«ããŠãŒã¶ãŒããã®æ¥ãŸã ãã°ã€ã³ããŠããªãå Žåã¯ã«ãŠã³ã¿ãŒã«+1ããããªã©ã®éã¢ãããã¯ã¯ãšãªãå®è¡ããŸãã ãã®çµæããããã®ããŒã¿ããŒã¹ã¯ãšãªãé·åŒãã»ã©ã䞊åã¯ãšãªã«ããDAUãå€ããªããŸããã ïŒãã§ã€ã¹ããŒã ïŒ
Redisã®DAUã®ç»é²ãšã«ãŠã³ããéåžžã®ãœãŒãæžã¿ã»ããã«è»¢é-ããã§åé¡ã解決ããŸããã ç§ãã¡ã¯ãã®ãã¿ãŒã³ã奜ãã§ãããã3幎ã§Redisã®ã¡ããªã¯ã¹ãã«ãŠã³ãããããšã§ã³ãŒãã麺ã«å€ããŸããã 2016幎ã圌ãã¯fluentd + S3 + Redshiftãä»ããŠãµãŒããŒããã³ã¯ã©ã€ã¢ã³ãã€ãã³ãã®ã³ã¬ã¯ã·ã§ã³ãå®è£ ããŸããã ããã«ãããã¹ãã²ããã£ãã³ãŒãã«ä¿åãããŸããã ãããã©ã®ããã«èµ·ãã£ããã«ã€ããŠã¯ãå¥ã®æçš¿ãæžãå¿ èŠããããŸãã ãããŠ1ã€ã§ããããŸããã
ã¬ãã£ã¹ã»ãã¹ã¿ãŒ
æéãçµã€ã«ã€ããŠãRedisã¯å€±æãå§ããŸãããã以åã¯åé¡ã¯ãããŸããã§ããã åé¡ã®ããŒã¯ã¯å€ã§ããã PHPããã¢ã¯ã»ã¹ã§ããªããªããããã«ãã¹ãŠãããŠã³ããŸãããã»ãšãã©ãã¹ãŠã®HTTPãªã¯ãšã¹ããããã«è¡ããªããã°ãªããªãã£ãããã§ãã
ç解ãå§ããŸããRedisããã»ã¹ãèŠãŠãstraceãçºèŠããããã«ãToo many open filesãããããŸãã æ¥ç¶æ°ã®äžéã¯1024ã§ãããmaxclientsãã©ã¡ãŒã¿ãŒã®åœ±é¿ãåããªãããšãããããŸãã ulimit -n 60000ããå§ããŸã-æ¥ç¶ã®æ倧æ°ã¯10240ãŸã§ããå¢ããããã以äžã¯å¢ããŸããã 圌ãã¯é©ãã¹ãããšãçºèŠããŸãããRedis2.4以åã§ã¯ã10,240ã®æ¥ç¶ãšããå³ããå¶éããããŸããã æ°æ¥åŸã圌ãã¯RedisããŒãžã§ã³2.6 RC5ãã€ã³ã¹ããŒã«ããæ°žç¶çãªæ¥ç¶ããªã³ã«ããŠå®reliefã®ããæ¯ãã€ããŸããã
ã¢ã³ãŽBDSM
ããŒã ã®æé·ã¯2013-14幎ã«ã®ã¿éå§ãããŸãã QAã«å ããŠãDevOpsããŒã ãç·šæãããããã¯ãšã³ããšããã³ããšã³ããå®æããŸãã ã¢ãã€ã«éçºã§ã¯ãiOSãšAndroidã«3人ã®éçºè ãããŸãã ããããåæã®æ®µéã§ã¯ã1.5人ãæ®ã£ãŠããŸããã ãããã£ãŠããªãœãŒã¹ã®äžè¶³ãæéå·®ãšå¹³å¡ãªäžæ³šæã«ããç¡ç äžè¶³ã ãããŠãç§ã¯å€ãã®ããšãããªããã°ãªããŸããã§ããã ããšãã°ãAPIãæ°åããçŽãããããã¯ãšã³ãã®ã³ãŒããå®å šã«æžãæããŠãMongoDBã§åäœããããã«ããŸãã å€ãã®äººã¯ãããéåžžã®ããŒã¿ããŒã¹ãšã¯èããŠããŸãããã
ã©ãããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŒãåºãã®ãããããŠYouPornã®ããªãã ããç¥ãããçãåã§ãHighscalabilityã¯ãRedisãã¡ã€ã³ããŒã¿ãŠã§ã¢ããŠã¹ãšããŠäœ¿çšããŠããããšãèªã¿ãŸããã ãã¡ããããã¹ãŠãRAMã«ä¿ç®¡ããã®ã¯æãã§ããè€éãªã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ãå¿ èŠã«ãªããŸãã ããããYouPornããã§ã«Redisã«åº§ã£ãŠããå ŽåãMongoDBã«å¯ŸåŠããããšã¯ã§ããŸãããïŒ
ã¯ããæã 圌女ãšäžç·ã«ããŠè¯ãã£ãã®ã§ãããããé »ç¹ã«éã§ã¢ã¿ãããäœããã®ã£ã°ãæ¿å ¥ããŸããã ãã®å°èª¬ã¯ä»æ¥ãŸã§ç¶ããŠããŸãããæåã®ç·ã®å°äœã§ãç§ãã¡ã¯å€ãã®ããããããåŠæ ¡ãçµéšããŸããã
ãã¹ãŠãæ£åœåããçç±ã¯ãç®±ããåºããŠããã¡ããèªå€§åºåã ã£ãã ç§ãã¡ã®å Žåãç§ãã¡ã¯æ ãè ã§ãããè¿œå ã®ã³ãŒããèšè¿°ããããããŒã¿ãã©ã³ã·ã³ã°ã®åé¡ã«å¯ŸåŠãããããããªãããã䟿å©ã§ããã MongoDBã«æ»ããšãã€ã³ãã¬ãŒã¹æŽæ°ãã¹ããŒãã¬ã¹ããã³åã蟌ã¿ããã¥ã¡ã³ãã«é äºãããŸããã è² è·ã®é«ããµãŒãã¹ã§ããŒã¿æ§é ãèšèšããã¢ãããŒãã«ã€ããŠèããããããŸããã ãã®ãããMySQLããã®æžãæããšç§»è¡ãéå§ããŸããã ããã¯2012幎åã°é ã§ãMongoDB 2.0ã®äœ¿çšãéå§ããŸããã
ç§ãã¡ã®å°æ¥ã®è©Šç·Žããã¹ãŠäºæ³ããŠããæªãå åã¯ããã§ã«å§ãŸã£ãã°ããã§ãã æžãæãããã»ã¹äžã«ãã¹ãçºçããŸããã äºå®ãiFunnyã«æ³šãããããŒã ã¯ãã¹ãŠçŠæ¢ãããå¯èœæ§ããããŸããããã«ã¯äžå®æ°ã®èŠæ ãå¿ èŠã§ãã MongoDBã§ãããå€ãèšå®ããéçšãéå§ãããšãåŒãç¶ãMySQLããèªã¿åããŸããã ããã§ã¯ã圌ãã¯ã»ãšãã©ãŒãã§ãããæåéã1ã€ãŸãã¯2ã€ã®èŠæ ã§äœæ¥ãçŠæ¢ããã®ã«ååã§ããã ãããŠãç§ãã¡ã®ãããŒã«ãèãããš... 4000åã®éžæãããããŒã ãFeaturedããæ¶ããŸããã äžæ¥ã§ãã¹ãŠã修埩ãããŸããããç§ãã¡ã®å¹³å¡ãªäžæ³šæã«ãããã©ãã«æºã¡ãç¶æ³ããããŸããã
移è¡
ã³ãŒããæžãçŽããŠ5ãæåŸãç«ãæ¶ããŠããã®èªç±æéã§ããã°ããã移è¡ã®æ¥ãæ¥ãŸããããããã«å€±æããŸãããMongoDBã¯è² è·ã«èããããšãã§ããŸããã§ããã å€ãã®ã€ã³ããã¯ã¹ãã¹ããŒããã®ãå¿ããŠããããã§ãã å€æ°ã®ãã°ãäœæãããããã§ãã çã®MongoDB-PHPãã©ã€ããŒã¯ãã¡ã¢ãªãªãŒã¯ããã©ãŒã¯ãããã¹ã¯ãªããã®åé¡ã§ç¶æ³ãæªåãããŸããã 誰ããã¹ãã«ã€ããŠäœãèšããŸãããïŒ åœæã¯ãã¹ãããããŸããã§ããããæéã¯ãããŸãããæ°ããæ©èœãããã«å®çšŒåããŠããŸãã
ãã®æ¥ãç§ãã¡ã®ãŠãŒã¶ãŒã¯ãå°ãªããšãã©ããã§ç¬ãããšãæãã§ã9GAGã®ãªãœãŒã¹ã«çªå ¥ããå®å šã«çœ®ããŸããã å°ãªããšã1ã€ã®åã³ã
æå·®ãåé¡ãæããããŸãããã¢ã¡ãªã«ã§æã掻åçãªææ-ç§ãã¡ã¯å€ãéãããŸãã ãããŠããããç§ãã¡ãå¯ãªããã°ãªããªãç¿æã®æ§åã§ãã
2é±éã«ããã骚ã®æããäœæ¥ã§ã2åç®ã®è©Šè¡ã決å®ããŸããã ãã¹ãŠãã¹ã ãŒãºã«ãã»ãŒå®ç§ã«è¡ããŸããã ã¬ããªã«ãšã·ã£ãŒãããªããã°ãç§ãã¡ã¯é ããŸã§è¡ããªãã ãããšããç解ããããŸãããMongoDBã䜿çšãããšãç°¡åã«èµ·åã§ããŸããã
ããŒã¯è² è·ã«éãããŸã§ã¯ããã¹ãŠé 調ã§ããã åºå°ã¯å€ã®ãŠãŒã¶ãŒã®æµå ¥ã«èããããšãã§ããªãã£ããããç§ãã¡ã¯åã³æšªã«ãªããŸããã åæã«ããã¬ãŒãã®çç±ã¯æ確ã§ã¯ãããŸããã§ãã-CPUãŸãã¯IOãããã€ã¹ã¯å®éã«ã¯äœã話ããŸããã§ããã 次ã®ç ãã¬å€ã®åŸã è¯ããµããªã¢äººã®å©ããåããŠãåé¡ã®åå ããããŸãïŒMongoDBã®æšæºã¡ã¢ãªã¢ãã±ãŒã¿ãŒã¯ãè² è·ã®äžã§ã¯ããŸãæ©èœããŸããã ãã®çµæãã¢ãã±ãŒã¿ãŒãtcmallocã«çœ®ãæããå€ãåŸ ã¡å§ããŸããã åºæ¥äžãããè² è·ã3åäœäžããç§ãã¡ã¯æã å€ã«å¯å§ããŸããã ããããç§ãã¡ã¯å¥ã®éèŠãªããšã«æ°ã¥ããŸããã人ã ãããŒã¿ããŒã¹ãæžãã 次ã®ããŒãžã§ã³ã§ã¯ãMongoDB 2.6éçºè ã¯ããã©ã«ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«tcmallocãå«ããããã«ãªããŸããã
ãã®éãã£ãšãç§ãã¡ã®ãµããŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠäžæºãèšãæçŽãéããŸããã
ã©ãããããã®åŸãç§ãã¡ã¯ãŠããŒã¯ãªç¶æ³ã«ãããŸããã ãã®ãããªé«è² è·ã«çŽé¢ããŠãã人ã¯ã»ãšãã©ããªãããšã確èªãããŸããã ãããã¯ãèšãæãããšããã®ãããªè² è·ã§ãã®ãããªãã¯ãããžãŒã䜿çšããã®ã¯ç§ãã¡ã ãã§ãããååãšããŠã1ã€ã®ããŒãã§å®è¡ã§ããããšãèªããŠããŸãã
æéãããã®ãŒã£ãŠMongoDBã«ç§»è¡ãããã©ãããå床決å®ãããšãçãã¯æ確ã«ãªããŸãããã©ã€ããªã¹ãã¬ãŒãžãšããŠ-äžèŠã§ãã ãã°ã®äœæ¥ã¯æ¬¡ã®ããã«ãªããŸãïŒæåã«çµåãåãé€ããä»®æ³ã·ã£ãŒãã§ã·ã£ãŒãã£ã³ã°ãè¡ããã«ãŠã³ã¿ãŒãã©ããã«æã£ãŠéåæã«èªã¿åããã¹ããŒãã¬ã¹ã§PostgreSQLã®jsonbã®ãããªãã®ã䜿çšããŸãã 誰ãç¥ã£ãŠããããããããç§ãã¡ã¯åã³ç§»è¡ããŸãã ç§ãã¡ã¯çŽæããŸããã
èŽè¡
ãŠãŒã¢ã©ã¹ãªã¢ããªã±ãŒã·ã§ã³ã®èŠèŽè ã«ã¯1ã€ã®å€§ããªãã©ã¹ããããŸã-ãã¹ãŠãç¬ãããšãã§ããŸãã ããšãã°ããµãŒããŒãã©ã®ããã«åé¡ããããã«ã€ããŠïŒ
ãŸãããBest on toilet appããšããã¿ã€ãã«ã®æ祚ãæé ãã人ã¯ããŸããã
å€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ããã€ç ã«å¯ŸåŠããã®ã«åœ¹ç«ã€ãšããäºå®ã«æè¬ã®æçŽãåãåããŸãã ãŠãŒã¢ã¢ã¯çããŸãïŒ
ããã¯ãã¹ãŠç§ãã¡ã«çŽæ¥åœ±é¿ããŸãã
iFunnyã®æè¡çãªçµå©ã®éå§åŸåããŠã®ããšã§ããŠãŒã¶ãŒã¯éçºããŒã ã®ãµã«ãšåŒã°ããŸããã åŠå®ããŸããã FunCorpããŽãã芧ãã ããã
ããããå¥ã®åŽé¢ããããŸãã
ãŸããå€ãã®ãŠãŒã¶ãŒãããŸãã ããããªééã-ãšãµããŒããéè² è·ã§ãã
第äºã«ã圌ãã¯èªåèªèº«ã䞻匵ãããã ç©äºã®é åºã§ãã³ã³ãã³ãã«å¯Ÿããã¬ã€ããæé
ãããã¹ãŠããã€ãã¹ããŸãã
ããã§APIãæ©èœããŠããŸãã
APIã¡ãœãããæ©èœããªããªããŸããã èŠæ ãéã£ãã å€ãã®ä»®èª¬ããããã»ã«ã©ãŒãããã¯ãŒã¯ã«ãããããã¯ã«ã€ããŠãèããŸããã ããããååãªæ°ã®ãŠãŒã¶ãŒã®èŠæ ãéãŸã£ããšãããã¿ãŒã³ãèŠã€ããããšãã§ããŸããã ãããã¯ãžã§ã€ã«ãã¬ã€ã¯iPhoneã§ããã ãã®åŸãä¿è·ã解é€ããŠãç¬èªã®ãã©ã³ãããã®ä»ã®å°ããªãã®ã§ç¬èªã®èª¿æŽãå®è£ ããã®ãæµè¡ããŸããã å€ãã®ãç¹ã«ãã£ãŒã³ãšã€ãžã£ãŒã¯ãé¢çœãã£ãŠç®ç«ã€ã®ãå©ããŸããã ãããã®åŸ®èª¿æŽã®1ã€ã«ã¢ã¬ã«ã®ãŒããããŸããããµãŒããŒã«éä¿¡ããåã«ãçºä¿¡HTTPèŠæ±ãã€ã³ã¿ãŒã»ããããããããŒãããã€ãåé€ããŸããã 圌ãã¯ãç¹å®ã®èª¿æŽã«é¢ããåé¡ã«ã€ããŠãŠãŒã¶ãŒã«èŠåãå§ããŸããããããŠç§ãã¡ã¯ããã«å¥ããŸããã
ç§ãã¡ã¯ãã®ãããªãã¥ã¢ã³ã¹ã«ã€ããŠãèããŠããŸããã§ããããå€ãã®èŽè¡ããã®ä»äºãããŠããŸãã ä»ãç§ãã¡ã¯ã1äžãŸãã¯5äžäººãäœäººããããæãåºããŸããã ã¢ããªã±ãŒã·ã§ã³å šäœã«ã€ããŠ-ããã¯ãããããã§ããããµããŒãã®ããã«...ããªãã¯ãã§ã«ãããã©ã®ããã«èŠããããèŠãŠããŸããã
çµè«ïŒããªããã¯ãªãŽã©ã«ããŒã§ãªããŠããè©å€ã¯æªããªããŸãã é·ãéçºçµéšã®äžã§ãFlurryãAWSããAppleãGoogleãŸã§ããã¹ãŠã®äººã«ãã°ãã¯ã©ãã·ã¥ã«ééããŸããã ããã¯ããŠãŒã¶ãŒã«å¯Ÿããè©å€ãšDAUã®äž¡æ¹ã«ææãäžããŸããã
äžæ³šæ
æåŸã«äžæ³šæã«ã€ããŠã 人çèŠå ã®ãããå€ãã®ééããçºçããŸãã ãããŠãç§ãã¡ãäŸå€ã§ã¯ãããŸããã
146ïŒ ã¯ãã¥ããã ãã§ãªã
IFunnyã«ã¯æ祚çšã®Webã¢ããªããããŸãã ããã§ãããã¯ãšã³ãã®æéã足ãããããã³ããšã³ããããã¯ãšã³ãã®ã³ãŒããæžããããšãã欲æ±ã®ããã«ãæ祚ã¯éååçã§ããããšãå€æããŸããã æ祚æ°ã¯ãã³ãŒãå ã®ãã£ãŒã«ãã®éåžžã®å¢åã«ãã£ãŠæŽæ°ãããŸãããããŒã¹ã®å Žåãããã¯ã®ãªãå žåçãªèªã¿åãåæžã蟌ã¿ã§ãã ãã·ã¢éžæã®æé«ã®äŒçµ±ã«ã¯ççŸããããŸããã ãã¡ããããŠãŒã¶ãŒã¯ç§ãã¡ãã ãŸãã ãããã圌ãã¯ãããã¯æå³çã«è¡ããããšããèããŠããŸããã ããããHabréã§ã®ã¿çå®ãèªããŸãã
æ¥ã®èšŒæ ã¯æ®ã£ãŠããŸããããéåŒãªã³ã¡ã³ãã¯æ®ã£ãŠããŸãã
次ã®æ祚ã§ã¯ããã¹ãŠããã§ã«æ£ããã£ãã®ã§ãããç§ãã¡ã®ã¹ã¿ã€ã«ã§ããäžåºŠæ°ããã°ãæ祚ã®48ïŒ ãåãåã£ããã©ã³ãã¯ãããŒãã³ã«ã»ãŒ2.5åæãããšçµè«ä»ããããšãã§ããŸãã
åå£ãªããããª
ãŠãŒã¶ãŒãåéãããŠãŒã¶ãŒãåéãããšã³ã²ãŒãžããéœæ°ã«éœæ°ã«éãããããããã¡ãã£ãšããããšãå¿ããŠããŸããŸãã ãããã®ã©ãããããŸããã 2幎åã«èªåã®æã§èŠ³å®¢ãæ®åœ±ããŸããã
Androidã¢ããªã±ãŒã·ã§ã³ã®ãããžããµããŒãããŸããã 2015幎ã«ã¯ããµã ã¹ã³ã«ã®ã¿ç»å ŽããŸããã éç¥ã¯ã¯ãŒã«ã§è¿·æã§ã¯ãããŸããã§ããã ãã°ããããŠããããžãå£ãã誰ãæ°ã¥ããŸããã§ããã æ°ãæåŸã補åã®1ã€ãããã«æ°ä»ããŸããã ãã¹ãŠãä¿®æ£ããDAUã«120Kãè¿œå ããŸããã
QAã補åãããã³éçºè ã®äž¡æ¹ã«ãã泚æãæãå¿ èŠãããããšãããããŸããã ãããŠããªãã«ã ã¯ããã¯ã-ããªãã«ã ããŠãããªãã¯ãã®ãã³ã°ã©ã€ããèªã¿ãŸãããããã®éã«äœããå£ããŠããŸãã ç§ãã¡ã®ããã«ãªããªãã§ããã§ãã¯ããŠã¿ãŠãã ããã
ãããŠãHabréã®ããã°ãæŽæ°ããæ°ããã¹ããŒãªãŒãšå€ãã¹ããŒãªãŒãå
±æããŸãã
2013幎ã«ã¯ãã¢ãã¡ãŒã·ã§ã³ã®æé©åã«é¢ããGifãžã®æçš¿ãŸãã¯Gifãžã®æçš¿ã¯1件ãããããŸããã§ãã ã é·å¹Žã«ããã£ãŠãAWSãNoSQLãiOSãAndroidãããŒãå
ã®æ°åŠãããã°ããŒã¿ãã³ã³ãã³ãã®äºå調æŽãã¹ãã ãªã©ããããããããšããããã話ããŸããã 倱æããããªãå ŽåããããŸãããè¯ã決æãäžããããããã«ããŒã ãå±±ã»ã©ãããŸãã ãããã£ãŠã楜ããããšãèµ·ããããã人çã®ãŠãŒã¢ã¢ãå¢ããŸã:)