Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE

6,635 views

Published on

자바카페에서 발표한 발표자료입니다.
step by step
개발자를 위한 서버이중화 가이드

Published in: Technology
  • DOWNLOAD THAT BOOKS/FILE INTO AVAILABLE FORMAT - (Unlimited) ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes Christian, Classics, Comics, Contemporary, Cookbooks, Art, Biography, Business, Chick Lit, Children's, Manga, Memoir, Music, Science, Science Fiction, Self Help, History, Horror, Humor And Comedy, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS/FILE INTO AVAILABLE FORMAT - (Unlimited) ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes Christian, Classics, Comics, Contemporary, Cookbooks, Art, Biography, Business, Chick Lit, Children's, Manga, Memoir, Music, Science, Science Fiction, Self Help, History, Horror, Humor And Comedy, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE

  1. 1. Step by Step 개발자를 위한 서버이중화 가이드
  2. 2. 발표자 김흥래 (자바카페) NAVER I&S에서 사내인프라를 개발하고 있습니다. 새로운 것을 배우는 것을 좋아하고 프로그래머가 천직이라고 생각하고 있는 행복한 프로그래머입니다. Back-End와 Front-End 전 분야를 아우르는 개발자가 되고 싶습니다. 서동우(자바카페) 현재 ESTsoft에서 웹 관련 일을 하고 있습니다. 평범하게 살려고 노력하고 있으며, 최근 자바스크립트 쪽에 관심이 있어서 공부하고 있습니다. 자바 카페에서 9년 째 운영진을 하면서, 가늘고 길게 사는 법에 대해서 배우고 있습니다. 이영범 (자바카페) Phill-It 솔루션 팀에서 웹과 모바일앱 관련된 일을 하고 있습니다. 현재는 HTML5와 CSS3로 화려한 애니메이션 효과를 만드는 일에 관심이 많습니다. 자바카페 운영진에서 좋은 사람들과 소통하며 공부하며 바쁘지만 즐거운 하루 하루를 보내고 있습니다.
  3. 3. OVERVIEW  커뮤니티 소개 (JAVACAFE)  서비스 아키텍처의 발전과정  .NET 기반의 서버이중화 기술  JAVA 기반의 서버이중화 기술
  4. 4. 서비스 아키텍처의 발전과정
  5. 5. 글로벌 사이트 사용률 출처 : http://www.betanews.net/article/574328 (by globalwebindex.net)
  6. 6. 글로벌 사이트 사용률 23억명 출처 : http://www.betanews.net/article/574328 (by globalwebindex.net)
  7. 7. 글로벌 사이트 평균 접속자 수 출처 : http://www.betanews.net/article/574328 (by globalwebindex.net)
  8. 8. 글로벌 사이트 평균 접속자 수 7억명 출처 : http://www.betanews.net/article/574328 (by globalwebindex.net)
  9. 9. 글로벌 서비스 시 고려 할 사항 가입자수 Localization TEXT 다국어 처리 ? TIME ZONE 처리 ? 기준 FONT ? 확장성 (Scalability) ? 방문자수 TPS (Transaction Per Second) HA (High Availability) ?
  10. 10. Scale-Up vs Scale-Out
  11. 11. Scale-Up vs Scale-Out 출처 : http://www.navcode.info/2012/12/cloud-scaling-schemes.html
  12. 12. Scale-Up vs Scale-Out 출처 : http://www.navcode.info/2012/12/cloud-scaling-schemes.html
  13. 13. SPOF 출처 : http://en.wikipedia.org/wiki/Single_point_of_failure
  14. 14. 서비스를 구축해볼까요?
  15. 15. 단일서버 웹서버, WAS, DB서버
  16. 16. 단일서버  빠른 서비스 구축이 가능  Hardware 비용이 저렴  성능은?
  17. 17. 단일서버 웹서버, WAS, DB서버
  18. 18. 단일서버 SPOF 웹서버, WAS, DB서버
  19. 19. DB서버 분리 웹서버, WAS DB서버
  20. 20. DB서버 분리  시스템 자원을 DB가 독점적으로 사용하는 것이 가능  DB 성능이 향상될 수 있음. (Scale-Up)
  21. 21. DB서버 분리 웹서버, WAS DB서버
  22. 22. DB서버 분리 SPOF 웹서버, WAS SPOF DB서버
  23. 23. 웹서버 분리 웹서버 WAS DB서버
  24. 24. 웹서버 분리  웹서버에서 Static 리소스를 별도로 처리  WAS에서는 순수한 프로그램적인 트래픽만 처리
  25. 25. 웹서버 분리 웹서버 WAS DB서버
  26. 26. 웹서버 분리 SPOF 웹서버 SPOF SPOF WAS DB서버
  27. 27. 데이터베이스 REPLICATION R DB서버(Slave) 웹서버 WAS RW DB서버(Master)
  28. 28. 데이터베이스 REPLICATION  데이터를 Near 리얼타임으로 복제  Database HA (High Availability)  Master(RW)-Slave(R) 구조  다수의 Slave 구축으로 읽기 부하 분산
  29. 29. 데이터베이스 REPLICATION R DB서버(Slave) 웹서버 WAS RW DB서버(Master)
  30. 30. 데이터베이스 REPLICATION R DB서버(Slave) SPOF 웹서버 SPOF WAS RW DB서버(Master)
  31. 31. 로드벨런싱 WAS R 웹서버 DB서버(Slave) WAS L4 웹서버 RW WAS 웹서버 WAS DB서버(Master)
  32. 32. 로드벨런싱  OSI Layer4 기반의 로드벨런싱  서비스 부하분산 (Scale-Out)  런타임에 WAS 서버 추가, 삭제 가능  특정 서버에 장애가 발생해도 사용자는 인지하지 못함 (서비스 안정성이 높음)  Sticky 옵션  지속적인 Health Check
  33. 33. 로드벨런싱 WAS R 웹서버 DB서버(Slave) WAS L4 웹서버 RW WAS 웹서버 WAS DB서버(Master)
  34. 34. 로드벨런싱 WAS R 웹서버 DB서버(Slave) SPOF WAS L4 웹서버 RW WAS 웹서버 WAS DB서버(Master)
  35. 35. HAProxy HA (High Availability) WAS Active R 웹서버 DB서버(Slave) L7 WAS Stand By 웹서버 RW WAS L7 웹서버 WAS DB서버(Master)
  36. 36. HAProxy HA (High Availability)  OSI Layer7 기반의 로드벨런싱  L7 장비 HA 구성  특정 URI 기준으로 로드벨런싱 가능  서버의 부하를 계산하여 로드벨런싱 가능
  37. 37. HAProxy HA (High Availability) WAS Active R 웹서버 DB서버(Slave) L7 WAS Stand By 웹서버 RW WAS L7 웹서버 WAS DB서버(Master)
  38. 38. HTTP Cache WAS Active R 웹서버 DB서버(Slave) L7 WAS Stand By 웹서버 RW WAS L7 웹서버 WAS DB서버(Master)
  39. 39. HTTP Cache  Web Accelerator  Reverse HTTP Proxy  html 캐시  TTS 기반의 캐시 갱신 알고리즘  Block 단위 캐시 가능  Varnish, Apache Traffic Server
  40. 40. HTTP Cache WAS Active R 웹서버 DB서버(Slave) L7 WAS Stand By 웹서버 RW WAS L7 웹서버 WAS DB서버(Master)
  41. 41. Local Cache Local Cache WAS Active R 웹서버 Local Cache DB서버(Slave) L7 WAS Stand By 웹서버 Local Cache WAS L7 웹서버 Local Cache WAS RW DB서버(Master)
  42. 42. Local Cache  트래픽이 많을수록 높은 성능 향상  히트율이 높을 만한 정보가 대상 (갱신이 자주 일어나지 않는 데이터)  Spring 프레임워크와 Ehcache 통합  데이터 동기화 가능
  43. 43. Local Cache Local Cache WAS Active R 웹서버 Local Cache DB서버(Slave) L7 WAS Stand By 웹서버 Local Cache WAS L7 웹서버 Local Cache WAS RW DB서버(Master)
  44. 44. Global Cache Local Cache Global Cache WAS Active 웹서버 Local Cache R L7 WAS Stand By 웹서버 Local Cache WAS L7 웹서버 Local Cache WAS DB서버(Slave) RW DB서버(Master)
  45. 45. Global Cache  다수의 WAS에서 손쉬운 데이터 공유  Local Cache에 비해 네트워크 트래픽이 추가 발생  캐시서버 장애 시 모든 WAS에 영향 (Global Cache 복구 메커니즘이 반드시 필요)  Memcached, Redis
  46. 46. Global Cache Local Cache Global Cache WAS Active 웹서버 Local Cache R L7 WAS Stand By 웹서버 Local Cache WAS L7 웹서버 Local Cache WAS DB서버(Slave) RW DB서버(Master)
  47. 47. 비동기 처리 (Async) Global Cache R DB서버(Slave) RW DB서버(Master)
  48. 48. 비동기 처리 (Async)  Message Oriented Middleware (MOM)  분산된 시스템 간의 메세지 송수신 큐  point-to-point  publish/subscribe  request/response  ActiveMQ, RabbitMQ
  49. 49. 비동기 처리 (Async) Global Cache R DB서버(Slave) RW DB서버(Master)
  50. 50. DB Sharding
  51. 51. DB Sharding  DB Partitioning  테이블 수직 확장  DB Sharding  테이블 수평 확장  Primary Key 선정이 매우 중요  Table Join 이슈
  52. 52. DB Sharding
  53. 53. CELL Architecture CELL
  54. 54. CELL Architecture CELL#1 Active L7 WAS CELL#2 Meta Data DB서버
  55. 55. CELL Architecture CELL#1 Active L7 목동 IDC CELL#2 WAS 부산 IDC Meta Data DB서버 CELL#3 CELL#4
  56. 56. CELL Architecture  시스템을 독립적인 Cell 단위로 분리 구축  독립적인 사용자 그룹으로 Cell 구분 (대륙별, 국가별)  Cell간에 공유를 위한 메타데이타 필요  장애시 Cell간의 간섭이 없음  점진적인 배포가 가능해짐 (5개 -> 20%)
  57. 57. 지금 우리 서비스는?
  58. 58. .NET 기반의 서버 이중화 기술
  59. 59. Load Balance
  60. 60. .Net 에서 구성할 수 있는 방법 • Network Load Balancing • Application Request Routing
  61. 61. Network Load Balancing
  62. 62. Network Load Balancing
  63. 63. Network Load Balancing • • • • • • • • • Windows Server 옵션 Layer 3 하나의 클러스트에 32대의 호스트 클러스트 다운 없이 호스트를 추가하거나 삭제할 수 있 다.(Scalability) 클러스트가 에러 및 다운된 것을 감지 및 복구 호스트가 추가 및 제거 시에도 로드 밸런스를 할 수 있다.(Highavailability) NLB Manager 라는 GUI를 제공해줘 쉽게 설정 가능 NLB 메니저를 통해 클러스터 및 호스트 를 설정 및 구성할 수 있다. 포트 관리자 툴을 이용해서 포트 별 로드 밸런스 기능을 구성할 수 있다.
  64. 64. Network Load Balancing 단점? • • TCP/IP 만 가능 기본적인 기능만 지원 • Health checks X • Caching X • SSL Offload X • Geo Location X
  65. 65. APPLICATION REQUEST ROUTING
  66. 66. APPLICATION REQUEST ROUTING IIS 7.0+ 확장 기능 Layer 7 소프트웨어 기반의 Reverse Proxy 솔루션 URL, Http Headers, Server variables 을 이 용한 Load Balance 가능 • 사용하기 쉽다. • • • •
  67. 67. 기능 • • • • • • • • • Health Checking Caching Can work as a Content Delivery network(CDN) SSL offloading HTTP compression URL rewrite Usage reporting Sticky sessions programming and automation support
  68. 68. 단점은? • • 고 사용성(Network High Availability)을 위한 자체 솔루션을 가지고 있지 않다. HTTP traffic 만 지원
  69. 69. 그럼 어떻게?
  70. 70. Session
  71. 71. .NET SESSION 공유
  72. 72. .NET SESSION 공유
  73. 73. .NET SESSION 공유
  74. 74. .NET SESSION 공유 • The ASP.NET State Server service • Microsoft SQL Server • third party component
  75. 75. THE ASP.NET STATE SERVER SERVICE • 메모리에 저장 • 속도가 빠르다. • 장비가 죽을 경우 모든 세션 데이터는 삭제
  76. 76. MICROSOFT SQL SERVER • 디스크에 session 정보를 저장 • 가장 안정적인 서비스 • 속도는 느림
  77. 77. THIRD PARTY COMPONENT • • • • MS AppFabric Caching Services ScaleOut Software Alachisoft Memcached
  78. 78. 해야할 작업들은? < validationKey="some long hashed value" decryptionKey="another long hashed value" validation="SHA1"/>
  79. 79. 해야할 작업들은? - The ASP.NET State Server service <system.web> <sessionState mode="StateServer" stateConnectionString="tcpip=machinename:42424"> </sessionState> </system.web> - SQL Server <system.web> <sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="the connection string name to the server"> </sessionState> </system.web>
  80. 80. 서버가 여러 대 이면 어떻게 하나?
  81. 81. 해결책은.. Web Farm Framework!
  82. 82. 구성은 이렇게.
  83. 83. WEB FARM FRAMEWORK • • • • • • • • • • IIS 7+ 확장기능 Free! 한번의 스탭으로 서버 팜 설정 가능 Web PI를 이용한 플랫폼 동기화 Web Deploy를 이용한 Application 동기화 웹 서버 정책 동기화 원격 플랫폼 컴포넌트 추가 기능 ARR 기능을 포함 각 서버 팜에 있는 서버들의 상태를 로그 확인 확장 기능 개발 가능
  84. 84. WEB FARM FRAMEWORK
  85. 85. JAVA 기반의 서버 이중화 기술
  86. 86. SSO (Single Sign On)
  87. 87. SSO (Single Sign On) 출처 : https://wiki.jasig.org/display/CASUM/1.+Introduction
  88. 88. SSO (Single Sign On)  한번의 로그인 인증으로 여러 서비스를 이용할 수 있다.  인증 후 Request Header에 인증 정보 추가  사용자 요청시마다 Apache에서 인증 쿠키 Validation  CA SiteMinder
  89. 89. SSO (Single Sign On) 출처 : http://www.idfconnect.com/products/ssocloud/ssorest-agent-for-pingfederate/
  90. 90. Tomcat Failover
  91. 91. Tomcat Failover Failover : 장애 발생시 자동으로 정상서버로 전환 Failback : 장애 복구 후 자동으로 서비스 그룹에 복구 출처 : http://www.cubrid.com/manual/840/admin/admin_ha_concept_failover.htm
  92. 92. Tomcat Failover 출처 : http://www.richardnichols.net/2010/08/5-minute-guide-clustering-apache-tomcat/
  93. 93. Tomcat Failover Apache와 Tomcat을 lb worker로 연동하여 Failover 시스템 구축
  94. 94. Tomcat Failover  Apache와 Tomcat 연동 방식  mod_jk : Tomcat 프로젝트에서 개발된 Connector  mod_proxy : Apache 프로젝트에서 개발된 Connector  Apache load balancer (lb worker)
  95. 95. Tomcat Failover worker.propertis 파일 Tomcat Instance 정의
  96. 96. Tomcat Failover http.conf 파일 mod_jk 모듈 활성화
  97. 97. Tomcat Failover 출처 : http://blog.xebia.fr/2009/11/13/tomcat-ssl-communications-securisees-et-x-forwarded-proto/
  98. 98. CACHE
  99. 99. CACHE 롱테일(Long Tail) 법칙 20%의 요구가 80%의 리소스를 점유한다는 법칙 자주 사용되는 데이터는 Cache 사용으로 성능을 대폭 향상시킬 수 있다. 출처 : http://www.longtail.com
  100. 100. CACHE  웹 페이지 화면  DB 조회 결과  공유 메모리  Static 자원  비싼 비용의 연산 결과
  101. 101. CACHE
  102. 102. LOCAL CACHE  로컬 장비 내에서만 사용되는 캐시  로컬 자원을 활용 (메모리, 디스크)  빠른 결과  다른 서버와 데이터 공유가 어려움
  103. 103. GLOBAL CACHE  다수의 서버가 공유하는 캐시  데이터 분산 저장 (확장성)  로컬 캐시보다 느리다. (네트워크 트래픽)  데이터 공유가 상대적으로 쉬움
  104. 104. CACHE CLOUD 출처 : http://www.slideshare.net/sdec2011/sdec2011-arcus-nhn-memcached-cloud-8467157
  105. 105. RPC FRAMEWORK
  106. 106. RPC FRAMEWORK 출처 : http://www.tuicool.com/articles/jyi2aqA
  107. 107. RPC FRAMEWORK Remote Procedure Call 서버간의 안정적인 통신 지원 서비스간의 기반 프로토콜로 활용 출처 : http://en.wikipedia.org/wiki/Apache_Thrift
  108. 108. RPC FRAMEWORK
  109. 109. RPC FRAMEWORK 출처 : http://helloworld.naver.com/helloworld/1119
  110. 110. Message Oriented Middleware (MOM)
  111. 111. MESSAGE ORIENTED MIDDLEWARE (MOM)  분산된 시스템 간의 메세지 송수신 큐  JMS (Java Message Service)  point-to-point  publish/subscribe  AMQP (Advanced Message Queue Protocol)  point-to-point  publish/subscribe  request-response
  112. 112. MESSAGE ORIENTED MIDDLEWARE (MOM)
  113. 113. MESSAGE ORIENTED MIDDLEWARE (MOM)
  114. 114. POINT-TO-POINT Basic Queue (Producer - Queue - Consumer) 하나의 Producer가 메세지를 전송하고 하나의 Consumer가 메세지를 소비한다.
  115. 115. POINT-TO-POINT Worker Queue (Producer - Queue - more Consumer) 하나의 Producer가 메세지를 전송하고 다수의 Consumer가 경쟁하면서 메세지를 소비한다.
  116. 116. PUBLISH/SUBSCRIBE Pub/Sub Queue (Producer - Exchange - more Queue - Consumer) 하나의 Producer가 메세지를 전송하면 Exchange에 의해 다수의 큐에 메세지가 복사되고 Consumer가 메세지를 소비한다.
  117. 117. 참고자료 http://ehcache.org/ https://www.varnish-cache.org/ http://haproxy.1wt.eu/ http://meta.stackoverflow.com/questions/10369/which-tools-and-technologies-are-used-to-build-the-stackexchange-network http://highscalability.com/blog/2012/2/13/tumblr-architecture-15-billion-page-views-a-month-and-harder.html http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html http://highscalability.com/display/Search?moduleId=4876569&searchQuery=twitter http://helloworld.naver.com/helloworld/284659 http://backstage.soundcloud.com/2012/08/evolution-of-soundclouds-architecture/ http://www.slideshare.net/sdec2011/sdec2011-arcus-nhn-memcached-cloud-8467157 http://dotnetcodr.com/2013/06/17/web-farms-in-net-and-iis-part-1-a-general-introduction/ http://dotnetcodr.com/2013/06/20/web-farms-in-net-and-iis-part-2-network-load-balancer/ http://dotnetcodr.com/2013/06/24/web-farms-in-net-and-iis-part-3-application-request-routing-arr/ http://dotnetcodr.com/2013/07/01/web-farms-in-net-and-iis-part-5-session-state-management/ http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx
  118. 118. 감사합니다. JAVACAFE(자바카페) ALWAYS WITH YOU. http://javacafe.or.kr/ https://www.facebook.com/groups/javacafe/ hrkim3468@gmail.com

×