Tech Blog
2009년, 애자일(Agile) 실무자 패트릭 드부아(Patrik Debois)가 개발팀과 운영팀 간의 장벽을 제거하고 화해하는 DevOpsDay를 설립한 이후 15년이 지난 지금 DevOps는 IT 업무에 필수적인 요소가 되었습니다. 이번 포스팅에서는 데브옵스의 필요성, 그리고 그 운영에 도움을 주는 CI/CD 솔루션에 대해 알아보겠습니다. 전통적인 애플리케이션 운영관리, 불안하지만 이대로 괜찮을까요? [Issue]- 전통적인 애플리케이션의 운영관리 구조만을 유지하는데 만족- 배포담당자가 배포 시 누락과 오류 없이 배포한다는 확신 없음- 애플리케이션 운영 시 시한폭탄과 같은 다수의 수작업 방치 수작업이 많은 애플리케이션 라이프사이클 운영 관리는 고객의 요구사항에 대한 납기일을 정확히 제시할 수 없습니다. 개발자가 요구사항 반영을 위해 개발 시 소요되는 시간, 개발 완료된 소스를 개발자가 수동으로 소스취약점을 점검하는 시간, 배포 담당자가 취합된 소스코드를 통합 빌드하는 시간, 그리고, 운영환경에 배포하는 시간까지 전체 시간은 늘 일정하지 않아 납기일 가시화가 어렵습니다. 결국 Lead time은 항상 낭비되는 시간을 포함합니다. 신속하고 정확한 납기를 보장할 수 없습니다. 배포 이후, 이미 배포한 Artifact 파일을 관리하는 체계가 없는 경우도 있습니다. 특정 폴더에 날짜별로 관리하기도 합니다. 이 경우, 운영 환경 롤백을 위해서 어떻게 해야 할까요? 폴더명에 의존해서 Artifact 파일을 다시 배포환경으로 배포해야 합니다. 이처럼, 다수의 수작업들은 여러 부정적인 결과를 낳을 수 있는 위협이 됩니다. 매주, 매월 반복적인 빌드/배포를 진행하는 작업에서, 휴먼 에러를 항상 시한폭탄처럼 짊어지고 운영을 하고 있는 것이나 마찬가지인 셈입니다. 기업 경쟁력 확보를 위한 IT 현대화! DevOps는 왜 필요할까요? 빠르게 변화하는 비즈니스 환경에 대응하기 위한 IT 환경은 다양한 변화의 단계를 동시에 포함하고 있습니다. 이제 클라우드는 신기술로 분류하기 어려울 만큼 범용적인 IT 인프라로 자리잡았습니다. 컨테이너와 마이크로서비스 아키텍처로 대변되는 클라우드 네이티브 환경도 비즈니스 가치나 구현 가능성, 타당성에 대한 기술적인 평가가 완료되었습니다, IT 현대화는 지속적인 개선의 여정입니다. 이를 위해서는 소프트웨어 아키텍처, 방법론(Methodology), 인프라스트럭처 등 3가지 영역에 대한 변화가 필요합니다. 또한 마이크로서비스, 데브옵스, 클라우드, 지속적 배포(Continuous Delivery)의 4가지 원칙이 갖춰질 때 ‘클라우드 네이티브’하다고 정의(CNCF) 할 수 있습니다. 다양한 소프트웨어 아키텍처 기반의 애플리케이션을 분산된 인프라 환경에 배포하기 위해, 데브옵스 파이프라인을 CI/CD 도구로 구성할 수 있습니다. * CI/CD란, 개발자들이 효율적으로 협업하고, 안정적인 코드를 만들며 빠르게 사용자에게 제공할 수 있도록 하는 개발 프로세스를 말합니다. CI는 여러 개발자들이 함께 작업하는 동안 변경된 코드들이 하나의 소프트웨어 시스템으로 주기적 통합되는 것을 말하고, CD는 테스트를 거친 코드 변경 사항이 프로덕션 환경으로 자동 배포되는 것을 뜻합니다. CI/CD는 자동화와 지속적인 감시를 통해 소프트웨어의 개발/배포의 효율성을 높입니다. 더불어 품질과 보안 측면에서 높은 수준의 신뢰성을 확보할 수 있도록 합니다. 많은 기업들이 IT 현대화를 위한 자동화 도구로 CI/CD 도구 도입을 시도합니다. 하지만 제일 먼저 ‘수십, 혹은 수백 개에 달하는 CI/CD 서드파티(Third Party) 솔루션 중 자사에 적합한 솔루션은 무엇인가?’라는 큰 벽에 부딪힙니다. 결국, 담당자는 유행하는 CI/CD 도구를 이것저것 연결해서 사용하게 됩니다. CI/CD 도구 도입 이후에도 여전히 경험하게 되는 어려움 - 다양하고 복잡한 CI/CD 도구를 개별 관리하며 고급 인력을 낭비하는 사례- 다양한 배포 환경별 빌드/배포 파이프라인을 이력 관리 없이 실행하는 사례- 운영환경 배포 시 승인 프로세스 연동이 단절된 사례 CI/CD 도구를 도입하여, 휴먼 에러를 방지하고, 납기일을 보장하는 민첩한 애플리케이션 개발주기 관리를 위한 시도는 또 다른 큰 산을 만나게 됩니다. 다양한 CI/CD Tools 사용은 개별로 상이한 UI와 권한체계, 개별 사용자 등록의 복잡성으로 인한 운용의 어려움을 가져옵니다. 지속적인 자동화를 위해 파이프라인 스크립트를 작성하지만, 표준화하기 어렵고 형상관리 되지 않아 잘못 수정된 스크립트로 실행되기도 합니다. 운영 환경 배포를 위한 승인은 구두로 진행되거나, 인과관계가 없는 시스템에 등록하는 정도이며, 실제 배포를 제어할 수 있는 방법은 없습니다. 애플리케이션의 오류 및 개선사항에 대해서 누가, 언제, 무엇을 요청했고, 누구에 의해 개발되고, 해당 요청사항과 연결하여 누가, 언제, 무엇을 빌드/배포했는지 등 CI/CD 전체를 모니터링하기 어렵게 되기도 합니다. MetaDesk+CICD 솔루션을 활용하여 데브옵스 장애물 극복하기! 서비스 데스크 솔루션 MetaDesk와 데브옵스 도구 솔루션 MetaCICD를 통해, 고객의 다양한 요청사항을 누적관리하고 신속·정확한 납기를 제공할 수 있습니다. MetaDesk는 기존 복잡했던 ITSM 솔루션과 달리, 웹/모바일을 통해 언제 어디서나 쉽고 빠르게 티켓(서비스요청, 장애)을 등록하여 처리 요청할 수 있습니다. 다양한 솔루션을 보유하고 있는 유지보수 조직에서 하나의 플랫폼을 통해, 여러 고객의 요청사항을 신속하게 대응하고 해결 가능합니다. [MetaDesk의 특징]- Mobile & Web을 활용한 고객의 접근성을 강화합니다. - 대시보드 및 개인 알림 설정 기능을 활용하여 개인화 서비스를 제공합니다. - 워크플로우 생성 기능을 활용하여 고객별 다양한 업무 프로세스를 즉시 적용 가능합니다. - 변경이력 누적 관리 기능, 사용자별 작업 로그 관리 기능을 활용하여 보안 감사 기준 적합도를 향상시킵니다. MetaCICD는 복잡하고 다양한 데브옵스 도구들을 통합된 단일 UI 콘솔로 관리합니다. 클라우드 네이티브 애플리케이션을 구축 및 운영하는 시스템을 안정적이고 심플하게 릴리즈하는 CI/CD 도구 서비스를 제공합니다. [MetaCICD의 특징]- 고객의 요청부터 애플리케이션 납기까지 티켓 주도 개발(TiDD) 서비스를 제공합니다. - 칸반(Kanban) 보드를 활용한 전체 업무 시각화를 통해 생산성을 향상시킵니다. - MetaDesk와 MetaCICD 통합 기능으로 빌드/배포 승인 프로세스를 지원합니다. 전통적인 애플리케이션 운영관리의 단점을 극복하기 위해 IT 현대화는 필수적입니다. CI/CD 도구의 도입은 클라우드의 활용을 극대화하고, 개발 및 운영의 편의를 제고할 수 있습니다. 하지만 기업에 적합한 솔루션에 대한 고민이 없다면, 결국 다양하고 복잡한 CI/CD 툴 체인에 매몰되는 결과를 낳게 될 수 있습니다. MetaDesk와 MetaCICD 솔루션은 기업 내에 안정적인 데브옵스 문화를 정착시킬 수 있는 안정적이고 심플한 통합 UI 콘솔입니다. MetaDesk와 MetaCICD에 대해 더 자세히 알아보고 싶다면, 메타넷디지털과 상담하세요!
2024.06.04