What is DevOps

Reference: [인프런] DevOps : Infrastructure as Code with Terraform and AWS 강좌 by 송주영님

DevOps의 등장 배경

  • 완결된 요구사항 이 나올 것이라고 기대하지 않고, 요구사항이 변덕스로운 기획자나 고객의 마음이 당연한 것이라고 생각하기 시작함

DevOps 란 무엇인가?

  • 소프트웨어 개발과 운영, 서비스의 효율적인 환경을 만들기 위해서 노력하는 개발 문화

    • 소비자, 사용자들의 서비스 요구사항을 가장 빠르게 단순화하여 대응할 수 있는 신속한 서비스 지원형태, 그리고 그것을 지원하고 유지시켜주는 소프트웨어 개발 문화

      • Development / Operations를 합친 말!

  • DevOps는 빠르고, 단순하고, 신속한 서비스 형태를 지향한다

    • 그리고 그것을 지원하고 유지시켜주는 소프트웨어 개발 문화를 지향한다

DevOps의 5가지 철학

1. 문화 (Culture)

: DevOps를 통해 하나의 문화를 만들어 나간다

  • 사람

    • 팀, 인원, 가치, 의사소통

  • 일 (Task)

    • Process, 방법론

  • 서비스

    • 서비스의 가치, 성격

  • 자원

    • H/W, S/W, 기술, 도구

  • 시간

    • 일정, 변경 가능성, 회복 탄력성, 예측

2. 자동화 (Automation)

: 자동화를 통해 효율성빠른 속도를 지향한다

  • 인프라 및 보안

    • 클라우드, 네트워크, 접근 제어, 암호화

  • 언어 및 도구

    • 프로그래밍 및 도구

  • 지속적 통합 / 배포

    • CI/CD Pipeline 구성 고려

  • 모니터링

    • 모니터링 시스템 및 장애 대응

3. 측정 (Measurement)

: 지표를 측정하여 지속적으로 개선해 나간다

  • 변경사항 발생 시 항상 측정

  • Application 성능, 개발 속도 모니터링

  • 지속적으로 나아지고 있는지, 아닌지 측정

  • 의사결정 시 추측 배제

4. 공유 (Sharing)

: 공유를 통해 함께 발전해 나간다

  • 언제든 접근 가능한 투명한 데이터

  • 지식의 공유, Open mind

  • 문제 발생시 함께 해결

  • 일의 가속도

5. 축적 (File up & Pile up)

: 기록축적하여 자산을 만들어 나간다

  • 효율적으로 1만 시간의 법칙을 이루는 것

그래서 DevOps란?

위의 DevOps의 5가지 철학을 바탕으로 정리

  • 어떤 요구사항을 효율적으로 만족시키기 위하여,

    • 일을 자동화하며

    • 변경사항 지표들을 측정하고,

    • 공유하고,

    • 이 모든 결과물들을 지속적으로 축적해 나가는

  • 문화를 만들어가는 철학, 방법론, 기술

DevOps가 필요한 이유

: 속도효율화

  • 현대의 서비스 (S/W)는 너무나도 복잡하다

    • 기술 발전이 급속도로 이루어지고 있는 시대에서 이를 뒷받침 할 수 있는 개발 속도를 갖추는 것은 상당히 중요하다

      • 여기서 말하는 개발 속도는 단순히 프로그래밍을 빠르게 하는 것을 의미하지 않는다

        • Product 개발에서 발생하는 모든 과정 (구상, 운영, 개발, 디자인, 출시 등등)의 속도가 모두 중요하다

    • 이 모든 일련의 과정이 빠른 속도와 효율적인 방식을 통해 이루어져야 남들보다 앞서갈 수 있다

      • 이러한 관점에서 대부분의 기업에서는 DevOps를 필요로 한다!

  • 우리는 수많은 복잡한 문제들을 DevOps 철학과 방법론으로 풀어나갈 수 있다!

DevOps의 장점

  1. 최소 인원으로 개발과 운영이 가능한 환경을 지향한다

  2. 서비스의 배포운영이 자유롭고, 서비스가 매우 신속하고 빠르게 운영된다

  3. 개발의 배포가 자동화되며, 그에 따라 고품질 서비스를 지향한다

DevOps의 주 목적

  • 잦은 배포를 수행하면서, 잦은 릴리즈를 수행하고,

  • 잦은 릴리즈를 통해서 위험을 하향 균등화 시키는 것이 주 목적!

    • Agile과 잘 맞는다

DevOps 주요 원칙들

DevOps에 대해서 실현하기 위해서 노력하는 행위와 절차라고 볼 수 있다!

  1. 주요 기능에 집중하고 있는가?

  2. 품질을 내재화하기 위하여 노력하고 있는가?

  3. 개발에 필요한 지식을 창출하기 위해서 과학적으로 접근하고 있는가?

  4. 완벽한 명세서를 만들기 위한 비용보다, 협업을 중시하며 커뮤니케이션 비용을 지출하고 있는가?

  5. 가능한 한 빨리 개발하기 위해서 시도하고 있는가?

  6. 사람을 존중하는 개발자 문화를 만들고 있는가?

  7. 최적화를 위한 방안을 고안하는데 회의나 토론을 아까워하지 않고 있으며, 그것에 대해서 투자를 아낌없이 하고 있는가?

Last updated