Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Docker Seoul Meetup #2에서 발표한 자료입니다.
CoreOS에서 confd와 sidekick service를 이용한 서비스 배포에 대한 내용입니다.
http://www.youtube.com/watch?v=5ixJCM6pAcg
영상과 함께 보시면 더 좋습니다 :)
2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
저희 팀에서 Docker Swarm을 처음 도입한 계기는 사실 배포 자동화 프로세스 구축하고 싶었기 때문이었습니다.
처음엔 서버가 하나 뿐이여서 컨테이너 오케스트레이션의 묘미를 느끼지 못했는데 관리자, 푸시, 이벤트, 테스트 등등 여러 서버가 붙으면서 여러개의 서버를 관리해야 했는데
미리 구축해놓은 Docker Swarm이 많은 편의 기능을 제공하고 있어서 여러개의 서버를 관리하는 것도 개발자가 부담없이 할 수 있게 되었습니다.
이 슬라이드는 제가 서버를 구축하는 과정에서 겪었던 어려움들을 여러분은 겪지 않길 바라며 제작하게 되었습니다.
만약 이 슬라이드를 보시는 분이 Docker및 Docker Swarm을 처음 접해보시는 거라면 이 자료가 좋은 가이드가 될 수 있을 것 같습니다.
감사합니다.
이도현 드림
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
발표 리소스는 GitHub과 Vimeo를 통해서 확인 가능합니다.
- https://github.com/ncrash/jbug-vagrant
- https://vimeo.com/94624745
------------------------------
발표 후기
------------------------------
거의 6년 만에 커뮤니티에서 발표를 했습니다 ^^;
발표를 준비하면서 다시 한번 확고히 든 생각...
"공유를 위한 준비과정을 통해 더 깊고 넓은 경험을 한다"
발표를 마치고 이 경험에 대한 감사 인사 전합니다.
발표 기회를 제안해 주고 응원해준 장회수 형
처음 커뮤니티 발표를 경험하게 기회를 주셨던 허광남 형
그리고 발표내용 인용을 허락해주신 강소리님, 박용권님, 김경열님
감사 인사 전합니다.
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Docker Seoul Meetup #2에서 발표한 자료입니다.
CoreOS에서 confd와 sidekick service를 이용한 서비스 배포에 대한 내용입니다.
http://www.youtube.com/watch?v=5ixJCM6pAcg
영상과 함께 보시면 더 좋습니다 :)
2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
저희 팀에서 Docker Swarm을 처음 도입한 계기는 사실 배포 자동화 프로세스 구축하고 싶었기 때문이었습니다.
처음엔 서버가 하나 뿐이여서 컨테이너 오케스트레이션의 묘미를 느끼지 못했는데 관리자, 푸시, 이벤트, 테스트 등등 여러 서버가 붙으면서 여러개의 서버를 관리해야 했는데
미리 구축해놓은 Docker Swarm이 많은 편의 기능을 제공하고 있어서 여러개의 서버를 관리하는 것도 개발자가 부담없이 할 수 있게 되었습니다.
이 슬라이드는 제가 서버를 구축하는 과정에서 겪었던 어려움들을 여러분은 겪지 않길 바라며 제작하게 되었습니다.
만약 이 슬라이드를 보시는 분이 Docker및 Docker Swarm을 처음 접해보시는 거라면 이 자료가 좋은 가이드가 될 수 있을 것 같습니다.
감사합니다.
이도현 드림
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
발표 리소스는 GitHub과 Vimeo를 통해서 확인 가능합니다.
- https://github.com/ncrash/jbug-vagrant
- https://vimeo.com/94624745
------------------------------
발표 후기
------------------------------
거의 6년 만에 커뮤니티에서 발표를 했습니다 ^^;
발표를 준비하면서 다시 한번 확고히 든 생각...
"공유를 위한 준비과정을 통해 더 깊고 넓은 경험을 한다"
발표를 마치고 이 경험에 대한 감사 인사 전합니다.
발표 기회를 제안해 주고 응원해준 장회수 형
처음 커뮤니티 발표를 경험하게 기회를 주셨던 허광남 형
그리고 발표내용 인용을 허락해주신 강소리님, 박용권님, 김경열님
감사 인사 전합니다.
가상 개발 환경 세팅(Virtual Development Environment Setting)
Studybee 2주차 스터디 - 가상의 개발 환경 세팅하기!
Vagrant, virtualenv를 이용해 가상 개발 환경 세팅하는 것을 다룹니다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
Cloud-Barista 제4차 오픈 컨퍼런스 : CB-Spider / CB-Tumblebug : 멀티클라우드 인프라 서비스 (Multi-...Cloud-Barista Community
[ CB-Spider : 멀티클라우드 인프라 연동 ]
- CB-Spider 기술 개요
- CB-Spider 기능 및 인터페이스
- CB-Spider 개발 로드맵
- CB-Spider 선행 PoC
[ CB-Tumblebug : 멀티클라우드 인프라 서비스 통합 운용/관리 ]
- CB-Tumblebug 개요
- CB-Tumblebug 주요 기능 및 특징
- CB-Tumblebug 주요 개선 포인트 및 로드맵
# 발표영상(YouTube) : https://youtu.be/6vEWpH9pYJA
----------------------------------------------------------------------------------------------------------
# Cloud-Barista Community Homepage : https://cloud-barista.github.io
# Cloud-Barista Community GitHub : https://github.com/cloud-barista
# Cloud-Barista YouTube channel : https://cloud-barista.github.io/youtube
# Cloud-Barista SlideShare : https://cloud-barista.github.io/slideshare
Similar to [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기 (20)
5. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
6. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
2. 내 컴에선 잘 되던데? ・・・・・・・・・・・・・・・・・・・・・・・・ 회피
7. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
2. 내 컴에선 잘 되던데? ・・・・・・・・・・・・・・・・・・・・・・・・ 회피
3. 그럴리가 없을텐데 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 의심
8. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
2. 내 컴에선 잘 되던데? ・・・・・・・・・・・・・・・・・・・・・・・・ 회피
3. 그럴리가 없을텐데 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 의심
4. 왜 그렇게 되었지? ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 분석
9. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
2. 내 컴에선 잘 되던데? ・・・・・・・・・・・・・・・・・・・・・・・・ 회피
3. 그럴리가 없을텐데 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 의심
4. 왜 그렇게 되었지? ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 분석
5. 헉... 알았다! ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 각성
10. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
2. 내 컴에선 잘 되던데? ・・・・・・・・・・・・・・・・・・・・・・・・ 회피
3. 그럴리가 없을텐데 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 의심
4. 왜 그렇게 되었지? ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 분석
5. 헉... 알았다! ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 각성
6. 이게 어떻게 동작했던거지? @.@ ・・・・・・・・・ 반성
11. 디버깅의 6단계
디버깅의 6단계
1. 에러라고? 그럴 리 없어 ・・・・・・・・・・・・・・・・・・・・・・ 부정
2. 내 컴에선 잘 되던데? ・・・・・・・・・・・・・・・・・・・・・・・・ 회피
3. 그럴리가 없을텐데 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 의심
4. 왜 그렇게 되었지? ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 분석
5. 헉... 알았다! ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 각성
6. 이게 어떻게 동작했던거지? @.@ ・・・・・・・・・ 반성
12. 왜 내 컴에서만 잘 되는 걸까?
개발 환경 불일치
Image - http://futurist.se/gldt/page/3/
31. Vagrant로 로컬에 우분투 VM 실행하기
Vagrant 설치
http://downloads.vagrantup.com
32. Vagrant로 로컬에 우분투 VM 실행하기
$ vagrant
Usage: vagrant [-v] [-h] command [<args>]
-v, --version Print the version and exit.
-h, --help Print this help.
Available subcommands:
box
destroy
gem
halt
init Command Line Interface
package
provision
reload GUI 없어요
resume
ssh
ssh-config
status
suspend
up
33. Vagrant로 로컬에 우분투 VM 실행하기
@work$ vagrant box add ↵
lucid32 ↵
http://files.vagrantup.com/lucid32.box
@work$
내 로컬에서의 별칭
미리 빌드된 우분투 10.04 가상머신 이미지
34. Vagrant로 로컬에 우분투 VM 실행하기
@work$ vagrant box add
lucid32
http://files.vagrantup.com/lucid32.box
@work$ mkdir project
@work$ cd project
@project$
36. Vagrant로 로컬에 우분투 VM 실행하기
@work$ vagrant box add
lucid32
http://files.vagrantup.com/lucid32.box
@work$ mkdir project
@work$ cd project
@project$ vagrant init lucid32
@project$ vagrant up
@project$
37. Vagrant로 로컬에 우분투 VM 실행하기
@project$ vagrant ssh
Linux lucid32 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:13:04
UTC 2012 i686 GNU/Linux
Ubuntu 10.04.4 LTS
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
New release 'precise' available.
Run 'do-release-upgrade' to upgrade to it.
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 07:26:29 2012 from 10.0.2.2
vagrant@lucid32:~$ uname -na
Linux lucid32 2.6.32-38-generic #83-Ubuntu
SMP Wed Jan 4 11:13:04 UTC 2012 i686 GNU/
Linux
vagrant@lucid32:~$
38. Vagrant로 로컬에 우분투 VM 실행하기
@work$ vagrant box add
lucid32
http://files.vagrantup.com/lucid32.box
@work$ mkdir project
@work$ cd project
@project$ vagrant init lucid32
@project$ vagrant up
@project$
39. Vagrant 기본 지식
@work$ vagrant box add
lucid32
http://files.vagrantup.com/lucid32.box
h3@work$ mkdir project
h3@work$ cd project
@project$ vagrant init lucid32
@project$ vagrant up
분해 요.
알아도충
명령 만
요
42. Vagrant 기본 지식
Box
기본 설정을 가진 VM 템플릿 이미지
메모리
파일시스템
네트워크
43. Vagrant 기본 지식
$ vagrant box add lucid32 http://~~
$ cd ~/.vagrant.d/box
@$[HOME]/.vagrant.d/box$ ls -al
drwxr-xr-x Oct 31 17:07 lucid32
Ubuntu VM
Ubunt Ubuntu VM
u
Ubuntu VM
Ubuntu VM
Ubuntu VM
44. Vagrant 기본 지식
box 다운로드
공식
http://files.vagrantup.com/[box이름].box
- lucid32, lucid64, precise32, precise64
3rd party
http://vagrantbox.es
46. Vagrant 기본 지식
$ vagrant init lucid32
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "lucid32"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
config.vm.box_url = "http://files.vagrantup.com/lucid32.box"
# Forward a port from the guest to the host, which allows for outside
# computers to access the VM, whereas host only networking does not.
config.vm.forward_port 8080, 8088
# Share an additional folder to the guest VM. The first argument is
# an identifier, the second is the path on the guest to mount the
# folder, and the third is the path on the host to the actual folder.
config.vm.share_folder "v-showcase", "/service", "spring-mvc-showcase"
# Update Server
config.vm.provision :shell do |shell|
shell.inline = "apt-get update --fix-missing"
end
end
54. Vagrant로 개발 환경 구성하기
@work$ cd project
@project$ ls
Vagrantfile
@project$ vagrant up
@project$
55. Vagrant로 개발 환경 구성하기
문제 #1 해결
서버 로컬
Ubuntu VM
윈도우 2
우분투 == 맥2 Ubuntu VM
10.04
우분투 1
Ubuntu VM
12.04
56. Vagrant로 개발 환경 구성하기
@project$ git clone https://github.com/
SpringSource/spring-mvc-showcase
@project$
@project$ ls
Vagrantfile spring-mvc-showcase
59. Vagrant로 개발 환경 구성하기
box 공유
curioe$ vagrant package
curioe$
60. Vagrant로 개발 환경 구성하기
box 공유
curioe$ vagrant package
curioe$
61. Vagrant로 개발 환경 구성하기
box 공유
curioe$ vagrant package
curioe$
tebica$ vagrant box add newbox
http://kthcorp.com/package.box
62. Vagrant로 개발 환경 구성하기
box 공유
curioe$ vagrant package
curioe$
tebica$ vagrant box add newbox
http://kthcorp.com/package.box
tebica$ vagrant init newbox
tebica$ vagrant up
tebica$
63. Vagrant로 개발 환경 구성하기
문제 #2, #4 동시 해결
환경이 설치된 box 공유
버전 설정 모두 동일
소프트웨어 다운로드 + 설치 + 설정 1명만
64. Vagrant로 개발 환경 구성하기
미니 개발 상황극 (계속)
“VM쓰라고?”
“로그인해서 개발해야해?”
“내가 쓰는 에디터 쓰고 싶은데!”
65. 거룩한 전쟁
돌발상황
Vim이 최고!
싸우자
SublimeText 2가 대세
구글 행아웃에서
싸우자!
에막스 지옥! 진리의 젯브레인!
이클립스 완전구려!
66. Vagrant로 개발 환경 구성하기
파일 동기화
config.vm.share_folder “v-data”,
“/service”, “spring-mvc-showcase”
$ vagrant reload
67. Vagrant로 개발 환경 구성하기
파일 동기화
service VM
spring-mvc-showcase
Host
68. Vagrant로 개발 환경 구성하기
프로젝트는 무사 진행
Vim이 최고!
싸우자
SublimeText 2가 대세
구글 행아웃에서
싸우자!
에막스 지옥! 진리의 젯브레인!
이클립스 완전구려!
69. Vagrant로 개발 환경 구성하기
포트 포워딩
config.vm.forward_port 8080, 8088
$ vagrant reload
Outside(
Host(
VM(
:8080( :8088(
70. Vagrant로 개발 환경 구성하기
문제 #3 해결
localhost:8088/spring-mvc-showcase
8088
8080
71. Vagrant로 개발 환경 구성하기
SSH
$ vagrant ssh
$ ssh vagrant@localhost -p 2222
Outside(
Host(
VM(
:22( :2222(
72. Vagrant로 개발 환경 구성하기
$ git add Vagrantfile
$ git commit -m ‘개발 환경 설정’
$ git push
73. Vagrant로 개발 환경 구성하기
서버 OS != 로컬 OS
서버 OS == 로컬 OS
설치 환경 문서로 공유
설치 환경 자체가 공유
소프트웨어 버전 불일치
소프트웨어 버전 전부 일치
개발자마다 개발 환경 구축
설치는 단 한명이!
쓰고 있는 포트 충돌
손쉬운 포트 포워딩
76. 분산 환경 구성하기
Multi-VM
Vagrant::Config.run do |config|
config.vm.define :web do |web_config|
web_config.vm.box = "web"
web_config.vm.forward_port 80, 8080
end
config.vm.define :db do |db_config|
db_config.vm.box = "db"
db_config.vm.forward_port 3306, 3306
end
end
77. 분산 환경 구성하기
Host-Only 네트워킹
Vagrant::Config.run do |config|
config.vm.define :web do |web_config|
web_config.vm.box = "web"
web_config.vm.forward_port 80, 8080
web_config.vm.network :hostonly, "10.11.12.13"
end
config.vm.define :db do |db_config|
db_config.vm.box = "db"
db_config.vm.forward_port 3306, 3306
db_config.vm.network :hostonly, "10.11.12.14"
end
end
78. Vagrant 사용
일반적인 사용법
1. box 는 사내 웹서버에 업로드
$ vagrant box add ~
2. 프로젝트 내에 Vagrantfile을 포함
$ git add Vagrantfile
$ git commit -m ‘개발 환경 설정’
3. Vagrant 사용
$ vagrant up
79. Vagrant 사용
facebook/tornado
https://github.com/facebook/tornado/blob/master/maint/vm/ubuntu10.04/Vagrantfile
85. Chef 프로비저닝
Chef Server 프로비저닝
config.vm.provision :chef_client do |chef|
chef.chef_server_url = "http://cocina.kthcorp.com"
chef.validation_key_path = "chef/validation.pem"
chef.run_list = ["role[baas]"]
end