이정호 수석 / ㈜ 한국정보컨설팅
Atlassian 및 오픈소스를 이용한
DevOps 구축
Agenda
1. DevOps?
2. DevOps를 정착하려면…
3. [CI] 유형 별 구축 사례
DevOps?
DevOps?
“소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서,
소프트웨어 개발자와 정보 기술 전문가 간의 소통, 협업 및 통합을
강조하는 개발 환경이나 문화를 말한다.”
From. Wikipedia
DevOps?
• Development + Operations
• Moving FAST!
• Always for Customer!
Waterfall
Design Code Test Delivery
Agile
Design Code Test DeliveryD Code Test D Code Test
DevOps
Design C T DD C T DD C T DD C T DD C T D
DevOps?
DevOps?
• DevOps is NOT A JOB TITLE.
• DevOps is NOT A SEPARATE TEAM.
• DevOps is NOT A TOOL.
DevOps를 정착하려면…
DevOps를 정착하려면…
• Culture
• Automate
• Lean
• Measure
• Share
DevOps를 정착하려면…
ToolingStructural
Cultural
Successful DevOps!!!
DevOps를 정착하려면…
• Cultural
(이상)
Developer
QA
Operator
DevOps를 정착하려면…
• Cultural
(현실)
DevOps를 정착하려면…
• Cultural
(How To?)
https://saucelabs.com/blog/from-engineering-to-devops-the-sauce-journey
DevOps를 정착하려면…
• Structural
(AS-IS) Developers QAs Operators
Improvement! Good Quality! Stable!
DevOps를 정착하려면…
• Structural
(TO-BE) Team 1 Team 2 Team 3
DevOps를 정착하려면…
• Tooling
DevOps를 정착하려면…
• Tooling
(Tool Position)
DevOps를 정착하려면…
Do NOT Be Afraid of Change Anything!!!!
[CI] 유형 별 구축 사례
Project 단계 CI 구축
[CI] 유형 별 구축 사례
• Project 단계 CI 구축 (사례)
150명
Developers
VCS
Change Management
Continuous Integration
Dev Svr
SIT Svr
0명
Operators
13개
Projects
[CI] 유형 별 구축 사례
• Project 단계 CI 구축 (사례)
• Git Branch/tag(DEV/STG) 사용
• Code Review 단계 없음
• Merge Manager 없음
• Jenkins를 이용하여 JIRA Issue 단위로 배포 요청된 소스 코드만 요청 시 대상 서버
(Dev/SIT) 배포
[CI] 유형 별 구축 사례
• Project 단계 CI 구축 (사례)
• 비 대상 소스 코드 배포 방지
C1 C2 C3master C4
Issue#1 Issue#2 Issue#2 Issue#3
Dev svr 배포요청
[CI] 유형 별 구축 사례
• Project 단계 CI 구축 (사례)
• 비 대상 소스 코드 배포 방지
git checkout C1
C1 C2 C3master C4
Issue#1 Issue#2 Issue#2 Issue#3
HEAD
[CI] 유형 별 구축 사례
• Project 단계 CI 구축 (사례)
• 비 대상 소스 코드 배포 방지
C1 C2 C3master C4
Issue#1 Issue#2 Issue#2 Issue#3
Dev svr deployed feedback
[CI] 유형 별 구축 사례
• Project 단계 CI 구축 (사례)
• 비 대상 소스 코드 배포 방지
C1 C2 C3master C4
Issue#1 Issue#2 Issue#2 Issue#3
Workflow로 SIT배포 가능 여부 통제
[CI] 유형 별 구축 사례
운영 단계 CI 구축
[CI] 유형 별 구축 사례
• 운영 단계 CI 구축 (사례)
82명
Developers
46개
Projects
Test Svr
Prd Svr
SIT Svr
3명
Operators
[CI] 유형 별 구축 사례
• 운영 단계 CI 구축 (사례)
• SVN tag 사용
• Code Review / 동료 검토 진행
• Merge Manager 없음
• SmartBuilder를 이용하여 JIRA Issue 단위로 Dev/Stg 서버 배포,
STG 배포 완료 Issue 중 PRD 배포 요청 건에 대해 주 단위 배포
• 운영 단계 CI 구축 (사례)
• 소스 역전 방지 / 비 대상 소스코드 배포 방지
[CI] 유형 별 구축 사례
/
trunk
tags test
sit
prd
JIRA ID Rev No. File-name 단계
ISS-1 1 a.java Test
ISS-3 2 b.java SIT
ISS- 3 c.java PRD
Issue#1
Issue#2
Issue#3
a.Java
b.Java
c.Java
DB Table에 Issue No, Rev No, File Name, 단계 저장
• 운영 단계 CI 구축 (사례)
• 소스 역전 방지 / 비 대상 소스코드 배포 방지
[CI] 유형 별 구축 사례
/
trunk
tags test
sit
prd
JIRA ID Rev No. File-name 단계
ISS-1 1 a.java
ISS-3 2 b.java SIT
ISS- 3 c.java PRD
Issue#1
Issue#2
Issue#3
a.Java
b.Java
c.Java
a.Java
svn export 로 배포 대상 파일 이관
• 운영 단계 CI 구축 (사례)
• 소스 역전 방지 / 비 대상 소스코드 배포 방지
[CI] 유형 별 구축 사례
/
trunk
tags test
sit
prd
JIRA ID Rev No. File-name 단계
ISS-1 1 a.java
ISS-3 2 b.java SIT
ISS- 3 c.java PRD
Issue#1
Issue#2
Issue#3
a.Java
b.Java
c.Java
배포 가능 여부 확인 (소스 역전 / 비 대상 조회)
• 운영 단계 CI 구축 (사례)
• 소스 역전 방지 / 비 대상 소스코드 배포 방지
[CI] 유형 별 구축 사례
/
trunk
tags test
sit
prd
JIRA ID Rev No. File-name 단계
ISS-1 1 a.java
ISS-3 2 b.java SIT
ISS- 3 c.java PRD
Issue#1
Issue#2
Issue#3
a.Java
b.Java
c.Java
파일의 유형에 따라 옵션 부여하여 배포 진행 / 배포 불가 처리
*. 하위 버전 파일 배포 요청 시
1. 해당 파일 제외 배포 가능  배포 진행
2. 해당 파일 제외 불가  배포 불가
Thank you

Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅

  • 2.
    이정호 수석 /㈜ 한국정보컨설팅 Atlassian 및 오픈소스를 이용한 DevOps 구축
  • 3.
    Agenda 1. DevOps? 2. DevOps를정착하려면… 3. [CI] 유형 별 구축 사례
  • 4.
  • 5.
    DevOps? “소프트웨어의 개발(Development)과 운영(Operations)의합성어로서, 소프트웨어 개발자와 정보 기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.” From. Wikipedia
  • 6.
  • 7.
    • Moving FAST! •Always for Customer! Waterfall Design Code Test Delivery Agile Design Code Test DeliveryD Code Test D Code Test DevOps Design C T DD C T DD C T DD C T DD C T D DevOps?
  • 8.
    DevOps? • DevOps isNOT A JOB TITLE. • DevOps is NOT A SEPARATE TEAM. • DevOps is NOT A TOOL.
  • 9.
  • 10.
    DevOps를 정착하려면… • Culture •Automate • Lean • Measure • Share
  • 11.
  • 12.
  • 13.
  • 14.
    DevOps를 정착하려면… • Cultural (HowTo?) https://saucelabs.com/blog/from-engineering-to-devops-the-sauce-journey
  • 15.
    DevOps를 정착하려면… • Structural (AS-IS)Developers QAs Operators Improvement! Good Quality! Stable!
  • 16.
  • 17.
  • 18.
  • 19.
    DevOps를 정착하려면… Do NOTBe Afraid of Change Anything!!!!
  • 20.
    [CI] 유형 별구축 사례 Project 단계 CI 구축
  • 21.
    [CI] 유형 별구축 사례 • Project 단계 CI 구축 (사례) 150명 Developers VCS Change Management Continuous Integration Dev Svr SIT Svr 0명 Operators 13개 Projects
  • 22.
    [CI] 유형 별구축 사례 • Project 단계 CI 구축 (사례) • Git Branch/tag(DEV/STG) 사용 • Code Review 단계 없음 • Merge Manager 없음 • Jenkins를 이용하여 JIRA Issue 단위로 배포 요청된 소스 코드만 요청 시 대상 서버 (Dev/SIT) 배포
  • 23.
    [CI] 유형 별구축 사례 • Project 단계 CI 구축 (사례) • 비 대상 소스 코드 배포 방지 C1 C2 C3master C4 Issue#1 Issue#2 Issue#2 Issue#3 Dev svr 배포요청
  • 24.
    [CI] 유형 별구축 사례 • Project 단계 CI 구축 (사례) • 비 대상 소스 코드 배포 방지 git checkout C1 C1 C2 C3master C4 Issue#1 Issue#2 Issue#2 Issue#3 HEAD
  • 25.
    [CI] 유형 별구축 사례 • Project 단계 CI 구축 (사례) • 비 대상 소스 코드 배포 방지 C1 C2 C3master C4 Issue#1 Issue#2 Issue#2 Issue#3 Dev svr deployed feedback
  • 26.
    [CI] 유형 별구축 사례 • Project 단계 CI 구축 (사례) • 비 대상 소스 코드 배포 방지 C1 C2 C3master C4 Issue#1 Issue#2 Issue#2 Issue#3 Workflow로 SIT배포 가능 여부 통제
  • 27.
    [CI] 유형 별구축 사례 운영 단계 CI 구축
  • 28.
    [CI] 유형 별구축 사례 • 운영 단계 CI 구축 (사례) 82명 Developers 46개 Projects Test Svr Prd Svr SIT Svr 3명 Operators
  • 29.
    [CI] 유형 별구축 사례 • 운영 단계 CI 구축 (사례) • SVN tag 사용 • Code Review / 동료 검토 진행 • Merge Manager 없음 • SmartBuilder를 이용하여 JIRA Issue 단위로 Dev/Stg 서버 배포, STG 배포 완료 Issue 중 PRD 배포 요청 건에 대해 주 단위 배포
  • 30.
    • 운영 단계CI 구축 (사례) • 소스 역전 방지 / 비 대상 소스코드 배포 방지 [CI] 유형 별 구축 사례 / trunk tags test sit prd JIRA ID Rev No. File-name 단계 ISS-1 1 a.java Test ISS-3 2 b.java SIT ISS- 3 c.java PRD Issue#1 Issue#2 Issue#3 a.Java b.Java c.Java DB Table에 Issue No, Rev No, File Name, 단계 저장
  • 31.
    • 운영 단계CI 구축 (사례) • 소스 역전 방지 / 비 대상 소스코드 배포 방지 [CI] 유형 별 구축 사례 / trunk tags test sit prd JIRA ID Rev No. File-name 단계 ISS-1 1 a.java ISS-3 2 b.java SIT ISS- 3 c.java PRD Issue#1 Issue#2 Issue#3 a.Java b.Java c.Java a.Java svn export 로 배포 대상 파일 이관
  • 32.
    • 운영 단계CI 구축 (사례) • 소스 역전 방지 / 비 대상 소스코드 배포 방지 [CI] 유형 별 구축 사례 / trunk tags test sit prd JIRA ID Rev No. File-name 단계 ISS-1 1 a.java ISS-3 2 b.java SIT ISS- 3 c.java PRD Issue#1 Issue#2 Issue#3 a.Java b.Java c.Java 배포 가능 여부 확인 (소스 역전 / 비 대상 조회)
  • 33.
    • 운영 단계CI 구축 (사례) • 소스 역전 방지 / 비 대상 소스코드 배포 방지 [CI] 유형 별 구축 사례 / trunk tags test sit prd JIRA ID Rev No. File-name 단계 ISS-1 1 a.java ISS-3 2 b.java SIT ISS- 3 c.java PRD Issue#1 Issue#2 Issue#3 a.Java b.Java c.Java 파일의 유형에 따라 옵션 부여하여 배포 진행 / 배포 불가 처리 *. 하위 버전 파일 배포 요청 시 1. 해당 파일 제외 배포 가능  배포 진행 2. 해당 파일 제외 불가  배포 불가
  • 34.