메뉴 건너뛰기

이 문서는 http://xebia.com/의 Whitepaper인 "Introducing Continous Delivery in the Enterprise"를 참고하여 작성되었습니다. 

오늘날 현실

 불과 몇년전까지만 하더라도, 사람들은 인터넷의 서비스를 즐기기 위해 컴퓨터를 이용해야 했다. 오늘날 사람들은 스마트폰, 테블릿, 탭 등을 통해 언제 어디서든 원하는 시간에 인터넷을 사용한다. 이러한 환경 변화는 인터넷 서비스를 제공하는 회사들과 이 서비스를 사용하는 사용자들 사이를 하나로 만들게 되었다. 이러한 현상은 앞으로 향후 몇 년간 계속적으로 성장하게 될 것이다. 

 이제, 인터넷 서비스 사용자들은 언제 어디서든 최신의 고품질의, 신뢰성 높은 서비스를 기대한다. 사용자들은 언제든지 문제나 버그를 발견하며, 앱스토어나 다른 온라인 서비스에 해당 버그의 내용을 작성할 수 있다. 이는 회사의 입장에서 보았을 때, 즉각적으로 새로운 기능이나 업데이트를 추가해야하는 압박이 될 수 있다. 이제는 과거보다 더 빠르게 배포할 수 있어야하며, 더 많은 것을 예견할 수 있어야 한다. 많은 기업에서 개발, 배포, 딜리버리와 관련된 새로운 접근을 시도하지만 이는 간단하지 않은 문제이며, 사업을 하는데 있어 중요한 문제임에 분명하다. 

도전 과제는 무엇인가?

 대부분의 소프트웨어 회사에서 제품을 딜리버리는 하는 것은 시간을 소모하고, 스트레스를 만들고, 비용을 발생하게할 것이다. 어플리케이션의 딜리버리 후에는 고객들로부터 당장 이슈가 나타나고, 또 이를 수정하기 위해 IT 조직은 고전하게 된다. 이는 예정에 없던 비용을 만드는 요인이되고 있다. 

 일반적으로 소프트웨어 릴리즈는 시간과 비용을 만드는 리스크를 가진 신뢰할 수 없는 절차이다. 오늘날 시장에서 경쟁하고 살아남기 위해서는, 릴리즈 프로세스를 자동화하여 고품질의 소프트프웨어가 지속적으로 딜리버될 수 있게 하는 것은 매우 중요하다. 이는 몇일이 아니라 몇 시간안에 우리의 새로운 기능과 업데이트를 시장에 출시할 수 있는 프로세스이어야 한다. 

 무엇보다 중요한 것은 더 좋은 품질의 소프트웨어를 더 빨리, 더 저렴하게 출시할 수 있어야 한다. 

그렇다면, 지속적인 딜리버리(Continuous Delivery)는 무엇인가?

 지속적인 딜리버리(Continuous Delivery)는 회사의 아이디어를 소프트웨어 제품으로 가능한 빠르고 효율적으로 적용하는 목적의 소프트웨어 딜리버리 전략이다. 이는 프로젝트의 초기에 고객과 함께 비즈니스의 다양한 사항들을 검증할 수 있게 해준다. 기존의 자동화되지 않은 방법의 딜리버리보다 더 빠르게 고객이 아이디어를 확인할 수 있게 된다.

continuousDelivery.jpg

 일반적으로 수동으로 진행하는 딜리버리 프로세스는 에러가 발생하기 쉽다. 이는 개발자의 영역도 아니며, 다양한 문제가 발생하기 때문에 신뢰도가 떨어지는 프로세스이다. 이러한 프로세스를 자동화된 딜리버리 파이프라인(Pipeline)으로 만들어서 딜리버리를 신뢰할 수 있는 프로세스로 만드는 것이다. 

자동화된 딜리버리 파이프라인(Delivery Pipeline)은 무엇을 의미하는가?

  • 소스 코드는 중앙 형상관리 도구에서 관리된다. 
  • 컴파일 및 코드의 패키지는 완전히 자동화된 방식으로 중앙 저장소에서 수행된다.
  • 소프트웨어의 테스트는 자동화되고, 이 자동화된 테스트는 프로세스의 필수적인 부분으로 간주한다.
  • 어플리케이션은 자동화된 방법으로 하나 이상의 환경(End-To-End)로 배포된다. 
  • 딜리버리는 서버의 버튼을 눌러 진행하거나 중지된다. 
  • 명확한 품질에 초점을 맞춘 상태보고서가 제공된다.

지속적인 딜리버리는 어떻게 구성하는가?

지속적인 딜리버리(Continuous Delivery)를 지원하는 딜리버리 환경은 다음과 같은 세 가지 메커니즘으로 구성될 수 있다. 
  • 지속적인 통합(Continuous Integration)이 매커니즘은 중앙저장소에 지속적으로 코드가 통합되고 테스트되고 배포할 준비가 된다. 이때 코드는 변경 시 마다 통합되고, 테스트는 컴파일 시 자동으로 실행된다. 
  • 어플리케이션 릴리즈 자동화(Application Release Automation) 어플리케이션 릴리즈 자동화는 개발 조직과 오퍼레이션 조직 사이의 브릿지 역할을 한다. 개발 조직은 형상관리 서버에 자동화된 트리거 기반의 배치 유닛을 제공한다. 이는 자동화된 가드나 컨디션에의해 제어된다. 오퍼레이션 조직은 이를 통해, 표준화된 게이트웨이를 쉽게 사용함으로써, 인스톨과 각 컴포넌트들(서버, 데이터베이스, 서비스, 버스 등)을 구성하는 업무를 줄일 수 있다. 어플리케이션 릴리즈 자동화를 통해 배포는 몇 시간이 아니라 몇 분 만에 진행될 것이다. 
  • 프로비저닝(Provisioning)프로비저닝은 서버에 코드의 빌드 블록을 자동으로 설치하고 시스템을 구성하기 위해, 서비스 관리 및 오퍼레이션 조직에의해 사용된다.

Who's PSEG

profile

PSEG는 Practical Software Engineering Group의 약자입니다. 

이론을 넘어 실용적으로 활용할 수 있는 소프트웨어 공학을 공유하는게 그룹의 목적입니다.

Atachment
첨부 '1'
?

 


  1. Martin Fowler가 말하는 지속적인 통합(Continuous Integration)

    조금 오래된 자료이긴 하나, 카페 자료를 옮기면서 유용하고 기억해두면 좋을 것 같아 남깁니다. 다양한 애자일 베스트 프랙티스 중 하나인 지속적인 통합 즉, CI(Continuous Integration)는 하나의 트랜드를 넘어서, 프로젝트에서는 필수 요소로 자리 잡았...
    Date2014.05.07 ByPSEG Reply0 Views5636
    Read More
  2. 지속적인 딜리버리(Continuous Delivery)의 소개 - 2부

    이 문서는 Xebia(http://xebia.com/)의 Whitepaper인 "Introducing Continous Delivery in the Enterprise"를 참고하여 작성되었습니다. 이번 문서는 1부에 이어 지속적인 딜리버리를 해야하는 이유를 지속적인 딜리버리가 적용되지 않았던, 전통적인 개발 방...
    Date2014.04.30 ByPSEG Reply0 Views4757
    Read More
  3. 지속적인 딜리버리(Continuous Delivery) 소개 - 1부

    이 문서는 http://xebia.com/의 Whitepaper인 "Introducing Continous Delivery in the Enterprise"를 참고하여 작성되었습니다. 오늘날 현실 불과 몇년전까지만 하더라도, 사람들은 인터넷의 서비스를 즐기기 위해 컴퓨터를 이용해야 했다. 오늘날 사람들은 ...
    Date2014.04.30 ByPSEG Reply0 Views5352
    Read More
  4. INCOSE 요구사항 관리 도구 비교 조사

    INCOSE는 국제 시스템 엔지니어링 협회이다. 시스템 엔지니어링을 위한 핸드북, CASE 도구 조사, 교육, 시스템 엔지니어링 전문 자격 검증 등의 다양한 역할을 수행하고 있는 협회이다. 이번 포스트에서는 시스템 엔지니어링 협회의 도구 데이터베이스에서 요...
    Date2014.04.30 ByPSEG Reply0 Views6680
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4