카테고리 없음

DevOps란 무엇인지

yepil 2023. 2. 23. 23:58

 

 

DevOps Engineer

(Dev 개발 + Ops 운영)

- 서비스를 통해 사용자에게 가치를 제공할 수 있도록 개발부터 배포까지의 과정을 운영 측면으로 바라보고 속도를 높이는 접근방식

- DevOps 문화에서는 개발과 품질 보증, 운영이 겹치는 기능교차적(cross-functional) 역할을 수행

- DevOps 문화에서 자동화는 필수적

 

 

개발팀(Dev)의 목표운영팀(Ops)의 목표

개발팀(Dev)
- 잦은 배포와 업데이트
- 애플리케이션을 통한 쉽고 빠른 새로운 기능(리소스) 제공
목표운영팀(Ops)
- 프로덕션* 앱의 안정성
- 애플리케이션이 아닌 인프라 관리
- 모니터링 및 제어

*프로덕션 앱: 

소프트웨어를 출시할 때 베타 버전, 개발자 버전이 있듯, 프로덕션은 고객들이 사용할 수 있는 안정적인 공식 버전을 의미합니다. 예를 들어, 구글에서는 안드로이드 앱을 출시할 때, 다음과 같은 버전 기준을 따라 배포하도록 안내하고 있습니다.

 

 

 

서비스가 사용자에게 전달하는 방법

1. 새로운 서비스를 기획한다

2. 개발자가 코드를 작성한다

3. 어디든 전달가능하도록 서비스를 포장한다

4. 서비스가 잘 작동하는지 테스트한다

5. 버전넘버 붙이고, 베타서비스를 시작한다

6. 정식버전을 내놓는다

7. 트래픽을 모니터한다

plan - code - build - test - release - deploy - operate 

 

 

CI/CD 파이프라인을 이용한 지속적 배포 (* 모든 코드의 변경이 배포로 이어진다는 것)

Continuous Integration 지속적인 통합

Continuous Delivery 지속적인 제공

                   Deployment 지속적인 배포 

- 서비스의 지속적 전달 및 배포 파이프라인 구성은 DevOps 영역

- 코드code, 빌드build 단계는 개발자 영역

- 지속적 통합에 성공한 경우에만 배포 deploy한다

- 릴리즈release는 배포 가능한 소프트웨어 패키지를 의미한다

 

 

 

Cloud Engineer, DevOps Engineer, SRE Engineer 업무 

- 클라우드환경 구축 표준화, 자동화
- 애플리케이션 배포 파이프라인 CI/CD 구성 및 가이드
- Open source 활용하여 프로젝트 초기템플릿 구성 및 가이드
- 서비스장애 대응 및 트러블슈팅
- 클라우드App. 로그수집, 매트릭 설정 노티 등 운영 자동화