DevOps ..??

소프트웨어의 개발(Development)와 운영(Operation)의 합성어이다.
위키피디아에 정의된 말을 보면 /”DevOps라는 합성어는 소프트웨어 개발자들과 IT 종사자들 사이의 의사소통, 협업, 융합을 강조한 소프트웨어 개발 방법론이며, 소프트웨어 개발과 IT 운영간의 상호 의존관계에 대한 산물이다. DevOps 는 조직에서 소프트웨어 상품과 서비스를 신속히 생산하는 것에 도움이 되는 것을 목적으로 한다.”/ 라고 하고 있다.

DevOps 툴체인

  • 코드 - 코드 개발 및 검토, 버전 관리 도구, 코드 병합
  • 빌드 - 지속적 통합(CI) 도구, 빌드 상태
  • 테스트 - 테스트 및 결과가 성능을 결정
  • 패키지 - 애플리케이션 디플로이 이전 단계
  • 릴리스 - 변경사항 관리, 릴리스 승인, 릴리스 자동화
  • 구성 - 인프라스트럭처 구성 및 관리, IaC(Infrastructure as Code) 도구
  • 모니터링 - 애플리케이션 성능 모니터링, 최종 사용자 경험.

DevOps팀 개발자의 필요 역량

  • 코딩 능력 개발자를 기본으로 하고 있으므로 개발을 위한 기본적인 코딩 능력 또는 운영이나 시스템에 치우친 엔지니어라면 자동화를 만들 수 있는 스크립트 작성 능력을 필수

  • 오픈 마인드 및 커뮤니케이션 능력 Devops는 협업 문화로써, 개발과 운영 간의 소통 문제를 해결하고자 한 것이므로 팀원 간의 의견을 존중하고 문제를 함께 해결해나갈 수 있는 오픈 마인드 기반의 커뮤니케이션 능력이 매우 중요하다.

  • 프로세스를 이해하고 재정의할 수 있는 능력 테스트 자동화, 배포, 요구사항에 대한 수집 및 정의 등과 같은 프로세스를 이해하고 준수하며 팀의 모델이나 서비스 성격에 따라 협업하며 만들어 나갈 수 있는 능력이 있어야 한다

그 외에 필요한 부분은…

  • 오픈 소스 제품과 툴에 대한 이해
  • 인프라 시스템에 대한 이해와 시스템 운영 경험
  • 자동화된 툴(컴파일, 테스트, 배포)에 대한 이해
  • 비지니스에 대한 이해

Reference
조대협의 블로그 :: 개발과 운영의 조화 - Devops #2/2 DevOps, 그 문화에 대해서…
(kth 개발자블로그) DevOps, 개발과 운영의 새로운 문화 | Open API, Cloud, DevOps 와 eBook