[h3 2012] 앱(app) 중심으로 생각하기 - devops와 자동화

37
앱(APP)중심 으로 생각하기 DevOps 자동화 DevOps팀 I 김동수

Upload: kth-

Post on 24-May-2015

2.054 views

Category:

Documents


4 download

DESCRIPTION

H3 2012 발표자료 앱(APP) 중심으로 생각하기 - DevOps와 자동화 -KTH 김동수

TRANSCRIPT

Page 1: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

앱(APP)중심으로 생각하기 DevOps 와 자동화

DevOps팀 I 김동수

Page 2: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

앱 중심으로 생각하기 - DevOps 와 자동화

DevOps 는 무엇인가요? 01

앱(APP) 중심으로 생각하기 02

왜 자동화 해야 하나요 ? 03

kth 에서는 … 04

Page 3: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇 인가요? 01

Page 4: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

DevOps Day 2009 intro “dev meets ops, ops meets dev”

http://youtu.be/7kP8U0f9ELk

Page 5: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

Dev

Op s

Dev

Op

elopment

eration s

Dev Op s

Page 6: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

새로운 프로젝트 시작

개발 생산성을 향상시킬 수 있는 완전 좋은, 새로운 프레임웍을 도입하겠어요.

안정성이 보장되지 않아. 문제생기면 어떻게 할거야! Python, NoSQL 난 몰라. 그냥 오라클 쓰란말야.

Page 7: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

서비스 잘 되고 있는 중

새로운 기능을 추가했어요. 빨리 반영하게 해주세요. 사업 담당자가 뒤에서 막 닥달해요.

작업가능 시간은 매주 금요일 새벽 3시~6시야! 그때까지 기다려!

Page 8: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

새로운 프로젝트 시작

개발 빨리 해야 하니, 완전 새로운 오픈소스 NoSQL, Django 프레임웍을 도입 하겠어.

안정성이 보장되지 않아요. 장애 발생 시 조치 방안이 있나요? 오랜 경험을 보유한 오라클, 자바 사용을 추천합니다.

Page 9: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

새로운 기능 추가했어. 엄청 성질 급한 사업 담당자가 빨리 적용해 달래. 어여 하게 해줘.

반영 전 충분한 검증기간 확보와 서비스의 안정성 보장을 위해 매주 금요일 새벽 3시~6시에만 작업이 가능합니다.

서비스 잘 되고 있는 중

Page 10: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

Development Operations

DevOps 는 무엇인가요?

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

http://www.pororo.net

나는 변화를 원해!

나는 안정을 원해!

Page 11: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

http://wangyan.info/blog/devops/

DEV. OPS.

Page 12: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

DevOps 정의 (Wikipedia)

DevOps라는 합성어는 소프트웨어 개발자들과 IT 종사자들 사이의

의사소통, 협업, 융합 을 강조한

소프트웨어 개발 방법론이며, 소프트웨어 개발과 IT 운영간의

상호 의존관계에 대한 산물이다.

DevOps (a portmanteau of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology(IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.

http://en.wikipedia.org/wiki/Devops

DevOps 는 조직에서 소프트웨어 상품과 서비스를

신속히 생산 하는 것에 도움이 되는 것을 목적으로 한다.

Page 13: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

대규모 버전업 과정

facebook, twitter 친구/포스팅, 음악 가져오기, 레이아웃 변경, 필터 추가, 버그픽스 …

8주간 개발, 2달 뒤 첫 주 금요일에 v 1.5 반영

신규 가입자를 늘리기 위한 버전 업 1.0 1.5

Page 14: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

잦은 버전업 과정

facebook, twitter 친구/포스팅, 음악 가져오기, 레이아웃 변경, 필터 추가, 버그픽스 …

각 기능별 1주간 (iteration) 개발하고, 매주 반영, 총 소요기간 8주

신규 가입자를 늘리기 위한 버전 업 1.0 1.0.1 1.0.2 1.1 …

Page 15: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

잦은 배포의 효과

http://en.wikipedia.org/wiki/DevOps#Devops_Days

잦은 릴리즈 “애자일 방법론”

간격이 긴 릴리즈 “일반적인 방법론”

완만해진 위험도 뾰족한 위험도

Page 16: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

시간

장애닷! 아악!!

완료

놀라기 묵비권,

잘못 찾기

비난하기 내 살길 찾기

낑낑 숨기 자아 보호

문제 파악하기

장 애 수 정 복 구

손가락질 프로세스

Page 17: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

DevOps 는 무엇인가요?

생산적인 프로세스

죄책감 느끼기

새 삶 살아가기

장 애 수 정 복 구

문제 파악하기

시간

장애닷! 아악!!

완료

Page 18: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

앱(APP) 중심으로 생각하기 02

Page 19: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

앱(APP) 중심으로 생각하기

새로운 서비스 시작

하드웨어, Storage, NW 산정 HP Quad Core IA2 BL860c i2 Balde IA * 2 스토리지, Veritas VCS, Rack, …..

일일 10만 유저 방문 5만명 사진 업로드 5만 명 댓글 포스트, 좋아요 클릭 또, 연인들의 날 트래픽 급격히 증가 ……….

Page 20: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

새로운 서비스 시작

일단 최소로 가보자. VM v2core 4GB RAM HDD 100GB S3 스토리지, ELB, RDS 사용

일일 10만 유저 방문 5만명 사진 업로드 5만 명 댓글 포스트, 좋아요 클릭 또, 연인들의 날 트래픽 급격히 증가 ……….

부족하면 즉시 늘리면 되니까 !

앱(APP) 중심으로 생각하기

Page 21: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

모바일 서비스 프로젝트 시작

앱개발자 데봅 김군. 취미로 주말마다 전국의 낚시터를 다니며 민물낚시를 즐김. 필요에 의해, 낚시인들이 생각하는 낚시터와 주변의 먹거리, 여행 정보를 공유하는 모바일 서비스를 하기로 막 결정한 상태

앱(APP) 중심으로 생각하기

Page 22: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

모바일 서비스 프로젝트 시작

사용자는 얼마 안 될 테니, VM 1EA 호스팅 세팅 : Apache + Tomcat + Spring, MySQL DB 개발 : API 서버 개발, 앱 개발 기타 1 : API 서버를 위한 도메인 구매 기타 2 : 고객 정보 보호를 위해 SSL 인증서 구매 기타 3 : 백업 정책 수립, 매주 백업 걱정 : 잘되도 걱정, 갑자기 사용자가 늘어나면 어떻게 하지?

앱(APP) 중심으로 생각하기

Page 23: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

모바일 서비스 프로젝트 시작

앱(APP) 중심으로 생각하기

모바일 앱

Home Backup

API Server

MySQL Apache

Tomcat

Spring 사진

저장소

https

restful/json

weekly backup $wget –username -- …

• 회원가입 • 회원정보조회/수정 • 사진업로드 • Push • POI • 통계 • 피드백

Page 24: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

모바일 서비스 프로젝트 시작

앱(APP) 중심으로 생각하기

Home Backup

API Server

MySQL Apache

Tomcat

Spring 사진

저장소

https

restful/json

• 회원가입 • 회원정보조회/수정 • 사진업로드 • Push • POI • 통계 • 피드백

모바일 앱 Backend as a Service

Page 25: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

왜 자동화 해야 하나요 ? 03

Page 26: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

왜 자동화 해야 하나요 ?

신속 / 적기에 서비스 오픈 해야 글로벌 경쟁에서

살아 남는 것을 넘어, 선도할 수 있음.

IT 도 사람이 하는 작업이기에, 언제나 실수할 수 있음

삽질은 툴에 맡기고, 그 시간에 창조적인 일에 집중

동일한 업무는 모든 사람이 동일한 품질을 보장

Page 27: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

kth 에서는 … 04

Page 28: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

DevOps 정의 in kth

개발팀과 운영팀을 지원하는 조직으로써,

서비스 기획 및 개발 시작 단계에서부터

서버설치, 개발, 빌드, 테스트, 배포, 모니터링까지

모든 서비스 라이프 싸이클 프로세스를

자동화 개선해 나가는 조직 하고

Page 29: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

계정 통합

이슈 통합

소스 활용 효용성 확보

빌드 자동화

시스템 설정 자동화

배포 자동화

2012.10.31 현재 모니터링 자동화

로드맵

Page 30: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

이 전

메일, 메신저, 전화

관계 관리 X

로컬, 개발서버

직접 테스트

복사, 직접 재기동

메일, 메신저

단독 모니터링

직접 빌드, 설치

KTH 에서는 …

이슈 관리

빌드

서버 배포

앱 배포

모니터링

서버 세팅

이슈+소스

테스트

이 후

JIRA

JIRA

중앙 빌드

빌드 후 자동

빌드 후 자동 배포

빌드 후 자동 배포

시스템 연계 모니터링

자동 세팅

자동화 전,후 비교

Page 31: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

이슈 통합

이슈 생성

소스 수정

빌드 테스트

배포

모니터링

Page 32: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

계정 통합 전

AD local local local

JIRA Confluence SVN Jenkins Artifactory Sonar

local

O T L

Page 33: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

계정 통합 후

AD

JIRA Confluence SVN Jenkins Artifactory Sonar GIT

Page 34: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

소스활용 효율성 확보

KTH 조직원이면 다 볼 수 있어야 함. 쉽게 찾아서 가져다 쓸 수 있어야 함.

Page 35: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

각개 빌드, 배포

서버 App

모바일 App

개발서버 업로드

상용서버 배포

로컬 빌드

로컬 빌드

Dropbox

로컬 빌드

로컬 빌드 이메일

Page 36: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

KTH 에서는 …

통합 빌드, 배포

개발서버 배포

상용서버 배포

통합 빌드

OTA Svr

Stage 배포

GIT

Page 37: [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화

감사합니다. 개발실 / DevOps팀 팀장 / 김동수

[email protected]

@ds5apn