MDS테크놀로지 SES사업부 김진수 과장

▲ 김진수 MDS테크 SES사업부 과장
[아이티데일리] 

IT시장의 변화와 데브옵스의 등장

“골드만삭스는 IT 회사다.” 글로벌 투자은행 골드만삭스의 로이드 블랭크파인 최고경영자(CEO)가 한 말이다. 이건 비단 금융업에 국한된 이야기가 아니다. 제조업 회사들은 앞다투어 IoT 시장에 진출하고 있고 유통업, 의료업 등 거의 모든 산업에서 IT 기술을 활용하여 해당 산업을 확장해 나가고 있다. 지금은 모든 회사가 IT 회사이고 SW를 사업에 활용하고 있다. 오픈 소스(Open Source)와 클라우드(Cloud) 환경에서는 스타트업 회사부터 대기업에 이르기까지 모두가 경쟁자가 되는 시대이기도 하다.

포레스터(Forrester)에 따르면 "새로운 제품이나 서비스가 나오는 즉시 이를 구매하려는 소비자의 욕구가 10년 전보다 5배 높아졌다."고 한다. IT 소비자의 기대치가 날로 높아지면서 새로운 애플리케이션과 기능을 빠르게 제공할 수 있는 문화와 프로세스를 갖추는 것이 기업의 과제가 되었다. 이러한 추세에 따라 SW 개발자와 정보기술관리자 사이의 협업을 지원하는 데브옵스(DevOps)의 유용성이 주목 받고 있다.

데브옵스란 SW의 개발(Development)과 운영(Operations)의 합성어로서, SW 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 뒷받침하는 개발 환경을 말한다. SW 제품과 서비스를 빠른 시간 내에 안정적으로 개발하고 배포할 수 있도록 해준다. 최근 데브옵스를 도입하는 기업들이 증가하고 있고 가트너(Gartner)에 따르면, 2016년에 글로벌 2,000 기업의 25%가 데브옵스를 도입해 활용할 것이라고 전망하였고 현재는 전 세계 기업의 약 10%가 SW 개발부터 릴리즈까지 자동화하는 데브옵스 솔루션을 구축했지만 2020년에는 약 50% 이상이 구축할 것으로 예상하고 있다.

▲ DevOps Toolchain


▲ DevOps Diagram


데브옵스의 기대효과


데브옵스를 활용하면 많은 효과를 기대할 수 있다.

첫째, 개발 프로세스 중 반복작업을 자동화하여 업무를 효율적으로 수행할 수 있다. 기초데이터를 다양한 관점으로 분석하여 빠르고 효과적으로 전략을 수립할 수 있게 된다. 자동화되지 않은 검증 요청, 승인, 배포 단계에서 발생하는 업무지연을 방지할 수 있다.

둘째, 사내 모든 프로젝트를 실시간으로 모니터링하여 프로젝트의 진행 방향에 대한 예측이 가능하다. 프로젝트를 자동화하여 개발자, QA, 관리자에게 실시간으로 피드백을 제공할 수 있으므로 24시간 자동화 서비스를 제공할 수 있다.

셋째, SW의 빌드, 테스트, 배포에 대한 종합적인 대응이 가능하므로 품질을 향상시킬 수 있다. 통합 검증을 실시간으로 자동화함으로써 코드 내 버그를 완벽하게 제거할 수 있다. 또한 공동 프로젝트 수행 시에도 동일한 테스트 전략을 적용할 수 있어 품질 향상에 기여할 수 있다.
 

데브옵스 자동화 솔루션

일렉트릭플로우(ElectricFlow)는 엔드-투-엔드(End-to-end) 데브옵스 플랫폼으로 빌드-테스트-배포에 이르는 SW 개발 프로세스를 자동화해준다. CI(Continuous Integration, 지속적 통합), CD(Continuous Delivery, 지속적 배포), ARA(Application Release Automation, 어플리케이션 릴리즈 자동화), 데브옵스까지 단계적으로 적용 가능하다.

별도의 데이터 마이그레이션 작업이 불필요하기 때문에 안정성을 확보할 수 있다. 개발 전 기간 동안 통합 관리가 가능한 대시보드를 제공할 뿐만 아니라 각 작업 단위 및 개발자원의 보안을 지켜준다. 일반 서버, 가상기기, 클라우드 등 다양한 리소스에도 작업을 동시에 할당할 수 있다.

일렉트릭플로우는 젠킨스(Jenkins)를 비롯한 오픈소스 도구들이 불가능한 엔터프라이즈급 규모의 프로젝트에도 적용 가능하다. 개발/테스트/배포/운영부서 간 업무를 동기화할 수 있고 유지보수가 용이한 점이 특징이라 할 수 있다.

▲ 일렉트릭플로우를 개발한 미국의 일렉트릭 클라우드 사가 어플리케이션 릴리즈 자동화 부분 리더로 선정됐다. (출처: 가트너 2016)

 
 

 데브옵스 자동화 솔루션(ElectricFlow) 적용사례
 

(1) 화웨이(Huawei)
① 문제점
: 화웨이 R&D 연구소는 수천 개의 CPU 코어가 필요한 복잡한 시스템을 가지고 있었다. 빌드 주기 2시간, 테스트 5시간, 컴파일과 빌드 환경 제공하는 데 8시간, 테스트 환경을 구성하기 위해서는 10시간이 소요됐다. 개발 및 테스트 환경 구축에 소요되는 시간이 너무 길어 R&D 연구소의 리소스 활용률이 저조했다.

② 해결 방안
: 개발 및 운영 과정에서 품질을 향상시키는 지속적 배포(CD) 방법을 도입하여 리소스 사용률을 높였다. 프리플라이트(Preflight)를 시작으로 빌드, 테스트 및 배포 작업 흐름을 최적화했다. 또한, 통합 현황판을 만들어 전체 엔지니어닝 과정의 모든 리소스와 도구(Jenkins OpenStack, Docker, Chef)등을 모니터링하고 운영했다.

③ 도입 효과
- 하루에 50,000회 컴파일 & 빌드
- 하루에 복잡한 3,000회 이상의 LOC(Lab On a Chip)를 포함한 1억 개의 테스트 케이스 실행
- 연간 480,000건 이상의 코드 검토와 분석, 170,000건 이상의 시스템 통합 테스트 완료
- 연간 2,000회 이상의 배포

④ 향후 계획
: 현재 화웨이에 1,000명이 넘는 개발자가 일렉트릭플로우를 사용하고 있으며, 앞으로 10,000명 이상이 사용할 계획이다. 일렉트릭플로우를 통해서 서비스되고 있는 응용 프로그램은 20개 이상인데, 향후 1,000개 이상의 서비스를 계획하고 있다.

(2) CMS(Centers for Medicare & Medicaid Services)
- 미국 보건복지부의 주요 연방 의료 프로그램 운영을 담당하는 기관

① 문제점
: CMS는 지리적으로 분산되어 있는 수백 명의 애자일(Agile) 개발자가 다양한 어플리케이션 제품과 서비스를 개발하고 있었다. Maven, Junit, TestNG 및 Selenium을 포함하여 가상화 및 클라우드 환경에 배포되기 전에 복잡한 도구 조합을 사용하여 응용 프로그램을 빌드, 테스트, 배포하였다. 개발자가 소스를 기록하고 SW를 배포하기까지 3개월 정도 소요되었다.

② 해결 방안
: CMS는 일렉트릭플로우 도입 후 225개가 넘는 어플리케이션 개발, 테스트, 리소스 공유 및 제어, 파이프라인에 대한 가시성을 제공한 결과 프로세스 오류를 감소시킬 수 있었다. 반복적으로 발생하던 오류에 대한 수동 작업이 제거되어 예측 가능성과 안정성이 개선되었다.

③ 도입 효과
: 그 결과 애플리케이션 배포를 수행하는 데 필요한 인원이 줄어들어 연간 약 225,000 달러를 절약하게 되었다.


(3) Urban Science


① 문제점

: Urban Science는 20개 이상의 SW를 개발하는 회사로, 서로 다른 환경을 가진 6개의 주요 데이터 센터를 전 세계에 보유하고 있다. 이러한 복잡성과 규모 때문에 개발 및 운영팀에 컴퓨팅 환경 표준을 동일하게 적용하기 어려웠고 설치 절차도 복잡하고 길었다. 이에 Urban Science는 확장성, 일관성, 효율성, 편의성을 높이고 배포 프로세스를 간소화하고자 하였다.
 

② 도입 효과
: Urban Science는 일주일에 12번 ~ 40번 배포하였고, 자동화로 인해 배포에 필요한 인력을 78% 줄였다. 프로세스 오류는 감소하고 오류가 발생하기 쉬운 수동 작업이 제거되어 예측 가능성과 안정성이 향상되었다. 더욱 많은 배포와 테스트를 수행하고, 2개월 이내에 ROI를 달성했다.


데브옵스가 성공적으로 정착하기 위한 고려사항

데브옵스가 성공적으로 정착하기 위해서는 몇가지 고려해야할 사항이 있다.

첫째, 협업 문화부터 구축해야 한다. 데브옵스 문화가 성공하기 위해서는 개발자, 테스터, 운영자가 한 데 모여 SW 개발단계 전반에 관여하고 협업, 소통, 통합하는 것이 중요하다. 데브옵스를 구현하는 작업엔 프로세스의 변화와 최적의 도구를 통합하는 단계가 필요하다. 이 단계에서 기존의 업무 환경에 익숙한 기업은 변화에 어려움을 겪을 수도 있지만 자동화를 위해 새로운 프로세스와 도구를 받아들이고 서로 협업하는 문화를 조성하기 위해 노력해야 한다.

둘째, 자동화가 중요하다. CI, CD 등의 반복적인 작업을 빌드, 테스트, 배포 자동화 툴을 이용해서 작업해야 한다. SW의 개발부터 출시까지 과정을 자동화하면 반복작업에 투입하는 시간을 줄이고 작업의 효율을 높일 수 있다. 뿐만 아니라 자동화는 빠르고 안정적인 SW 출시 및 업데이트를 가능하게 한다. 단순 반복작업을 자동화함으로써 기업의 중요한 인적자원이 창의적이고 혁신적인 일에 집중할 수 있는 환경을 조성할 수 있다.

마지막으로, 플랫폼이 중요하다. 다양한 오픈소스 개발도구를 사용하고, 이들을 프로세스와 결합할 때 SW 개발 프로젝트를 일관된 방식으로 통합하고 제공하는 플랫폼이 필요하다. 따라서 데브옵스 플랫폼에는 CI, CD 등의 프로세스를 파이프라인을 통해 지속적으로 형상관리, 버전화, 빌드, 테스트, 배포, 산출물 관리할 수 있는 기능이 포함되어 있어야 한다.

갈수록 높아지는 고객의 기대 수준에 맞추어, SW의 새로운 기능을 빠르게 제공하기 위한 유연성과 민첩성을 확보할 수 있는 데브옵스에 대한 관심과 수요는 더욱 커질 것이다. 데브옵스를 통해 SW 개발 과정에서 단순하고 반복적인 업무를 자동화함으로써 기업은 더욱 창의적이고 혁신적인 일에 몰두할 수 있을 것이다. 그 결과 SW 품질은 더 우수해지고 출시는 더욱 빨라질 것이다. 결국 IT 시장에는 데브옵스를 성공적으로 도입한 기업만이 살아남을 것이다.
 

저작권자 © 아이티데일리 무단전재 및 재배포 금지