인기 있는 소셜 네트워크 서비스로 본 아키텍처


새로운 웹 서비스를 만들때 다른 곳은 어떤 아키텍처, 어떤 프로그래밍 언어를 사용했는지 궁금하고 왜 그런 선택을 했는지 알고 싶을때가 있죠.

혹은 프로그래밍 언어를 공부하고 싶은데 어떤 언어를 선택해야 될지 고민되실때 생각하는 서비스 혹은 업체가 사용하는 언어를 보고 시작해보는 것도 나쁘지 않을거 같습니다.

아래에 정리된 내용의 출처는 레퍼런스에 링크주소를 남겼으니 꼭 방문해보실길 권장합니다.
그리고 현재의 서비스 정보와는 차이가 있을 수 있음을 감안해주세요.

아래 내용 이전에 "Programming languages used in most popular websites" 방문하시면 인기 사이트에서 사용하는 언어를 확인 하실 수 있습니다.

StackOverflow

sitehttp://stackoverflow.com
Operating SystemMicrosoft Windows Server 2012 x64
Web ServerIIS 8.0, HAProxy
DatabaseSQL Server 2014
Cache / Additional DataStackExchange.Redis, protobuf-net
LanguageC#
Web FrameworkASP.NET MVC
Front-end FrameworkjQueryMathJax, lessPrettify
Source ControlGit
CDN Domainsstatic.net
Cloud Computing / HostingQTS, Internap, PEER1, PEAK Internet
Etc.ElasticsearchKilnCactiTeamCityDotNetOpenIdreCAPTCHALINQ to SQLDapper
References

Quora

sitehttp://quora.com
Operating SystemUbuntu Linux
Web ServerNginxHAProxy
DatabaseMySQL
Cache / Additional DataMemcached
LanguagePython, C++, Scala
Web FrameworkPylons framework
Front-end FrameworkjQueryMathJax
Source ControlGit
CDN Domainquoracdn.net
Cloud Computing / HostingAmazon EC2, S3, Cloudfront
Etc.ThriftTornado 
References

Facebook

sitehttp://facebook.com
Operating SystemCentOS Linux
Web ServerApache
DatabaseMySQL
Cache / Additional DataCassandra Memcached, Varnish
LanguagePHP(HACK), C++, D Lang, Erlang
Web Framework-
Front-end FrameworkReact
Source ControlGit
CDN Domainakamaihd.net
Cloud Computing / Hosting-
Etc.BigPipeHadoopHive
References

Twitter

sitehttp://twitter.com/
Operating SystemLinux
Web Servermongrel
DatabaseMySQL
Cache / Additional DataMemcachedFlockDB
LanguageRuby, Java, ScalaErlang
Web FrameworkRuby on Rails
Front-end FrameworkjQueryHogan.jsMediaElement.js
Source ControlGit
CDN Domaintwimg.com
Cloud Computing / HostingAmazon EC2S3
Etc.MuninNagiosAWStats
References

Pinterest

sitehttp://pinterest.com
Operating SystemLinux
Web ServerNginx
DatabaseMySQL, MongoDB
Cache / Additional DataMemcache, Redis
LanguagePython
Web FrameworkDjango
Front-end Framework-
Source Control-
CDN Domainpinimg.com
Cloud Computing / HostingAmazon EC2, S3, Edge Cast, Akamai, Level3
Etc.SolrHadoop
References

Instagram

sitehttp://instagram.com
Operating SystemUbuntu Linux
Web ServerNginx, gunicornHAProxy
DatabasePostgreSQL
Cache / Additional DataMemcache, Redis
LanguagePython
Web FrameworkDjango
Front-end FrameworkjQueryReact, webpackZeroClipboardNumeralModernizr, WebFontLoader
Source Control-
CDN Domainakamaihd.net
Cloud Computing / HostingAmazon EC2S3 , CloudFront, ELB, Route53
Etc.postgispgfouinepgbouncerGearmanSolrMunin, statsdPingdomFabricxfs
References

Disqus

sitehttp://disqus.com
Operating SystemLinux
Web ServerApache , mode_wsgi, HAProxy
DatabasePostgreSQL
Cache / Additional DataMemcached
LanguagePython
Web FrameworkDjango
Front-end FrameworkjQuery, BackboneJS, RequireJS, MomentJSModernizrSentry
Source ControlGit
CDN Domaindisquscdn.com
Cloud Computing / Hosting-
Etc.Slonyheartbeat
References

Linkedin

sitehttp://linkedin.com
Operating SystemSolaris Linux
Web ServerTomcat, Jetty
DatabaseOracleMySQL
Cache / Additional Data-
LanguageJava, Scala
Web FrameworkSpring, Play Framework
Front-end FrameworkYUI
Source Control-
CDN Domainlicdn.com
Cloud Computing / Hosting-
Etc.ActiveMQLucene
References

Youtube

sitehttp://youtube.com
Operating SystemLinux
Web ServerApache, Lighttpd
DatabaseMySQL, BigTable
Cache / Additional Data-
LanguagePython
Web Framework-
Front-end FrameworkSPF, html5player
Source Control-
CDN Domainytimg.com
Cloud Computing / Hosting-
Etc.ZookeeperVitess, wiseguy, pycurl, spitfire, bson
References

Reddit

sitehttp://reddit.com
Operating SystemLinux
Web ServerNginxHAProxy
DatabasePostgreSQL
Cache / Additional DataCassandraMemcached
LanguagePython, C
Web FrameworkPyramid Framework
Front-end FrameworkjQueryBackboneJSCoffeeScript
Source ControlGit
CDN Domainredditstatic.com
Cloud Computing / HostingAmazon EC2CloudFlare
Etc.RabbitMQ
References

Line

sitehttp://line.me
Operating SystemCentOS Linux
Web ServerNginx
DatabaseMySQL
Cache / Additional DataRedis, HBaseCassandraArcusErlang
Language-
Web Framework-
Front-end Framework-
Source ControlGit
CDN Domain-
Cloud Computing / Hosting-
Etc.HadoopHive, Tajo, SharkSpark, Zeppelin, KafkaElasticsearchTitan
References

Kakao

sitehttp://kakao.com
Operating SystemCentOS Linux
Web Server-
DatabaseMariaDB, TokuDB
Cache / Additional DataRedis, MemchedHBaseCassandra
LanguageRuby
Web FrameworkRuby on Rails
Front-end FrameworkRequireJS
Source Control-
CDN Domain-
Cloud Computing / Hostingkakaocdn.net
Etc.-
References

마무리하며

조사하면서 기억에 남았던 부분을 간략하게 정리하고 마무리하겠습니다.

Quora는 Facebook에서 PHP의 문제점을 인지하고 다른 언어를 선택하고자 했습니다. JAVA, Python, Ruby 중에서 PHP에서 느낀 개발 시간의 편의성으로 JAVA는 탈락했고 Ruby보단 Python을 사용하는 개발자가 Quora 개발팀에 많아서 선택했다고 합니다.
하지만 최근 일부 몇몇 서비스에서 Quora에선 Scala를 도입하고 있다고 합니다.

Twitter는 Ruby로 개발되었지만 최근에 Scala를 사용을 늘려가고 있다고 합니다.

신생 서비스 업체는 Python 기반의 Django를 많이 사용하고 있었습니다.
위에 나열하진 않았지만 국내 스타트업도 Django를 많이 도입하고 있었습니다.

Ruby, Python은 서비스 시작 언어로 많이 사용하고 있고 많은 방문자를 커버하고 있었지만 더 좋은 방향으로 고민하는 개발팀에서는 JAVA를 일정 부분 사용하는 모습이었고, 다시 JAVA의 장점을 이어받은 Scala를 도입하는 모습을 보이고 있었습니다.

여러분은 어떤 언어, 어떤 아키텍처로 서비스를 만들지 정하셨습니까?

함께보기