3 분 소요

DevOps 정의

DevOps 모델

애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합

기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선

빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁

DevOps

작동 방식

  • 개발팀과 운영팀이 더 이상 “사일로”에 묶여 있지 않음
  • 때로는 이 두 팀이 단일팀으로 병합되어 엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발

  • 일부 DevOps 모델에서 품질 보증팀과 보안팀 또한 애플리케이션 수명 주기에 걸쳐 개발 및 운영과 좀 더 긴밀하게 통합
  • DevOps 팀 전체가 보안을 중점으로 두는 경우 때때로 DevSecOps라고 불림

  • DevOps 방식을 사용하여 속도가 느리고 수동으로 수행되던 프로세스를 자동화
  • 애플리케이션을 안정적으로 빠르게 운영하고 개선하는 데 도움이 되는 기술 스택과 도구를 사용

→ 다른 팀의 도움이 필요했을 코드 배포 또는 인프라 프로비저닝과 같이 작업을 독립적으로 수행할 수 있으며, 따라서 팀의 작업 속도가 더욱 빨라짐

DevOps의 이점

  • 속도
    • 작업 속도가 빨라지므로 고객을 위해 더 빠르게 혁신하고, 시장 변화에 더 잘 적응하고, 좀 더 효율적으로 비즈니스 성과를 창출할 수 있음
    • ex) 마이크로 서비스와 지속적 전달을 사용하면 팀에서 서비스를 주도적으로 운영하여 업데이트를 좀 더 빠르게 릴리스 가능
  • 신속한 제공
    • 릴리스의 빈도와 속도를 개선하여 제품을 더 빠르게 혁신하고 개선
    • 새로운 기능의 릴리스와 버그 수정 속도가 빨라질수록 고객의 요구에 더 빠르게 대응하여 경쟁 우위를 강화
    • 지속적 통합과 지속적 전달은 빌드에서 배포까지 소프트웨어 릴리스 프로세스를 자동화하는 방식
  • 안정성
    • 더욱 빠르게 안정적으로 제공할 수 있도록 애플리케이션 업데이트와 인프라 변경의 품질을 보장
    • 지속적 통합 및 지속적 전달과 같은 방식을 사용하여 각 변경 사항이 제대로 작동하며 안전한지 테스트
    • 모니터링과 로깅 방식을 통해 실시간으로 성능에 대한 정보를 얻음
  • 확장
    • 규모에 따라 인프라와 개발 프로세스를 운영 및 관리
    • 자동화와 일관성이 지원되므로 위험을 줄이면서 복잡한 시스템 또는 변화하는 시스템을 효율적으로 관리(휴먼 에러 방지)
    • ex) 코드형 인프라를 사용하면 개발, 테스트 및 프로덕션 환경을 반복 가능하고 좀 더 효율적인 방식으로 관리
  • 협업 강화
    • 주인의식 및 책임과 같은 가치를 강조하는 DevOps 문화 모델에서 좀 더 효과적인 팀을 구축
    • 개발자와 운영팀은 긴밀하게 협력하고, 많은 책임을 공유하며, 워크플로를 결합 → 비효율성을 줄이고 시간을 절약 ex) 개발자와 운영팀 간의 인도 기간 단축, 실행되는 환경을 고려한 코드 작성 등
  • 보안
    • 제어를 유지하고 규정을 준수하면서 신속하게 진행
    • 자동화된 규정 준수 정책, 세분화된 제어 및 구성 관리 기술을 사용함으로써 보안을 그대로 유지하면서 DevOps 모델을 도입할 수 있음
    • ex) 코드형 인프라와 코드형 정책을 사용하면 규모에 따라 규정 준수를 정의하고 추적 가능

DevOps가 중요한 이유

20세기에 실제 상품을 제조하는 기업이 산업 자동화를 통해 제품의 설계, 생산 및 전달 방법을 혁신한 것과 마찬가지로, 오늘날의 기업은 소프트웨어를 구축하고 제공하는 방법을 혁신해야 함

DevOps 모델을 도입하는 방법

DevOps 문화 철학

  • DevOps는 기존에 사일로에 묶여 있던 개발과 운영이라는 두 팀 간의 장벽을 없애줌 일부 조직에서는 개발팀과 운영팀이 나뉘어 있지 않고 엔지니어가 두 업무를 모두 수행할 수도
  • DevOps에서는 두 팀이 함께 작업하여 개발자의 생산성과 운영의 안정성을 모두 최적화
  • DevOps 모델을 사용하는 조직은 어떻게 구성되어 있든, 전체 개발 및 인프라 수명 주기를 스스로의 책임으로 간주하는 팀들로 구성

DevOps 방식 설명

개발과 인프라 관리 프로세스의 자동화 및 간소화를 통해 더 빠르게 혁신할 수 있도록 → 적절한 도구

  • 기본 방식 중 하나는 소규모 업데이트를 자주 수행하는 것
    • 기존 릴리스 방식에서 수행되는 낮은 빈도의 업데이트보다 일반적으로 좀 더 증분적인 특성
    • 소규모로 자주 업데이트하면 각 배포의 위험이 줄어듬
    • 팀에서 오류의 원인이 되는 최근 배포를 확인할 수 있으므로 더 빠르게 버그를 해결 가능
    • 기존 소프트웨어 개발 방식을 사용하는 조직보다 훨씬 더 자주 업데이트를 배포
  • 마이크로 서비스 아키텍처를 사용하여 애플리케이션의 유연성과 혁신의 속도를 높일 수 있음

기업에서의 정의

Red Hat : 신속한 고품질 서비스 제공을 통해 비즈니스 가치를 높이고 대응 능력을 개선할 목적으로 기업 문화, 자동화, 플랫폼 설계에 접근하는 방식 AWS : 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합

기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선 -> 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁

기존의 배포 방식에선 개발부터 디버깅, 컴파일 등 운영까지의 과정에서 불필요한 소요가 많았다. 또한 개발팀과 운영팀이 지향하는 바가 서로 달랐다. 개발팀 : 새로운 기술을 도입하고 새로운 서비스를 제공하고 싶다. 운영팀 : 현재 운영중인 서비스가 안정적으로 동작했으면 좋겠다. -> 개발팀과 운영팀 사이에 사일로(부서 이기주의) 발생

이러한 상황에서 개발과 운영 모두 잘 이해한 상태의 팀(DevOps 팀)이 있다면 어떨까

  • 속도가 느리고 수동으로 수행되던 프로세스를 자동화
  • 애플리케이션을 안정적으로 빠르게 운영하고 개선하는 데 도움이 되는 기술 스택과 도구를 사용
  • 위의 기술과 도구를 이용해 코드 배포 또는 인프라 프로비저닝과 같은 작업을 독립적으로 수행

세상은 빠르게 변화하고 있고 고객은 이러한 변화의 니즈를 충족시켜 주길 원한다. 기업은 이 니즈를 충족시키기 위해 고객의 피드백이나 새로운 서비스를 더 빠르게 개발하고 배포해야 하며 이러한 프로세스에 데브옵스가 안성맞춤인 것 같다.

Reference

https://aws.amazon.com/ko/devops/what-is-devops/
Stephen Orban - 엔터프라이즈 기업의 클라우드 도입 모범 사례

태그:

카테고리:

업데이트:

댓글남기기