데스옵스란
데브옵스란 development와 operations가 합쳐진 단어입니다.
The Phoenix Project의 저자이자 업계의 주요 데브옵스 전문가인 진 킴은 데브옵스를 “개발과 IT 운영 간의 협업을 위한 새로운 움직임이다. 계획된 작업의 빠른 실행을 도모하면서 생산 환경의 신뢰성, 안정성, 복원력, 보안성에 대한 지속적인 개선을 추구한다”라고 정의했습니다.
과거에는 코드를 작성하는 개발팀과 배포 및 통합 작업을 담당하는 운영팀이 별개로 이루어져 있었습니다. 물론 지금도 큰 사업이 추가되는 경우에는 별도의 SI팀이 사업을 맡아 개발을 하고 하자보수 기간 이후에 SM팀으로 넘겨주지만, 솔루션 회사라던지, SM팀에서 기능 개선 및 오류수정으로 인한 코드작업을 한 후에는 배포 및 통합 작업도 같이 수행합니다.
다시 기존 주제로 돌아와서 이렇게 분리된 두 팀을 하나로 통합하려는 움직임으로 데브옵스란 개념이 등장하였습니다.
데브옵스의 개발팀과 운영팀 모두에게 새로운 사고방식을 요구하였고, 운영팀에게는 안정성과 속도를 개선하며 개발팀과의 협력을 통해 비용을 절감하는데 집중하라 하였고, 개발팀은 애자일 프로세스( “계획을 따르기보다 변화에 대응하라“ )를 학습 및 채택하고 운영 효율성을 높이는데 일조하라라고 하였습니다.
엔지니어인 데이먼 에드워즈와 존 윌리스는 데브옵스의 핵심 원칙이라고 알려진 것들을 종합해 CALMS 모델을 만들었습니다. 내용은 아래와 같습니다.
문화 - 애자일 방법론을 수용하고, 변화에 개방적이며, 지속적 개선을 도모하고, 소프트웨어 개발 전 과정의 품질을 책임지는 문화가 필요하다.
자동화 - 업무 자동화는 모든 데브옵스 팀의 핵심 목표다.
린 - 소프트웨어 개발 흐름이 매끄러워야 한다. 핵심 단계 사이의 이동이 가능한 한 빨라야 한다.
측정 - 측정하지 않은 것은 개선할 수 없다. 데브옵스는 필요 시 곧바로 개선하고 방향 전환할 수 있도록 지속적인 측정과 피드백을 추구한다.
공유 - 조직 전반에 걸쳐 지식을 공유하는 것은 데브옵스의 핵심 원칙이다.
결론적으로 데브옵스란 개발과 운영의 협업이라고 생각하면 되는 부분이며, 효율성외에도 여러 측면에서 한번 겪어보면 그전으로 돌아가기는 힘들 것으로 생각합니다.
관련하여 데브옵스에는 아래와 같이 다양한 툴이 존재합니다.
이 도구들은 프로세스를 자동화 해주며, 개발팀과 운영팀이 함께 사용가능한 특징을 가지고 있습니다.
필자도 과거에 개인 포트폴리오에서 Travis-CI와 circleci를 이용하여 배포 자동화를 구현해보았으며, 현재 직장에서도 JenKins를 사용하고 있습니다.
또한 여러 기업에서 쿠버네티스와 도커를 사용하고 있을만큼 지금은 빠져선 안될 중요한 소프트웨어 개발방법으로 존재하고있습니다.
'관련_배경_지식' 카테고리의 다른 글
웹 접근성(web accessibility)이란 (0) | 2023.11.10 |
---|---|
도커(Docker)란 (0) | 2023.11.10 |
네이티브앱_모바일웹_하이브리드_PWA 차이 (0) | 2023.11.10 |
UUID는 절대 겹치지 않을까? (0) | 2023.11.09 |
PWA (1) | 2023.11.09 |