DevOps란
Dev + Ops
· 데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operation)의 합성어이다.
데브옵스(DevOps)는 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 일컫는다.
· IT조직에서 데브옵스(DevOps)는 개발조직과 운영조직간의 상호의존적 대응과 제품, 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.
DevOps의 목적 및 탄생
· 데브옵스(DevOps)는 이전까지 따로 분리되어있던 개발과 운영을 하나의 팀으로 통합하고자 하는 문화이자 철학이다.
Why?
· IT컨설턴트 Patrick Debois가 국가에서 진행하는 데이터센터 이전 프로젝트를 지원하였다. (인증 및 테스트 준비에 관한 역할)
역할 상 어플리케이션 개발팀과 운영팀 (서버, DB, 네트워크) 모두와 협업해야 하는 포지션이였고, 작업을 진행하며 개발팀과 운영팀이 결코 좁혀지지 않는 간격을 가지고 있음을 깨달았다. 그래서 문제의 해결방법을 고민하였고, 2009년 데브옵스(DevOps)의 개념을 설명하는 최초의 시도인 "10+ Deplys per Day : Dev&Ops Cooperation at Flickr"을 발표하였다. 그 후, 공식적으로 데브옵스(DevOps) 용어가 사용되기 시작하였다.
DevOps의 기술적 방식
(1) CI/CD (연속 통합 및 지속 업데이트)
· 새로운 코드가 Commit될 때마다 자동화된 테스트가 실행된다. (CI)
· 운영환경에 새로운 APP버전이 빈번하게 자동 배포된다. (CD)
· 즉, 코드 테스트부터 운영환경 배포에 이르는 모든 단계의 완전한 자동화이다.
(2) 버전제어
· Code Version을 관리 및 수정버전과 변경이력을 추적하여 코드를 검토하기 쉽고 복구하기 쉽게 만드는 것이다.
· Git와 같은 시스템을 통해 가능하다.
(3) Configuration Management
· 시스템에 포함된 리소스들의 상태를 관리하는 것이다.
· 시스템 정의와 구성을 간편하게 템플릿으로 만들고, 자동화하여 복잡한 환경을 대규모로 운영한다.
(4) 지속적인 모니터링
· 인프라부터 소프트웨어 구성요소까지 실시간 가시성을 갖는 것이다.
· 문제에 실시간으로 대응하고 추후 개발 주기에서 APP을 개선할 방안을 도출한다.
도구
· 데브옵스(DevOps)가 확산되면서 개발팀과 운영팀이 빠르고 안정적으로 어플리케이션을 개발하고 운영할 수 있도록 도와주는 다양한 도구들이 나오기 시작하였다.
이 도구들은 프로세스 자동화를 해줄 수 있으며, 개발팀과 운영팀이 함께 사용 가능한 특징을 가지고 있다.
DevOps 사례
Azure + Container을 사용하여 DevOps 흐름의 비즈니스 구현
· 컨테이너 기반 작업에 대한 CI/CD 파이프라인 (DevOps Flow 사용)
CI = 지속적인 통합 / CD = 지속적인 배포
① 개발자가 소스코드 변경한다.
② 변경된 코드가 GitHub같은 Repo에 저장한다.
③ CI를 실행하기 위해 Jenkins 프로젝트를 빌드한다.
④ 쿠버네티스 자원을 사용하여 컨테이너로 빌드 명령한다.
⑤ 생성된 신규 컨테이너 이미지는 Azure 컨테이너 저장소에 저장한다.
⑥ Jenkins가 CD를 위해 신규 이미지를 쿠버네티스에 배포한다.
⑦ 모든 과정이 모니터링되고 있다.
⑧ Grafana에서 시각화되어 성능에 대한 부분을 확인할 수 있는 대시보드를 제공한다.
* 요약
· 데브옵스(DevOps)는 알려진지 오래된 이론 및 방법론이지만, 변화하는 IT산업계와 더불어 더 주목도가 올라갔다.
① 클라우드 : 다양한 리전의 수많은 서버들에게 소스 배포 필요
② 모바일APP 대중화&IT컨텐츠 소비행태 : 빠른 변화와 급변하는 니즈에 발맞출 수 있는 잦은 업데이트 필요
· APP서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합으로써, 빠른 속도를 통해 조직은 고객을 더욱 잘 지원하고 시장에서 더 효과적으로 경쟁할 수 있다.
· 데브옵스(DevOps)를 잘 적용하기 위해서는 클라우드가 필연적일 수 있다. (필수적X)
- 어플리케이션을 빠르게 테스트 및 구축하고 다양한 DevOps 도구들을 제공할 수 있기 때문이다.
- 2017년 조사 기준, DevOps + 클라우드 결합으로 SW개발 성과 80% 이상의 개선이 확인되었다.
'[IT 알아보기] > IT 기본학습' 카테고리의 다른 글
[IT 기본학습] 2022 테슬라 AI데이 '깜짝 등장한' 인간형 로봇 '옵티머스'에 대해 알아보자 (0) | 2022.10.07 |
---|---|
[IT 기본학습] 기업용 클라우드 종류 : 퍼블릭/프라이빗/하이브리드 그리고 빅뱅! (0) | 2022.10.06 |
[IT 기본학습] 전자 신체 시리즈 ①, 차세대 핵심기술 전자피부! (0) | 2022.09.22 |
스타트업 All-in-One 서비스, 비즈니스나우 앱 Grand OPEN! (0) | 2022.09.02 |
[IT 기본학습] 하늘과 땅, 물속까지 지배한다! 모빌리티의 혁신 무인이동체 알아보기 (0) | 2022.08.26 |