데브옵스(DevOps)

develop.u·2022년 9월 30일
1
post-thumbnail

데브옵스란?

  • 소프트웨어의 개발(Development)과 운영(Operations)의 합성어
  • 개발과 운영의 경계를 허물고 소통, 협업, 통합 및 자동화를 강조하는 개발 방법론, 문화, 철학

→ 개발, 빌드, 테스팅, 배포, 모니터링, 운영 등이 유기적으로 이루어져야 한다.

개발팀 + 운영팀 = 데브옵스? (x)

..예를 들어보자!

카카오톡의 송금 기능, 선물하기 기능 등.. 점차적으로 기능 추가
→ 지속적으로 서비스 업그레이드 → 추가적인 개발 필요 → 추가된 기능 배포 후 운영 → 지속적으로 모니터링 → . . .

.
.
.
결국

개발과 운영이 하나의 파이프라인으로 연결되어야 한다.


기존의 개발과 운영 방식은 어땠을까?

→ 개발팀과 운영팀의 역할이 완전히 분리

😑개발팀😑

  • 운영팀에 결과를 넘김

😩운영팀😩

  • 운영팀에서는 개발팀의 결과물이 문제가 있는지 확인
  • 문제가 있으면 개발팀에게 요청하여 결과물을 다시 받아서 올림
  • 개발자가 만든 프로그램을 이해하는 시간 필요

→ 커뮤니케이션에 문제 + 보안팀과 통합 + ... 여러가지 문제가 생기면 시간이 더 걸리게 됨

이러한 상황을 해결하기 위해 나온 것이 데브옵스다!

.
.
.

데브옵스는 크게
1. 개발
2. 검증(QA)
3. 운영
이 세가지 분야를 공유하자는 개념인데, 이 세가지가 보다 유기적으로 하나인 것처럼 동작할 수 있게 자동화가 되어야한다.

→ 여러가지 툴(도구)들을 이용해서 자동화가 되도록 해야한다!


데브옵스 툴체인


데브옵스 적용이 가능한 툴을 묶어 하나의 체인 형식으로 모든 과정을 묶어 사용하는 개념

계획(PLAN)
: 알려진 문제를 추적(분석)하고, 프로젝트 관리를 수행
: 단위 기능이나 서비스를 계획, 분석

개발(CODE)
: 소프트웨어를 설계하고, 코드를 작성해 자주 병합(Merge)

빌드(BUILD)
: 소프트웨어 버전을 관리하고, 자동화 도구를 사용해 문제가 없는지 파악

테스트(TEST)
: 빌드한 기능에 문제가 없는지 요구 사항에 따라 검증

릴리즈(RELEASE)
: 완성된 결과물을 개발/품질 서버에 이관

배포(DEPLOY)
: 서비스할 운영 서버나 클라우드에 배포

운영(OPERATE)
: 실제 업무에 적용하고, 운영 중인 소프트웨어를 관리

모니터링(MONITOR)
: 안정적인 운영을 위해 지속적으로 모니터링
: 개선/오류 사항 대비


데브옵스는 사용자의 요구사항을 효율적으로 만족시키기 위해
업무를 자동화하고, 변경된 모든 것을 측정하며 공유한다. 이러한 과정 속에서 발생한 결과물들을 축적해나가는 문화를 만드는 것이 데브옵스이다.

1개의 댓글

comment-user-thumbnail
2023년 1월 30일

오 왜 필요한건지 의문이 해결됐어요!

답글 달기

관련 채용 정보