* 클라우드 서비스 개발 및 전달 프로세스 ( 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 업무에 필요한 부분을 항목화 하여 이후 발생하는 기능 장애에 대한 서로간의 책임전가를 방지합니다.
'DevOps > DevOps' 카테고리의 다른 글
[Mac OS]HTTP 요청 메소드 및 상태코드 (Postman, OpenWeatherMap 사용) (0) | 2022.12.10 |
---|---|
HTTP Message 구성 및 특징 (0) | 2022.12.08 |
클라이언트 - 서버 아키텍처 (2티어 아키텍처, 3티어 아키텍처, API) (0) | 2022.12.06 |
클라우드 서비스에 대한 규모 확장의 종류 (수직확장, 수평확장) (0) | 2022.11.30 |
전통적 소프트웨어 전달 방식과 클라우드 서비스 전달 방식의 비교 (0) | 2022.11.30 |