-
전통적인 IT 조직 구조
개발팀(Dev) : 소프트웨어의 개발.
운영팀(Ops)이과 관리 및 유지보수.
Dev(개발팀)Ops(운영팀)
특징 - 잦은 배포 및 업데이트
- 애플리케이션을 통해 새로운 기능(리소스) 제공- 프로덕션 앱의 안정성 확보
- 인프라 관리
- 모니터링 및 제어개발팀이 잦은 업데이트를 통해 제품에 변화를 만들어야 한다면, 운영팀은 이런 서비스의 구성의 변경을 최소화해 안정성을 확보하는데, 이 부분은 꽤 상충이 되는 부분이기 때문에 갈등을 야기하기도 합니다. 이런 갈등이 빚어지는 구조는 현대 IT 시장에는 맞지 않을뿐더러, 제품의 릴리스 주기를 길어지게 만들기도 합니다.
DevOps(소프트웨어 개발(Development)) + IT 운영(Operations)
- 소프트웨어를 자주, 빨리 그리고 안전하게 배포하는 것을 목표로 한다.
- 애자일 개발 프로세스를 기반으로 한 것이라고 볼 수 있습니다.
DevOps 문화
기능의 분리가 아닌 교차되어 어느 누구라도 해당 업무를 수행할 수 있어야 합니다. - 만약 서비스가 중단된다면, 누구든지 문제점을 진단하고 시스템을 복구하여 운영할 수 있는 절차를 알고 있어야 합니다.
- 이를 위한 기술과 지식이 제공되기 위해서 훈련과 효과적인 협업체계를 마련하는 것이 매우 중요합니다.
- 그러나 실제 실무에서는 업무의 분리를 위해 DevOps팀, 혹은 부서를 두고 있을 수 있습니다.
DevOps 특징
- DevOps는 개발에서 운영까지 하나의 통합된 프로세스로 묶어내고 사용하는 툴과 시스템을 표준화하여 의사소통의 효율성을 확보하고 일련의 작업들을 자동화합니다.
- 즉 코드 통합, 테스트, 배포 과정을 자동화시키는 것입니다.
- 지속적 통합 및 배포(CI/CD)라고 하며 DevOps의 핵심 원칙이라고 해도 과언이 아닙니다. 잘 구축된 CI/CD는 애플리케이션의 배포 시간을 크게 단축시킵니다.
[그림] 애플리케이션 배포에 걸리는 시간
DevOps 사례
- 미국 최대 온라인 스트리밍 서비스를 제공하고 있는 넷플릭스(Netflex)는 2012년 기준으로 3천만 명이 넘는 가입자를 보유하며 엄청난 스트리밍 트래픽을 아마존 웹 서비스(AWS)에서 10,000여 개 이상의 인스턴스를 10여 명 정도의 Devops팀으로 관리하고 있습니다.
- 사진 SNS 서비스로 야후에 합병된 Flickr는 초당 40,000 장의 사진이 업로드되는데 Devops를 통하여 모든 배포 및 운영을 자동화하여 하루에도 10여 번 씩 이상의 배포를 하곤 합니다.
- 음악 스트리밍 서비스로 최근 각광을 받고 있는 Spotify도 강력한 Devops 개발문화를 갖추고 오픈소스 도구를 활용하여 배포와 운영을 자동화하여 관리합니다.
이렇게 Devops를 통하여 새로운 기능을 시장에 보다 자주 그리고 빨리 출시할 수 있고, 장애발생 시 보다 대응과 시스템의 안정성을 향상할 수 있음을 알 수 있습니다.
'프론트 공부' 카테고리의 다른 글
개발 프로세스의 발전 (0) 2023.06.05 TypeScript 기초 (0) 2023.05.30 자바스크립트 딥다이브 DOM (0) 2023.05.09 JavaScript의 구조 분해 할당(Destructuring Assignment) (0) 2023.04.25 고차함수 정리 (0) 2023.04.17