26
KHAN Provisioning DevOps vs. DevOOps

당신은 DevOps 엔지니어가 아닙니다

Embed Size (px)

DESCRIPTION

DevOps 는 사람,역할 또는 직책이 아니다. 스스로를 DevOps 엔지니어라고 불러도 당신은 DevOps 엔진니어가 아니다. DevOps 는 기업에서 좀더 포괄적으로 커뮤니케이션과 협업을 증진하여 더욱 좋은 품질과 견고한 제품을 시장에 빨리 제공하기 위한 모든 것이다. 오픈나루 블로그 - http://opennaru.tistory.com/ 오픈나루 홈페이지 - http://www.opennaru.com/

Citation preview

Page 1: 당신은 DevOps 엔지니어가 아닙니다

KHAN Provisioning

DevOps vs. DevOOps

Page 2: 당신은 DevOps 엔지니어가 아닙니다

Source : 10 deploys per day

Dev & ops cooperation at Flickr

• Tools1. Automated infrastructure

2. Shared version control

3. One step build and deploy

4. Feature flags

5. Shared metrics

6. IRC and IM robots

• Culture1. Respect

2. Trust

3. One step build and deploy

4. Feature flags

Page 3: 당신은 DevOps 엔지니어가 아닙니다
Page 4: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 3

Increasing scale and complexity means we need admin automation

Opscode gets more venture dough for its Chef

From - http://goo.gl/dLcjS

Page 5: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 4

The Devops Butterfly Effect

Source:

https://devcentral.f5.

com/articles/1024-

words-the-devops-

butterfly-

effect#.U0Vsx_l_vl8

Page 6: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 5

Business reality #1: Technology alone cannot provide a competitive advantage

DevOps can transform IT Operations

Source: http://dev2ops.org/2012/09/use-devops-to-turn-it-

into-a-strategic-weapon/

So by definition, your business has

aligned itself behind a business

channel where the point of transaction

with your customers is on a level

playing field with any of your

competitors.

Page 7: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 6

Business reality #2: Good ideas can and will be copied quickly

DevOps can transform IT Operations

Source: http://dev2ops.org/2012/09/use-devops-to-turn-it-

into-a-strategic-weapon/

Recent high-profile product battles

have reinforced the fact that any idea

worth copying can and will be copied

Page 8: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 7

1. Scale

• removing any limits of data, users, transactions, etc. on the business

2. Lowest Cost

• being viewed by your customers as the lowest cost option in the marketplace

3. Sustained Innovation

• continuous pace of finding new ways to please customers and improve product market fit

So where can you find competitive advantage?

Source: http://dev2ops.org/2012/09/use-devops-to-turn-it-

into-a-strategic-weapon/

Page 9: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 8

DevOps is an essential tool for turning IT into a competitive advantage

Page 10: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 9

• DevOps problems live in the “white spaces” between people and groups.

• Like all organizational issues, it’s ultimately the responsibility of management to solve DevOps problems.

DevOps problems are organizational issues

Source: http://dev2ops.org/2012/10/devops-transformation-

workshop-for-technical-managers/

Page 11: 당신은 DevOps 엔지니어가 아닙니다
Page 12: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 11http://www.flickr.com/photos/aaronjacobs/64368770/

새로운 기능 빌드는 했다규!

Subversion 에 커밋 했다규!

시간은 맞춰었다규!

Page 13: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 12http://www.flickr.com/photos/aaronjacobs/64368770/

시스템 접속 제한

안정과 안전

파일을 빨리 올려야 조

Page 14: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 13

DevOOps Enterprise

Dev

운영을 고려하지못한 개발과 우선순위

기술 축적 부재

운영을 고려하지못한 설계와 테스트 결여

장 기간의 개발과테스트

장시간 배포

운영에서 준비되지 못한 소프트웨어 도입

개발팀과의 커뮤니케이션 결여에따른 장애 복구시간의 장기화( MTTR)

비즈니스 현실을반영하지 못하는운영

디버그가 곤란한운영 환경

운영환경에서 장애 대응 ( 스테이징 부재)

개발과 운영의 워크플로우 분리

MTTR : Mean Time To Repair ( 장애 복구 평균 시간 )

Page 15: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 14

DevOps Enterprise

OpsDev

운영을 고려한 이슈트래킹과 우선 순위검토

기존 코드의 리뷰와 개선

계속적인 테스트

계속적인 인티그레이션

구성과 배포자동화

운영환경에 대한정보 이해

장애복구평균시간 최소화

비즈니스 가치를중심으로 한 운영데이터 수집/축적/분석

운영환경에 영향을 주지 않는 진단/디버그

유사 운영환경에서 테스트

통합 운영 도구와워크플로우 연계

언제나 정상 동작하는 애플리케이션 공유 (배포)

인프라 운영 경험과 지식 공유 (운영 최적화)

Page 16: 당신은 DevOps 엔지니어가 아닙니다

• 「개발」과 「운영」이 책임과 실천을 함께 공유하는 것

• 애플리케이션 개발, 인프라, 운영, 품질관리를 담당하는 IT

부서 간 커뮤니케이션과 협업을 통하여 목표로 한 소프트

웨어나 서비스를 개발하는 프로세스나 방법 – Forrester

• DevOps는 클라우드 서비스로부터 시작된 것으로 온라인

비즈니스 증가에 따라 운영팀과 개발 팀이 협업하는 것으

로 효율성을 향상시키는 것에 주목한 개념 – Gartner

• DevOps는 회사의 애플리케이션 개발 팀과 시스템운영팀

의 태스크를 통합하는 것 - TechTarget

Page 17: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 16

DevOps Message

전략적인 IT 가 비즈니스의성공을 좌우하는 시대에 비즈니스 가치를 계속적으로 제공하기 위해 개발과 운용의 새로운 관계 만들기

비즈니스요구 사항

Page 18: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 17

• 좋은 것은 알지만 현실은?

Devops는 아직 시기상조이며, 너무 이상적임

인프라 엔니지어에게 Jenkins , Spring Framework 이나 Rest API 를 이해시키는 것?

왜 개발 및 운영과 통합 해야 하는가?

인력감축을 위한 수단인가?

개발자가 운영을 하는 것?

운영에서 개발을 하는 것?

Devops Huddle

• Devops• 운영팀을 위해 운영 자동화를 위한 코드

교육• 개발팀에 운영 기술 전수

• 왜 개발 및 운영과 통합 해야 하는가• 빈번한 릴리즈를 위해 개발팀과 운영팀

의 협력은 필수• 인력감축을 위한 수단인가?

• 운영팀 경쟁력 확보 - Infra as a Code

Page 19: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 18

Header text

Page 20: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 19

지속적인 통합 (Continuous Integration )

• 소프트웨어 빌드 자동화

• 지속적이고 자동화된 빌드 검증

• 지속적이고 자동화된 빌드 테스트

• 빌드 후속 절차 자동화

커밋 자동 빌드 자동 테스트 자동 배포

Source: “Continuous Integration” Created by Yoonki Chang ([email protected])

Page 21: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 20

CI 필요성

• 위험을 줄여준다.

• 특정 소스 코드의 컴파일 오류로 전체 소프트웨어 컴파일이 되지 않는 문제를빠르게 대처할 수 있음

• 반복적인 수작업을 줄여준다

• 개발자의 반복적이고 지루한 작업을 자동화하여 개발자는 개발에만 집중할 수 있도록 함

• 코드의 변경에 대해 자동적으로 단위 테스트 및 영향 분석을 레포팅하고 이를 통해소프트웨어의 품질을 향상 시킬 수 있음

• 언제 어느 때라도 배포할 수 있는 소프트웨어를 생성해낸다

• 빌드와 배포를 반복적으로 수행함으로 소프트웨어를 테스트할 수 있는 기회를더욱 높일 수 있으며 이로인해 소프트웨어 품질이 높아짐

• 문제 상황 발생시 이를 빠르게 피드백 받고 즉각 처리할 수 있는 환경을 마련함

• 프로젝트 가시성을 좋게 한다

• 소프트웨어 제품에 대해 보다 큰 자신감을 갖게 해준다.

Source: “Continuous Integration” Created by Yoonki Chang ([email protected])

Page 22: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 21

CI Tools

• 어렵게 생각하지 말고 쉽게 본인이 필요하다고 생각되는 영역부터 하나 하나 적용해보는 것이 좋음

• CI 도구를 개발자를 통제하기 위한 도구로 생각해서는 안되며 생산성 향상을 위한도구로 사용해야 함

• 스스로 해야 할 것

1. 쉬운 CI 도구 선정

2. 빌드 자동화 (형상관리 + ANT / MAVEN)

3. 배포 자동화 (TOMCAT, FTP 등)

4. 테스트 자동화 (Junit 등)

5. 소스 코드 품질 검사 자동화 (PMD 등)

• 요구해야 할 것

1. CI 적용을 위한 시간 확보

2. 배우기 위한 자료 (책, 교육 등)

3. 형상 관리, CI 도구 등을 위한 장비 확보

개발자 측면

• 스스로 해야 할 것

1. 인내력을 가지고 기다림

2. CI는 생산성 향상 도구 (통제 도구 아님)

3. CI를 위해 투자하는 시간, 돈

4. 고성능 하드웨어 장비를 지급하는 여유

• 요구해야 할 것

1. 개발자 인식 전환

2. 단순 반복 작업이 아닌 생산적인 작업에 시간

을 투자

3. 가치를 높이기 위한 노력

관리자 측면

Source: “Continuous Integration” Created by Yoonki Chang ([email protected])

Page 23: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 22

애플리케이션 라이프 사이클

운영 / 테스트 환경 개발 지원 환경 개발 환경

DeveloperMaven repository

management

ContinuousIntegration

Testers

Version ControlRepository

QA Server

Bug Tracking

Manually Test last stable release

Publish last stablebuild

Local test server

Eclipse plugin

Gets lastRelease from trunk

Publish source

Virtualization

WAS VM

Linux

JBoss

Application

Java

JBoss Instance

WEB VMTemplate

WAS VMTemplate

DB VMTemplate

WAS VM

Linux

JBoss

Application

Java

JBoss Instance

VM Template Pool

Page 24: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 23

기술 요소 분야 구성요소 설명

jQueryMobile HTML5/Framework/Mobile

jQuery.jsjQueryMobile.jsjQueryMobile.css

jQuery 기능에 모바일 플랫폼 기능이 추가된 프레임워크,HTML, CSS, JavaScript 만으로 구성되어 있으며 HTML5 data-* 속성과 css 클래스를 지정하는 것만으로 모바일 UI를 표현할 수있다.

전자정부 F/W Java-based Development Framework

Spring FrameworkSpring SecurityData Access : iBatisORM : HibernateScheduling : QuartzCache : EHCache

오픈소스 프레임워크를 기반으로 공공기관을 비롯하여 기업에서 효율적인 어플리케이션 개발을 할 수 있는 구현(코팅, 디버깅), 테스트, 배포, 형상관리 도구들을 제공하는 비즈니스 프레임워크

Change management

Source Version Control Subversion 서브버전은 오픈소스 제품으로 소스 버전 관리 시스템이다. 명령행 인터페이스에서 사용하는 명령어를 따서 “SVN”이라고 줄여서 부르기도 한다. 제한이 있던 CVS를 대체하기 위해 2000년부터 콜랩넷에서 개발되었다.

git-daemon 기트는 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리시스템이다. 빠른 수행 속도에 중점을 두고 있는 것이 특징이다. 네트워크에 접근하거나 중앙 서버에 의존하지 않는다

Quality Assurance

Build Tool maven 메이븐은 프로젝트 객체 모델(Project Object Model)이라는 개념을 바탕으로 프로젝트 의존성 관리, 라이브러리 관리, 프로젝트 생명 주기 관리 기능 등을 제공하는 프로젝트 관리 도구이다.

Nexus 여러 개의 외부 maven 리포지토리를 Proxy 개념으로 연결해서효율적으로 내부 개발자들에게 virtual한 하나의 repository 연결 포인트를 제공한다.

CI Server jenkins Jenkins 서버는 소스코드가 변경됐을 때 빌드, 테스트, 분석, 리포팅이 자동으로 수행되도록 도와주는 CI 서버이다.

Change Management

Issue Tracker jTrac JTrac 은 Bugzilla, Trac, Jira 에 대응할 수 없는 경량화 이슈 트레커이다.

RedMine Redmine은 오픈소스 프로그램으로 웹기반의 프로젝트 관리 와버그 추적 기능을 제공하는 도구이다.

기술요소 설명

Page 25: 당신은 DevOps 엔지니어가 아닙니다

opennaru.com | 2013 | All Rights Reserved 24

Jenkins

• Java로 작성된 오픈 소스CI서버

• Jenkins는 영국인 집사이미지로 프로젝트의조력자의 역할

• 7년 이상 된 프로젝트

• 설치와 사용법이 간단함

• 플러그 인에 의한 기능확장

• 450 개 이상의 플러그인

• 가장 많이 사용되는 CI 서버

• 31,000 개 이상의레퍼런스

Page 26: 당신은 DevOps 엔지니어가 아닙니다

감사합니다.