Creative Media LLCãéçºãããœãŒã·ã£ã«ãããã¯ãŒã¯
www.campus.ruã®é«ã¬ãã«ã·ã¹ãã ã¢ãŒããã¯ãã£ã®æŠèŠã玹ä»ããŸãã ç§ã®æèŠã§ã¯ããã®è³æã¯ãã€ã³ã¿ãŒããããªãœãŒã¹ã®éçºã«ãããèæ
®ãããã¢ãããŒããšæè¡ââã®é©çšæ§ãè©äŸ¡ã§ãããšããç¹ã§èå³æ·±ããã®ã§ãã å°ãªããšãåœç€Ÿããã£ã³ãã¹ãããžã§ã¯ããéå§ãããšããç§ã¯ãã®ãããªæ
å ±ãæ¬åœã«äžè¶³ããŠããŸããã
Campus.ruãœãŒã·ã£ã«ãããã¯ãŒã¯ã¯ã倧äŒæ¥ã®ç¹å¥ã³ã³ãã¹ããéå¬ããããã€ã³ã¿ãŒã³ã·ããããã¬ãŒãã³ã°ã»ãããŒãéå¬ããããã³ãã¥ãã±ãŒã·ã§ã³ãæ
å ±äº€æããã®ä»ã®æè²ããŒãºã«å¿
èŠãªæ©èœãéããŠãåŠç«¥ãåŠçãå°æ¥ã®ãã£ãªã¢ãç¯ãã®ãæ¯æŽããŸããã«ãªãã¥ã©ã ãäœæããŸãã Campus.ruã®æ©èœã¯ãããªãã¿ã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã®æ©èœãšäž»ã«äº€å·®ããŠããŸããç»é²ãŠãŒã¶ãŒã¯ããã£ããããããã³ãã¥ããã£ã§éãŸã£ãããããã°ã«æžããããåçãæçš¿ãããã§ããŸãã ãã ãããã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã¯ããšããšåŠç«¥ãšåŠçã察象ãšããŠãããããããšãã°ãããã¬ãŒãã³ã°ããŒããã©ãªãªã-ææãä¿åããããã®ãã©ã«ããŒããŸãã¯ãã°ã©ã€ããŒã-ã«ãªãã¥ã©ã ãäœæããããã®ãµãŒãã¹ãªã©ãããã€ãã®ããšã¯ç¹ã«çåŸã®ããŒãºãèæ
®ããŠå®è£
ãããŸããã
Campus.ruãJavaãã©ãããã©ãŒã ã«å®è£
ãããŠãããšããæ
å ±ãããã·ã¹ãã ã¢ãŒããã¯ãã£ã®ã¬ãã¥ãŒãéå§ããŸãã äžè¬çãªçµ±èšããå€æãããšãWebã¡ãã£ã¢ãªãœãŒã¹ãå®è£
ããããã®ããŒã«ãšããŠã®Javaãã©ãããã©ãŒã ã®éžæã¯ãããªãéæšæºçãªãœãªã¥ãŒã·ã§ã³ã§ããã次ã®èæ
®äºé
ã«åºã¥ããŠãã®ãã©ãããã©ãŒã ãéžæããŸããã
â¢è² è·ã倧ãããèé害æ§ããããæ°Žå¹³æ¹åã«ã¹ã±ãŒã©ãã«ãªJavaã¢ããªã±ãŒã·ã§ã³ã®éçºã«ããããããŸã§ã®çµéšã¯æåããŠããŸãã
â¢Javaã³ãã¥ããã£ã¯ãã»ãšãã©ãã¹ãŠã®å Žåã«ãé«å質ã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã®èšå€§ãªã³ãŒãããŒã¹ãèç©ããŠããŸãã
â¢ãããžã§ã¯ãããŒã ãããŒããããæ§ç¯ããå Žåãããšãã°ã以äžã®äœæ¥ãè¡ãããããåŽååžå Žã§ã®ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ïŒãã¶ã€ã³ãã¿ãŒã³ïŒãç解ããåéã§å¿
èŠãªè³æ ŒãããŒã ã¯ãŒã¯ã®çµéšãç¥èãæã€é©åãªJavaéçºè
ãèŠã€ããã®ãç°¡åã§ãRubyïŒååã®çµéšã«ãããšããã®èšèªã¯ãŸã åºãæ®åããŠããªãããïŒããŸãã¯PHPã䜿çšããŠããããïŒç§èªèº«ã®çµéšãããããšãã¹ãã«ã倱ã£ã人ãå€ãããŸãã
Javaã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«é¢ããç®èãªã³ã¡ã³ããæ³å®ãããšãJavaãåªå
ããããšã決å®ãããšãã«ãJVMãæéã§æãçµæžçãªã€ã³ã¿ãŒããªã¿ãŒã§ã¯ãªãããšãæ確ã«ããããŸããã ãã ãã第1ã«ãJVM 6.0ã¯Webã¢ããªã±ãŒã·ã§ã³ã®ããŒãºã«å¯ŸããŠååã«çç£çã§ããã第2ã«ãããã°ã©ãã®äœæ¥ã¯éã®ã³ã¹ããããé«ããªã£ãŠãããããé·ãéãçç£æ§ã®5ïŒ
-10ïŒ
ãç²åŸã§ããé«äŸ¡ãªããã€ã¯ããçºæããŸããäžåçã§ãã ç§ã¯ã10ïŒ
ã®éãç¯çŽããŠãããã°ã§è¡ãè©°ãŸãããããæå°éã®ã³ãŒããšçŸããã¢ãŒããã¯ãã£ã§ãã°ããäœæ¥ããæ¹ãè¯ãããšããååãåºå®ããŠããŸãã
ãããžã§ã¯ãã®ã¡ã€ã³ãã¬ãŒã ã¯ãŒã¯ã¯
Tapestry 5ã§ãã Tapestry 5ãéžæããçç±ã¯ããã€ããããŸããããã®äž»ãªçç±ã¯æ¬¡ã®ãšããã§ãã
â¢ã¿ãã¹ããªãŒã䜿çšãããšãã¬ã€ã¢ãŠããšãã¬ãŒã³ããŒã·ã§ã³ã®ããžãã¯ãå®å
šã«åé¢ã§ããŸãã JSPã®ããã«ããã©ãŠã¶ã§è§£éãããªãç¹å¥ãªã¿ã°ãHTMLã«è¿œå ããå¿
èŠã¯ãããŸããã ããã¯ç¹ã«éèŠã§ã ã»ãšãã©ã®å ŽåãWebãããžã§ã¯ãã«ã¯è€éãªã¬ã€ã¢ãŠããå«ãŸããŸããããã¯ååãšããŠãå¥ã®å°é家ã«ãã£ãŠå®è¡ããã³ä¿å®ãããŸãã ãšããã§ãã¬ã€ã¢ãŠãã®æé©åã®èŠ³ç¹ããã
ãã¹ããã©ã¯ãã£ã¹ã«åŸãããã«ã
ãŸãã ã
â¢ããŒãžããŒã«ãªã©ãé«ããã©ãŒãã³ã¹ã®äœæ¥ãç®çãšããå€æ°ã®ã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ãå«ãŸããŠããŸãã
â¢é©åãªãã©ã³ã¹ã®ãšãããã¬ãŒã ã¯ãŒã¯ã¢ãŒããã¯ãã£ã«ãããã¢ãããŒã·ã§ã³ãšåœåèŠåãããã³çµã¿èŸŒã¿ã®IoCãåºã䜿çšãããŠãããããã³ã³ããŒãã³ãã®æ§æãšçžäºã®çµ±åã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã®ããžãã¹ããžãã¯ã«éäžã§ããŸãã
Tapestry 5ã®çµéšããªãã£ããããæåã«ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããããã¿ã€ããäœæãã
JMeterãŠãŒãã£ãªãã£ã䜿çšããŠè² è·ãã¹ããå®è¡ããŸããã ãã¹ãã«ãããå¿çæéã®ççž®ãããŒããŠã§ã¢ãã©ãããã©ãŒã ã®å®å®ãã䜿çšãããã¯ã®æ¬ åŠã瀺ããããã®åŸTapestry 5ã䜿çšãã決å®ãæçµçã«æ¿èªãããŸããã
äžèšã«åºã¥ããŠãCampus.ru Webã¢ããªã±ãŒã·ã§ã³ã®å
éšã¢ãŒããã¯ãã£ã¯ãTapestry 5ãã¬ãŒã ã¯ãŒã¯çšã®ã¢ããªã±ãŒã·ã§ã³ãéçºããããã®ã«ãŒã«ã«ãã£ãŠæ±ºå®ãããŸãã
Tapestryã«å ããŠãWebã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®ã©ã€ãã©ãªã䜿çšããŸãã
â¢
DOJO 1.0 -AJAXã䜿çšããJavaScriptãã¬ãŒã ã¯ãŒã¯
ã¡ã€ã³ã®JavaScriptãã¬ãŒã ã¯ãŒã¯ãšããŠã®DOJOã®éžæã¯ããŠã£ãžã§ãããå«ãå€æ°ã®æ¢è£œã®ã³ã³ãããŒã«ã®ååšãšãDOJOã«ãã£ãŠã¯ã©ã€ã¢ã³ãåŽã§ã³ã³ããŒãã³ãã®ãã¹ãŠã®ã¹ã¿ã€ã«å€æãå®è¡ã§ãããšããäºå®ã«ãã£ãŠæ±ºå®ãããŸããã åæã«ããªãœãŒã¹ã«æåã«ã¢ã¯ã»ã¹ãããšãå¿
èŠãªãã¹ãŠã®CSSããã³Javaã¹ã¯ãªãããããŠã³ããŒããããŠãã©ãŠã¶ãŒã«ãã£ãã·ã¥ãããæå°ã®ããªã¥ãŒã ããŒã¯ã¢ãããæã€HTMLããŒãžã®ã¿ããµãŒããŒããããŒããããŸãã ããã«ããããã©ãã£ãã¯ãšãµãŒããŒã®è² è·ã倧å¹
ã«åæžãããŸãã
ããã«ãéèŠãªããšã«ãããŒã ã¯ãã§ã«DOJOã®çµéšããããå°é£ãªç¹ãšããŠãDOJO-Tapestryã®çµ±åéšåãç¬èªã«éçºããå¿
èŠããããŸããã å°æ¥çã«ã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®åœ¢åŒã§æŽçãããªãŒãã³ã¢ã¯ã»ã¹ã«ããäºå®ã§ãã
â¢
SwfUpload 2-ãã¡ã€ã«ããµãŒããŒã«ã¢ããããŒãããããã®JavaScriptã³ã³ããŒãã³ãã
â¢
Hibernate 3 -ORMãã¬ãŒã ã¯ãŒã¯ã Tapestry 5ã¯ãHibernateãšééçã«çµ±åãããŸãã ãšã³ãã£ãã£ã®ãããã³ã°ã«ã¯æ³šéã䜿çšããŸãã
â¢
Hibernate Search 3 -LuceneããŒã¹ã®å
šææ€çŽ¢ãšã³ãžã³ã Hibernateãšã³ãã£ãã£ã®ã³ã³ãã³ãã®ã€ã³ããã¯ã¹äœæãèš±å¯ãããšã³ãã£ãã£ã®æ³šéã䟿å©ã«æ§æããŸãã ã¯ã©ã¹ã¿å
ã§æ©èœããŸãã
â¢
Spring Security 2.0-泚éä»ãã§æ§æãããTapestry 5ãšééçã«çµ±åãããèªèšŒããã³æ¿èªã·ã¹ãã ã ååãªæ©äŒããããŸããããã¡ã€ã³ãªããžã§ã¯ãã«å人ãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹æš©ã課ãã®ã«é©ããACLã¡ã«ããºã ããªãã£ããããèªåã§èããªããã°ãªããŸããã§ããã å°æ¥çã«ã¯ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããšããŠæäŸããäºå®ã§ãã
â¢
Quartz 1.6-ããã¯ã°ã©ãŠã³ãããã³éåææäœãå®è¡ããããã®ã¹ã±ãžã¥ãŒã©ã éµéããµãŒããŒäžã®ãã¡ã€ã«ã®åŠçãªã©ã®é·æçãªæäœã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãé·æéãããã¯ããªãããã«ãéåæã«å®è¡ãããã¢ã¯ã·ã§ã³ãšããŠå®è£
ããããšããŸãã
ç¶æ³ã®çµã¿åãããããŸããããšããœãŒã·ã£ã«ãããã¯ãŒã¯ã®ãŠãŒã¶ãŒæ°ïŒã€ãŸãããªã¯ãšã¹ãæ°ïŒãšãŠãŒã¶ãŒã«é¢é£ä»ããããããŒã¿éãéªåŽ©ã®ããã«å¢ããŸãã ãã®ç¹ã§ãã·ã¹ãã ã®æ°Žå¹³ã¹ã±ãŒãªã³ã°ãšååãªã¬ãã«ã®ãã©ãŒã«ããã¬ã©ã³ã¹ã確ä¿ããããšãéåžžã«éèŠã§ããã ãããã®ç®æšã¯ãéèŠãªã·ã¹ãã ããŒãã«åé·ããŒããŠã§ã¢ãµãŒããŒã䜿çšã§ããããšãšãOSã¬ãã«ã§ç¹å¥ãªãœãããŠã§ã¢ïŒhaproxyãhartbeatãªã©ïŒã䜿çšããããšã«ãã£ãŠéæãããŸããããããã£ãŠãæé·äºæ
ãç
æ°ãæããããšã¯ã»ãšãã©ãããŸããã
ãœãããŠã§ã¢ãšããã°ã ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ããã£ã³ãã¹ã¯ä»¥äžã䜿çšããŸãã
â¢
Nginx 0.6-éçã³ã³ãã³ãïŒJavaScriptãCSSãã¢ã€ã³ã³ãªã©ïŒãé
ä¿¡ããããã®ããŒããã©ã³ãµãŒïŒHTTPãªã¯ãšã¹ãïŒããã³HTTPãµãŒããŒã Tomcatã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãžã®HTTPèŠæ±ã®ãã©ã³ã¹ã¯ã1ã€ã®ã»ãã·ã§ã³äžã«1人ã®ãŠãŒã¶ãŒããã®ãã¹ãŠã®èŠæ±ãTomcatãµãŒããŒã®1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã«åé¡ãããããã«æ§æãããŸãã ãã®è² è·åæ£èšå®ã¯ãã¹ãã£ãããŒã»ãã·ã§ã³ãšåŒã°ããŸãã ããã¯ãTomcatãµãŒããŒéã§ãŠãŒã¶ãŒã»ãã·ã§ã³ãè€è£œããªãããã«ããããã§ãã ããã«ããªãœãŒã¹ãšç·åœ¢æ°Žå¹³ã¹ã±ãŒãªã³ã°ãç¯çŽããŸãã ãã€ãã¹-ãµãŒããŒã«é害ãçºçããå ŽåããŠãŒã¶ãŒã¯ãªãœãŒã¹ã«ãã°ã€ã³ããå¿
èŠããããŸãã
â¢
JDK 6-éçºããŒã«ã®ã»ãããšä»®æ³Javaãã·ã³ïŒJVMïŒãããã«åºã¥ããŠJ2EEã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãå®è¡ãããŸãã
â¢
Tomcat 6 -J2EEã¢ããªã±ãŒã·ã§ã³ãµãŒããŒïŒWebã¢ããªã±ãŒã·ã§ã³çšã®J2EEã³ã³ãããŒïŒã Campus.ruã¢ããªã±ãŒã·ã§ã³ã¯åœŒã®å¶åŸ¡äžã§å®è¡ãããŸãã ãã®ã¬ãã«ã§ç·åœ¢æ°Žå¹³ã¹ã±ãŒãªã³ã°æ©èœãç¶æãããããTomcatãµãŒããŒãã¯ã©ã¹ã¿ãŒåããŸããã§ããã
â¢
PostgreSQL 8.3-ããŒãžã§ã³ç®¡çãããDBMSã MySQLãšPostgreSQLãéžæããŸãã Postgresã«ç«ã¡å¯ããããŸããŸãªã¬ãã¥ãŒãå°é家ã®ããã°ãDBMSã®ã¯ã©ã¹ã¿ãªã³ã°çšãŠãŒãã£ãªãã£ã®å¯çšæ§ãåæããŸããã
â¢
PgPool-II 3.4-ã¯ã©ã¹ã¿ãŒå
ã®2ã€ã®PostgreSQLãµãŒããŒãã¯ã©ã¹ã¿ãŒåããããã«äœ¿çšãããããŒããã©ã³ãµãŒãšããŒã¿ã¬ããªã±ãŒã¿ãŒã ããŒã¿å€æŽèŠæ±ã¯äž¡æ¹ã®ããŒã¿ããŒã¹ãµãŒããŒã«åæã«éä¿¡ãããèªã¿åãèŠæ±ã¯ããããã®ãµãŒããŒã«é çªã«éä¿¡ãããŸãã ãããã£ãŠãè² è·ã¯2å°ã®ãã·ã³ã«åæ£ãããŸãã
â¢
PgBouncer 1.3 -PostgreSQLçšã®è»œéã®æ¥ç¶ããŒã«ç®¡çã·ã¹ãã ã å€æ°ã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ãããŠãŒã¶ãŒãªã¯ãšã¹ãã®åæåŠçã«ã¯ãå€æ°ã®ããŒã¿ããŒã¹æ¥ç¶ã®ãµããŒããå¿
èŠã§ãã PgBouncerã¯åæ¥ç¶ã®ç¶æã«çŽ2 KBã®ã¡ã¢ãªãæ¶è²»ããPostgreSQL DBMSããè² è·ã倧å¹
ã«åãé€ããŸãã ãããã£ãŠãTomcatãµãŒããŒäžã®JDBCããŒã«ã¯ãPgPoolã§ã¯ãªãPgBouncerã«æ¥ç¶ããããã«æ§æãããŸãã ããã«ãããŒã¿ããŒã¹ã«çæéã¢ã¯ã»ã¹ã§ããªãå ŽåïŒã¯ã€ãã¯ãªã¹ã¿ãŒãæãªã©ïŒãPgBouncerã¯ããŒã¿ããŒã¹ãžã®æ¥ç¶ãè©Šè¡ãç¶ãããããèšå®ãããã¿ã€ã ã¢ãŠãã®åã«çºçããå Žåãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¯ããŒã¿ããŒã¹ãäžæçã«å©çšã§ããŸããã
â¢
ActiveMQ 5.2 -JMSãµãŒããŒã JMS Master / Slaveèšå®ã¢ãŒãã§èšå®ãããHibernate Searchå
šææ€çŽ¢ã·ã¹ãã ã®éåæJMSã¡ãã»ãŒãžã³ã°ã«äœ¿çšãããŸãïŒ
詳现ã¯ãã¡ã ïŒã ãŸããQuartzãã¬ãŒã ã¯ãŒã¯ã«åºã¥ããŠéåæã¿ã¹ã¯å®è¡ãµãã·ã¹ãã ãšæ
å ±ã亀æããããã«ã䜿çšãããŸãã
â¢Sendmail-æåãªã¡ãŒã«ãµãŒããŒã ãã¥ãŒã¹ã¬ã¿ãŒã«äœ¿çšããŸãã
â¢
Zabbix 1.6-ã·ã¹ãã ã€ã³ãã©ã¹ãã©ã¯ãã£ç£èŠã·ã¹ãã ã MBeansã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠJMXãããã³ã«ãä»ããŠãJVMãTomcatã®ç¶æ
ãç£èŠããŸãã æ倧30å°ã®ãã¹ããç¡æã§ç£èŠããŸãã
â¢
Smssend -SMSãéä¿¡ã§ããFreeBSDã®ããã±ãŒãžã ãªãœãŒã¹ã®åé¡ã«ã€ããŠã·ã¹ãã 管çè
ã«SMSã¡ãã»ãŒãžãéä¿¡ããããã«äœ¿çšããŸãã
â¢
ãã£ã³ãã©ãŒãµãŒã㌠-ãªãŒãã³ãœãŒã¹Webã¢ããªã±ãŒã·ã§ã³ãããã¯ããªãŒãã³CalDavãããã³ã«ãä»ããŠå€éšãšéä¿¡ããã«ã¬ã³ããŒãµãŒããŒã§ãã è»èŒªãåçºæããªãããã«ãGliderãµãŒãã¹ã§ãã®ãµãŒããŒã䜿çšããŠããŠãŒã¶ãŒãšã³ãã¥ããã£ã®æå»è¡šãä¿åããŸãã
â¢
Amazone S3-ãŠãŒã¶ãŒãã¡ã€ã«ã®ä¿¡é Œã§ããã¹ãã¬ãŒãžã«äœ¿çšãããŸãã ããã«ããã®ãµãŒãã¹ã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒããã®è² è·ã軜æžã§ããŸãã ãã¡ã€ã«ã¯ããŠãŒã¶ãŒãAmazonãµãŒããŒããçŽæ¥ããŠã³ããŒãããŸãã ãã¡ã€ã«ã®ã¡ã¿ããŒã¿ã¯CampusããŒã¿ããŒã¹ã«ä¿åãããŸãã
Amazonãšé£æºããããã«ã
ã¯ã©ã€ã¢ã³ãJava APIããããŸã ã ãµãŒãã¹ã¯ææã§ãããçµç¹ã«ãšã£ãŠã¯é«äŸ¡ã§ã¯ãããŸããã ãã®ãããªãã®ãèªåã§æŽçããããšã«æ±ºããå Žåã¯ãJava APIãåãã
MogileFSããå§ãããŸãã
â¢Fotki.com-ããŒãããŒã®åçãã¹ãã£ã³ã°ããŠãŒã¶ãŒãã¢ããããŒãããåçãä¿åããåçã¢ã«ãã ã«å€æããŸãã ãã©ãŠã¶ãŒãžã®åçã®ã¢ããããŒãã¯ãåçãã¹ãã£ã³ã°ãµãŒããŒããçŽæ¥è¡ããããããCampus.ruã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®è² è·ã軜æžãããŸãã èªåã§åçãå€æããå¿
èŠãããå Žåã¯ããããã
ImageMagickã«æ³šç®ããŸã
ãJavaAPIãå«ãŸããŠããŸãã
ãšãã«ã次ã®ããã«æ©èœããŸãã
1ïŒãŠãŒã¶ãŒãªã¯ãšã¹ãã¯ããŒããã©ã³ãµãŒãµãŒããŒã«éãããŸãã Nginxã¯ãTomcatãµãŒããŒã®1ã€ãžã®ãŠãŒã¶ãŒã®ãã€ã³ãã£ã³ã°ã«é¢ããæ
å ±ãå«ãããããŒããªã¯ãšã¹ãã«å«ãŸããŠãããã©ããã確èªããŸãã ããã§ãªãå Žåããã®ãããªããããŒãè¿œå ãããèŠæ±ã¯é©åãªTomcatãµãŒããŒã«ãªãã€ã¬ã¯ããããŸãã æåã«ããµãŒããŒã¯ã©ãŠã³ãããã³æ¹åŒã§éžæãããŸãã ãã®ã¡ã«ããºã ã¯ãã¹ãã£ãããŒã»ãã·ã§ã³ãæäŸããŸãã
2ïŒTomcatãµãŒããŒã§ã¯ãå®éã«ã¯HTMLããŒãžçšã®åçã³ã³ãã³ããçæãããŸã-ã¹ã¿ã€ã«ãæå°éã®ããŒã¿ã®ã¿ã§ãã ããŒãžã®çæã«ããŒã¿ããŒã¹ã®ããŒã¿ãå¿
èŠãªå ŽåãCampus.ruã¢ããªã±ãŒã·ã§ã³ã¯ãã®ãµãŒããŒã®JDBCããŒã«ããæ¥ç¶ãååŸããŸãã JDBCããŒã«å
ã®æ¥ç¶ã¯PgBouncerã§è¡ãããPgBouncerã¯PgPoolãšã®æ¥ç¶ã確ç«ããPgPoolã¯PostgreSQLãšã®æ¥ç¶ã確ç«ããŸãã JDBCããŒã«ã§æ¥ç¶ã確ç«ããããã»ã¹ã¯ãTomcatãµãŒããŒã®éå§æã«ããã«çºçãããããããŒã«ããã®æ¥ç¶ã®ååŸã¯ãã¢ããªã±ãŒã·ã§ã³æäœäžã«éåžžã«é«éã§ãã
3ïŒãŠãŒã¶ãŒã®ãªã¯ãšã¹ãããã«ããã¹ãæ€çŽ¢ã«é¢é£ããæ
å ±ãå€æŽãããšãã¢ããªã±ãŒã·ã§ã³ã¯ãã¹ã¿ãŒããŒãæ€çŽ¢ãµãŒããŒã«JMSã¡ãã»ãŒãžãéä¿¡ããŸãããã¹ã¿ãŒãµãŒããŒæ€çŽ¢ãµãŒããŒã¯ãåã¯ã©ã¹ã¿ãŒããŒãã®ãã«ããã¹ãã€ã³ããã¯ã¹ãåæããŸãã
4ïŒHTMLããŒãžã®ã³ã³ãã³ãããŠãŒã¶ãŒã®ãã©ãŠã¶ãŒã«è¿ãããŸãã ãã®åŸããŠãŒã¶ãŒã®ãã©ãŠã¶ãŒã¯ãNginxãµãŒããŒããéçã³ã³ãã³ãïŒJavaScriptãCSSãç»åïŒã®ããŠã³ããŒããéå§ããŸãïŒãã®ã³ã³ãã³ãããã©ãŠã¶ãŒã«ãã£ãŠãŸã ãã£ãã·ã¥ãããŠããªãå ŽåïŒããŸããå€éšåçãã¹ãã£ã³ã°ãµãŒããŒããã®åçãšã¢ãã¿ãŒãããŠã³ããŒãããŸãã
5ïŒãŠãŒã¶ãŒã®ãã©ãŠã¶ãŒã¯ãããŒããããDOMããªãŒã«CSSããã³JavaScriptå€æãé©çšãããã®çµæãå®æããããŒãžããŠãŒã¶ãŒã«ã¬ã³ããªã³ã°ããŸãã
ãã®ã¹ããŒã ã«ããã第1ã«ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®è² è·ãæžããããã©ãã£ãã¯ãæå°éã«æããããšãã§ãã第2ã«ããã©ãŠã¶ãŒã®å¶éãå
æããŠããŒãžã®å
šäœçãªèªã¿èŸŒã¿ãå éãã1ã€ã®ãªãœãŒã¹ããåæã«4ã€ã®ã¹ããªãŒã ã®ã¿ã§ããŒã¿ãããŠã³ããŒãã§ããŸãã ã³ã€ã³ã®è£è¿ãã¯ãIE 6ãªã©ã®å€ããã©ãŠã¶ãŒã§èŠ³å¯ãããå¯äœçšã§ããIE6ã§ã¯ã衚瀺ããããŸã§ããŒãžã«ãã¹ãŠã®åçã¹ã¿ã€ã«å€æãé©çšããæéããããŸããããã®ããããŠãŒã¶ãŒã¯ç®ã®äžã®æ¹Ÿæ²ããããŒãžãã©ã®ããã«çŸããããŒãžã«å€ãããã芳å¯ã§ããŸãã ãŸãããã¹ãŠã®CSSããã³Javaã¹ã¯ãªãããäœéãã£ã³ãã«ã§æåã«ããŒãããã®ã«ã¯æéããããå ŽåããããŸãã
ãšããã§ããŠãŒã¶ãŒã®ãã©ãŠã¶ãŒã§ãã£ãã·ã¥ãããéçã³ã³ãã³ãïŒCSSãJSïŒãæŽæ°ããéã®åé¡ãæãåºããŸããã ããã解決ããããã«ãéçãªãœãŒã¹ã®URLã«ããŒãžã§ã³çªå·ãè¿œå ããŸãã ã¹ã¯ãªãããå€æŽããããšãURLã®ããŒãžã§ã³çªå·ãå€æŽããããã©ãŠã¶ãŒã¯ãµãŒããŒããæŽæ°ããããã¡ã€ã«ãããŠã³ããŒãããŸãã
äžèšãé ã«åããããããããã«ãå³ã¯Campus.ru Webã¢ããªã±ãŒã·ã§ã³ã®é«ã¬ãã«ã®å±éå³ã瀺ããŠããŸãã å³ãè€éã«ããªãããã«ãã³ã³ããŒãã³ãéã®ããã€ãã®æ¥ç¶ã¯ç€ºãããŠããŸããã
å³1. Campus.ruã®å±éå³
JVMã¯ãåãµãŒããŒJVMã€ã³ã¹ã¿ã³ã¹ã«å°ãªããšã2ã€ã®ããã»ããµã³ã¢ãæèŒãããšããæšå¥šäºé
ãèæ
®ããŠãæ倧2 GBã®ã¡ã¢ãªãµã€ãºã§å¹ççã«åäœããããšã瀺ãããŠããŸãã ãããã®çç±ã«ãããTomcatã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®4ã€ã®ã€ã³ã¹ã¿ã³ã¹ãåããŒããŠã§ã¢ãµãŒããŒã«å±éãããŸããã ãã£ã³ãã¹ããã³ãã£ã³ãã©ãŒã®Webã¢ããªã±ãŒã·ã§ã³ã¯ãåTomcatã³ã³ãããŒã«ãããã€ãããŠããŸãã å³ãããã¹ãã®çµæãGCã«ãã£ãŠè¡ãããèšå®ã«ããããã®æ§æã«ãããè² è·ãå¢å ããŠãããŒããŠã§ã¢ãªãœãŒã¹ãã»ãŒçŽç·çã«å©çšã§ããåæã«å¿çæéã«èš±å®¹ã§ããçµæãåŸãããããšãããããŸããã
ãã¹ãŠã®ããŒããŠã§ã¢ãµãŒããŒã§ãã¢ããªã±ãŒã·ã§ã³ã¯FreeBSD 7.1ã§å®è¡ãããŸãã ceteris paribusããã¹ãŠã®Linuxã«ã¯ç¬èªã®ç¹æ§ããããã·ã¹ãã 管çè
ããäºãã«ç¥èãäŒéããããšã¯ããå°é£ã§ãããããLinuxã§ã¯ãªãFreeBSDãéžæããŸããã åœç€Ÿã§ã¯ããã¹ãŠã®ãããžã§ã¯ãããŸã FreeBSDã§äœæ¥ããŠãããããäŒæ¥æšæºã®ãããªãã®ã«ãªããŸããã Javaãããžã§ã¯ãã«ãããFreeBSDã®æ¬ ç¹ã®ãã¡ãSunã¯FreeBSDçšã®JDKããªãªãŒã¹ããŠããŸããããŸããFreeBSDã®ããŒãã¯Sunã®ã¢ããããŒãã«æ¯ã¹ãŠé
ããŠããŸãã ãŸãããã¹ãŠã®ãããã°ãŠãŒãã£ãªãã£ãJDKããŒãã§äœ¿çšã§ããããã§ã¯ãããŸããã
è² è·åæ£ãµãŒããŒã®ãã©ãŒã«ããã¬ã©ã³ã¹ã¯ã
HAProxyãŠãŒãã£ãªãã£ã䜿çšããŠå®è£
ãããŸãã
ãã£ã³ãã¹ããŒããŠã§ã¢ãµãŒããŒã®æ§æã¯æ¬¡ã®ãšããã§ãã
1ïŒè² è·ãåæ£ããéçã³ã³ãã³ããè¿ããµãŒããŒïŒ
CPU Intel Xeon Dual Core 2.67GHz \ RAM DDR 2 8Gb \ HDD 4xSAS 73gb 15000 rpm
2ïŒWebã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®ãµãŒããŒïŒ
CPU 2xIntel Xeon Quad Core 2.66GHz \ RAM DDR 2 16Gb \ HDD 4xSATA 300gb 15000 rpm
Webã¢ããªã±ãŒã·ã§ã³çšã®ãµãŒããŒãéžæããéã®äž»ãªåå-ããå€ãã®ã³ã¢/ããã»ããµãšRAM-ããè¯ãã
3ïŒããŒã¿ããŒã¹ã®ãµãŒããŒïŒ
CPU 2xIntel Xeon Quad Core 2.66 GHz \ RAM DDR 2 16Gb \ HDD 8xSAS 147gb 15000 rpm
倧éã®ããŒã¿ãåŠçããããšãæåŸ
ããŠããŒã¿ããŒã¹çšã®ãµãŒããŒãéžæããéã®äž»ãªååã¯ããã£ã¹ã¯ãå€ããã°å€ãã»ã©é«éã§ãããšããããšã§ãã ããŒããŠã§ã¢RAIDãå¿
èŠã§ãã 次ã«ãRAMãåªå
ããã次ã«ããã»ããµãç¶ããŸãã
ãµãŒããŒã¯ãã·ã¹ã³ã®ããŒããŠã§ã¢ãã¡ã€ã¢ãŠã©ãŒã«ã®èåŸã«ãã倧èŠæš¡ãªã¢ã¹ã¯ã¯ã®ã€ã³ã¿ãŒããããµãŒãã¹ãããã€ããŒã®ããŒã¿ã»ã³ã¿ãŒã§ãã¹ããããŠããŸãã
çµè«ãšããŠãç§ã¯ãèšå€§ãªéã®äœæ¥ãè¡ãããã«ããããããããŸã æ¹åãã¹ãããšããããšèšããããšæããŸãã ããšãã°ãIE 8ã®ãªãªãŒã¹ã«é¢é£ããŠãDOJO 1.3ãžã®çã¿ã䌎ã移è¡ã®æŠèŠã説æããŸããã ãŸããå°åã®åŠçã¯å®éã«åŠæ ¡/倧åŠã§128Kbit / sãšIE 6ãã£ã³ãã«ãæã£ãŠããããããµã€ãã®ã¬ã€ã¢ãŠããç°¡åã«ããïŒåœ±ãåéææ§ãäœåãªäžžã¿ãåé€ããïŒäºå®ã§ããå®çžŸã®ããåæ£
Memcachedãã£ãã·ã¥ã®ããŒã¹ã ãŸããä»æ¥ãããŒã¿éãçªç¶å±éºã«ãªãå§ããå Žåãã·ã£ãŒãã£ã³ã°ããŒã¿ã®åé¡ã¯è§£æ±ºããŠããŸããã ãããã£ãŠãå°æ¥çã«ã¯ãHibernate ShardsãPL \ Proxyããã®ä»ã®æ段ãæ€èšããäºå®ã§ãã 誰ããå®éã®çµéšãšãããå
±æããããšããé¡æãæã£ãŠãããªããç§ã¯ãšãŠã幞ãã§ãã
次ã®èšäºã§ã¯ãããªããç§ããµããŒããããªããç§ã¯ãã£ã³ãã¹ãããžã§ã¯ãã®ç®¡çãšç§ãã¡ã®ããŒã ã«ã€ããŠè©±ãã€ããã§ã
ãæž
èŽããããšãããããŸããïŒ
Creative Media LLCã®ãã¯ãã«ã«ãã£ã¬ã¯ã¿ãŒ
ã»ã«ã²ã€ã»ã»ãã
Creative Media LLCã®ãžã§ãã©ã«ãã£ã¬ã¯ã¿ãŒIvan Sokolovã®èš±å¯ãåŸãŠå
Ž