→ 개발, 빌드, 테스팅, 배포, 모니터링, 운영 등이 유기적으로 이루어져야 한다.
개발팀 + 운영팀 = 데브옵스? (x)
..예를 들어보자!
카카오톡의 송금 기능, 선물하기 기능 등.. 점차적으로 기능 추가
→ 지속적으로 서비스 업그레이드 → 추가적인 개발 필요 → 추가된 기능 배포 후 운영 → 지속적으로 모니터링 → . . .
.
.
.
결국
개발과 운영이 하나의 파이프라인으로 연결되어야 한다.
→ 개발팀과 운영팀의 역할이 완전히 분리
😑개발팀😑
😩운영팀😩
→ 커뮤니케이션에 문제 + 보안팀과 통합 + ... 여러가지 문제가 생기면 시간이 더 걸리게 됨
.
.
.
데브옵스는 크게
1. 개발
2. 검증(QA)
3. 운영
이 세가지 분야를 공유하자는 개념인데, 이 세가지가 보다 유기적으로 하나인 것처럼 동작할 수 있게 자동화가 되어야한다.
→ 여러가지 툴(도구)들을 이용해서 자동화가 되도록 해야한다!
데브옵스 적용이 가능한 툴을 묶어 하나의 체인 형식으로 모든 과정을 묶어 사용하는 개념
계획(PLAN)
: 알려진 문제를 추적(분석)하고, 프로젝트 관리를 수행
: 단위 기능이나 서비스를 계획, 분석
개발(CODE)
: 소프트웨어를 설계하고, 코드를 작성해 자주 병합(Merge)
빌드(BUILD)
: 소프트웨어 버전을 관리하고, 자동화 도구를 사용해 문제가 없는지 파악
테스트(TEST)
: 빌드한 기능에 문제가 없는지 요구 사항에 따라 검증
릴리즈(RELEASE)
: 완성된 결과물을 개발/품질 서버에 이관
배포(DEPLOY)
: 서비스할 운영 서버나 클라우드에 배포
운영(OPERATE)
: 실제 업무에 적용하고, 운영 중인 소프트웨어를 관리
모니터링(MONITOR)
: 안정적인 운영을 위해 지속적으로 모니터링
: 개선/오류 사항 대비
데브옵스는 사용자의 요구사항을 효율적으로 만족시키기 위해
업무를 자동화하고, 변경된 모든 것을 측정하며 공유한다. 이러한 과정 속에서 발생한 결과물들을 축적해나가는 문화를 만드는 것이 데브옵스이다.
오 왜 필요한건지 의문이 해결됐어요!