Related Posts
-
if(kakao)2020 코멘터리 02 : Klaytn, Caver, KAS 가 만들어가는 쉽고 빠른 BApp 개발 환경
2020.11.11
안녕하세요, Ground X의 Platform Development Team입니다. Ground X의 블록체인 플랫폼 Klaytn, 그리고 Klaytn을 쉽게 쓰기 위한 API Service (KAS)와 SDK (caver)를 개발하고 있습니다. 이번 if(Kakao)2020에서는 Klaytn의 성능 및 비용 개선을 위해 노력한 경험, caver의 사용성 개선을 위해 노력한 경험, KAS의 reference BApp을 개발한 경험, 그리고 Ground X에서의 devops에 대해 들려드릴 예정인데요, 이번 글을 통해 먼저 […]
Ground X Ground X는 카카오의 블록체인 기술 및 서비스 계열회사입니다. 블록체인이 단순히 흥미 있는 기술이 아니라 실생활에 사용되는 기술이 될 수 있도록 노력하고 있습니다. -
ADT 활용 예제1: MySQL Shard 데이터 재분배
2016.07.01
샤딩의 한계 카카오의 많은 서비스들이 데이터베이스로써 MySQL을 사용합니다. 그리고 서비스 규모가 커지면 대용량 분산을 위해 샤딩을 합니다. 카카오에서 많이 사용하는 샤딩 방법으로 크게 두 가지 방식이 있습니다. range-based sharding modulus-based sharding 그러나 두 방법 모두 한계가 있습니다. Range 방식의 한계 특정 ID값을 기준으로, ID 범위에 따라 샤드를 나누는 방식입니다. ID값이 증가하는 추이를 보고서 새로운 샤드 […]
gordon.hahn -
kakao의 오픈소스 Ep5 – Almighty Data Transmitter
2016.06.27
“카카오의 오픈소스를 소개합니다” 다섯번째는 gordon.hahn과 동료들이 개발한 ADT – Almighty Data Trasmitter입니다. ADT는 샤드 구성이나 사딩 규칙이 바뀔 때 샤드를 재분배하는 용도로 만들기 시작했지만, MySQL에서 데이터를 수집하여 다른 MySQL로 데이터를 전송하는 – CDC와 ETL이 결합된 – 만능 데이터 전송 도구로 변모하고 있습니다. ADT는 그 자체로도 유용한 소프트웨어 도구지만, MySQL 기반의 CDC/ETL 시스템을 구축하기 위한 […]
gordon.hahn -
MySQL InnoDB의 Adaptive Hash Index 활용
2016.04.07
개요 MySQL의 InnoDB에는 Adaptive Hash Index 기능이 있는데, 어떤 상황에서 효과가 있고 사용 시 반드시 주의를 해야할 점에 대해서 정리하도록 하겠습니다. InnoDB B-Tree 인덱스 MySQL의 InnoDB의 대표적인 인덱스는 B-Tree입니다. 데이터는 Primary Key 순으로 정렬되어 관리되고, Secondrary Key는 인덱스키+PK를 조합으로 정렬이 되어 있습니다. 즉, 특정 데이터를 찾기 위해서는 Secondrary Key에서 PK를 찾고, 그 PK를 통해 다시 원하는 데이터로 찾아가는 형태로 데이터가 […]
ian.lee -
DNS 기반의 Redis HA 구현
2016.03.18
이번 글에서는 DNS 기반의 Redis HA에 대한 이야기를 해보려고 합니다. DNS TTL이 무엇인지 그리고 그것을 어떻게 이용해서 Redis HA를 구현했는지 살펴보겠습니다. 도메인의 TTL 먼저 도메인의 TTL에 대해 이야기해 보겠습니다. TTL은 Time To Live의 약자로 도메인을 캐싱하고 있는 시간을 의미합니다. 누군가 A라는 도메인에 대해 질의를 했다면 응답을 준 DNS 서버에서 해당 도메인에 대해 TTL 시간 동안 캐싱을 하고 있게 됩니다. […]
alden.kang -
L4 장비의 동작과 서비스 배포시 유의점
2014.05.30
개요 현재 카카오에서 대부분의 웹서버는 L3DSR (Direct Server Return)구성의 L7 HealthCheck 방식을 사용 중입니다. L7 HealthCheck 방식은 앞서 블로그에서 기술한적이 있는 것처럼 OSI 7Layer 중 Layer7 계층의 어플리케이션 응답을 체크하는 방식입니다. 카카오에서는 L4장비가 주기적으로 서버와 TCP 세션을 맺고 GET /health_check.html 의 Request로 응답코드를 확인 하는 방식입니다. 그러나 최근 여러개의 서비스에서 HTTP Keep-Alive 를 사용중이고 이에 […]
terry.k -
kakao의 Anycast 활용 사례
2014.05.29
Overview 네트워크 기술 하나 중 Anycast 는 DNS 서비스에서 주로 사용하고 있지만 KAKAO는 Anycast 기술을 확장하여 여러가지 어플리케이션 서비스에 사용되고 있습니다. 특히 서버에서 Quagga 오픈소스를 이용하여 KAKAO 자체 망을 이용한 각 글로벌 POP 에 비용 절감 및 고 가용성 용도로도 많이 사용되고 있습니다. Anycast 란? Anycast 라는 용어가 매우 생소한데요. Anycast 란 용어는 네트워크 용어 입니다. 우리가 […]
albert.kim -
kakao의 L3DSR 구성 사례
2014.05.28
Overview 서비스 웹서버 Load Balancing을 위한 메커니즘으로 KAKAO에서는 L3DSR 방식을 사용하고 있습니다. 멀티IDC에서 L3DSR 방식을 활용, IDC 위치나 서버의 물리적인 위치에 따른 제한없이 서비스 웹서버 Load Balancing이 가능하도록 구성하고 있습니다. L3DSR 소개 보통 서비스에서는 Inbound traffic 대비 Outbound traffic이 월등히 높은데 Outbound traffic을 SLB에서 모두 수용하게 될 경우 리소스 소모가 커질 수 밖에 없습니다. 그래서 […]
terry.k
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
App2App
applicative
Architecture
arena
ast
async
aurora
babel
babel7
Backend
BApp
bgp
big-data
ble
blind-recruitment
block
Block Chain
blockchain
bluetooth
brian
business
Cache
cahtbot
Caver
cd
CDR
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
core-js@3
Corporate Digital Responsibility
couchbase
COVID-19
cpp
Data
data-engineering
DB
deep-learning
dependency-graph
dev
dev-session
dev-track
developer
developer relations
developers
devops
digitalization
digitaltransformation
dns
docker
dr
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
globalpollution
go
graphdb
graphql
Ground X
growth
ha
hadoop
hate speech
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
if kakao
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
jsconf
jsconfkorea
json
k8s
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocommerce
kakaocon
kakaoenterprise
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KAS
KCDC
khaiii
Klaytn
Klip
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
monorepo
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
Platform
polyfill
programming-contest
project-structure
pycon
python
quagga
react
reactive-programming
reactor
recap
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
work
workplatform
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
App2App
applicative
Architecture
arena
ast
async
aurora
babel
babel7
Backend
BApp
bgp
big-data
ble
blind-recruitment
block
Block Chain
blockchain
bluetooth
brian
business
Cache
cahtbot
Caver
cd
CDR
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
core-js@3
Corporate Digital Responsibility
couchbase
COVID-19
cpp
Data
data-engineering
DB
deep-learning
dependency-graph
dev
dev-session
dev-track
developer
developer relations
developers
devops
digitalization
digitaltransformation
dns
docker
dr
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
globalpollution
go
graphdb
graphql
Ground X
growth
ha
hadoop
hate speech
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
if kakao
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
jsconf
jsconfkorea
json
k8s
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocommerce
kakaocon
kakaoenterprise
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KAS
KCDC
khaiii
Klaytn
Klip
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
monorepo
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
Platform
polyfill
programming-contest
project-structure
pycon
python
quagga
react
reactive-programming
reactor
recap
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
work
workplatform
위로