ݺߣ

ݺߣShare a Scribd company logo
Atlassian Bamboo를 활용한 이상적인 DevTestOps 환경 구축 - 모우소프트
정재용 / 모우소프트
Atlassian Bamboo를 활용한
이상적인 DevTestOps 환경 구축
What is DevOps?
A culture and environment where building, testing, and releasing software,
can happen rapidly, frequently, and more reliably.
- Atlassian 문서중에
높은 품질을 유지하면서 시스템에 대한 변경 사항의 적용과 그 변경 사항을 일
반적인 생산 환경에 적용되는 동안의 필요한 시간을 줄이기 위한 일련의 실천
방법(Practices)이다.
- DevOps
소프트웨어를 작성, 테스트 및 출시하는 문화 및 환경이 신
속하고 자주,보다 안정적으로 발생할 수 있습니다.
What is DevOps?
Atlassian Bamboo를 활용한 이상적인 DevTestOps 환경 구축 - 모우소프트
Up to 100 releases per day
Netflix has more than 30 million streaming members.
50 million
deployments
per year
Amazon has thousands of teams and millions of users.
63%
of Atlassian customers have
adopted DevOps practices
What is different?
DevOps
DevOps 필요 요소?
• Plan & Measure
ü Lean 또는 Agile 기반으로 지속적으로 상태를 파악하
고 관리하며, 이를 기반으로 계획 수립 및 수정
• Development & Test
ü 소프트웨어 제품 및 서비스에 관련된 이해당사자들
간 협업이 가능하도록 플랫폼을 제공하고 지속적인
통합 수행
ü 자동화된 테스팅 및 운영 시스템과 유사한 가상화 시
스템 기반 테스팅
• Release & Deploy
ü 새로운 릴리즈를 가능한 빨리 고객에게 제공하기 위
한 자동화된 배포
• Monitor & Optimize
ü 지속적인 운영 시스템 모니터링과 고객 피드백을 통
한 최적화
DevOps 핵심 프렉티스?
• Process in DevOps
ü DevOps는 린과 애자일 방법론에 기반으로 하고, 관련 프로세스도 이런 방법론에서 주로 발생됨.
DevOps 프로세스 핵심 프랙티스 중심으로 살펴보면
ü 핵심 프랙티스
1. Release planning
지속적인 계획 및 평가에 의한 릴리즈 계획
2. Continuous integration
개발 초기부터 지속적인 자동빌드를 통한 잠재적인 통합 리스크 사전 제거
3. Continuous testing
자동테스트를 통한 지속적 테스트로 품질 향상
4. Continuous delivery
자동 배포를 통한 신속한 릴리즈 수행
5. Continuous monitoring and feedbacks
지속적인 모니터링과 고객 피드백을 통한 최적화 수행
DevOps 효과는 어떻게?
• Shift Left는 DevOps의 중요한 원칙 중에 하나로 기존 운영 단계에서의
검증을 개발 단계 부터 수행, 신속한 변화에 대응이 가능하게 함
Atlassian solution & DevOps
1. Release planning
2. Continuous integration
3. Continuous delivery
4. Continuous testing
5. Continuous monitoring
and feedbacks
Continuous Delivery & build for S/W DEV Team
Atlassian Bamboo를 활용한 이상적인 DevTestOps 환경 구축 - 모우소프트
Deploy your CI builds
Environment management
Control the schedule
배포 프로젝트에 빌드 결과를 제공
빌드 Process및 사용자 권한등의 다양한 환경 설정 지원
스케쥴에 의한 자동 수동 배포 지원
Continuous delivery
Flexible pipeline
Flexible pipeline
Atlassian solution & DevOps
1. Release planning
2. Continuous integration
3. Continuous delivery
4. Continuous testing
5. Continuous monitoring
and feedbacks
Build vs Release vs Deploy
Release Management
• DevOps 완성 하기 위해서는 S/W 파
이프라인을 지속적으로 관리해야 함
• 지속적 통합, 지속적 테스트, 가능한
자동화된 프로세스 적용이 중요 함
• 프로젝트가 복잡할 수록 파이프라인
을 사람이 아닌 자동화된 방법으로 관
리할 수 있는 방안이 필요 함
XL Deploy 기능
Best Practice
Extensibility
Lightweight &
Cloud Support
Enterprise
Scalability
Insight &
Compliance
• 자동 배포 Workflow 생
성 및 지원
• 다양한 M/W DB 지원
• 사전 정의된 Application
& Resource type 제공
• Agent가 없는 구조
• 자동 확장 가능한
Workflow
• 모델 기반의 자동화 환
경은 운영 환경에 최적
화가 용이함
• Windows / Unix 환경을 기
본 리모트 프로토콜로 지
원
• Firewall port Open 없음
• Cloud 지원
• 감사를 위한 모든 정보의
추적성 제공
• 다양한 리포트 제공
• Application 배포 가시성
제공
Atlassian solution &
1. Release planning
2. Continuous integration
3. Continuous delivery
4. Continuous testing
5. Continuous monitoring
and feedbacks
DevTestOps
What is Agile Testing?
What is importent point of DevTestOPS?
Testing?
Test Automation?
Testing interface and
workflow for teams
that release software
continuously (at least
once a week).
Manual testing tool
(exploratory + scripted) that
records data of a testing
session and automatically
creates detailed
documentation.
Testing interface and
workflow for teams that
release software less
often than once a week.
JIRA add-on to help
progressive “shift left”
testing teams scale TDD,
BDD and ATDD.
Out of the box
integrations to ALM’s and
automation frameworks to
pull back data and roll up
through Insights.
Central reporting and
business intelligence
hub for all testing
activities across the
enterprise.
TestCase Management
• Jira와 연동 defect을 자동으로 생성 관리
Use Case of DevTestOps
Use Case of DevTestOps
Use Case of DevTestOps
1. 기존 업무에 새로운 새로운 feature 적용 필요
2. Bitbucket에서 새로운 Branch 생성
Use Case of DevTestOps
3. 생성된 브랜치에서 변경 작업 수행
4. 변경 후 code review 수행
Use Case of DevTestOps
5. Test Build 요청
6. Bamboo로 빌드 수행
Use Case of DevTestOps
7. qTest로 개발자 Test 수행
8. 정상 이면 master Branch로 Merge
Pass
Fail
Use Case of DevTestOps
9. Staging 또는 Production 환경에 배포 요청
10. 배포 수행
Atlassian Bamboo를 활용한 이상적인 DevTestOps 환경 구축 - 모우소프트

More Related Content

Atlassian Bamboo를 활용한 이상적인 DevTestOps 환경 구축 - 모우소프트

  • 2. 정재용 / 모우소프트 Atlassian Bamboo를 활용한 이상적인 DevTestOps 환경 구축
  • 3. What is DevOps? A culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably. - Atlassian 문서중에 높은 품질을 유지하면서 시스템에 대한 변경 사항의 적용과 그 변경 사항을 일 반적인 생산 환경에 적용되는 동안의 필요한 시간을 줄이기 위한 일련의 실천 방법(Practices)이다. - DevOps 소프트웨어를 작성, 테스트 및 출시하는 문화 및 환경이 신 속하고 자주,보다 안정적으로 발생할 수 있습니다.
  • 6. Up to 100 releases per day Netflix has more than 30 million streaming members. 50 million deployments per year Amazon has thousands of teams and millions of users. 63% of Atlassian customers have adopted DevOps practices
  • 8. DevOps 필요 요소? • Plan & Measure ü Lean 또는 Agile 기반으로 지속적으로 상태를 파악하 고 관리하며, 이를 기반으로 계획 수립 및 수정 • Development & Test ü 소프트웨어 제품 및 서비스에 관련된 이해당사자들 간 협업이 가능하도록 플랫폼을 제공하고 지속적인 통합 수행 ü 자동화된 테스팅 및 운영 시스템과 유사한 가상화 시 스템 기반 테스팅 • Release & Deploy ü 새로운 릴리즈를 가능한 빨리 고객에게 제공하기 위 한 자동화된 배포 • Monitor & Optimize ü 지속적인 운영 시스템 모니터링과 고객 피드백을 통 한 최적화
  • 9. DevOps 핵심 프렉티스? • Process in DevOps ü DevOps는 린과 애자일 방법론에 기반으로 하고, 관련 프로세스도 이런 방법론에서 주로 발생됨. DevOps 프로세스 핵심 프랙티스 중심으로 살펴보면 ü 핵심 프랙티스 1. Release planning 지속적인 계획 및 평가에 의한 릴리즈 계획 2. Continuous integration 개발 초기부터 지속적인 자동빌드를 통한 잠재적인 통합 리스크 사전 제거 3. Continuous testing 자동테스트를 통한 지속적 테스트로 품질 향상 4. Continuous delivery 자동 배포를 통한 신속한 릴리즈 수행 5. Continuous monitoring and feedbacks 지속적인 모니터링과 고객 피드백을 통한 최적화 수행
  • 10. DevOps 효과는 어떻게? • Shift Left는 DevOps의 중요한 원칙 중에 하나로 기존 운영 단계에서의 검증을 개발 단계 부터 수행, 신속한 변화에 대응이 가능하게 함
  • 11. Atlassian solution & DevOps 1. Release planning 2. Continuous integration 3. Continuous delivery 4. Continuous testing 5. Continuous monitoring and feedbacks
  • 12. Continuous Delivery & build for S/W DEV Team
  • 14. Deploy your CI builds Environment management Control the schedule 배포 프로젝트에 빌드 결과를 제공 빌드 Process및 사용자 권한등의 다양한 환경 설정 지원 스케쥴에 의한 자동 수동 배포 지원 Continuous delivery
  • 17. Atlassian solution & DevOps 1. Release planning 2. Continuous integration 3. Continuous delivery 4. Continuous testing 5. Continuous monitoring and feedbacks
  • 18. Build vs Release vs Deploy
  • 19. Release Management • DevOps 완성 하기 위해서는 S/W 파 이프라인을 지속적으로 관리해야 함 • 지속적 통합, 지속적 테스트, 가능한 자동화된 프로세스 적용이 중요 함 • 프로젝트가 복잡할 수록 파이프라인 을 사람이 아닌 자동화된 방법으로 관 리할 수 있는 방안이 필요 함
  • 20. XL Deploy 기능 Best Practice Extensibility Lightweight & Cloud Support Enterprise Scalability Insight & Compliance • 자동 배포 Workflow 생 성 및 지원 • 다양한 M/W DB 지원 • 사전 정의된 Application & Resource type 제공 • Agent가 없는 구조 • 자동 확장 가능한 Workflow • 모델 기반의 자동화 환 경은 운영 환경에 최적 화가 용이함 • Windows / Unix 환경을 기 본 리모트 프로토콜로 지 원 • Firewall port Open 없음 • Cloud 지원 • 감사를 위한 모든 정보의 추적성 제공 • 다양한 리포트 제공 • Application 배포 가시성 제공
  • 21. Atlassian solution & 1. Release planning 2. Continuous integration 3. Continuous delivery 4. Continuous testing 5. Continuous monitoring and feedbacks DevTestOps
  • 22. What is Agile Testing?
  • 23. What is importent point of DevTestOPS? Testing? Test Automation?
  • 24. Testing interface and workflow for teams that release software continuously (at least once a week). Manual testing tool (exploratory + scripted) that records data of a testing session and automatically creates detailed documentation. Testing interface and workflow for teams that release software less often than once a week. JIRA add-on to help progressive “shift left” testing teams scale TDD, BDD and ATDD. Out of the box integrations to ALM’s and automation frameworks to pull back data and roll up through Insights. Central reporting and business intelligence hub for all testing activities across the enterprise.
  • 25. TestCase Management • Jira와 연동 defect을 자동으로 생성 관리
  • 26. Use Case of DevTestOps
  • 27. Use Case of DevTestOps
  • 28. Use Case of DevTestOps 1. 기존 업무에 새로운 새로운 feature 적용 필요 2. Bitbucket에서 새로운 Branch 생성
  • 29. Use Case of DevTestOps 3. 생성된 브랜치에서 변경 작업 수행 4. 변경 후 code review 수행
  • 30. Use Case of DevTestOps 5. Test Build 요청 6. Bamboo로 빌드 수행
  • 31. Use Case of DevTestOps 7. qTest로 개발자 Test 수행 8. 정상 이면 master Branch로 Merge Pass Fail
  • 32. Use Case of DevTestOps 9. Staging 또는 Production 환경에 배포 요청 10. 배포 수행