nacyot profile image

시스템(Infrastructure) 목록

패커(Packer)로 도커(Docker) 이미지 빌드 및 AMI 자동 빌드 시스템 구축

소프트웨어 시스템 2015년 09월 30일 발행

패커(Packer)는 범용적 머신/컨테이너 이미지 생성기이다. 이미지는 일반적으로 가상머신의 특정한 상태를 그대로 저장해서 만들어진다. Packer에서는 Builder 컴포넌트를 통해 다양한 플랫폼을 지원하고, Provisioner 컴포넌트를 통해 다양한 도구로 이미지를 빌드할 수 있다. 이 글은 2015년 9월 5일 네번째 Docker Seoul Meetup에서 발표한 내용을 기반으로 작성되었으며, Packer에 대한 기본적인 기능들과 간단한 사용법에 대해서 소개한다.

계속 읽기

Serverspec(서버스펙)을 통한 도커 이미지 테스트 자동화

프로그래밍 시스템 2015년 07월 07일 발행

Immutable Infrastructure와 컨테이너로 대표되는 도커(Docker)와 함께 서버 분야에 많은 변화를 가져온 것은 Configuration Management 도구들이었다. 쉐프(Chef), 퍼펫(Puppet), 앤서블(Ansible)로 대표되는 CM 툴들은 독자적인 DSL을 통해서 서버의 이상적인 상태와 그에 다다르는 과정을 선언적으로 기록한다. 그리고 이 기록을 통해서 원하는 서버의 특정 상태를 재현하게 도와준다. 이러한 흐름을 Infrastructure as Code라고 표현하기도 한다. 서버의 코드화, 여기서 한 단계 더 나아가면 또 다른 흥미로운 아이디어를 만나게된다. 서버가 코드라면 소프트웨어를 검증하는 기법들을 똑같이 적용할 수 있지 않을까?

서버스펙(Serverspec)은 바로 이 질문에 대한 답을 보여주는 도구이다. 이 글에서는 Serverspec을 통해서 도커 이미지를 테스트하는 방법에 대해서 다룬다.

계속 읽기

도커(Docker)로 루비 온 레일스 어플리케이션 배포하기 (1) 어플리케이션 이미지 만들기

프로그래밍 시스템 2014년 08월 08일 발행

이 글은 지난 6월 10일 RORLab에서 발표한 '도커(Docker)로 루비 온 레일스 어플리케이션 배포하기'를 정리한 문서입니다. 발표 자료는 페이스북 페이지를 참조해주세요. 먼저 이미지와 컨테이너 소개 및 이미지 생성에 대해서 다룬 앞 부분은 이전에 작성했던 문서 '도커(Docker) 튜토리얼 : 깐 김에 배포까지'로 대체합니다.

이 글은 두 편으로 나눠서 공개할 예정입니다. 먼저 이 글에서는 Docker를 사용해 Ruby on Rails 어플리케이션을 도커 이미지화하는 법에 대해서 다룹니다. 그리고 다음 글에서는 이미지화한 어플리케이션을 실제로 어떻게 배포하는 지와 간단한 스케일 아웃 예제를 소개합니다.

계속 읽기

Docker Korea 스터디 그룹 두번째 모임

얼마 전 '도커 코리아'라는 이름으로 스터디를 진행한다는 이야기를 전한 바 있습니다. 그 후로 시간이 흘러 지난 8월 2일에 도커 코리아 두번째 모임을 가졌습니다. 이번 스터디는 시범적인 차원에서 공개적으로 진행되었습니다. 단 아직 정기적인 스터디 지원이 확정되지 않아, 이번 모임은 소정의 참가비와 부족한 부분은 리모티 재정의 지원으로 이루어졌습니다. 리모티 팀원들을 비롯해 총 16분이 참석해 자리를 빛내주셨습니다 :)

계속 읽기

Docker Korea 스터디 그룹

시스템 새소식 2014년 07월 26일 발행

현재 저는 Remotty라는 프로그래밍 모임에 속해있습니다. Remotty는 작년 다른 스터디 그룹에서 파생된 작은 팀으로 2014년에는 계속 Shomney라는 공동 가계부 웹앱을 만들어왔습니다. 업무로 일을 하는 게 아니다보니, 다들 바쁜 시간을 쪼개고, 다른 일에 치이면서(저는 거의 참여도 하지 못 했고...) 7월에서야 겨우 빚을 보았습니다.

Shomney는 계속 개발중입니다만, 이 공동가계부를 뒤로 하고 Remotty 팀에서는 2번째 커다란 주제로 도커(Docker)를 스터디하기로 했습니다. 그리고 지난주 토요일(7월 19일) 시청역 스페이스 노아에서 첫 모임을 가졌습니다.

계속 읽기

그라파이트(Grahpite) + 그라파나(Grafana) 모니터링 시스템 구축 with Docker

시스템 프로그래밍 2014년 07월 25일 발행

시스템 모니터링에 대해서 리뷰하거나, 직접 시스템 모니터링을 해봤다면 아래 그림과 같은 rrdtool로 만들어진 그래프를 자주 만나게 될 것입니다. rrdtool은 여전히 시스템 모니터링에 있어서 강자입니다만, 이 세계에 단지 rrdtool만 있는 것은 아닙니다. 특히 시계열 데이터 수집에 최적화된 타임시리즈 데이터베이스의 일종인 Graphite는 시스템 정보(metrics) 수집에 있어 꽤나 매력적인 도구 중 하나입니다.

rrdtool

rrdtool

계속 읽기

도커 레지스트리(Docker Registry) 설치하기 + S3 연동

시스템 2014년 05월 08일 발행

도커의 장점 중 하나는 도커에서 빌드한 이미지를 쉽게 공유할 수 있다는 점입니다. 이러한 장점은 오픈소스 커뮤니티 위에서 공적인 공유로 그 장점이 극대화됩니다. 실제로 도커에서는 도커에서 생성한 이미지를 공유할 수 있는 공식 저장소를 제공하고 있습니다. 공식 저장소에는 프론트엔드 어플리케이션과 데이터베이스와 같은 백엔드 어플리케이션 등 이미 많은 도커 이미지들이 공유되고 있습니다. 물론 도커의 가장 큰 장점은 경량화된 가상화(격리)를 통한 어플리케이션 배포에 있습니다만, 이러한 열린 공간을 통해서 오픈소스 어플리케이션을 공유하는 새로운 장을 열어놓고 있습니다. 나아가 몇몇 프로젝트에서는 좀 더 적극적으로 직접 Dockerfile을 제공해 어플리케이션을 도커 이미지로 빌드하는 걸 지원하고 있습니다.

계속 읽기

이미지 기반 어플리케이션 배포 패러다임 Immutable Infrastructure

시스템 프로그래밍 2014년 04월 06일 발행

얼마 전 4월 2일에 프로그래머 그룹에서 immutable infrastructure을 주제로 발표했습니다. Immutable Infrastructure란 분명한 실체를 지칭하기보다는 한 번 설정하고 (거의) 변경하지 않는 이미지 기반의 어플리케이션 배포 패러다임을 뜻하는 단어입니다. 다수의 서버를 동적으로 관리하는 클라우드를 기반으로 어떻게 하면 좀 더 효과적이고 유연하게 배포할 수 있을가 하는 고민에서 나온 패러다임이라고 할 수 있습니다. 따라서 기존에 서버를 지속적으로 '관리'한다는 데서 벗어나 어떻게하면 서버를 잘 쓰고 버리는 지를 다룹니다. 지금까지는 AWS AMI를 통한 오토 스케일링에서 보듯이 이러한 패러다임이 현상적으로만 존재했는데, Heroku, Travis 등에서는 이러한 패러다임을 이미 적극 채용하고 있으며, 특히 Chef, Puppet, Docker, Vagrant, Packer, Serf와 같은 도구들은 Immutable Infrastructure라는 패러다임을 실제 어플리케이션 배포에 적용할 수 있도록 도와줍니다. 이 글에서는 발표자료와 관련된 관련된 리소스들을 소개합니다.

계속 읽기

도커(Docker) 튜토리얼 : 0.8 맥에서 설치하기

시스템 2014년 02월 11일 발행

[도커][docker]는 리눅스 위에서 격리된 또 다른 리눅스 환경을 구축할 수 있도록 해주는 가상화 어플리케이션입니다. 기존의 가상화 어플리케이션에서 하드웨어 전체를 가상화하는 것과 달리 리눅스 컨테이너를 활용하고 있는 도커는 아주 빠르고 쉽게 가상화 환경을 사용할 수 있도록 해줍니다. 이전 [도커(Docker) 소개 글][dockerintroduction]을 올린 바 있습니다만, 바로 얼마 전 도커가 0.8로 업데이트되었습니다. 0.8에서 가장 큰 변화중 하나는 <span class='deadlink'>을 지원하는 부분입니다. 여기서는 어떤 방식으로 맥을 지원하는 지 알아보고 실제로 설치하는 법에서 다루도록 하겠습니다.

계속 읽기

도쿠(Dokku)로 만드는 미니 히로쿠(Heroku)

시스템 2014년 01월 30일 발행

지난 번 [도커][docker] 시리즈의 첫번째 글에서는 [도커(Docker) 튜토리얼 : 깐 김에 배포까지][docker-1] 도커를 설치하고 이미지와 컨테이너의 개념 그리고 마지막으로 Dockerfile을 통해서 이미지를 생성하고 실제로 배포하는 부분까지 다뤄봤습니다. 이번 글에서는 도커를 활용해 간단히 어플리케이션 배포 서버를 구축할 수 있게 도와주는 [도쿠]dokku를 다루도록 하겠습니다.

계속 읽기

도커(Docker) 튜토리얼 : 깐 김에 배포까지

시스템 프로그래밍 2014년 01월 27일 발행

도커(Docker)는 2013년에 등장한 새로운 컨테이너 기반 가상화 도구입니다. 도커는 계층화된 파일시스템(AUFS, BTRFS 등)을 사용해 가상화된 컨테이너의 변경사항을 모두 추적하고 관리합니다. 이를 통해서 컨테이너의 특정 상태를 항상 보존해두고, 필요할 때 언제 어디서나(단, Docker가 설치만 되어있다면) 이를 실행할 수 있도록 도와주는 도구입니다. 이 글은 Docker 입문자를 위한 튜토리얼로, 도커의 기본 개념들과 사용법에 대해서 소개합니다.

계속 읽기