Cloud Computing 3 – Membership Protocol

왜 membership 이란 개념이 클라우드 컴퓨팅에 필요할까요? 한 노드가 OS, Disk, Network 등 때문에 10년 (120개월) 마다 한 번씩 고장난다고 합시다. 그러면 120개의 노드를 가지고 있다면 1개월마다 한 번씩입니다. 이정도는 참을만하죠? 그런데, 12,000 개의 서버를 가지고 있다면 MTTF (mean time to failure) 는 7.2 시간마다 한번씩입니다. 이건 큰 문제입니다. 따라서 머신이 멀쩡한지 아닌지를 수동이 아니라 … Continue reading Cloud Computing 3 – Membership Protocol

Cloud Computing 2 – Gossip Protocol

Multicast 이번시간에 배울 내용은 Gossip Protocol (혹은 Epidemic Protocol) 입니다. 기존에는 특정 그룹에게 메세지를 보내기 위해 multicast 를 이용했지만, 클라우드 컴퓨티 환경에서는 프로세스가 죽어 노드가 크래쉬를 일으킬수도 네트워크 문제때문에 패킷이 딜레이되거나, 드랍될 수 있고 노드가 빠르게 증가합니다. 그러나 멀티캐스트는 fault-tolerance 와 scalability 측면에서 부족한 부분이 많았습니다. 이런 문제를 해결하기 위해 다양한 방법이 도입되었는데 (1) Centralized: … Continue reading Cloud Computing 2 – Gossip Protocol

Cloud Computing 1 – Map Reduce

Intro map 과 reduce 라는 단어는 functional language 에서 왔다. map: processes each record sequentially and independently reduce: processes set of all records in batches (map square '(1 2 3 4)) ;; (1 4 9 16) (reduce + '(1 4 9 16)) ;; (+16 (+9 (+4 1))) ;; 30 MapReduce (http://webmapreduce.sourceforge.net/) Map: Parallelly process a … Continue reading Cloud Computing 1 – Map Reduce

REST API: Put vs POST

이 글에서는 HTTP 메소드인 PUT 과 POST 의 차이점을 자세히 살펴봅니다. idempotent PUT 과 POST 를 이해하려면, idempotent 라는 개념의 도입이 필요하다. 한글로 직역하면 멱등의 정도 되시겠다. 수학적으로 이해하는 편이 쉬운데, f(x) = f(f(x)) 라 보면 된다. 다시 말해 몇 번이고 같은 연산 을 반복해도 같은 값이 나온다는 것. 이건 fault-tolerant API 를 디자인 하는데 … Continue reading REST API: Put vs POST

GOPATH 를 처음 여행하는 GOPHER 들을 위한 GOLANG 안내서

2016년은 다사다난한 해였던것 같습니다. 개인적으로도, 사회적으로도 말입니다 🙂 JVM 위에서만 놀던 제가 Golang (이하 Go) 을 배운것을 보면요. 이 글에서는 1달 남짓한 기간동안 Go 를 배우며 들었던 느낌들을 튜토리얼 형태로 적어보았습니다. 사실 Go 를 처음 봤을땐 그다지 탐탁치 않았습니다. 많은 이들이 말하듯 낡은 C 언어를 현대적으로 포장된 했다는 느낌을 많이 받아서 내게 필요할까 의문이 들기도 … Continue reading GOPATH 를 처음 여행하는 GOPHER 들을 위한 GOLANG 안내서