Agile&DevOps/Agile,DevOps문화

1. DevOps와 CI/CD에 대한 이해

Happy@Cloud 2019. 9. 12. 12:59

1. DevOps란 ?

DevOps란 개발조직과 운영조직의 벽을 최소화하자는 개념입니다.

시작은 그랬습니다.

하지만, 현재 DevOps의 진정한 의미는 비즈니스 조직과 IT조직의 협업을 강화하자는 것입니다.

다시말해, 고객과 업무를 가장 잘 이해하는 비즈니스 조직원의 생각과 아이디어가 실제적인 IT서비스로 구현되고 계속 발전되는 "문화"를 만들자는 것이 DevOps가 추구하는 방향입니다.

2. 왜 DevOps 문화가 필요한가 ?

IT프로그램의 개발과 운영 비용 절감, 자동화를 통한 편의성과 속도 향상은 DevOps의 목표가 아닙니다.

DevOps문화의 진정한 목표는 고객과 비즈니스를 위한 지속적인 혁신입니다.

3. 어떻게 DevOps문화를 만들 수 있는가 ?

DevOps문화을 만들기 위한 힌트는 콘웨이의 법칙에 있습니다.

"모든 시스템은 그 조직의 의사소통 구조와 동일하게 만들어진다."

즉, 조직구조를 커뮤니케이션과 협업에 유연하도록 변경하는 것입니다.

devopstopologies.com은 이러한 조직구조의 변화에 대한 연구를 공유하는 사이트입니다.

이러한 연구를 참조하여 기업은 자신들의 업무, 기업문화, 준비도에 따라 적합한 DevOps조직구조로 변화해 나갈 수 있을것입니다.

https://web.devopstopologies.com/

아래는 가장 대표적인 DevOps조직구조입니다.

4. DevOps 사례

IBM Weather 라는 날씨 정보를 전세계에 공급하는 회사가 있습니다. 모바일폰에서 기본 제공되는 날씨 정보는 모두 이 회사에게 제공하고 있습니다.

이 회사의 DevOps조직은 위 토폴로지 중 Fully Shared와 유사합니다. 개발조직과 운영조직이 한 TEAM을 이루어 작업하고 있습니다.

IBM Weather DevOps조직의 특성은 2가지가 있습니다.

1) 개발자와 운영자가 한 팀으로 구성됨

2) SDET(System Development Engineer in Test) 역할이 매우 중요

SDET는 테스트 전문가입니다. 개발의 시작부터 테스트 방안을 설계하고 테스트 스크립트를 개발합니다. 개발이 완료되면 배포 전에 시스템 테스트, 성능 테스트, 인수 테스트를 책임지고 수행합니다.

단일 DevOps팀은 개발자 2~3명, SDET 1명, 운영자 1명으로 구성되며, 한 명의 SDET는 오직 한 팀에만 배정됩니다.

 

https://www.youtube.com/watch?v=4GK1NDTWbkY

 

https://www.youtube.com/watch?v=EKEaMeaiZOw

 

 

5. CI/CD란 ?

DevOps조직문화의 생명은 Speed와 Iteration에 있습니다. 즉, 비즈니스의 요구에 적시에 대처하고 지속적인 개선을 할 수 있어야 합니다.

이를 가능하기 위해서는 CI(Continuous Integration-지속통합)와 CD(Continuous Deployment-지속배포)가 자동화 될 필요가 있습니다.

다시말해, 각 개발자의 개발 결과가 자동으로 통합되고 배포하는 과정이 물 흐르듯이 연속적으로 이루어져야 한다는 것입니다.

CI는 소스업로드에서 배포Image 업로드까지의 과정을 의미합니다. Commit -> Unit Test -> Integration Test -> 소스 정적분석 -> 배포Image 빌드 -> 배포Image 보안검사 -> Image 저장소 업로드의 단계를 거칩니다.

CD는 배포Image를 개발계 배포 -> 검증계 배포 -> 시스템/성능/인수 테스트 -> 운영계 배포까지의 단계를 거칩니다.

그럼 실습을 통해 CI/CD 과정을 직접 체험해 보도록 하겠습니다.

devops/CI, CD 툴 설치

devops/실습 with Jenkins

devops/helm