CockroachDB 클러스터 가용성 시험

CockroachDB는 가용성 확보를 위해 어떻게 동작하는지?

CockroachDB 클러스터 가용성 시험

CockroachDB는 Range라는 일종의 Sharding 기법을 도입하여 사용자의 데이터를 복제하고 그 가용성을 관리함으로써 전지구적 분산 복제 DBMS의 가용성을 보장하고 있다. 이 글에서는 네 개의 Node로 구성된 클러스트를 예로 하여 Node 장애 상황에서 Cockroach가 어떻게 반응하고, 또한 어디까지 가용성을 보장해주는지 시험한 결과를 정리한다.

[더 읽기]

CockroachDB 클러스터 설치 스크립트

...라지만, 알고보면 쉘스크립트 작성 가이드

CockroachDB 클러스터 설치 스크립트

이번 글에서는 (특히 클라우드 컴퓨팅 환경에서) 여러 서버에 CockroachDB를 설치하고 그것을 묶어서 클러스터로 만드는 과정을 단순화하는 스크립트에 대해 정리하려고 한다. 내용은 CockroachDB Cluster의 구성에 초점을 맞추고 있지만, 여기서 다루는 개념과 방법은 소프트웨어의 원격 설치, 자동화된 배치를 준비함에 있어서 공통적으로 참고하거나 적용할 수 있을 것이다.

[더 읽기]

CockroachDB Architecture

CockroachDB의 구조 설계에 대한 짧은 이해

CockroachDB Architecture

원래는 진행했던 시험의 순서대로, CockroachDB 클러스터의 설치 스크립트에 대해 먼저 살펴보려고 했지만 글을 쓰면서 스스로에게 던지게 되는 질문은 “그래서 Cockroach가 어떻게 생긴 녀석인데?“라는 것이었다. 아! 알긴 안다. 바퀴벌레… 아주 징그럽게 생겼다. 그런데 이름은 징그럽지만 뭔가 정이 가는 이 CockroachDB도 징그럽게 생겼을까? 이 글은 CockroachDB의 생김에 대해, 지금까지 이해한 것을 정리한다. “지금까지"일 뿐이라서, 잘못된 점이 있을 수 있다는 것을 미리 밝힌다.

[더 읽기]

CockroachDB 클러스터 구성하기

"바퀴벌레 연맹" 구성을 위한 배치/관리 반자동화하기

CockroachDB 클러스터 구성하기

좀 번잡스러운 글이 될 것 같은데, 이번 글은 지난 글에 이어 CockroachDB를 수동/반자동으로 설치하는 과정에 대해 정리한다. 먼저 단일 노드에 대한 수동 설치 과정을 보면서, 노드 구성에 대하여 확인할 것이고, 그 다음에는 세 노드로 구성된 클러스터를 쉘스크립트를 사용하여 원격지에서 자동화하여 배치/관리하는 과정에 대해 정리할 것이다.

[더 읽기]

CockroachDB 안녕?

바퀴벌레, 글로벌 서비스를 위한 SQL 데이터베이스

CockroachDB 안녕?

The SQL database for building global cloud services“라는, 뭔가 관심을 끌기 충분한 문장으로 자신을 설명하고 있는 CockroachDB라는 오픈소스 RDBMS를 우연한 경위로 알게 되었다. 이 글은, 이 CockroachDB Cluster를 구성하고 나서 그 겉을 둘러본 감상을 정리하려고 한다.

[더 읽기]

Docker Swarm 다시 보기

Docker의 Label과 관련된 몇 가지 재미있는 기능들

Docker Swarm 다시 보기

지난 세 편의 Swarm에 대한 글에서 다루지 못했던 몇 가지 중요한 개념과 기능에 대해서 정리한 글이다. 원래 조금 더 많은 내용을 준비했었는데, 일단 다 줄이고, 재미있는 짜투리 소재 두 가지, Docker의 Label 지원과 이를 Swarm에서 이용하는 것과 Global Mode Service에 대하여 간단히 정리하였다.

[더 읽기]

Docker Swarm의 고가용성

서비스 가용성을 보장하기 위한 Swarm 클러스터 구성 방법

Docker Swarm의 고가용성

Docker의 기본 Orchestration 도구인 Swarm의 기본적인 구성에 대하여 설명한 “Getting Started with Docker Swarm”, 그리고 그 위에 Service를 올리고 관리하는 방식에 대해 정리한 “Docker Swarm에 Service 올려보기“에 이어, 이번 글에서는 이러한 기능을 안정적으로 제공할 수 있도록 고가용성 환경을 꾸미는 방법에 대해 정리하였다.

[더 읽기]

Docker Swarm에 Service 올려보기

Docker Swarm 방식으로 서비스 생명주기 관리하기

Docker Swarm에 Service 올려보기

이번 글에서는, “Getting Started with Docker Swarm“에서 만들어둔 Docker Swarm에 Service를 올려보려고 한다. 시험을 위한 엉터리 Service긴 하지만, Service와 Task가 무엇인지, 그리고 필요에 따라 어떻게 Service를 수평으로 확장하고 다시 줄이는지, Image 교체 등 Service의 업데이트는 어떤 방식으로 처리하게 되는지 알아보고, 이와 함께 Swarm Node에 대한 유지보수를 진행할 때 Swarm은 그 위에 올라가 있는 서비스를 어떻게 다루는지 등에 대해 정리한다.

[더 읽기]

Getting Started with Docker Swarm

나무토막 모아서 뗏목 만들기

Getting Started with Docker Swarm

지난 글에서는 여러 Docker Host 들을 손쉽게 관리하기 위한 기술 중 하나로 Docker Machine에 대해 살펴봤다. Docker Machine은 그 초점이 기계를 어떻게 빨리 뿌리고 거둘 것인지에 있는 인프라 관점, 저수준의 관리기능을 제공하는 도구라면, 오늘의 주제인 Docker Swarm은 여러 대의 Docker Host 들을 엮어서 마치 하나인 것처럼 다룰 수 있게 해주는 Clustering 도구, 또는 유식한 말로 Orchestration 도구이다.

[더 읽기]

Docker Machine 다시 보기

A Little More About Docker Machine

Docker Machine 다시 보기

Docker Engine을 탑재한 Dockerized Host, Docker Node를 손쉽게 펼쳤다가, 다시 모았다가 하는 용도로 Docker Machine을 적절히 활용할 수 있을지 확인하기 위해 빠른 걸음으로 Docker Machine의 기능을 살펴봤었다. 기왕 보기 시작한 김에, 조금 더 자세히 문서와 CLI 도구의 세부 기능을 들여다 보았다.

[더 읽기]

Docker Machine으로 Docker Node 뿌리기

Docker is Not In My BackYard, But on the Cloud!

Docker Machine으로 Docker Node 뿌리기

Docker를 개인 목적이 아닌 어느 정도 규모가 있는 서비스를 위해 사용하려고 한다면, Container가 구동될 복수의 Host Node를 어떻게 쉽게 관리할 것인지 등에 대한 약간의 인프라 관점의 접근이 필요하다. 이번 글에서는 클라우드를 포함한 원격지에 Docker Node를 손쉽게 구성하는 방법, Docker Machine에 대해 정리하려고 한다.

[더 읽기]

DevOps Service: Travis CI

Continuous Integration 도구의 대명사

DevOps Service: Travis CI

지속적 통합 분야에서 가장 유명한 서비스는 아마도 Travis CI인 것 같다. 내 경우에는 소프트웨어 시험이 아닌 이 블로그의 빌드 테스트를 위해 처음 사용하기 시작했었는데, Go 프로그래밍을 시작한 이후에는 소프트웨어 빌드 시험을 위해서도 사용하고 있다. 작년 후반에 만들었던 “현천” 프로젝트의 OAuth2 인증 서비스인 UART의 기반을 업그레이드하다가, 기반환경 및 Travis CI를 이용한 시험 과정에서 문제가 생겨서 하루를 꼬박 이 화면에서 살았다. 생각난 김에, 오늘을 기준으로 이 서비스의 화면을 기록으로 남긴다.

[더 읽기]

Docker Cloud에서 자동빌드하기

Setting Automated Build on Docker Cloud

Docker Cloud에서 자동빌드하기

‘쓸만한’ Docker Image 만들기 - Part 2“에서 Docker Cloud에 Image를 올리는 과정에 대해서 정리하면서, Docker Hub, Docker Cloud 등의 화면을 잠깐 봤다. 떡 본 김에 제사 지낸다고, Docker Cloud에 Image를 올린 김에 Docker Cloud가 제공하는 자동빌드 서비스를 한 번 써봤다. 이 글은, Github의 특정 저장소에 Commit이 일어나면, 이에 반응하여 Docker Image를 자동으로 만들어내도록 설정하는 과정에 대하여 정리한다.

[더 읽기]

'쓸만한' Docker Image 만들기 - Part 2

Build and Push a Docker Image For Go Development

'쓸만한' Docker Image 만들기 - Part 2

“Hello World 급” Image 작성을 맛봤던 “Docker: 나의 첫 Docker Image”, 그리고 Alpine Linux를 활용하여 C Library를 포함한 “운영체계급” 기반 Image를 만들었던 ‘쓸만한’ Docker Image 만들기 - Part 1에 이어, 이번에는 실제 사용을 고려한 Go 언어 개발환경을 위한 Docker Image를 만들고 그것을 Registry에 등록하는 과정을 정리한다.

[더 읽기]

'쓸만한' Docker Image 만들기 - Part 1

Build an Usable Docker Image with Alpine Linux

'쓸만한' Docker Image 만들기 - Part 1

설날 연휴가 시작되기 전, Docker: 나의 첫 Docker Image라는 글을 통해 아주 기본적인 Docker Image를 만들어서 그것을 기반으로 Container를 실행하는 예에 대한 글을 올렸다. 이번에는, 예시가 아닌 실제로 활용할 수 있는 Image를 만들고 그것을 Docker Registry에 등록하는 과정에 대하여 기록하려고 한다. 이 글에는 그 과정 중, Alpine Linux를 기반으로 Docker Image를 만드는 과정을 담았다.

[더 읽기]

Docker: 나의 첫 Docker Image

Build and Push my own Docker Image

Docker: 나의 첫 Docker Image

프로그램이 메모리에 올라와 제어를 넘겨 받으면 프로세스가 되고, Disk 위의 Kernel Image가 메모리에 올라오면 컴퓨터가 살아난다. 이렇게, 컴퓨터 세상은 깨어 있는 무언가와 그것을 뒷받힘하는 자고 있는 무언가의 쌍으로 이루어져 있다. Docker 역시 이 프랙털 안에 있는데, 메모리에 올라와 깨어 움직이는 Container와, 이것이 본으로 삼는, 저장소에서 잠을 자는 Image가 그것이다. 이 글은, Container의 본이 되는 Image를 만들고 저장하는 방식에 대하여 정리한다.

[더 읽기]

Docker: Getting Started with Docker

Docker 시작하기

Docker: Getting Started with Docker

예상하지 못했던 여유가 생겨서, 미루고 또 미뤘던 주제를 하나 정리하려고 한다. 이미 많은 사람들에게 친숙한 기술용어가 되어버린 Container, 그리고 그 시대를 이끌고 있는 대표주자인 Docker가 그것인데, 이번 글에서는 Docker의 개념에 대하여 대충 정리하고, 다음 글에서는 Ubuntu 환경에서 Docker를 설치하여 맛을 보는 과정을 짧게 정리하려고 한다.

[더 읽기]

Docker: Installation and Test Drive

Utuntu 위에 Docker 설치하고 맛보기

Docker: Installation and Test Drive

Docker는 Linux 위에서 동작하는 Container 관리 소프트웨어다. 지난 글 Docker: Getting Started with Docker에서는 Container와 Docker의 개념을 간단히 정리했고, 이번 글에서는 Ubuntu Linux 위에 Docker를 설치하고 시운전을 해본 내용을 정리하려고 한다.

[더 읽기]

돌아보기: 가상화와 클라우드 컴퓨팅

Look back: About Virtualization And Cloud Computing

희미한 기억 속에 남아있는 2009년의 기록, 가상화와 클라우드 컴퓨팅에 관하여. 아마, 한참을 “우리도 가상화와 클라우드 세상을 겨냥한 사업을 해야 한다"고 주장하던 시기에 작성했던 글인 것 같다. 당시 어느 기관지에 기고했던 글의 초안인 것도 같고.

[더 읽기]

Kibana Heat Map으로 3차원으로 펼쳐 보기

Elastic Stack을 활용해서 서비스 이벤트 해석하기

Kibana Heat Map으로 3차원으로 펼쳐 보기

모니터링은 경보가 아니라 해석“에서 들었던 기존 모니터링의 문제점 중 하나는 시계열 데이터를 효과적으로 다루지 못한다는 점이었다. 이 문제는, 데이터를 단순히 시간순으로 배열하는 것으로 그치는 문제와, 시간을 단순히 1차원으로만 본다는 점을 포함한다. 특히, 시간은 바라보는 기준이 될 뿐 우리가 관심을 갖는 것은 주기성과 리듬을 갖는 인간활동과 연관된 것이기 때문에 과거의 기록을 바탕으로 미래를 예측하기 위해서는 시간과 사건을 입체적으로 바라보는 것이 필요하다.

[더 읽기]