데브옵스(DevOps)란,

소프트웨어의 개발(Development)운영(Operations)의 합성어로서, 개발(Dev)팀과 운영(Ops)팀이 협업하여, 더 빠르고 신뢰성있는 릴리즈 파이프라인을 구축하는 문화입니다. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 합니다. 

 

등장 배경

기존에는 개발 조직과 운영 조직이 구분되어 있어 둘 사이에 사일로 효과가 발생했습니다.

  • 사일로 효과: 조직 부서들이 서로 다른 부서와 담을 쌓고 내부 이익만을 추구하는 현상을 일컫는 말. 곡식 및 사료를 저장해두는 굴뚝 모양의 창고인 사일로(silo)에 빗대어 조직 장벽과 부서 이기주의를 의미하는 경영학 용어로 사용된다. https://terms.naver.com/entry.naver?docId=2066351&cid=50305&categoryId=50305

개발조직은 새로운 기능을 개발해 출시하는 것을 목표로 하기에 새로운 것을 만들어 내려 하고,

운영조직은 소프트웨어가 안정적으로 돌아가는 것을 중시하기에 변화를 싫어하고 배포를 가능한 적게 하고싶어 하기에, 둘의 목표가 상충되었습니다.

또한 시간이 지날수록 소프트웨어 개발 환경과 운영 환경이 상이하게 변해감에 따라 개발조직에서는 잘 동작하는 프로그램이 운영조직으로 넘어가 배포를 하면 문제가 생기는 경우도 발생 하였습니다(실행 환경의 비일관성 문제 발생).

이에 두 조직의 사일로 효과를 없애고 개발-배포-운영-모니터링까지 전체를 하나의 프로세스로 유기적으로 연계함으로써, 지속적인 배포와 높은 소프트웨어 품질을 유지하기 위한 개발 방법론이나 문화인 '데브옵스'가 탄생하게 됩니다.

 

데브옵스의 목적

  • 소프트웨어 개발 라이프사이클을 짧게 단축 (작은 단위로 빠르게 개발 > 테스트 > 통합 > 빌드 > 배포 > 피드백을 받게 함)
  • 개발&운영 단계를 연계하여 지속적인 배포와 높은 소프트웨어 품질의 유지

 

데브옵스 툴체인

소프트웨어 개발 라이프사이클의 각 단계별 or 여러 단계를 통합하여 자동화 함으로써 데브옵스를 실천하는데 도움을 줍니다. 아래는 단계 구분과, 단계별 사용되는 툴의 예 입니다.

  • 계획: 이 단계는 비즈니스 가치 및 요구사항을 정의하는 데 도움이 됩니다. 샘플 툴로는 알려진 문제를 추적하고 프로젝트 관리를 수행하는 데 도움이 되는 Jira 또는 Git가 있습니다.
  • 코딩: 이 단계에는 소프트웨어 설계 및 소프트웨어 코드 생성이 포함됩니다. 샘플 툴로는 GitHub, GitLab, Bitbucket 또는 Stash가 있습니다.
  • 구축: 이 단계에서는 소프트웨어 빌드 및 버전을 관리하고 자동화된 툴을 사용하여 코드를 컴파일하고 패키징하여 향후 제품 릴리즈에 제공합니다. 소스 코드 저장소 또는 패키지 저장소를 사용합니다. 이러한 저장소는 제품 릴리즈에 필요한 "패키지" 인프라 역할도 합니다. 샘플 툴로는 Docker, Ansible, Puppet, Chef, Gradle, Maven 또는 JFrog Artifactory가 있습니다.
  • 테스트: 이 단계에서는 최적의 코드 품질을 보장하기 위해 지속적인 테스트(수동 또는 자동)를 수행합니다. 샘플 툴로는 JUnit, Codeception, Selenium, Vagrant, TestNG 또는 BlazeMeter가 있습니다.
  • 배포: 이 단계에는 제품 릴리즈를 운영 단계로 관리, 조정, 예약 및 자동화하는 데 도움이 되는 툴이 포함될 수 있습니다. 샘플 툴로는 Puppet, Chef, Ansible, Jenkins, Kubernetes, OpenShift, OpenStack, Docker 또는 Jira가 있습니다.
  • 운영: 이 단계에서는 운영 중인 소프트웨어를 관리합니다. 샘플 툴로는 Anabilities, Puppet, PowerShell, Chef, Salt 또는 Otter가 있습니다.
  • 모니터링: 이 단계에서는 운영 환경의 특정 소프트웨어 릴리즈에서 발생하는 문제에 대한 정보를 식별하고 수집합니다. 샘플 툴로는 New Relic, Datadog, Grafana, Wireshark, Splunk, Nagios 또는 Slack이 있습니다.

관련 글:

https://life-coding.tistory.com/64

 

[DevOps] 데브옵스 관련 툴 모음 & 요약

데브옵스에서 사용되는 툴들 모음 & 간략한 요약 Jira (지라) Atlassian 사에서 개발한 이슈 추적 제품이며 버그 추적, 이슈 추적, 프로젝트 관리 기능을 제공하는 소프트웨어이다. https://en.wikipedia.org

life-coding.tistory.com

 

참고:

https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4

https://en.wikipedia.org/wiki/DevOps

https://www.netapp.com/ko/devops-solutions/what-is-devops/

 

'개발 > 방법론,디자인패턴' 카테고리의 다른 글

[DevOps] 데브옵스 관련 툴 모음 & 요약  (0) 2022.08.23

+ Recent posts