IT_Study/Ops

[DevOps] DevOps의 기본적 이해와 철학

__Vivacé__ 2023. 12. 24. 17:47

DevOps란?

소프트웨어의 개발(Development)과 운영(Operations)의 합성어

현재 DevOps는 단순한 개발과 운영의 통합을 의미하는 것은 아니다.

어떤 요구사항을 효율적으로 만족시키기 위하여, 일을 자동화하며 변경사항 지표들을 측정하고, 공유하고, 이 모든 결과물들을 지속적으로 축적해 나아가는 문화를 만들어가는 철학, 방법론, 기술

 

과거에는 개발팀과 운영팀의 생각의 차이에 대해서 인지하고, 그 간극을 줄여보자는 의미가 시작이었지만,

더 나아가 우리의 일에 관한 포괄적인 철학과 방법론이 되었다. (따라서 DevOps에 대한 다양한 정의가 존재 )

 


철학 1 - 문화 (Culture)

문화 구성 요소
사람 팀, 인원, 가치, 의사소통
일(Task) 프로세스, 방법론
서비스 서비스의 가치, 성격
자원 H/W, S/W, 기술, 도구
시간 일정, 변경 가능성, 회복탄력성, 예측

 

철학 2 - 자동화 (Automation)

자동화를 통해 속도, 안정성 등을 갖출 수 있다.

자동화 구성 요소
인프라 및 보안 클라우드, 네트워크, 접근제어, 암호화
언어 및 도구 프로그래밍 언어 및 도구
지속적 통합 / 배포 CI/CD 파이프라인 구성 고려 (변경에 따른 소요시간 최소화)
모니터링 모니터링 시스템 및 장애대응

 

철학 3 - 측정 (Measurement)

- 변경사항 발생 시 항상 측정
- 어플리케이션 성능, 개발속도 모니터링
- 지속적으로 나아지고 있는지, 아닌지 측정
- 의사결정 시 추측 배제

예측 불가능한 영역을 최대한 예측 가능한 영역으로 바꾸는 것 / 우리의 방향성에 대해서 항상 고민하고 의심해야 한다.

 

측정 지표는 중요한 의사결정들을 추측이 아닌 예측과 확신으로 만들어준다.

 

철학 4 - 공유 (Sharing)

- 언제든 접근 가능한 투명한 데이터
    - 구성원 모두가 대부분의 데이터를 언제든 접근하고 확인할 수 있어야 한다.
- 지식의 공유 OpenMind
    - 지식은 각자 배울 수는 있어도 항상 함께 공유해야 한다.
- 문제 발생 시 함께 해결
    - 문제는 개인의 무제가 아니라 우리의 문제로 인지 / 인턴이 CTO가 해결하지 못한 일을 해결할 수 있음
- 일의 가속도
    - 규모&인원과 일의 속도는 반비례하지 않고 가속도 그래프를 그려야 한다
    - 팀원들이 함께하고 같이 노력해야 그러한 곡선을 만들 수 있다.

 

홀로 성장하는 시대는 끝났다.

 

철학 5 - 축적 (File up & Pile up)

모든 일의 성공과 실패 결과물들은 항상 축적되어야 한다.

 

Louis Vuitton의 경우, 수백년 전 디자이너와 예술가들이 어떤 생각을 가지고 어떤 결과물을 냈는 지 아직도 갖고 있고, 이 축적은 현재도 계속되고 있다.