데브옵스란 무엇인가?
DevOps (Development Operations)
--
DevOps는
개발(Development)과 운영(Operations)의 합성어다.
개발자는 애플리케이션을 개발하고 새로운 기능을 추가하는 작업을 수행하고
운영자는 안정적으로 애플리케이션 서비스를 운영하는 것을 수행한다.
애플리케이션에 새로운 기능을 추가하여 기존 내용에서 변경이 된다면
다시 서버에 새로운 버전으로 배포를 해야 한다.
이때 배포하는 과정에서 예상치 못한 서비스 장애가 발생하는 경우가 많이 존재한다.
그래서 운영자 입장에서는 기존 애플리케이션이 변경되는 것을 선호하지 않게 되는 것이고
이 것이 개발자와 운영자 사이에서 마찰이 일어날 수 있다.
이를 해결하기 위해 DevOps가 탄생했다.
DevOps는
소프트웨어 개발과 IT 운영(인프라 관리 및 배포)을 통합하여
더 빠르고 안정적인 소프트웨어 개발 및 배포를 가능하게 하는 문화를 의미한다.
즉, DevOps는 어떠한 프로그램을 가리키는 것이 아닌 위와 같은 의미를 가진 용어다.
--
DevOps 특징
--
1. 문화와 협업 강화
- 개발팀과 운영팀 간의 협력을 중시하여 개발자와 운영자가 서로 협력하여 공통된 목표를 달성하도록 도와준다.
- 팀 간의 커뮤니케이션 강화와 지식 공유를 통해 효율적인 문제 해결과 빠른 의사결정을 도모한다.
2. 자동화
- 자동화하는 프로세스를 통해 개발, 테스트, 배포 등의 작업들을 자동화한다.
- 이때 자동화하는 프로세스는 사람의 실수로 인한 오류를 줄이고 일관된 환경을 유지하여 품질을 향상 시킨다.
3. DevOps를 위한 도구 및 기술
- 컨테이너 기술 (Docker, Cubernetes 등)
- 구성 관리 도구 (Chef, Ansible 등)
- 지속적 통합 도구 (Jenkins, GitLab CI 등)
- 모니터링 도구 (Prometheus, Grafana 등)
- CI / CD 기술
- 파이프라인 자동화 기술
- MSA 아키텍처
- IaC
4. 지속적 통합 (CI)과 지속적 전달/배포 (CD)
- CI : 소스코드에 변경사항을 자동으로 빌드 및 테스트하는 프로세스
- CD : CI를 통과한 코드를 자동으로 테스트 및 배포
5. 모니터링과 피드백 루프
- 애플리케이션 및 인프라의 상태를 지속적으로 모니터링 및 발생한 이벤트 대응
- 모니터링을 통해 피드백 루프를 구성하여 개선 사항을 신속하게 반영
--
'Terminology' 카테고리의 다른 글
SOLID 원칙 ( 객체 지향 설계 원칙) (1) | 2024.10.26 |
---|---|
객체지향 프로그래밍 (OOP, Object-Oriented Programming) (0) | 2024.10.25 |
CI / CD 파이프라인 (0) | 2024.07.05 |
네트워크란? (feat. IP, 네트워크 인터페이스, 포트, NAT, 포트포워딩, DNS) (0) | 2024.06.23 |
동기와 비동기 & 블로킹과 논-블로킹 (0) | 2024.05.09 |