2025.05.22
DevOps
DevOps 개념
Development && QA && Operations
- 단절된 개발과 운영 간의 프로세스를 원활하게 연결하고 자동화 방법을 통해 효율성을 극대화하는 방법
- 소프트웨어 개발(Dev)과 IT 운영(Ops)의 경계를 허물고 지속적인 통합(CI), 지속적인 배포(CD), 자동화 등을 통해 더 빠른 소프트웨어 개발과 더 높은 운영 효율을 달성하려는 문화, 움직임, 관행의 집합
- 빠른 서비스 출시 속도와 업데이트 주기에 맞게 개발된 소프트웨어가 안정성을 유지하면서도 사용자에게 신속하게 제공될 수 있도록 개발, 테스트, 배포, 운영의 업무 사이클을 자동화된 하나의 프로세스로 통합할 필요성 -> 다양한 APP 개발 후 신속한 배포 후 실사용 테스트로 시장성 평가를 위해 DevOps 등장
DevOps 핵심요소
CAMS
- Culture (문화)
모든 이해관계자가 목표 달성을 위해 긴밀하게 협력하도록 장려하는 문화
조식 내 신뢰 구축, 공통 목표에 대한 집중, 지속적인 개선을 추구하는 환경을 조성
- Automation (자동화)
반복가능하고 예측 가능한 작업을 자동화함으로써, 수동 작업의 오류를 줄이고 효율성 증대
인프라 관리, 코드 배포, 테스트 실행, 모니터링 등 다양한 프로세스에 자동화를 적용
자동화를 통해 개발부터배포까지의 프로세스가 더 빠르고, 안정적이며, 효율적으로 이루어지게 된다.
- Measurement (측정)
성능, 프로세스, 효과성을 정량적으로 측정하고 분석하는 것을 강조 -> 개선점을 식별, 의사결정 과정에 필요한 데이터를 제공
지속적인 측정과 피드백이 중요, 시스템 성능, 응답 시간, 버그 발생 빈도 등을 모니터링하며 이를 기반으로 개선을 도모
- Sharing (공유)
지식, 아이디어, 성공 사례뿐만 아니라 실패 경험까지 공유하는 것을 중요시하게 생각 -> 학습과 성장을 촉진, 조직 전체의 개선을 위한 아이디어와 해결책을 발굴하는 데 도움
Cloud Native
클라우드 네이티브 관련 링크
개발 및 운영 / 클라우딩 컴퓨팅의 이점을 최대화 하도록 설계 된 기술과 아키텍쳐
- Cloud Native 와 DevOps 는 서로 상호 보완적인 관계
- DevOps의 원칙과 관행을 클라우드 환경에서 효과적으로 구현할 수 있는 기술적 수단을 제공
- DevOps 는 Cloud Native 기술을 활용하여 개발과 운영의 경계를 없애고, 더 빠른 혁신과 효율적인 운영을 가능하게 한다.
개발 프로세스 : Waterfall -> Agile -> DevOps
아키텍처 : 일체형(모놀로식) -> N계층 -> 마이크로서비스
배포 : 물리적 서버 -> 가상서버 -> 컨테이너 기술
CI/CD
CI(Continuous Intergration)
개발자들이 작업한 코드를 주기적으로 메인 저장소에 통합(머지)하는 것을 의미
이 과정에서 자동화된 빌드와 테스트가 수행되어, 코드 변경 사항이 시스템에 통합될 때 발생할 수 있는 문제를 조기에 발견하고 수정
CD (Continuous Delivery)
CI 과정을 통해 테스트된 코드를 자동으로 빌드하고 테스트 환경이나 스테이징 환경에 배포하는 것을 의미
목표는 소프트웨어가 항상 출시 준비 상태를 유지하도록 하는 것
CD (Continuous Deployment)
Continuous Deployment 의 한 단계 더 나아가, 자동화된 테스트를 통과한 코드를 자동으로 프로덕션 환경에 배포하는 것
이 과정은 수동 개입 없이 이루어짐