회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
깃허브(Github) – 소스 제어 관리(Source Control Management, SCM) 젠킨스(Jenkins) – 지속적 통합(Continuous Integration, CI) 나기오스(Nagios) – 경고 관리(Alert Management) 및 모니터링(Monitoring) 도커(Docker) – 컨테이너 관리(Container Management) 및 오케스트레이션(Orchestration) 엘라스틱서치(Elasticsearch) – 로그 분석(Log Analytics) 아이싱어(Icinga) – 분산 모니터링(Distributed Monitoring) 셰프(Chef) – 설정 관리(Configuration Management)
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
이번 시간에는 최근 들어서 점점 더 인기를 얻고 있는 개념인 데브옵스(Devops)에 대해서 알아보도록 하겠습니다. 소프트웨어 개발에서 데브옵스 방식은 애자일 기법과 함께 사용되어, 기업의 경쟁력에 크게 기여할 수 있는데요. 운영의 생산성, 품질, 수익을 늘리는데 특히나 도움이 되는 것으로 유명합니다. 여러분이 만약 제품 개발 프로세스를 계속해서 발전시키고 싶다면 데브옵스의 개념과 장단점을 숙지하는 것이 매우 중요할 텐데요. 이번 시간, 위시켓은 데브옵스의 개념과 이 방법론이 가진 장담점에 대해 알아보는 시간을 갖도록하겠습니다.
데브옵스라는 용어는 드부아(Debois)라는 유명한 애자일 기법 전문가가 개발(development)과 운영(Operation)이라는 단어들을 조합해 만든 개념입니다. 드부아의 원래 목적은 소프트웨어 개발에 드는 시간과 비용을 최소화하면서 동시에 사용자들에게는 뛰어난 품질의 제품을 보다 빠르게 전달하는 것이었습니다. 그리고 첫 번째 컨퍼런스가 열린지 10년이 지난 오늘날, 전 세계의 개발 조직에서 데브옵스 팀원들의 수가 꾸준히 늘어 현재는 전체의 26%를 차지하고 있다고 하죠.
아마존(Amazon)
아마존은 세계 최대의 온라인 소매업체이면서, 동시에 데브옵스 분야에서도 가장 성공한 기업들 중의 한 곳입니다. 아마존이 데브옵스 환경에서 성공할 수 있었던 데에는 수만 가지의 이유들이 있습니다. 아마존은 세계 최고 수준의 고객지원에서부터 제품에 대한 문제 해결, 인하우스(in-house) 솔루션을 만들어내는 것에 이르기까지 다양한 문제들을 처리하기 위해 소프트웨어를 활용하고 있는데요. 데브옵스가 속도를 빠르게 하는 것은 물론이고, 품질보증(QA) 및 리스크 관리에서도 아주 유용하다는 것을 알고 있습니다.
넷플릭스(Netflix)
넷플릭스는 업계에서도 데브옵스 기법을 가장 먼저 사용해서 프로그래머들과 IT 관리자들의 일상 업무를 자동화하는데 큰 도움을 받았습니다. 넷플릭스 스트리밍 서비스는 마이크로서비스(microservice)를 가진 클라우드 기반의 인프라 위에서 운영되고 있는데요. 그뿐만 아니라 거의 대부분이 오픈소스로, 커뮤니티의 지원을 받는 소프트웨어를 사용하고 있기에 2015년 잭스(JAX) 컨퍼런스에서 혁신에 대한 공로를 인정받기도 했습니다.
페이스북 (Facebook)
데브옵스 방법론은 페이스북 비즈니스의 핵심이자 그들이 성장할 수 있었던 근간이 됩니다. 예를 들면, 소프트웨어를 정식으로 출시하기 전 미리 버그를 고칠 수 있게 도와주고, 인프라도 신속하게 구축할 수 있었죠. 실제로 페이스북은 데브옵스 분야에서는 선구자에 속하며, 소프트웨어의 개발과 활용 방법을 변화시켰습니다.
왜, 다들 데브옵스(DevOps) 하는가.
이쯤에서 한 가지 중요한 질문을 던지고자 합니다. '대체 왜 데브옵스인가?'하는 것인데요. 데브옵스는 기존의 '소프트웨어 개발 생명주기(Software Development Life Cycle, SDLC)' 방법론에 비해 많은 장점들이 있으며 개발(Dev)과 운영(Ops)을 분리해왔던 오래된 전통인 SDLC 방법론을 뛰어넘을 수 있게 해줍니다.
뿐만 아니라 속도, 안정성, 배치 및 설정 관리 등 여러 가지 면에서 장점을 가질 수 있죠. 그 외에도 데브옵스는 스케일드 애자일 프레임워크(Scaled Agile Framework, SAFe)에도 필수적인데, 배치 사이즈의(batch size)의 소형화, 지연 시간의 단출, 빠른 피드백 등 SAFe의 많은 개념과 원칙들이 데브옵스에서도 사용될 수 있습니다.
깃허브(Github) – 소스 제어 관리(Source Control Management, SCM)
젠킨스(Jenkins) – 지속적 통합(Continuous Integration, CI)
나기오스(Nagios) – 경고 관리(Alert Management) 및 모니터링(Monitoring)
도커(Docker) – 컨테이너 관리(Container Management) 및 오케스트레이션(Orchestration)
엘라스틱서치(Elasticsearch) – 로그 분석(Log Analytics)
아이싱어(Icinga) – 분산 모니터링(Distributed Monitoring)
셰프(Chef) – 설정 관리(Configuration Management)
소스코드 제어.
: 새로운 버전의 시스템을 적절한 시기에 얻어낸다.
구축 및 테스트 자동화.
: 새로운 버전의 시스템에서 발견된 품질 관련 문제들을 모두 정리한다.
출시 자동화.
: 다수의 팀에서 수행되는 업무들을 자동화하고 서로 연결한다.
배치 및 모니터링.
: 버전 관리를 활용해서 개발 환경으로 새로운 버전의 시스템을 배포한다.
좋아요
댓글
공유
공유
넷마블 QA실에서는 ‘크래시리포트’라는 시스템을 운영하고 있습니다. 크래시리포트는 게임 실행 과정에서 예상치 못한 종료 현상이 발생할 때, 그 상황을 저장한 데이터를 크래시라 합니다. 이러한 크래시리포트 운영용으로 마련한 엣지 서버 클러스터 환경에서는 신규 파드 추가마다 최소 1분 이상 필요했습니다. 게임 사용자가 언제 급증할지 예측할 수 없기에, 스케줄에 맞춘 확장도 적합하지 않았습니다. 또한 서버에 접속하는 클라이언트의 통신 연결 대기 시간은 대략 10~20초로 설정돼 있어서, 신규 파드를 준비하기 위해 소모하는 1분 동안 누락되는 데이터도 늘어날 수밖에 없었습니다.
여기어때에서는 WorkerNode의 AutoScaling 도구로 Karpenter를 사용하고 있습니다. 일반적으로 POD의 수량이 부족한 상황이 되면 HPA에 의해 POD가 Scale out 되며 신규 배포가 수행됩니다. 이때 WorkerNode에 충분한 공간이 있다면 정상적인 배포가 이루어지겠지만 공간이 부족한 상황이라면 POD는 모두 Pending 상태에 빠집니다. 이러한 상황을 해결하기 위해서는 WorkerNode를 Scale out 해주는 과정이 필요한데 이러한 과정을 담당하는 도구가 Karpenter입니다.
지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!