DevOps/DevOps

클라우드 서비스 개발 및 전달 프로세스 - DevOps 역할

chanstory 2022. 11. 30. 15:53
반응형

* 클라우드 서비스 개발 및 전달 프로세스 ( CI/CD 파이프라인 (지속적 통합 / 지속적 전달) )

=> 지속적 배포 (Continuous Deployment) = Plan -> Code -> Buile -> Test -> Release -> Deploy -> Operate

=> 지속적 배포 = 지속적 통합 (주로 Dev팀 역할) + 지속적 전달 (주로 Ops팀 역할)

                        = 지속적 배포란, 모든 코드의 변경이 배포로 이어지는 것

=> 지속적 통합 (Continuous Integration)  = Code -> Build -> Test

      - 지속적 통합 단계에서 기능 테스트 및 버그 수정을 반복하며 안정적인 배포가 가능하도록 한다.

=> 지속적 전달 (Continuous Delivery) = Test -> Release -> Deploy -> Operate

      - 안정적인 배포를 위한 단계를 진행한다.

 

1. Plan : 개발하고자 하는 서비스에 대한 기능, 개발기간, 빌드 및 테스트 기간, 테스트에 대한 항목화 (장애 대응시 책임전가 방지) 등 Dev(개발)팀과 Ops(운영)팀간의 의사소통을 통해 서비스를 기획하는 단계

 

2. Code : 개발자가 소스코드를 작성하고 작성된 코드를 코드 저장소에 Push 한다.

 

3. Build : 코드 저장소로 부터 코드를 가져와 유닛테스트 후 빌드 한다. 

 

4. Test : Build 완료 된 코드를 Dev팀과 Ops 팀 각각 동작 및 기능에 대한 테스트를 진행 한다.

               (두팀 다 개별로 진행하여 미흡한 부분을 보충하는것이 좋다고 생각함)

 

5. Release : 배포 가능한 소프트웨어 패키지를 작성한다. (Test 완료 된 빌드 중 배포에 적합한 빌드를 선정한다.)

 

6. Deploy : 프로비저닝을 진행하고, 서비스를 사용자에게 노출한다. 

                   (프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 미리 할당해놓는 작업, 필요에 따라 즉시 사용할 수 있도록 함)

 

7. Operate : 서비스를 모니터링 및 관리하며 발생한 이슈에 대한 대응을 진행한다. 

 

 

 

* 소프트웨어 조직의 팀 구성과 목표

=> 개발팀 (Dev)

      - 잦은 배포와 업데이트, 애플리케이션을 통한 쉽고 빠른 새로운 기능 제공

=> 운영팀(Ops)

      - 프로덕션 앱의 안정성, 애플리케이션이 아닌 인프라 관리, 모니터링 및 제어

         (프로덕션 앱 : 고객들이 사용할 수 있는 안정적인 공식 버전)

 

 

* Dev팀과 Ops팀 간의 상충되는 부분에 대한 문화적으로 풀어야 할 부분

=> Plan 단계에서 개발 및 운영 담당자들간의 개발 서비스, 개발 기간, 빌드 및 테스트 기간 등에 대하여 각 팀간의 타협점을 찾는 원활한 의사소통 과정이 필요합니다.

=> 서로 간의 개발 및 개선 가능한 부분에 대한 이해도가 필요합니다.

=> 공통으로 해당하는 Test 업무에 필요한 부분을 항목화 하여 이후 발생하는 기능 장애에 대한 서로간의 책임전가를 방지합니다.

 

 

반응형