ãããžã§ã¯ãå šäœãå®ç§ã ãšèšãã€ããã¯ãããŸãããããã®ãããžã§ã¯ãã®äœæã«åœ¹ç«ã£ãäž»ãªãœãªã¥ãŒã·ã§ã³ã«ã€ããŠèª¬æããããšæããŸãã ç§ãã¡ã«åããããWikipedia.orgã¯ã1ãæã«120åããŒãžãæäŸããŸãããã®ãããæåãã人æ°ã®æé·ã«åããŠã³ãŒããæºåããããšããŸããã
wikipaintings.orgãšã¯-www.wikipaintings.org/en/About
éçºã®æåã®æ®µéãšæ¬¡ã®æ®µéã®äž»ãªã¿ã¹ã¯ã¯çµäºããŸããããµã€ããåããããã«ãã©ã³ãã£ã¢ãåŒãä»ããŸãã
çµµç»ãéå±ã ãšæãããå Žåã¯ãArchimboldã®åµé æ§ãè©ŠããŠã¿ãŠãã ãã-www.wikipaintings.org/en/giuseppe-arcimboldo/spring-1573#supersized-artistPaintings-184903
çµµç»ã¹ã¿ã€ã«ã®åé¡ãæçµçã«ç解ããããšã«èå³ãããå Žåã¯ã www.wikipaintings.org / en / paintings- by-styleãžãããã
ããŠãä»ãHubbraeffektomãµã€ããé 眮ããåŸïŒãŸã é 眮ããŠããªãå Žå-ãã¹ãŠã®å人ãžã®ãªã³ã¯ãã¹ããŒããŸãïŒãäž»ãªãã®-æè¡çãªãã³ãã«ç§»ããŸãããã
æè¡ãã©ãããã©ãŒã
ãã®ãããžã§ã¯ãã¯ãASP.NET MVCãLINQ2SQLãMS SQL Server 2008 R2ãããã³JQueryã䜿çšããŠå®äºããŸããã AWSãJAVA / PHPéçºè ã«ããéç¹ã眮ããŠããããšã¯ç§å¯ã§ã¯ãããŸããããç§ã¯ç¹ã«æµãŸããŠãããšã¯æããŸããã§ããã
éçºè ãžã®ç§ã®ã¢ããã€ã¹ããWebã¢ããªã±ãŒã·ã§ã³ã®åŸæ¥ã®å±€ã®é ã«æ€èšããããšãææ¡ããŸãã
ããŒã¿ããŒã¹
ããžãã¹ãªããžã§ã¯ãã®éäžããŒã¿ããŒã¹ããå§ããŸãã-èŠç©ããã«ãããšãããªã匷åãªã€ã³ã¹ã¿ã³ã¹ããè¿ãå°æ¥ïŒçŸæç¹ã§ã¯High Cpu Mediumã€ã³ã¹ã¿ã³ã¹ïŒã«å¿ èŠãªæ°ã®å žåçãªã¯ã©ã€ã¢ã³ããªã¯ãšã¹ããåŠçã§ããŸãã æãäžè¬çãªHTTPãªã¯ãšã¹ãã®å Žåãå¿ èŠãªãã¹ãŠã®ããŒã¿ãè¿ãSQLã¯ãšãªã1ã€ã ãå®è¡ãããããã«ããŸããããã®ã·ããªãªã§ã¹ã±ãŒãªã³ã°ãæãé£ããã®ã¯ããŒã¿ããŒã¹ã§ãã
ããŒã¿ããŒã¹ã«ãã¡ã€ã«ãä¿åããããšã匷ãããããããšèšãããšãéèŠã§ãã SQL Server 2008ã®é«åºŠãªæ©èœã«ãããããããããã¯ééã£ãæ¹æ³ã§ãã EC2ãElastic Computing Cloudã®ç¥ã§ããããšã¯å¶ç¶ã§ã¯ãããŸãããæåã®ãµãŒããŒã¯åãªãããã»ããµã§ããããã®äž»ãªç®çã¯ä¿åã§ã¯ãªãèªã¿åãã§ãã
æåã¯ããŠãŒã¶ãŒãã¡ã€ã«ãå€ãããŠã©ã®ãã©ã€ãã«ãåãŸããªããããS3ã§ã®ãããã®å Žæã¯ç¡éã§éåžžã«ä¿¡é Œæ§ã®é«ããã¡ã€ã«ã¹ãã¬ãŒãžã§ãã ããããæåã¯é ãããã«èŠãããããããŸãããããã®é床ã¯å€ãããã1ããã»ã¹ãŸãã¯1000ã§åäœããŸãã
è€éãªã¯ãšãªã®çµæãããŒã¿ããŒã¹ã¬ãã«ã§ãã£ãã·ã¥ããŸãã 1ã€ã®ã¹ãã¢ãããã·ãŒãžã£ã«ã«ãã»ã«åãããçµµç»ãã¢ãŒãã£ã¹ãã®ããããçš®é¡ã®æ€çŽ¢ããããŸãã ãã£ãã·ã³ã°ããŒãšããŠããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãèšé²ããå¥ã®ãŠãŒã¶ãŒãåãã¿ã°ãŸãã¯ã¹ã¿ã€ã«ãã¯ãªãã¯ãããšãããŒã¿ããŒã¹å ã«é©åãªãªããžã§ã¯ãã®IDã®æºåæžã¿ãªã¹ããæ¢ã«ãããŸãã ãŸããããŒãžã³ã°ã䜿çšããå Žåã«çµæãå³åº§ã«æäŸã§ããŸãã
ã¡ã€ã³ãšäžç·ã«åŸå±ãªããžã§ã¯ããããã¯ããŸãã ããšãã°ãç»åã¯ç»åã®è¡ã«ã·ãªã¢ã«åãããXMLãšããŠä¿åãããã¢ãŒãã£ã¹ãã®è¡ã«ã¯åãXMLãšããŠä¿åãããŸãã ã¯ããããã¯ããŸãçŸãããããŸããããåãµãã¯ãšãªã¯å°ãªããšã0.0005ç§ã§ããããŒãžã«ãã¹ãŠã®ãã€ã³ããæç»ããå Žåããã®æéã«200ãæããå¿ èŠããããŸãã
ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãæé©åããããã«é ãããŒã¿ãéãããšããèšäºãéåžžã«åœ¹ç«ã¡ãŸãã ïŒ
CïŒ/äžéå±€
ããŒãžã®ã¬ã³ããªã³ã°æéãšåäž»èŠæäœã远跡ããŸãã æè¿ã stackoverflowãããã¡ã€ã©ãŒã匷調衚瀺ãããŸããããäžè¬çã«ã¯ãèªåã§ç°¡åãªããšããã°ããè¡ãããšãã§ããŸãã BeginRequest-åæåãEndRequest-ã§ã¯ãããŒãžãNç§ä»¥äžã¬ã³ããªã³ã°ãããŠããªãããšã確èªããŸãã ããã«ã¬ã³ããªã³ã°ãããå Žå-ãšã©ãŒãã°ã«ãšã³ããªãæžã蟌ã¿ãŸãã ã©ã®ã¹ãããããããããç解ããå¿ èŠãããå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ã®çµéæéãèšé²ããã³ãŒããé 眮ããŸãã ããã©ãŒãã³ã¹ã®ãã¥ãŒãã³ã°ã®å¹æãèŠèŠçã«ç¢ºèªããããã«ããã®ãããªãã°ããã¹ã¿ãŒããŒãžã®æåŸã«htmlã³ã¡ã³ããšããŠè¡šç€ºããŠãåé¡ã¯ãããŸããã
ãã©ã³ãã ã¢ã¯ã·ã§ã³ãã³ã³ãããŒã©ãŒã¡ãœãããäœæããŸããããã¯ãã»ã¬ã³ãªã©ãåŠç¿ãããããã¯ããã«ç°¡åã§ãloadimpactãªã©ã®ç°¡åãªãã¹ãã§ã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªæ©èœã®é床ããã¹ãã§ããŸãã
ãã¹ããããã«ãŒãã«æ³šæããŠãã ããã åã¹ãããã§WhereïŒïŒã䜿çšããŠé åãééããç¡å®³ãªã¬ã³ããªã³ã°ãµã€ã¯ã«ã¯ã1/10ç§ããããŸãã é åãèŸæžã«å€æããåã®åããµã€ã¯ã«ã¯ããã§ã«100åã®1ç§ã§å®äºããŠããŸãã
Linq2sqlã䜿çšããŠããå Žåã§ããåãSPããè€æ°ã®ããŒãã«ãè¿ããŸã-ããã¯å¯èœã§ãããããŸãæ©èœããŸãã 0.005ç§ã§PKã«ãã£ãŠãªããžã§ã¯ãã®åºæ¬ãµã³ãã«ã®ãªãŒããŒããããæšå®ããŸãã ãã®ãããªæäœããµã€ã¯ã«ãç¹°ãè¿ããšãçµæžã¯äœåºŠãæé·ããŸãã ããšãã°ãã¹ãã¢ãããã·ãŒãžã£ã¯ãåçã ãã§ãªãããããæžããã¢ãŒãã£ã¹ããè¿ããŸãã
äžåºŠã«1ã€ã®ã¬ã³ãŒãã§ã¯ãªãããããã§ããŒã¿ãèªã¿åããŸãã ããããçµµç»ã®æ€çŽ¢çµæã®è¡šç€ºã®ä»çµã¿ã§ãã CïŒã§ç»åã®ãªã¹ããåãåã£ãåŸãidã¢ãŒãã£ã¹ãã®ãªã¹ããäœæãã1ã€ã®ãµãã¯ãšãªã§èŸæžã«èªã¿èŸŒãã§ãããèªã¿åã£ããªããžã§ã¯ãã察å¿ããç»åã«å²ãåœãŠãŸãã
ASP.NETã«ãã£ãŠç§»æ€ãããèªç¶ãªåœ¢åŒã®ã³ã³ããŒãã³ãã¢ãããŒããããŒãžã¬ã€ã¢ãŠãã«äœ¿çšããªãã§ãã ããã ããã¯ãåã³ã³ããŒãã³ãã®æå°éã®ãã©ã¡ãŒã¿ãŒãæå³ããå®éã«ã¯ãåã³ã³ããŒãã³ãããŠãŒã¶ãŒãèªã¿åããæš©éããã§ãã¯ãããã©ã€ããŒãèšå®ãèªã¿åããŸãã èŠæ±ã®æ£ç¢ºãªæéã«æå¹ãªã·ã¹ãã ã³ã³ããã¹ããååŸããŸããå¿ èŠã«å¿ããŠãå¿ èŠãªæ å ±ããã¹ãŠåéããã1åã ãèªã¿åãããŸãã
outputcacheã«äŸåããªãã§ãã ããã ããã¯ã¯ãŒã«ã§é«éã§ããã䜿çšããå¿ èŠããããŸã-ãµãŒããŒã®è² è·ã軜æžããŸãããäžèœè¬ã§ã¯ãããŸããã ããšãã°ã2010幎5æ18æ¥ã«ã¯ã1äž9,000ã®ããŒãžãã¥ãŒãããããã®ãã¡8500ãç°ãªãïŒGoogleã¢ããªãã£ã¯ã¹ã«ããïŒã ããã«ãåããã»ã¹ã«ã¯ç¬èªã®åºåãã£ãã·ã¥ããããŸããã€ãŸããã¡ã¢ãªã³ã¹ãã¯ãã·ã¹ãã å ã®ãªããžã§ã¯ãã®æ°xãµãŒããŒã®æ°ã«æ¯äŸããŸãã ãã©ã¡ãŒã¿ãŒãæããªãã¡ã€ã³ããŒãžã®å Žåããã£ãã·ã¥æéã¯éåžžã«é·ããªãå¯èœæ§ãããïŒ15åïŒããŸããªããŒãžã®å Žåããã®ãªã³ã¯ãããã§å ¬éãããå Žåã«30ç§ãèšå®ããŸãã äžæ¹ãajaxãªã¯ãšã¹ãã¯ååã«ãã£ãã·ã¥ãããŸããå€ãã®ãã©ã¡ãŒã¿ãŒããªããé »ç¹ã«ç¹°ãè¿ãããçµæãšããŠãååãšããŠHTMLããŒãžã®çµæãããå°ãªããªããŸãã
å¥ã ã®ãããžã§ã¯ãã§è€éãªéšåãåãåºããŸãã äžè¬çãªã¯ã©ãŠããµãŒããŒã¯ããªãè匱ã§ãããããã€ãã®ãµãŒããŒãååšããå¯èœæ§ããããŸãã ããšãã°ãå¥ã®WebãµãŒãã¹ã§ãµã ãã€ã«ã®çæãåé€ããŸãããããã«ãããå¥ã®ãµãŒããŒã«ãµã ãã€ã«ãé 眮ããŠãã€ã³ããŒãæã®ç»åã®ããŠã³ããŒãé床ãåäžãããããšãã§ããŸããã
ä»ã§ããªãããšãå éã-Amazonã¯ãåªããé«éã§ç¡éã®å®äŸ¡ãªããŒã«ãã¥ãŒãæäŸããŠããŸãïŒãã®ãµãŒãã¹ã®ã³ã¹ãã¯1ãæããã10ã»ã³ãæªæºã§ãïŒïŒãœãŒã¹ã³ãŒã2ãåç §ïŒã
å ±æã¡ã¢ãªã䜿çšããŸãã ããšãã°ãåçã®ããŒãžïŒhttp://www.wikipaintings.org/en/giuseppe-arcimboldo/portrait-of-eve-1578ïŒã§ã¯ããã®ã¢ãŒãã£ã¹ãã«ããä»ã®ããŒãžã®åãçµµã瀺ããŠããŸãã åã¢ãŒãã£ã¹ãã®çµµç»ã«é¢ããæå°éã®å¿ èŠãªçãæ å ±ãèšæ¶ã«çããŠããã®ããŒãžã®çææéã2.5åã«ççž®ããŸããã ãã¡ãããVelocityã䜿çšããããšãã§ããŸãããéçºäžã®Windows 7ã®ãµããŒããäžè¶³ããŠããããšãåé¡ã«ãªã£ãŠããŸãã Webã¢ããªã±ãŒã·ã§ã³ããªã¢ãŒãçµç±ã§éä¿¡ããç¬èªââã®WindowsãµãŒãã¹ãäœæããŸããã å®éãããã¯System.Web.Caching.Cacheã®å žåçãªç¹°ãè¿ãã§ããããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã§åãããŒã¿ã»ããããµããŒãããŠããŸãã
ã¯ã©ã€ã¢ã³ãéš
ããŸããŸãªããŒã«ã䜿çšããŠåºåããã¹ãããŸã-YSlowã Pagespeed ãFirebugãªã©ã®ãŠãŒãã£ãªãã£ã¯ããªãã®èŠªåã§ãã
ã¯ã©ãŠãããã³ãã«ç§»è¡ã§ãããã®ãã¹ãŠã æããã«-åçããµã ãã€ã«ã ãã§ãªãã2ã€ã®CSSãã¡ã€ã«ïŒéåžžã®1ã€ã1-gzipïŒã«ãŸãšããŠããã«æžã蟌ã¿ãŸãã .gz Safariã¯ç解ã§ããªãããã.gzipæ¡åŒµåã¯éèŠã§ãã ãã®ææ³ã¯ãã³ãŒãäŸ1ã§ç€ºãããŠããŸãã
æå¹æéã®å²ãåœãŠ-ããã©ã«ãã§ã¯ãS3ã¯ãããè¡ããŸããïŒãµã³ãã«ã³ãŒãïŒ1ãåç §ïŒã ãã©ãã£ãã¯ã®æéãšè²»çšãç¯çŽã§ããŸãã ãã®æäœãšs3ã§ã®éçãã¡ã€ã«ã®ç®¡çã«ã¯ãäžè¬çã«cloudberryããå§ãããŸãã
ããŒãžã®èªã¿èŸŒã¿é床ãäžããããã®éèŠãªãã¥ã¢ã³ã¹ã¯ãç°ãªããµããã¡ã€ã³ãžã®ãªã¯ãšã¹ãã®å²ãåœãŠã§ãã httpãããã³ã«ã§ã¯ãäžåºŠã«1ã€ã®ãµãŒããŒã«å¯ŸããŠ3ã€ä»¥äžã®èŠæ±ãèš±å¯ããŸããã ãã©ãŠã¶ã¯æ倧5ã€ã®ãªã¯ãšã¹ããè¡ããŸããã100以äžã®ç»åãå«ãããŒãžã®èªã¿èŸŒã¿ã«ã¯10ç§ä»¥äžããããŸããã ç»åããµããã¡ã€ã³ã«åå²ããè¯å¥œãªãã£ãã«ãæ¡ä»¶ãšããŠãåãããŒãžã®èªã¿èŸŒã¿ãæ倧8åé«éã«ãªããŸããã ãããè¡ãã«ã¯ãcloudfrontã«äžé£ã®ãã¡ã€ã³ãäœæãïŒuploads0ãuploads1ã... uploads8ããããŸãïŒãç®çã®ãã¡ã€ã³ãæ¬äŒŒã©ã³ãã ã«éžæããŸãã Cookieããªã¯ãšã¹ãããšã«éä¿¡ãããªãããã«ããã®ããã«å¥ã®ãã¡ã€ã³ãç»é²ããããšã¯ããã«è¯ãããšã§ããããã®åŠæ³ãèæ ®ããŸããã
ããŒãžã衚瀺ããã®ã«å¿ èŠãªä»¥äžã®æ å ±ãããŠã³ããŒãããªãã§ãã ãããä»ã®ãã¹ãŠã¯ãajaxãä»ããŠåŸã§ããŠã³ããŒãã§ããŸãã ããŒãžã®èªã¿èŸŒã¿ãéãã»ã©ããŠãŒã¶ãŒã®å¿ èª å¿ãé«ãŸããŸãã äž»ãªããšã¯ãããŒã¿ãèªã¿èŸŒããšãã«é©åã§é©åãªã¢ãã¡ãŒã·ã§ã³ãäœæããããšã§ãã
å±éã®æšå¥šäºé
ããŒã¿ããŒã¹çšã«1ã€ã®ã€ã³ã¹ã¿ã³ã¹ãéäžçã«äœ¿çšããè² è·åæ£ç®¡çäžã§ããŒãžãã¬ã³ããªã³ã°ãããã€ã¯ãã€ã³ã¹ã¿ã³ã¹ã®ã»ããã䜿çšããŸãïŒWindows Server 2008 R2 Coreã®æ§æã«é¢ããèšäºãåç §ããŠãã ãã ã
è² è·åæ£èªäœã¯éåžžã«äŸ¿å©ã«äœ¿çšã§ããŸãããããæäœããããã®GUIããããŸãã Amazonã6ã60ç§ïŒèšå®ïŒã®ééã§ãã§ãã¯ããã·ã¹ãã ã¹ããŒã¿ã¹ããŒãžãæäŸããããšããå§ãããŸãã 2ã€ã®ïŒãããããã以äžã®ïŒåŠå®çãªçµæïŒã¿ã€ã ã¢ãŠããŸãã¯ãšã©ãŒã³ãŒãïŒã®å Žåãã€ã³ã¹ã¿ã³ã¹ã¯ãç°åžžããšå®£èšããããªã¯ãšã¹ãã¯ä»ã®ãµãŒããŒã«éãããŸãã äœæ¥å®¹éã埩å ãããåŸãäœæ¥ã«åã³å«ãŸããŸãã
æåã®1幎éã«1ã€ã®ããŒããã©ã³ã·ã³ã°ãç¡æã§æäŸãããŸãã
BacupããŒã¹ã¯ãåå¥ã®EBSãã£ã¹ã¯ã§æ¯æ¥è¡ãããŸãã ãã¹ãã·ã¹ãã ãŸãã¯Windowsèªäœã«äœãèµ·ãã£ãŠããã³ã³ãããŒã«ããã«ã䜿çšããŠããã®ãã£ã¹ã¯ã1ã€ã®ä»®æ³ãµãŒããŒããåæããæ°ããä»®æ³ãµãŒããŒã«æ¥ç¶ããã¿ã³ã¯ãäžããŠäœæ¥ãç¶è¡ã§ããŸãã ç·æ¥æã®ã·ã¹ãã ã®åŸ©å åãé«ããããã®è¿œå æé ãšããŠããã®ãã©ã€ãã®ã¹ãããã·ã§ãããèªåçã«äœæã§ããŸãã
éçºããã»ã¹
éçºããã»ã¹ãæãã圹å²ã¯å°ãªããããããŸããã ãããžã§ã¯ã段éã®åºå®è²»ã«äŸåãããæ¯é±æ°ããå®å®ããäœæ¥ããŒãžã§ã³ãçºè¡ããŸããïŒç¢ºãã«é 延ã¯ãããŸãããïŒã
å埩äžãããŒã å šäœã3ã4åã®ã¡ã€ã³ã¿ã¹ã¯ã«éäžããæºè¶³ãããŸã§äœæ¥ãç¶ããŸããã
次ã®ããŒãžã§ã³ã®ãªãªãŒã¹åŸãå®éã®ç掻ãšå®éã®ãŠãŒã¶ãŒã¯ãã°ãã°èª¿æŽãè¡ãã1-2ã®æ©èœã次ã®å€æŽã«é²ã¿ãŸããã
ãã®ããã»ã¹ã¯èšç»ã®é¢ã§ã²ã©ãã§ããïŒ ãã ããçµæãšããŠåã¿ã¹ã¯ã«æéãäºåã«å²ãåœãŠãæšæºçãªã¢ãŠããœãŒã·ã³ã°ãããã¯ããã«åªããæ©èœãçºæ®ããŸãã ãŸããäºæµã®ã¿ã¹ã¯ããªããšããäºå®ã®äž¡æ¹ã§åæ©ä»ãã«å€§ããªå¹æããããå°æ¥ã®å€æŽãå¿«é©ã«ããããã«äžå®ã®ãªãã¡ã¯ã¿ãªã³ã°ããµããŒãããŸãã
éèŠãªã®ã¯ãæªç¥ã®ãã®ã®ã¿ã€ãã³ã°ãšå»ºèšäºç®ã§ã¯ãªãããŽãã«ãªããªã補åã§ããããããããã¢ãžã£ã€ã«ã¢ãããŒãã§äœæ¥ã§ããããšãã¯ã©ã€ã¢ã³ãã«èªããããŠãã ããã
çµè«
äžè¬çã«ãäžèŠãããšãããµãŒããŒã匱ããäŸ¡æ Œãé«ãã«ãããããããAmazonã¯ãæããæªæ¥ãã«åããŠãããžã§ã¯ããæ§ç¯ããã®ã«åœ¹ç«ã€ä¿¡é Œæ§ã®é«ããã©ãããã©ãŒã ãšããŠã®å°äœã確ç«ããŠããŸãã
å°ãã®äœæ¥ã«æè³ããæºåãã§ããŠããå Žåã¯ããã€ã§ããã£ã³ã¹ãå©çšããŠãéãç¯çŽãããã¹ãã£ã³ã°ã³ã¹ããéåžžã®ãµãŒããŒã®ã³ã¹ãã®ã¬ãã«ã«è¿ã¥ããããšãã§ããŸãã