SlideShare a Scribd company logo
1 of 14
06 Sanmantha




               GOOGLE을 지탱하는 기
               술
               Google의 공룡화
차례
    시스템


     분산 시스템
     기반 시스템

    검색 Cluster


     인덱스   분할
시스템의 성능 향상
    Scale-up : 보다 뛰어난 하드웨어를 도입하는 방법


    Scale-out : 하드웨어의 수를 늘리는 방법

장.단점


          Scale-up           Scale-out



      시스템을 단순하게 할 수 있
                        필요에 맞게 장비의 수를 증가
             다
 장점                          시킬 수 있다
      소프트웨어를 변경할 필요
                        비교적 비용을 억제할 수 있다
           가 없다

                        처음부터 복수의 하드웨어를 상
                        정해서 소프트웨어를 개발해야
      고성능 하드웨어의 가격이           만 한다
 단점
           비싸다          설계가 잘못될 경우, 대수를 늘
                             려도 성능이
                           개선되지 않는다.
시스템 연결
    Rack

     시스템의 기본
     하나의 Rack에는 40~80대의 PC에 해당하는 부품

    Cluster

            하나의 단위로 여러 개 연결한 것
     Rack을
     목적따라 다양한 Cluster들이 존재
      - (검색 Cluster, 수집 Cluster, 테스트용 Cluster 등
      …)
    Data Center

     다수의 Rack가 한데 모여있는 것
     세계 각지에 분산 배치
분산 시스템의 구성
                             Data Center

 Rack
               Cluster

     스위
                         Cluster      Cluster
      치

PC        PC

PC        PC
                                    Cluster
PC        PC
                         Cluster
                                    Cluster
싼 장비를 대량으로 이용 시 문
제점
    하드웨어 고장


     저가의 하드웨어는 고장이 날 확률이 그만큼 높다
     장애를 미리 상정하고 대비할 필요가 있다
     문제 발생시 전체적으로 동작을 계속 할 수 있게
      해야 한다

    고난도 분산처리


     모든 장비의 상태를 파악하고 알맞게 작업을 분산
      시켜야 한다
     얼마든지 확장할 수 있는 구조를 설계한 후 병목현
      상이 없도록 해야 한다
      확장성scalability   : 장비의 수를 늘리면 늘린 만큼 성능
기반 시스템
    GFS Cluster

        GFS : Google File System
    
        다수의 머신을 사용하여 거대한 파일 시스템을 만들어내는 기술
    
        머신들을 네트워크로 연결하여 일관되게 데이터를 읽고 쓸 수 있
    
        도록 하는 기술
        GFS Cluster : GFS에 의해 연결된 머신들이 집합
    
        하드드라이브를 다룸
    


    Work Queue

        CPU를 다룸
    
        비교적 여유가 있는 머신에서 주어진 태스크를 실행하는 기능 –
    
        쉬고 있는 머신을 자동으로 찾아내 순차적으로 실행시킴

    GFS의 주요업무 디스크 읽기.쓰기, 데이터 전송 – CPU부담

    적음
    Work Queue에 의해 부하가 높은 태스크를 동시에 실행하면 각
    각의 능력 최대활용 가능
검색엔진 개량
    검색 back-end의 대규모화


               성능이 올라가는 만큼 Repository에 저
     Crawler의
      장되는 데이터의 양도 증가 – 고속화 하지 않으면
      병목현상 유발
     URL서버도 병목현상 발생 가능성 있음

     Load-Balancing과 인덱스 생성 – 인덱스를 하나로
      합칠 때


    인덱스의 대규모화


     대규모 인덱스 사용 X
     대규모 인덱스 사용 – 범용 인덱스 시스템 준비
새로운 검색엔진
    단 한 번의 검색이라도 다수의 컴퓨터에 의해

    분산처리

    Data Center

            : 지리적인 위치에 따라 바뀜
     IP조사
     주소 창에 주소 입력 시 주소가 같아도 자신이 위
      치한 곳에서 되도록 가까운 곳에 있는 Google의
      Data Center연결 – 부하 분산의 첫 걸음
     재해로 인해 하나의 Data Center가 심각한 타격을
      받을 경우, DNS는 그 Data Center의 IP주소 반환
      X
     각각 독립적으로 웹 검색 – 검색 서버와 검색용 인
      덱스로 구성된
검색 Cluster
    복수의 서버를 조합해 검색을 처리




    GWS (Google Web Server)

      각각의 검색 요청을 한 곳에 모으는 일 실행
    
     웹 서버와 같은 위치
     도큐먼트 서버에게 인덱스 서버가 찾은 목록 전달
     도큐먼트 서버에서 만든 정보를 HTML로 정리해서 이
      용자에게 전달
    Load Balancer, LB

      검색 요청 분배->복수의 GWS 중 하나와 연결
    
     부하가 가벼운 GWS에 처리를 맡김
    도큐먼트 서버

        각각의 웹 페이지 제목 및 요약 등의 정보 만듦
    
검색 클러스터 구조

            LB




 GWS        GWS        GWS




   인덱스 서버         도큐먼트 서버
인덱스 분할
    쉽게 확장할 수 있는 검색 시스템 구축 필요




    Shard 인덱스 생성


            아닌 docID에 의해 인덱스 분할
     wordID가

     인덱스 당 웹 페이지의 수 제한 but 그 하나하나는
      모든 단어를 포함한 완전한 인덱스 생성


    장점


    웹페이지 수 제한 시 생성되는 인덱스의 크기도
     줄일 수 있음
Shard(파편)
    모든 Shard에서 같은 검색을 하고 그 결과를 통


    합해야 함
    각 Shard는 작은 클러스터로 구성


    읽기 전용 – 정기적인 업데이트 외에 갱신 하지


    않음

    얼마든지 확장 가능한 구조


More Related Content

What's hot

OSS International Case Study
OSS International Case StudyOSS International Case Study
OSS International Case StudyRyan Chung
 
Capstone2 final - Smart Shopping Bot
Capstone2 final - Smart Shopping BotCapstone2 final - Smart Shopping Bot
Capstone2 final - Smart Shopping BotChan-Young Han
 
lalamaru coaching
lalamaru coachinglalamaru coaching
lalamaru coachingyamaguchiyu
 
Google Health와 Health 2.0 양광모
Google Health와 Health 2.0 양광모Google Health와 Health 2.0 양광모
Google Health와 Health 2.0 양광모Kwangmo Yang
 
岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践XMourinho
 
徳川将軍五代目
徳川将軍五代目徳川将軍五代目
徳川将軍五代目Hiromu Shioya
 
lalamaru coaching
lalamaru coachinglalamaru coaching
lalamaru coachingyamaguchiyu
 
Bloggers Survival 제안서 불로고수
Bloggers Survival 제안서 불로고수Bloggers Survival 제안서 불로고수
Bloggers Survival 제안서 불로고수JIAQI NIE
 
2糖尿病教室
2糖尿病教室2糖尿病教室
2糖尿病教室guestec36ed
 
优秀员工的七种素质
优秀员工的七种素质优秀员工的七种素质
优秀员工的七种素质zhangzhifs
 
資工所考試密技說明會
資工所考試密技說明會資工所考試密技說明會
資工所考試密技說明會Mu Chun Wang
 
eComing Club簡介200802
eComing Club簡介200802eComing Club簡介200802
eComing Club簡介200802Robin Chen
 
仕事で使うRuby
仕事で使うRuby仕事で使うRuby
仕事で使うRubyKentaro Goto
 
脱出ゲーム「緊急出動」
脱出ゲーム「緊急出動」脱出ゲーム「緊急出動」
脱出ゲーム「緊急出動」Jun Chiba
 
1242982622API2 upload
1242982622API2 upload1242982622API2 upload
1242982622API2 upload51 lecture
 
もっと仕事で使うRuby
もっと仕事で使うRubyもっと仕事で使うRuby
もっと仕事で使うRubyKentaro Goto
 

What's hot (20)

OSS International Case Study
OSS International Case StudyOSS International Case Study
OSS International Case Study
 
Capstone2 final - Smart Shopping Bot
Capstone2 final - Smart Shopping BotCapstone2 final - Smart Shopping Bot
Capstone2 final - Smart Shopping Bot
 
lalamaru coaching
lalamaru coachinglalamaru coaching
lalamaru coaching
 
Google Health와 Health 2.0 양광모
Google Health와 Health 2.0 양광모Google Health와 Health 2.0 양광모
Google Health와 Health 2.0 양광모
 
岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践岑文初:淘宝开放平台架构设计与实践
岑文初:淘宝开放平台架构设计与实践
 
plan
planplan
plan
 
徳川将軍五代目
徳川将軍五代目徳川将軍五代目
徳川将軍五代目
 
lalamaru coaching
lalamaru coachinglalamaru coaching
lalamaru coaching
 
Bloggers Survival 제안서 불로고수
Bloggers Survival 제안서 불로고수Bloggers Survival 제안서 불로고수
Bloggers Survival 제안서 불로고수
 
2糖尿病教室
2糖尿病教室2糖尿病教室
2糖尿病教室
 
优秀员工的七种素质
优秀员工的七种素质优秀员工的七种素质
优秀员工的七种素质
 
資工所考試密技說明會
資工所考試密技說明會資工所考試密技說明會
資工所考試密技說明會
 
S19
S19S19
S19
 
eComing Club簡介200802
eComing Club簡介200802eComing Club簡介200802
eComing Club簡介200802
 
仕事で使うRuby
仕事で使うRuby仕事で使うRuby
仕事で使うRuby
 
脱出ゲーム「緊急出動」
脱出ゲーム「緊急出動」脱出ゲーム「緊急出動」
脱出ゲーム「緊急出動」
 
EclipSky200712
EclipSky200712EclipSky200712
EclipSky200712
 
Personal knowledge management
Personal knowledge managementPersonal knowledge management
Personal knowledge management
 
1242982622API2 upload
1242982622API2 upload1242982622API2 upload
1242982622API2 upload
 
もっと仕事で使うRuby
もっと仕事で使うRubyもっと仕事で使うRuby
もっと仕事で使うRuby
 

More from semi06

Iphone
IphoneIphone
Iphonesemi06
 
Social Web 3
Social Web 3Social Web 3
Social Web 3semi06
 
Social Web 7
Social Web 7Social Web 7
Social Web 7semi06
 
Social Web 3
Social Web 3Social Web 3
Social Web 3semi06
 
Social Web 5
Social Web 5Social Web 5
Social Web 5semi06
 
Social Web 6
Social Web 6Social Web 6
Social Web 6semi06
 
Social Web 2
Social Web 2Social Web 2
Social Web 2semi06
 
Social Web 4
Social Web 4Social Web 4
Social Web 4semi06
 
Social Web 5
Social Web 5Social Web 5
Social Web 5semi06
 
Social Networking Service
Social Networking ServiceSocial Networking Service
Social Networking Servicesemi06
 
벤치마킹
벤치마킹벤치마킹
벤치마킹semi06
 
미코노미
미코노미미코노미
미코노미semi06
 
웹기획
웹기획웹기획
웹기획semi06
 
Google3
Google3Google3
Google3semi06
 
Google 4
Google 4Google 4
Google 4semi06
 
Google 1
Google 1Google 1
Google 1semi06
 
구글을 지탱하는 기술
구글을 지탱하는 기술구글을 지탱하는 기술
구글을 지탱하는 기술semi06
 

More from semi06 (17)

Iphone
IphoneIphone
Iphone
 
Social Web 3
Social Web 3Social Web 3
Social Web 3
 
Social Web 7
Social Web 7Social Web 7
Social Web 7
 
Social Web 3
Social Web 3Social Web 3
Social Web 3
 
Social Web 5
Social Web 5Social Web 5
Social Web 5
 
Social Web 6
Social Web 6Social Web 6
Social Web 6
 
Social Web 2
Social Web 2Social Web 2
Social Web 2
 
Social Web 4
Social Web 4Social Web 4
Social Web 4
 
Social Web 5
Social Web 5Social Web 5
Social Web 5
 
Social Networking Service
Social Networking ServiceSocial Networking Service
Social Networking Service
 
벤치마킹
벤치마킹벤치마킹
벤치마킹
 
미코노미
미코노미미코노미
미코노미
 
웹기획
웹기획웹기획
웹기획
 
Google3
Google3Google3
Google3
 
Google 4
Google 4Google 4
Google 4
 
Google 1
Google 1Google 1
Google 1
 
구글을 지탱하는 기술
구글을 지탱하는 기술구글을 지탱하는 기술
구글을 지탱하는 기술
 

Google 2

  • 1. 06 Sanmantha GOOGLE을 지탱하는 기 술 Google의 공룡화
  • 2. 차례 시스템   분산 시스템  기반 시스템 검색 Cluster   인덱스 분할
  • 3. 시스템의 성능 향상 Scale-up : 보다 뛰어난 하드웨어를 도입하는 방법  Scale-out : 하드웨어의 수를 늘리는 방법 
  • 4. 장.단점 Scale-up Scale-out 시스템을 단순하게 할 수 있 필요에 맞게 장비의 수를 증가 다 장점 시킬 수 있다 소프트웨어를 변경할 필요 비교적 비용을 억제할 수 있다 가 없다 처음부터 복수의 하드웨어를 상 정해서 소프트웨어를 개발해야 고성능 하드웨어의 가격이 만 한다 단점 비싸다 설계가 잘못될 경우, 대수를 늘 려도 성능이 개선되지 않는다.
  • 5. 시스템 연결 Rack   시스템의 기본  하나의 Rack에는 40~80대의 PC에 해당하는 부품 Cluster  하나의 단위로 여러 개 연결한 것  Rack을  목적따라 다양한 Cluster들이 존재 - (검색 Cluster, 수집 Cluster, 테스트용 Cluster 등 …) Data Center   다수의 Rack가 한데 모여있는 것  세계 각지에 분산 배치
  • 6. 분산 시스템의 구성 Data Center Rack Cluster 스위 Cluster Cluster 치 PC PC PC PC Cluster PC PC Cluster Cluster
  • 7. 싼 장비를 대량으로 이용 시 문 제점 하드웨어 고장   저가의 하드웨어는 고장이 날 확률이 그만큼 높다  장애를 미리 상정하고 대비할 필요가 있다  문제 발생시 전체적으로 동작을 계속 할 수 있게 해야 한다 고난도 분산처리   모든 장비의 상태를 파악하고 알맞게 작업을 분산 시켜야 한다  얼마든지 확장할 수 있는 구조를 설계한 후 병목현 상이 없도록 해야 한다  확장성scalability : 장비의 수를 늘리면 늘린 만큼 성능
  • 8. 기반 시스템 GFS Cluster  GFS : Google File System  다수의 머신을 사용하여 거대한 파일 시스템을 만들어내는 기술  머신들을 네트워크로 연결하여 일관되게 데이터를 읽고 쓸 수 있  도록 하는 기술 GFS Cluster : GFS에 의해 연결된 머신들이 집합  하드드라이브를 다룸  Work Queue  CPU를 다룸  비교적 여유가 있는 머신에서 주어진 태스크를 실행하는 기능 –  쉬고 있는 머신을 자동으로 찾아내 순차적으로 실행시킴 GFS의 주요업무 디스크 읽기.쓰기, 데이터 전송 – CPU부담  적음 Work Queue에 의해 부하가 높은 태스크를 동시에 실행하면 각 각의 능력 최대활용 가능
  • 9. 검색엔진 개량 검색 back-end의 대규모화  성능이 올라가는 만큼 Repository에 저  Crawler의 장되는 데이터의 양도 증가 – 고속화 하지 않으면 병목현상 유발  URL서버도 병목현상 발생 가능성 있음  Load-Balancing과 인덱스 생성 – 인덱스를 하나로 합칠 때 인덱스의 대규모화   대규모 인덱스 사용 X  대규모 인덱스 사용 – 범용 인덱스 시스템 준비
  • 10. 새로운 검색엔진 단 한 번의 검색이라도 다수의 컴퓨터에 의해  분산처리 Data Center  : 지리적인 위치에 따라 바뀜  IP조사  주소 창에 주소 입력 시 주소가 같아도 자신이 위 치한 곳에서 되도록 가까운 곳에 있는 Google의 Data Center연결 – 부하 분산의 첫 걸음  재해로 인해 하나의 Data Center가 심각한 타격을 받을 경우, DNS는 그 Data Center의 IP주소 반환 X  각각 독립적으로 웹 검색 – 검색 서버와 검색용 인 덱스로 구성된
  • 11. 검색 Cluster 복수의 서버를 조합해 검색을 처리  GWS (Google Web Server)  각각의 검색 요청을 한 곳에 모으는 일 실행   웹 서버와 같은 위치  도큐먼트 서버에게 인덱스 서버가 찾은 목록 전달  도큐먼트 서버에서 만든 정보를 HTML로 정리해서 이 용자에게 전달 Load Balancer, LB  검색 요청 분배->복수의 GWS 중 하나와 연결   부하가 가벼운 GWS에 처리를 맡김 도큐먼트 서버  각각의 웹 페이지 제목 및 요약 등의 정보 만듦 
  • 12. 검색 클러스터 구조 LB GWS GWS GWS 인덱스 서버 도큐먼트 서버
  • 13. 인덱스 분할 쉽게 확장할 수 있는 검색 시스템 구축 필요  Shard 인덱스 생성  아닌 docID에 의해 인덱스 분할  wordID가  인덱스 당 웹 페이지의 수 제한 but 그 하나하나는 모든 단어를 포함한 완전한 인덱스 생성 장점  웹페이지 수 제한 시 생성되는 인덱스의 크기도 줄일 수 있음
  • 14. Shard(파편) 모든 Shard에서 같은 검색을 하고 그 결과를 통  합해야 함 각 Shard는 작은 클러스터로 구성  읽기 전용 – 정기적인 업데이트 외에 갱신 하지  않음 얼마든지 확장 가능한 구조 