-
분산 웹 캐시 (Wcache)의 개선과정 - Part 1
Overview 웹 서비스의 규모가 커지고 이용자의 수가 늘어날수록 서비스 제공자는 scalability 이슈에 직면합니다. 그중에서도 실제 ‘로딩 속도’의 차이를 느끼게 해 주고 트래픽의 대부분을 차지하는 정적 컨텐츠의 신속한 제공은 서비스 품질을 좌우하는 중요한 요소가 되곤 합니다. 이런 수많은 컨텐츠들(Javascript, css, image 등)을 빠르게 제공하기 위해 클라이언트와 서버 사이에 위치하며 컨텐츠를 임시로 저장하는 Middlebox를 웹 캐시(web cache)라고 합니다. 웹 캐시의 기능은 Apache Traffic Server, Nginx, Squid와 같은 어플리케이션에서 지원하고 있으며, 대량의 컨텐츠를 처리하기 위한 전용 하드웨어 형태의...
-
kakao의 오픈소스 Ep8 - hbase-packet-inspector
hbase-packet-inspector 이번에 카카오에서 오픈소스로 공개한 hbase-packet-inspector (이하 HPI) 는 HBase 리젼서버의 네트워크 패킷을 분석해 요청과 응답 정보를 추출하는 툴입니다. 기존의 모니터링 툴을 통해서는 알 수 없었던 보다 상세한 정보들을 확인할 수 있습니다. 먼저 왜 이런 툴이 필요했는지 이야기해봐야 할 것 같습니다. 배경/동기 카카오와 다음의 많은 서비스들은 HBase 를 중요한 데이터 저장소로 사용하고 있습니다. 서비스 간의 간섭을 피하기 위해 개별 서비스는 각각 독립적인 HBase 클러스터를 사용하는 것이 원칙이며, 그러다 보니 실제 운영 중인 HBase 클러스터는 수십...
-
Parallel Programming and Applicative in Scala
Monolithic 아키텍쳐로 개발하기 Monolithic 아키텍쳐로 개발시에는 일반적으로 하나의 저장소만 고려해야 하는 경우가 많았습니다. Monolithic 아키텍쳐를 사용하면 편리한점이 많습니다. 코드가 한곳에 모여 있고 데이터가 한곳에 집중이 되어 있다는 것입니다. 일반적인 정규화 된 테이블에서 상품과 관련된 정보를 가져온다고 가정해보겠습니다. 데이터는 여러개의 테이블로 쪼개져 있기 때문에 필요한 데이터를 조합이 필요하다면 아래와 같이 SQL을 이용해서 여러개의 테이블을 join해서 데이터를 조합하여 가져올 수 있습니다. SELECT * FROM items, catalogs, wishes, categories, details, certificiations WHERE items.id = ? AND items.id =...
-
kakao의 오픈소스 Ep7 - CMUX: CLI에 날개를 달자!
“카카오의 오픈소스를 소개합니다” 일곱 번째는 jon.kwon과 동료들이 개발한 CMUX입니다. CMUX는 Cloudera Manager 기반의 하둡 클러스터를 관리하는데 필요한 대화형 커맨드라인 인터페이스 도구들을 제공합니다. CMUX의 아이디어를 참고해 보세요. 여러분의 커맨드라인에 날개를 달 수 있을 것입니다. 카카오의 하둡 엔지니어링 파트에서는 CMUX를 이렇게 사용합니다. 수천 대의 하둡 클러스터의 정보를 빠르게 검색하여 필요한 정보를 조회하기도 하고, 특정 조건으로 검색한 노드에 SSH 로그인하여 병렬 작업을 하거나, 특정 조건으로 검색한 관리자 웹페이지를 열어보기도 합니다. 특정 조건으로 검색한 노드에만 명령어를 실행할 수도 있습니다....
-
오픈소스 간단 리뷰 - nomad : 가벼운 스케쥴러, 강력한 성능
Introduction 서비스 스케줄러는 클러스터 내의 컴퓨팅 리소스를 관리하고 사용자 애플리케이션을 어느 호스트에서 서비스할지 결정하는 시스템 소프트웨어입니다. 컨테이너 스케줄러로는 kubernetes나 docker swarm등이 있으며, 하둡 스케줄러로는 YARN이 많이 사용됩니다. 이 글에서는 이러한 스케줄러 중 하나인 nomad를 소개합니다. nomad는 vagrant, consul, packer등의 시스템 소프트웨어로 유명한 hashicorp사의 오픈소스 소프트웨어로, 자사의 consul과 vault를 각각 service discovery와 secure storage에 사용합니다. hashicorp사는 자사의 웹페이지에서 nomad를 통해 5000개 호스트에 100만 개 컨테이너를 5분 만에 배포한 사례를 소개하고 있습니다.(Nomad Million Container Challenge) Why? Kubernetes는...