본문 바로가기
개발 방법론/DevOps의 개념

[DevOps] DevOps의 이해

by VictorMeredith 2023. 4. 7.

1. DevOps의 이해

DevOps

- 데브옵스는 기술적인 부분만 이야기하지 않는다.

- 데브옵스는 문화이자 개발과 운영철학, 운동이다.

- 개발팀, QA팀, 운영팀 각각의 목표와 목적이 다르고, 우선순위가 다르므로 다양한 문제가 발생한다.

- 조직에서는 다양한 문제와 직면해있다.

  예를 들면, 빠른 배포요구, 자동화 구축, 모니터링 프로세스의 구축, 변경사항 관리의 표준화, 빠르게 변경사항 구현 및 전달

 

2. 폭포수 모델

- 소프트웨어 개발을 위해 순차적인 앱 설계 프로세스를 따른다.

- 좋은 통제 수단을 갖지만, 수정능력이 부족하다.

- 목적 기반의 개발 방법론이다.

- 내용 : 요구사항분석 -> 설계 -> 개발 -> 테스트 -> 배포 -> 유지/보수

- 장점 : 이해가 쉽다, 관리가 쉽다, 순차적 프로세스다(순서가 유지된다), 통제에 좋다.

- 요구사항이 미리 정의되고 고정된 시나리오에서만 유용하다.

- 엄격한 모델이므로, 임의의 단계로 돌아가 수정하는 것이 불가능하다.

- 단점 : 수정이 불가, 모든 단계 완료까지 결과물이나 패키지가 없다, 모든 단계 완료까지 피드백 통합이 불가능하다, 요구사항의 변경에 적합하지 않다, 장기적이고 복잡한 프로젝트에 적합하지 않다.

 

2. 애자일 모델

- 개인에게 권한을 부여하고 상호작용을 장려하며 동작하는 소프트웨어와 고객과의 협력과 효율적인 방법으로 변화에 대응하는데 중점을 두고 앱을 구축하는 방법론이다.

- 짧은 타임라인이나 스프린트 내에 특정 기능에 대한 작은 규모의 상호작용 속에서 지속적인 전달을 통한 고객만족을 강조한다.

- 이터레이션을 갖는 애자일 모델 : 요구사항 분석 -> 설계 -> 개발 -> 테스트 -> 배포 까지의 단계를 일부의 기능을 갖고 동작하는 애플리케이션과 그에 대한 피드백을 단위로 계속 반복하며 구축된다. (스플린트)

- 혜택 : 애자일 팀에서 스프린트라는 짧은 시간프레임에서의 지속적인 전달.

- 각 스프린트 이후 앱의 버전은 공개할 준비가 일부 기능을 갖는다.

- 각 앱의 버전은 데모를 위해 특정 환경에 배포되어야 한다. (여러번 배포한다.)

- 더 효율적으로 되기 위해 교차기능팀간의 의사소통과 협력은 필수이다.

- 애자일모델에서는 고객에 중점을 두며 피드백이 중요하다는 점을 이해해야 한다.

- 변경은 고객의 피드백을 기반으로 발생된다.

- 클라우드 컴퓨팅과 데브옵스가 모델의 프로세스 순차전달에 대한 속도를 증가시켰고, 최종제품의 품질을 향상시키는 탄력을 얻게 되었다.

 

3. 협력

- 데브옵스는 파트너십을 개발해 개발팀과 운영팀 사이의 차이를 채우려는 목적이 있다.

- 데브옵스는 지속적인 통합과 출시에 대한 애자일 운동의 지속적인 개발 목표를 확장한다.

- 데브옵스는 클라우드 솔루션의 혜택을 활용하는 애자일 실천 방법과 프로세스의 조합이다.

- 데브옵스는 다양한 팀과 이해당사자로부터 계속되는 피드백을 위한 메커니즘을 제공한다.

- 애자일과 데브옵스는 서로 호환되며 서로의 가치를 증가시킨다.

- 개발팀은 앱 전달 사이클의 시작부터 배포 스크립트, 진단, 부하 테스팅, 성능 테스팅 같은 운영 요구사항을 지원한다. 또한 운영팀은 관련 지식과 배포 전/후 피드백을 제공한다. 즉, 테스팅, 배포, 출시 활동을 개발 프로세스에 통합하는 것이 핵심이다.

 

4. 클라우드컴퓨팅 - 파괴적 혁신

- 모든 환경에서 인프라스트럭쳐를 관리함에 있어, 가상화와 클라우드는 이러한 일을 시작하는 데 도움이 된다.

- 클라우드 컴퓨팅의 출현과 더불어 자동화를 이용해 앱이 사용하는 인프라스트럭쳐의 모든 부분이 쉽게 다시 생성될 수 있게 되었다.

- 이는 운영시스템, OS, 런타임구성, 인프라스트럭쳐, 기타사항이 모두 관리 될 수 있다는 의미이다.

- 클라우드에 대한 데브옵스는 애자일 개발과 클라우드 솔루션 모두에서 최사의 솔루션을 가져온다.

- 이것은 클라우드에서 분산 애자일 환경을 제공하는데 도움이 되며, 지속적으로 신속한 전달을 유도한다.

 

5. 왜 데브옵스 ?

- 최종목적은 지속적인 개선이다.

- 디자인 패턴을 견고하게 만드는 경험과, 프로세스 오류를 최소화 한다.

- 수동작업 최소화 -> 자동화

- 다양한 환경에 대한 배포 자동화와 표준화된 구성 관리

- 기민성을 보장하기 위한 비즈니스 조직과 IT조직의 협력

- 새로운 기능의 빠른전달과 문제 해결

- 특성/기능 전달에 대한 높은 수준의 품질

- 기본 비즈니스 프로세스에 대한 더 나은 관리

- 새로운 아이디어의 지속적인 개발로 인한 지속적인 혁신

- 더 나은 중복/장애 극복/빠른 복구

- 앱 개발 수명주기 관리를 위한 협력, 관리, 보안

- 향상된 가시성을 갖는 효율적인 자원의 사용, 클라우드 자원을 이용하는 기술 비용에 대한 투명성

 

6. 데브옵스 수명주기 : '지속적인' 키워드

- CI : 지속적인 통합 : 빌드 자동화, 단위 테스트, 패키징 프로세스를 포함한다.

- CT : 지속적인 테스트

- CD : 지속적인 배포 : 다양한 환경에 걸친 앱 전달 파이프라인에 관심을 갖는다.

- 이를 통해 빌드/테스트 코드 분석과 같은 다양한 단계에 걸친 자동화를 통해 개발 프로세스를 가속화한다.

 

댓글